AES steht für 'Advanced Encryption Standard', ist eine Blockchiffre und der Sieger-Algorithmus einer Ausschreibung in 2000 des NIST und gilt als Nachfolger von DES (Data Encryption Standard) von 1977. Der Algorithmus wurde von Joan Daemen und Vincent Rijmen entwickelt und die Chiffre wird deshalb auch Rijndael-Chiffre genannt. AES lässt einem die Wahl bei der Schlüssellänge von 128, 192 und 256 Bit. AES-192 und AES-256 sind in den USA für staatliche Dokumente mit höchster Geheimhaltungsstufe zugelassen.
AES benutzt eine Blocklänge von 16 Bytes, das heißt, dass ein Chiffrat 15 Zeichen länger werden kann als der ursprüngliche Klartext. Es empfiehlt sich, als Schlüssel den Hash eines Klartextpasswortes zzgl. eines (wenn gewünscht gehashten) Salts zu benutzen, z. B. SHA-256 für die 256-bit-Variante von AES. Dies ergibt eine gute Sicherheit..
AES hat sich mittlerweile als Standard durchgesetzt und neuere CPUs enthalten inzwischen spezielle Instruktionen, um die Verschlüsselung damit zu beschleunigen. Er wird u. a. bei der WLAN-Verschlüsselung WPA2, bei SSH, IPSec und in der IP-Telefonie benutzt.
Während Rijndael der Sieger-Algorithmus und zukünftiger Namensträger von AES wurde, waren die folgende vier weiteren Kandidaten in der engere Auswahl für AES gezogen worden, haben es letztendlich aber nicht geschafft: MARS, RC6, Serpent und Twofish. Weitere Kandidaten, die es nicht in die Endrunde schafften sind: CAST-256, CRYPTON, DEAL, DFC, E2, FROG, HPC, LOKI97, MAGENTA und SAFER+.
Der in AES implementierte Algorithmus heißt Rijndael und ist ein als Substitutions-Permutations-Netzwerk entworfene Blockchiffre. Jeder Block wird zunächst in eine zweidimensionale Tabelle mit vier Zeilen geschrieben, deren Zellen ein Byte groß sind. Die Anzahl der Spalten variiert je nach Blockgröße von 4 (128 Bits) bis 8 (256 Bits). Jeder Block wird nun nacheinander bestimmten Transformationen unterzogen. Aber anstatt jeden Block einmal mit dem Schlüssel zu verschlüsseln, wendet Rijndael verschiedene Teile des erweiterten Originalschlüssels nacheinander auf den Klartext-Block an. Die Anzahl der Runden variiert und ist von Schlüssellänge und Blockgröße abhängig (bei AES also nur von der Schlüssellänge).
Eine S-Box (Substitutionsbox) mit 256 Bytes dient als Basis für eine monoalphabetische Verschlüsselung. Sie gibt an, wie in jeder Runde jedes Byte eines Blocks durch einen anderen Wert zu ersetzen ist. Typischerweise wird die S-Box in Blockchiffren eingesetzt, um die Beziehung zwischen Klar- und Geheimtext zu verwischen (in der kryptologischen Fachsprache Konfusion genannt). Die S-Box des AES setzt auch teilweise das Shannon’sche Prinzip der Diffusion um. Die Konstruktion der S-Box unterliegt Designkriterien, die die Anfälligkeit für die Methoden der linearen und der differentiellen Kryptoanalyse sowie für algebraische Attacken minimieren sollen.
Die genaue Spezifikation findet sich beim NIST.
Hier der Link zum Ausprobieren: Rijndael Animation