Wenn Sie sich jemals gefragt haben, wie Dinge im Internet sicher aufbewahrt werden, insbesondere wenn man bedenkt, dass es mehrere böswillige Agenten gibt, die ständig versuchen, in Datentresore einzubrechen, Kryptographie ist eine der Antworten, die am besten zu dieser Frage passt.
Wie Sie vielleicht wissen, ist Kryptografie lediglich eine der Methoden zum Schutz von Informationen und Kommunikation, aber das bedeutet nicht, dass sie auf keinen Fall einfach ist. Tatsächlich handelt es sich um eine Technologie, die ständig weiterentwickelt wird, um sicherzustellen, dass die Standards, auf die sie sich stützt, immer auf dem neuesten Stand sind.
Ein Beispiel für einen solchen Standard ist AES, ein Akronym, das Ihnen wahrscheinlich schon einmal begegnet ist, insbesondere wenn Sie ständig Kommunikations-Apps wie WhatsApp, Signal oder Telegram oder VPN-Software verwenden. In diesem Artikel konzentrieren wir uns auf AES und helfen Ihnen, es besser zu verstehen.
Was ist AES?
AES, steht für Advanced Encryption Standard und ist eine beliebte Form der Verschlüsselung, die schon seit einiger Zeit verwendet wird, um sicherzustellen, dass Daten sicher und fern gehalten werden vor neugierigen Blicken.
Was die AES-Verschlüsselung von der Masse abhebt, ist die Tatsache, dass es sich um eine schnelle und sichere Verschlüsselungsmethode handelt und ihre Flexibilität die Verwendung für eine Vielzahl von Produkten ermöglicht, von alltäglichen Anwendungen wie WhatsApp oder Signal an militärische Sicherheitssysteme und sogar Hardware.
Funktionsweise der Verschlüsselung
Sie wissen wahrscheinlich, wie Verschlüsselung funktioniert. Wenn Sie dies nicht tun, hier eine kurze Erinnerung: Die Verschlüsselung nimmt Klartext und wandelt ihn in eine verschlüsselte Form um, wodurch er aussieht, als bestünde er aus zufälligen Zeichen. Man kann mit Sicherheit sagen, dass AES ein symmetrischer Verschlüsselungstyp ist, da derselbe Schlüssel zum Ver-und Entschlüsseln von Daten verwendet wird.
Dieser Verschlüsselungsstandard verwendet den Substitutions-Permutations-Netzwerkalgorithmus (SPN-Algorithmus), um mehrere Verschlüsselungsrunden zum Schutz von Daten anzuwenden. Die Tatsache, dass es so viele Runden verwendet, macht AES praktisch undurchdringlich.
AES ist nicht nur die erste, sondern auch die einzige öffentlich zugängliche Verschlüsselung, die von der NSA (National Security Agency) zum Schutz streng geheimer Daten zugelassen wurde. Ursprünglich hieß dieser Verschlüsselungsstandard Rijndael, basierend auf den Namen seiner beiden Entwickler Vincent Rijmen und Joan Daemen (beide aus Belgien).
AES mehrere Schlüssellängen
Der AES enthält drei Blockchiffren und jede dieser Blockchiffren hat eine andere Anzahl möglicher Schlüsselkombinationen, wie folgt:
- AES-128: 128-Bit-Schlüssellänge=3,4 * 1038
- AES-192: 192-Bit-Schlüssellänge=6,2 * 1057
- AES-256: 256-Bit-Schlüssellänge=1,1 * 1077
Obwohl es drei Blockchiffren gibt, verschlüsselt und entschlüsselt jede von ihnen Daten in 128 Block-Bits unter Verwendung unterschiedlicher Schlüssellängen (d. h. 128, 192 und 256, wie oben angegeben). Man kann also mit Sicherheit sagen, dass, obwohl die Länge der Schlüssel unterschiedlich sein kann, die Blockgröße immer gleich ist (128 Bit oder 16 Byte, das ist dasselbe).
Die Tatsache, dass AES unterschiedliche Schlüssellängen verwendet, hat bei den Benutzern definitiv einige Fragen aufgeworfen, z. B. warum brauchen wir überhaupt mehrere Schlüssellängen? Andere könnten sogar die Notwendigkeit mehrerer Schlüssellängen in Frage stellen, umso mehr, wenn man bedenkt, dass der 256-Bit-Schlüssel vermutlich der sicherste ist.
Trotz der Tatsache, dass der 256-Bit-AES-Schlüssel einfach der stärkste Schlüssel im Bunde ist und oft als”militärisch”bezeichnet wird, wird er nicht immer standardmäßig eingesetzt, und der Grund der Grund dafür sind verfügbare oder besser nicht verfügbare Ressourcen.
AES-128 vs. AES-256
Je größer ein Schlüssel ist, desto mehr Ressourcen verbraucht er. Daher kann man mit Sicherheit sagen, dass ein weniger leistungsfähiges System eher 128-Bit-AES-Schlüssel verwendet als seine 256-Bit-Gegenstück. Wenn Sie beispielsweise die 256-Bit-AES-Verschlüsselung auf Ihrem Telefon verwenden, kann dies den Akku schneller entladen als die 128-Bit-Version desselben Verschlüsselungsstandards.
256-Bit-AES-Schlüssel sind viel schwieriger zu erzwingen als 128-Bit-Schlüssel. Aber selbst mit enormer Rechenleistung sind 128-Bit-AES-Schlüssel immer noch fast unmöglich zu knacken. Daher ist die Verwendung dieser Version anstelle der 256-Bit-Schlüssel möglicherweise die bessere Wahl, wenn Sie sich Sorgen um Leistung oder Latenz machen, insbesondere bei tragbare Geräte (zum Beispiel Smartphones).
Auf der positiven Seite haben technologische Fortschritte dazu geführt, dass die Unterschiede sowohl bei der Rechenleistung als auch bei der Akkulaufzeit zwischen der Verwendung von AES-256 und AES-128 vernachlässigbar sind, was 256-Bit-AES zum beliebtesten Wahl, da die meisten Benutzer es vorziehen, beruhigt zu sein.
Die Vorteile der Verwendung von AES
Die Tatsache, dass die von AES erzwungenen Verschlüsselungsmethoden schnell und einfach zu verstehen sind, macht AES zu einer beliebten Wahl in einer Vielzahl von Bereichen. AES ist nicht nur schnell und sicher, sondern auch einfach zu implementieren, was seine angeborene Popularität weiter steigert.
Außerdem ist es in der Lage, geschützte Daten so schnell zu entschlüsseln, wie es sie verschlüsseln kann, und verbraucht weniger Speicher und Rechenleistung als andere gängige Verschlüsselungsstandards (wie DES), was ihm einen Vorteil verschafft.
Zu guter Letzt, wenn es die Situation erfordert, ist AES so flexibel, dass Sie es mit mehreren anderen Sicherheitsprotokollen wie TKIP, WPA2, WEP, aber auch anderen Verschlüsselungsarten wie SSL kombinieren können.
Hier sind einige der wichtigsten Vorteile der Wahl von AES gegenüber anderen Verschlüsselungsstandards:
- Unterstützt die Implementierung in Hardware und Software
- Die Tatsache, dass es drei Schlüssellängen unterstützt, gibt Ihnen eine gewisse Flexibilität in Bezug auf Sicherheit und Geschwindigkeit (Leistung)
- Alle drei Schlüsseltypen sind lang genug, was AES zu einem unmöglichen Brute-Force-Ziel macht
- Bisher hat sich kein kryptografischer Angriff als wirksam gegen AES erwiesen
- Sie können es praktisch überall finden, da die US-Regierung es als Standard definiert hat
- Einfache Implementierung unabhängig vom Ziel (Hardware-Implementierung ist Berichten zufolge einfacher als Software)
- Beansprucht nicht so viel Speicher wie andere Verschlüsselungstypen (z. B. DES)
- Einfache Kombination mit anderen Sicherheitsprotokollen und Verschlüsselungstypen
Häufige Verwendungen von AES
Obwohl wir bereits erwähnt haben, dass AES im Allgemeinen überall dort verwendet wird, wo es unterstützt wird, gibt es einige Beispiele, bei denen die Wahrscheinlichkeit höher ist, darauf zu stoßen. Nämlich:
- VPNs
- Die Funktionsweise von VPNs besteht darin, Ihren Datenverkehr umzuleiten, jedoch nicht, bevor Sie ihn verschlüsseln, damit andere ihn nicht sehen können, falls sie Ihre Verbindung überwachen. Darüber hinaus muss der Verkehr an seinem Austrittspunkt entschlüsselt werden, was die Notwendigkeit eines Verschlüsselungsstandards mit sich bringt. AES-256 wird standardmäßig von mehreren VPN-Anbietern verwendet, darunter NordVPN, Surfshark und ExpressVPN.
- Passwort-Manager
- Passwortmanager funktionieren, indem Sie alle Ihre Passwörter eingeben und sie durch Verschlüsselung mit einem einzigen Passwort schützen. Verschiedene Softwarelösungen für das Passwortmanagement auf dem Markt haben sich für AES als operativen Verschlüsselungsstandard entschieden, da es einfach zu implementieren, schnell und sicher ist.
- Wi-Fi-Netzwerke
- Ohne die Verschlüsselung des Datenverkehrs könnten Angreifer einfach außerhalb Ihres drahtlosen Netzwerks sitzen, unverschlüsselte Pakete mit einem geeigneten WLAN-Adapter erfassen und Ihren gesamten Online-Aufenthaltsort unbesorgt in der Welt überwachen. Glücklicherweise kann die AES-Verschlüsselung, normalerweise zusammen mit zusätzlichen Sicherheitsstandards (WPA2 ist derzeit am beliebtesten), dies verhindern.
- Webbrowser
- Sie wissen wahrscheinlich bereits, dass Webbrowser seit einiger Zeit die Verbindungen ihrer Benutzer verschlüsselt haben, um sie vor verschiedenen Cyber-Bedrohungen wie MITM-Angriffen (Man-In-The-Middle), Spoofing oder Verkehrsüberwachung zu schützen.
- Festplattenverschlüsselung
- Obwohl diese Funktion hauptsächlich auf tragbaren Geräten wie Smartphones und Tablets verwendet wird, ist es nicht ungewöhnlich, Ihre Festplatte zu verschlüsseln, wenn Sie Ihre Privatsphäre und Sicherheit erhöhen möchten. AES ist derzeit eine der beliebtesten Methoden zum Verschlüsseln und Entschlüsseln von Festplatteninhalten.
- Dateikomprimierungssoftware
- Ob WinRar, WinZip oder 7z, all diese Archivierungs-und Dateikomprimierungs-/Dekomprimierungsprogramme auf dem Markt verwenden AES als ihren bevorzugten Verschlüsselungsstandard, um versehentliche Datenlecks bei der Verarbeitung Ihrer Dateien zu verhindern.
li>
- Kommunikations-Apps
- WhatsApp, Signal, Telegram, Snapchat, Messenger, aber auch andere, die wir nicht erwähnt haben, verwenden die AES-Verschlüsselung, um sicherzustellen, dass Sie von vollständiger Privatsphäre profitieren, egal ob Sie Fotos, Videos, Dokumente oder einfach senden Textnachrichten über diese Apps.
- Programmiersprachenbibliotheken
- Wenn Sie Programmierer sind, sollten Sie wahrscheinlich wissen, dass Bibliotheken bestimmter Programmiersprachen, einschließlich, aber nicht beschränkt auf C++, Java und Python, die AES-Verschlüsselung verwenden, um Ihre Daten und Projekte vor unbefugtem Zugriff zu schützen.
- Betriebssystemkomponenten
- Um eine zusätzliche Sicherheitsebene hinzuzufügen, haben einige Betriebssysteme einige ihrer Komponenten mit AES-Verschlüsselung versehen.
Wie funktioniert AES?
Im Allgemeinen müssen Sie wissen oder lernen, wie eine bestimmte Technologie funktioniert, um ihr volles Potenzial ausschöpfen zu können. In diesem Fall sollten Sie ein oder zwei Dinge über die Funktionsweise von AES wissen, bevor Sie es versehentlich in Ihren Projekten oder in Ihrer Umgebung implementieren oder verwenden.
1. Daten werden in Blöcke aufgeteilt
Wie Sie sich wahrscheinlich aus unseren obigen Erwähnungen erinnern, ist AES eine Blockchiffre, was bedeutet, dass die empfangenen Daten in Bitblöcken verschlüsselt werden, anstatt sie Bit für Bit zu verschlüsseln.
Der erste Schritt der AES-Verschlüsselung besteht daher darin, die Daten in Blöcke aufzuteilen. Jeder dieser Blöcke enthält eine 4-mal-4-Spalte mit 128 Bit oder 16 Byte. Wenn man bedenkt, dass ein Byte aus 8 Bit besteht, haben wir 16 x 8=128 Bit, was der Größe des Blocks entspricht.
Angenommen, Sie möchten „addictivetips.com“ mit AES verschlüsseln. Der Verschlüsselungsprozess trennt zunächst die Daten in Blöcke. Ein Block kann jedoch nur 16 Zeichen enthalten, sodass der erste Block kein „m“ am Ende des Textes enthält. Das ‚m‘ wird an den nächsten Block gesendet.
Nachdem Sie AES auf „addictivetips.com“ angewendet haben, sieht der erste Teil dieses Textes daher wie der folgende Block aus:
a | c | e | s |
---|---|---|---|
d | t | t | . |
d | i | i | c |
i | v | p | o |
2. Schlüsselerweiterung
Das Verfahren zur Schlüsselerweiterung ist etwas komplizierter als der oben beschriebene Schritt. Dazu wird ein anfänglicher Schlüssel genommen und der Schlüsselplan von Rijndael verwendet, um eine Reihe zusätzlicher Schlüssel zu generieren, die für jede einzelne Runde des Verschlüsselungsprozesses verwendet werden.
Wenn Sie zum Beispiel den Schlüssel „AESencryption12“ in unserem Klartext oben (addictivetips.com) verwenden, erhalten Sie eine scheinbar zufällige Zahlen.
A | e | y | o |
---|---|---|---|
E | n | p | n |
S | c | t | 1 |
r | i | 2 |
Der Rijndael-Schlüsselplan verwendet jedoch sehr spezifische Prozesse, um jedes einzelne Symbol in der Anfangsphrase zu verschlüsseln.
Das Ergebnis sieht wie im folgenden Block aus:
7e | 04 | 0b | 20 |
52 | 6c | 1c | 56 |
a7 | bf | 8e | 84 |
30 | 03 | 3d | 20 |
Auch wenn es wie Kauderwelsch und Zufallszahlen aussieht, ist genau das der Sinn dieses ganzen Verschlüsselungsverfahrens: Daten hinter einer Chiffre zu verstecken, sie für Benutzer, die die Chiffre nicht kennen, unzugänglich zu machen und sie zu machen unmöglich, es zu knacken.
Außerdem ist dies noch lange nicht abgeschlossen, da der Verschlüsselungsprozess die Schlüssel verwenden muss, die wir kürzlich für jede Verschlüsselungsrunde generiert haben. Aber dazu später mehr.
3. Hinzufügen eines runden Schlüssels
Dies ist eigentlich die erste Verschlüsselungsrunde, da wir den Anfangsschlüssel (‘AES-Verschlüsselung12‘) zu unserem Nachrichtenblock (‘addictivetips.com‘), wie im Beispiel unten, was zunächst keinen Sinn ergibt.
a | c | e | s |
---|---|---|---|
d | t | t | . |
d | i | i | c |
i | v | p | o |
UND
A | e | y | o |
---|---|---|---|
E | n | p | n |
S | c | t | 1 |
r | i | 2 |
Auch wenn es vielleicht unmöglich ist, zwei Textblöcke zusammenzufügen, denken Sie daran, dass dies lediglich eine grafische Darstellung des Verschlüsselungsprozesses ist, damit Sie ihn besser verstehen können. In Wirklichkeit verwendet AES Binärcode, was unseren Versuch, zwei Textblöcke hinzuzufügen, nicht nur vollständig plausibel, sondern auch vollständig möglich macht.
Dieser Vorgang (das Zusammenfügen der beiden Textblöcke) erfolgt unter Verwendung einer XOR-Chiffre, und das Ergebnis ist unten zu sehen:
32 | d5 | 5c | d9 |
f3 | 24 | a8 | 46 |
7e | 1c | 37 | f3 |
82 | 5e | 3f | 03 |
4. Byte-Ersetzung
Um den Schutz Ihrer Daten (in unserem Fall der Klartext, den wir zu verschlüsseln versuchen) weiter zu verbessern, ersetzt dieser Prozessschritt jedes Byte des Blocks durch einen vorbestimmten Wert gemäß einer Tabelle, die als
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0a | 0b | 0c | 0d | 0e | 0f | |
00 | 63 | 7c | 77 | 7b | f2 | 6b | 6f | c5 | 30 | 01 | 67 | 2b | fe | d7 | ab | 76 |
10 | ca | 82 | c9 | 7d | fa | 59 | 47 | f0 | Anzeige | d4 | a2 | af | 9c | a4 | 72 | c0 |
20 | b7 | fd | 93 | 26 | 36 | 3f | f7 | cc | 34 | a5 | e5 | f1 | 71 | d8 | 31 | 15 |
30 | 04 | c7 | 23 | c3 | 18 | 96 | 05 | 9a | 07 | 12 | 80 | e2 | eb | 27 | b2 | 75 |
40 | 09 | 83 | 2c | 1a | 1b | 6e | 5a | a0 | 52 | 3b | d6 | b3 | 29 | e3 | 2f | 84 |
50 | 53 | d1 | 00 | ed | 20 | fc | b1 | 5b | 6a | cb | sein | 39 | 4a | 4c | 58 | cf |
60 | d0 | ef | aa | fb | 43 | 4d | 33 | 85 | 45 | f9 | 02 | 7f | 50 | 3c | 9f | a8 |
70 | 51 | a3 | 40 | 8f | 92 | 9d | 38 | f5 | bc | b6 | da | 21 | 10 | ff | f3 | d2 |
80 | CD | 0c | 13 | ec | 5f | 97 | 44 | 17 | c4 | a7 | 7e | 3d | 64 | 5d | 19 | 73 |
90 | 60 | 81 | 4f | dc | 22 | 2a | 90 | 88 | 46 | ee | b8 | 14 | de | 5e | 0b | db |
a0 | e0 | 32 | 3a | 0a | 49 | 06 | 24 | 5c | c2 | d3 | ac | 62 | 91 | 95 | e4 | 79 |
b0 | e7 | c8 | 37 | 6d | 8d | d5 | 4e | a9 | 6c | 56 | f4 | ea | 65 | 7a | ae | 08 |
c0 | ba | 78 | 25 | 2e | 1c | a6 | b4 | c6 | e8 | dd | 74 | 1f | 4b | bd | 8b | 8a |
d0 | 70 | 3e | b5 | 66 | 48 | 03 | f6 | 0e | 61 | 35 | 57 | b9 | 86 | c1 | 1d | 9e |
e0 | e1 | f8 | 98 | 11 | 69 | d9 | 8e | 94 | 9b | 1e | 87 | e9 | ce | 55 | 28 | df |
f0 | 8c | a1 | 89 | 0d | bf | e6 | 42 | 68 | 41 | 99 | 2d | 0f | b0 | 54 | bb | 16 |
Obwohl diese Tabelle auch wie eine Reihe zufälliger Zeichen aussieht, können Sie sie verwenden, um zu überprüfen, welchen Wert die ersetzten Bytes haben. Zum Beispiel wird c9 zu dd, 26 wird zu f7, ff wird werden 16, und zwar bald. Es ist nicht so schwer zu bedienen, wenn Sie den Dreh raus haben.
Jetzt, da wir die Tabelle gesehen haben, sehen wir uns an, wie sich der neue Block, den wir oben aus der ersten Verschlüsselungsrunde generiert haben, nach der Rijndael-S-Box-basierten Byte-Ersetzung ändert:
23 | 03 | 4a | 35 |
---|---|---|---|
0d | 36 | c2 | 5a |
f3 | 9c | 9a | 0d |
13 | 58 | 75 | 7b |
Beachten Sie, dass wir die Blöcke tatsächlich durch die Verwendung der Rijndael-S-Box-Tabelle manuell ersetzt haben, sodass Sie die Ergebnisse bei Interesse noch einmal überprüfen und versuchen können, sie zu replizieren. Auf diese Weise ist es für Sie einfacher zu folgen, insbesondere wenn Sie leidenschaftlich gerne mehr über Kryptographie erfahren möchten.
5. Zeilenverschiebung
In diesem Schritt des AES-Verschlüsselungsprozesses werden die Zeilen verschoben, um Ihre Daten hinter einer zusätzlichen Schutzwand zu platzieren. Während die erste Reihe unberührt bleibt, werden die nächsten drei auf unterschiedliche Weise verschoben:
- Die zweite Zeile wird um ein Byte (Zelle) nach links verschoben
- Die dritte Zeile wird um zwei Bytes (Zellen) nach links verschoben
- Die vierte und letzte Zeile wird um drei Bytes (Zellen) nach links verschoben
23 | 03 | 4a | 35 |
---|---|---|---|
36 | c2 | 5a | 0d |
9a | 0d | f3 | 9c |
7b | 13 | 58 | 75 |
6. Säulenmischen
Obwohl wir gerne so genau wie möglich bleiben möchten, beinhaltet dieser Schritt die Anwendung einer Reihe komplexer mathematischer Formeln auf den Block, wodurch wir am Ende des Verfahrens einen völlig anderen Block erhalten.
Um etwas genauer zu sein, wird in diesem Schritt jede Spalte mit einer vordefinierten Matrix multipliziert. Das Ergebnis ist ein neuer Codeblock, der weiter verwendet wird, um die Stärke der Chiffre zu erhöhen und die Wahrscheinlichkeit zu verringern, dass sie vollständig geknackt wird.
Am Ende des Spaltenmischprozesses erhalten wir einen Codeblock, der in etwa so aussieht:
43 | 4d | 33 | 85 |
---|---|---|---|
c8 | 37 | 6d | 8d |
9a | 33 | 85 | 9c |
42 | 68 | 41 | 99 |
7. zusätzlichen runden Schlüssel hinzufügen
Erinnern Sie sich, dass wir Ihnen vor einiger Zeit gesagt haben, dass wir auf jeden Fall den Schlüssel benötigen, den wir während der Schlüsselerweiterung erstellt haben? Nun, wir haben es einmal verwendet, um alles einmal zu verwürfeln, jetzt müssen wir die gerade erhaltenen Daten noch einmal verwürfeln.
Also nehmen wir den Datenblock, den wir nach dem Ausführen des Spaltenmischschritts erhalten haben, und fügen ihm einen weiteren runden Schlüssel hinzu, genau wie wir es in Schritt 3 in unserer Anleitung getan haben:
43 | 4d | 33 | 85 |
---|---|---|---|
c8 | 37 | 6d | 8d |
9a | 33 | 85 | 9c |
42 | 68 | 41 | 99 |
UND
32 | d5 | 5c | d9 |
f3 | 24 | a8 | 46 |
7e | 1c | 37 | f3 |
82 | 5e | 3f | 03 |
As you’d expect, this step will generate yet another block of data for us to process, but we’ll stop here. We have a feeling that you got the point. However, the encryption process is still far from being over, as the block of data we just generated will undergo several more modifications.
8. More steps
These modifications that we’ve mentioned above include everything we’ve done so far: shifting rows, byte substitution, adding round keys, and mixing columns, so it’s easy to understand why we had to stop here as far as exemplifying goes.
These rounds are identical and the number of times these rounds are repeated depend on the AES key length, as follows:
- AES-128 uses 9 rounds
- AES-192 uses 11 rounds
- AES-256 uses 13 rounds
So if you’re planning to use AES-256, the steps we’ve previously mentioned and explained will be repeated 13 times in a row, which you can agree is a tremendous amount. It’s also easy to understand why AES is so difficult to crack and is a go-to encryption standard in a lot of environments.
However, we’re not done yet. After the 9, 11, or 13 rounds of encryption we’ve briefly talked about above, there’s an additional round, during which the algorithm only substitutes bytes, shifts rows, and adds a round key (it skips mixing columns).
It may sound ridiculous that after 9, 11, or 13 rounds of running all the steps above the mixing columns step gets dropped. The reason is that at this point it’s somewhat redundant, and this step is skipped only to preserve some processing power.
So actually, after running all the steps of the encryption process, the input data (our plaintext we’ve used in the beginning in this case) will have gone through 10, 12, or 14 rounds, depending on the key length you chose and will look like a set of random characters. Not that it didn’t look like that for a long time now, since we started the encryption process and all.
So, to recap, while undergoing encryption, the data you feed to the AES encryption tools undergoes the following processes, in this order:
- Block division
- Key expansion
- Adding a round key
- Byte substitution
- Row shifting
- Column mixing
- Adding a round key
- Steps 4-7 are repeated for 9, 11, or 13 times depending on the key length
- Byte substitution
- Row shifting
- Adding a round key
At the end of this complex and seemingly endless process, addictivetips.com, the text we’ve attempted to encrypt, will look like the code below if encrypted using a 128-bit key and ‘AESencryption12‘ as our secret key:
RcadDaLDuP5fHtor3/Rfnq5EijEfhP02pvrlGkGr1Gc=
Although it may look like complete gibberish, once again, that’s the point of using encryption: making data as simple as plain text look like something went horribly wrong during its transmission and now it looks like gibberish.
How to decrypt AES
We understand that AES and the whole encryption process can be a bit of a handful, as the multitude of steps, as well as the fact that they’re repeated for an ungodly amount of time, can be a bit intimidating.
However, if you take a step back and look at the big picture, the whole thing actually starts to make sense, even for someone who didn’t spend their whole life studying cryptography and designing the perfect way to encrypt or decrypt information.
That’s precisely why we’re pretty confident you’ll have no trouble understanding AES decryption if the encryption process along with all of its steps made sense to you. To put it shortly, AES decryption follows the exact same steps as the encryption process, only they’re reversed.
So, in our case, if we want to go back to ‘addictivetips.com’ from RcadDaLDuP5fHtor3/Rfnq5EijEfhP02pvrlGkGr1Gc=
, all we have to do is trace our steps back up until we reach the initial one, like so:
- Inverse adding round key
- Inverse row shifting
- Inverse byte substitution
- Inverse adding round key
- Inverse column mixing
- Inverse row shifting
- Inverse byte substitution
- Repeat steps 4-7 for 9, 11, or 13 times depending on key length
- Inverse add round key
After performing all the steps above, we should end up with our original text fragment, ‘addictivetips.com’.
Is AES encryption secure?
One of the most pressing questions when it comes to all encryption standards (not only AES) is if it can provide you with an optimum level of security. In this case, the question would be: is AES encryption secure?
Although you could see for yourself that this encryption standard deploys a huge number of steps, each of which scrambles the original text and twists it beyond recognition, this didn’t seem to stop attackers from designing potential ways to circumvent these means of protection.
Note that in a real-life situation, an attacker (commonly known as a hacker or cracker) won’t go after the tallest, thickest wall in its attempt to invade the virtual fortress that is your PC, database, archive, or whatever you’re trying to protect.
Instead, they will circle the proverbial walls several times trying to find any cracks worth exploiting, and then start drilling there. In our situation, attackers may want to spot any vulnerabilities in the AES encryption process and start working their way up from there.
Thankfully, cryptography researchers constantly try to find vulnerabilities with the AES encryption process, so as to be able to prevent a potential attack from someone who discovers the flaws first and (obviously) doesn’t share them with the whole world.
Up until now, the researchers have been able to identify a series of attacks that could compromise AES, but these are either purely theoretical, side-channel attacks, or cracking attempts with a known security key, as you’ll soon learn from the following sections.
1. Known-key distinguishing attack
An attack that used a known key was designed by cryptography researchers and observed in action, and it showed some promising results. The attack was introduced in 2007 by Vincent Rijmen and Lars Knudsen.
While that’s not exactly great for the AES encryption method, this attack had two flaws that make it unlikely to be used in a real-life scenario: the fact that it used a known key, and that it was tested against a seven-round version of AES-128.
Considering that most of the time the key is not known to the attacker (unless they happen to just stumble upon it with precise instructions regarding its purpose) and that AES-128 has 10 rounds of encryption, everyday AES-128 can rest assured that the attack is not likely to occur.
The fact that most services that offer AES-128 also feature native support for AES-256 means that boosting your encryption couldn’t be easier in case you’re worried about being targeted by a known-key distinguishing attack.
2. Related key attack
Related key attacks are more of a category, as they represent all forms of cryptanalysis where attackers can analyze the way a cipher works under multiple keys. In this type of attack, the attacker doesn’t know the values of the keys used in the cipher.
However, although unknown, the keys also have some sort of mathematical relation one to another, which the attacker does know. One of the simplest examples would be that the attacker knows that the first 16 bits of the keys are always the same, but has no idea what the bits actually are.
Although related key attacks could be successful if applied correctly, they are of no real concern in the real world. In order for such an attack to work, an attacker would need to successfully persuade a cryptographer to encrypt data using various secret keys that are connected to each other mathematically, then share the secret with the attacker.
Thus, this type of attack servers merely as a reminder that human error could contribute to putting some kinks in the AES armor by being subject to poor implementation of this encryption standard.
3. Side-channel attack
Although AES is, at the time being, virtually uncrackable, there have been many attempts to design theoretical attacks that could demonstrate some of this encryption standard’s vulnerabilities.
Even if it’s been 20 years since AES has been introduced, and technology has made some huge advancements over these past 20 years, the amount of computing power needed to brute-force AES is still not enough, and we’d still need billions of years to be able to crack it.
However, a different breed of attempts to break the security of AES encryption is the side-channel attack. This type of attack combines multiple types of data leaks to extract enough data from an algorithm that it can be cracked.
For instance, attackers could focus on power consumption, electromagnetic radiation, the time it takes various computations to be performed, and even the sounds produced during computation to extract more information about the algorithm.
There are several classes of side-channel, including:
- Timing attacks
- Timing attacks revolve around measuring the time it takes for certain computations to be performed (for instance comparing a known password against an unknown one).
- Cache attacks
- These attacks are only viable if the attacker can access some of the victim’s caches in various environments, whether it’s virtualization environments (virtual machines), shared physical systems, or cloud services we’re talking about.
- Electromagnetic attacks
- Electromagnetic attacks are based on electromagnetic radiation leaks, which can be used to extract various bits of information. Measuring electromagnetic radiation leaks can sometimes lead to discovering cryptographic keys.
- Power-monitoring attacks
- Attackers monitor the power consumption of the hardware during certain computation steps in order to extract information about the algorithm.
- Acoustic cryptanalisis
- Similar to the power-monitoring attacks, but attackers listen to and analyze the sounds that hardware makes when performing certain computation steps and extract information from these findings.
- Data remanence
- This type of attack revolves around sensitive data that can still be accessed and read even after being deleted.
- Optical analysis
- In this complex type of attack, high-resolution cameras are used to capture secrets or sensitive data (such as analyzing hard disk activity indicators or transistors switching states).
- Differential fault analysis
- This type of attack is based on discovering secrets by inputting faults in computation in order to trigger an error.
Although you can agree that these side-channels are nothing short of creative and their authors can use them to turn even the most seemingly insignificant detail into a veritable piece of information, they only work if the system being audited is leaking information.
For that reason, avoiding side-channel attacks can be easily achieved either by making sure that the systems that could be attacked don’t leak any data or by ensuring that there’s no association between the algorithmic processes and leaked data, regardless of its nature.
4. Key recovery attacks
Last, but not least, the key recovery attacks are a tough contestant when it comes to efficient ways to crack AES encryption. In 2011, such an attack was attempted to prove its efficacy against the AES encryption mechanism.
This type of attack is not exactly likely to occur, seeing as it involves the attacker getting its hands on at least a pair of encrypted and decrypted messages from the soon-to-be-compromised system.
The attack showed promising results, as it was approximately four times as fast as brute-forcing. However, considering that a brute-force attack would take literally billions of years to complete, key recovery attacks are still far from being ideal, which makes them unlikely to be used in an attack.
Furthermore, even if it took a shorter amount of time to complete, changing the security key often could render the pair of encrypted and decrypted messages useless.
Is AES secure?
Considering everything you’ve learned by going through this guide, we think that you can be the judge of whether or not AES is a safe encryption standard.
AES has been around since 2001, and since its introduction, there were numerous attempts to break it, which makes it safe to say that it stood the test of time, and it’s still a solid choice when it comes to encryption algorithms.
The sheer amount of steps the algorithmic process goes through in order to make the data unreadable is tremendous, and it would take literally billions of years to crack AES, even with today’s computation power and technology advancements.
So, to answer your question considering all of the above: yes, AES is secure. Even AES-128 proved to be downright impossible to crack, not to mention its more powerful counterparts, AES-192, and AES-256.
AES Encryption – CONCLUSION
All things considered, after reading our extensive guide we hope you learned more about AES, including how it works, what processes it goes through during the encryption process, where it can be used, and how it could be (at a theoretical level) compromised.
The fact that 20 years after its introduction it’s still fast, secure, and can be implemented on a huge variety of hardware and software environments makes it truly deserve its title of being the “gold standard” of encryption techniques.