Advanced Encryption Standard (AES) ist eine Spezifikation für die Verschlüsselung elektronischer Daten, die 2001 vom US-amerikanischen National Institute of Standards and Technology (NIST) erstellt wurde. AES wird heute häufig verwendet, da es viel stärker als DES und Triple DES ist, obwohl es schwieriger ist implementieren.
Punkte, die man sich merken sollte
- AES ist eine Blockverschlüsselung.
- Die Schlüsselgröße kann 128/192/256 Bit betragen.
- Verschlüsselt Daten in Blöcken zu je 128 Bit.
Das bedeutet, dass es 128 Bit als Eingabe benötigt und 128 Bit verschlüsselten Chiffretext als Ausgabe ausgibt. AES basiert auf dem Substitutions-Permutations-Netzwerkprinzip, was bedeutet, dass es mithilfe einer Reihe verknüpfter Operationen ausgeführt wird, die das Ersetzen und Mischen der Eingabedaten umfassen.
Was ist Ausnahmebehandlung in Java?
Funktionsweise der Chiffre:
AES führt Operationen an Datenbytes und nicht an Bits aus. Da die Blockgröße 128 Bit beträgt, verarbeitet die Verschlüsselung jeweils 128 Bit (oder 16 Byte) der Eingabedaten.
Die Anzahl der Runden hängt von der Schlüssellänge wie folgt ab:
- 128-Bit-Schlüssel – 10 Runden
- 192-Bit-Schlüssel – 12 Runden
- 256-Bit-Schlüssel – 14 Runden
Erstellung von Rundschlüsseln:
Ein Key Schedule-Algorithmus wird verwendet, um alle Rundenschlüssel aus dem Schlüssel zu berechnen. Daher wird der Anfangsschlüssel verwendet, um viele verschiedene Rundenschlüssel zu erstellen, die in der entsprechenden Runde der Verschlüsselung verwendet werden.

Verschlüsselung:
AES betrachtet jeden Block als ein 16-Byte-Raster (4 Byte x 4 Byte = 128) in einer Spaltenhauptanordnung.
[ b0 | b4 | b8 | b12 | | b1 | b5 | b9 | b13 | | b2 | b6 | b10| b14 | | b3 | b7 | b11| b15 ]>
Jede Runde besteht aus 4 Schritten:
- Subbytes
- ShiftRows
- MixColumns
- Rundschlüssel hinzufügen
In der letzten Runde gibt es keine MixColumns-Runde.
Die SubBytes übernehmen die Substitution und ShiftRows und MixColumns führen die Permutation im Algorithmus durch.
Unterbytes:
Dieser Schritt implementiert die Substitution.
In diesem Schritt wird jedes Byte durch ein anderes Byte ersetzt. Dies erfolgt mithilfe einer Nachschlagetabelle, auch S-Box genannt. Diese Ersetzung erfolgt so, dass ein Byte niemals durch sich selbst ersetzt wird und auch nicht durch ein anderes Byte ersetzt wird, das ein Komplement des aktuellen Bytes ist. Das Ergebnis dieses Schritts ist eine 16-Byte-Matrix (4 x 4) wie zuvor.
Die nächsten beiden Schritte implementieren die Permutation.
ShiftRows:
Dieser Schritt ist genau so, wie er sich anhört. Jede Zeile wird um eine bestimmte Anzahl von Malen verschoben.
- Die erste Zeile wird nicht verschoben
- Die zweite Reihe wird einmal nach links verschoben.
- Die dritte Reihe wird zweimal nach links verschoben.
- Die vierte Reihe wird dreimal nach links verschoben.
(Eine kreisförmige Verschiebung nach links wird durchgeführt.)
[ b0 | b1 | b2 | b3 ] [ b0 | b1 | b2 | b3 ] | b4 | b5 | b6 | b7 | ->| b5 | b6 | b7 | b4 | | b8 | b9 | b10 | b11 | | b10 | b11 | b8 | b9 | [ b12 | b13 | b14 | b15 ] [ b15 | b12 | b13 | b14 ]>
MixColumns:
Dieser Schritt ist im Grunde eine Matrixmultiplikation. Jede Spalte wird mit einer bestimmten Matrix multipliziert und dadurch wird die Position jedes Bytes in der Spalte geändert.
Dieser Schritt wird in der letzten Runde übersprungen.
[ c0 ] [ 2 3 1 1 ] [ b0 ] | c1 | = | 1 2 3 1 | | b1 | | c2 | | 1 1 2 3 | | b2 | [ c3 ] [ 3 1 1 2 ] [ b3 ]>
Runde Schlüssel hinzufügen:
Nun wird die resultierende Ausgabe der vorherigen Stufe mit dem entsprechenden Rundenschlüssel XOR-verknüpft. Dabei werden die 16 Bytes nicht als Raster betrachtet, sondern lediglich als 128 Datenbits.

Nach all diesen Runden werden 128 Bit verschlüsselter Daten als Ausgabe zurückgegeben. Dieser Vorgang wird wiederholt, bis alle zu verschlüsselnden Daten diesen Vorgang durchlaufen.
Entschlüsselung:
Die Stufen in den Runden können leicht rückgängig gemacht werden, da diese Stufen ein Gegenteil haben, das bei Ausführung die Änderungen rückgängig macht. Jeder 128-Block durchläuft je nach Schlüsselgröße die 10, 12 oder 14 Runden.
Was ist Winterschlaf?
Die Phasen jeder Entschlüsselungsrunde sind wie folgt:
- Rundschlüssel hinzufügen
- Inverse MixColumns
- ShiftRows
- Inverses SubByte
Der Entschlüsselungsprozess ist der umgekehrte Verschlüsselungsprozess, daher werde ich die Schritte mit bemerkenswerten Unterschieden erläutern.
Inverse MixColumns:
Dieser Schritt ähnelt dem MixColumns-Schritt bei der Verschlüsselung, unterscheidet sich jedoch in der Matrix, die zur Ausführung des Vorgangs verwendet wird.
[ b0 ] [ 14 11 13 9 ] [ c0 ] | b1 | = | 9 14 11 13 | | c1 | | b2 | | 13 9 14 11 | | c2 | [ b3 ] [ 11 13 9 14 ] [ c3 ]>
Inverse SubBytes:
Die inverse S-Box wird als Nachschlagetabelle verwendet und verwendet, um die Bytes während der Entschlüsselung zu ersetzen.
Anwendungen:
AES wird häufig in vielen Anwendungen eingesetzt, die eine sichere Datenspeicherung und -übertragung erfordern. Einige häufige Anwendungsfälle sind:
- Drahtlose Sicherheit: AES wird zur Sicherung drahtloser Netzwerke wie Wi-Fi-Netzwerke verwendet, um die Vertraulichkeit der Daten zu gewährleisten und unbefugten Zugriff zu verhindern. Datenbankverschlüsselung: AES kann zum Verschlüsseln vertraulicher Daten verwendet werden, die in Datenbanken gespeichert sind. Dies trägt dazu bei, persönliche Informationen, Finanzunterlagen und andere vertrauliche Daten im Falle einer Datenschutzverletzung vor unbefugtem Zugriff zu schützen. Sichere Kommunikation: AES wird häufig in Protokollen wie Internetkommunikation, E-Mail, Instant Messaging und Sprach-/Videoanrufen verwendet. Es stellt sicher, dass die Daten vertraulich bleiben. Datenspeicherung: Mit AES werden sensible Daten, die auf Festplatten, USB-Sticks und anderen Speichermedien gespeichert sind, verschlüsselt und so bei Verlust oder Diebstahl vor unbefugtem Zugriff geschützt. Virtuelle private Netzwerke (VPNs): AES wird häufig in VPN-Protokollen verwendet, um die Kommunikation zwischen dem Gerät eines Benutzers und einem Remote-Server zu sichern. Es stellt sicher, dass über das VPN gesendete und empfangene Daten privat bleiben und nicht von Abhörern entschlüsselt werden können. Sichere Speicherung von Passwörtern: Zur sicheren Speicherung von Passwörtern wird häufig die AES-Verschlüsselung eingesetzt. Anstatt Klartext-Passwörter zu speichern, wird die verschlüsselte Version gespeichert. Dies fügt eine zusätzliche Sicherheitsebene hinzu und schützt die Benutzeranmeldeinformationen im Falle eines unbefugten Zugriffs auf den Speicher. Datei- und Festplattenverschlüsselung: AES wird zum Verschlüsseln von Dateien und Ordnern auf Computern, externen Speichergeräten und Cloud-Speichern verwendet. Es schützt sensible Daten, die auf Geräten oder während der Datenübertragung gespeichert sind, um unbefugten Zugriff zu verhindern.
Zusammenfassung :
Der AES-Befehlssatz ist jetzt in die CPU integriert (bietet einen Durchsatz von mehreren GB/s), um die Geschwindigkeit und Sicherheit von Anwendungen zu verbessern, die AES zur Ver- und Entschlüsselung verwenden. Obwohl seit seiner Einführung 20 Jahre vergangen sind, ist es uns nicht gelungen, den AES-Algorithmus zu knacken, da er selbst mit der aktuellen Technologie nicht realisierbar ist. Bis heute besteht die einzige Schwachstelle in der Implementierung des Algorithmus.