AES / Rijndael Chiffre
Kategorisierung: | Moderne binär-basierte Blockchiffre |
Herkunft / Verwendung: | 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+. |
Beschreibung des Algorithmus
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.
Beispiel
Klartext: | BeispielklartextBeispielklartext (32 Bytes, 2 Blöcke) |
Schlüssel: | ApfelstrudelKirschtorten (24 Zeichen, 192 bit, entsprechend wird diese Bitstärke gewählt) |
Chiffrat CBC: | E65C2C18 8C3204C5 D31532D4 338AAB92 2EAED13F 179CF793 CB34C673 DBE2E832 (hex) |
Chiffrat ECB: | E65C2C18 8C3204C5 D31532D4 338AAB92 E65C2C18 8C3204C5 D31532D4 338AAB92 (hex)* *Beachten Sie die Wiederholung im Modus ECB |
Code / Chiffre online dekodieren / entschlüsseln bzw. kodieren / verschlüsseln (DeCoder / Encoder / Solver-Tool)
Die Länge des Textes sollte durch 16 (=Blocklänge) teilbar sein. Kürze Texte werden mit Nullbytes rechts aufgefüllt. Die Länge des Ergebnisses ist immer durch 16 teilbar und damit ggf. bis zu 15 Bytes länger als der Klartext.Der Schlüssel sollte min. 16 Zeichen lang sein, besser noch ein binärer Hash mit min. 128 Bit. Längere Schlüssel werden (durch Wiederholung) erweitert auf 24 oder 32 Bytes und es wird automatisch eine bessere Verschlüsselungsstärke (Bitlänge) gewählt. Den optionalen Initialisierungsvektor (IV) mit 16 Byte Länge geben Sie durch Komma getrennt als 2. Angabe im Schlüsselfeld an. Kürzere IV werden mit Nullen rechts aufgefüllt, längere auf richtige Länge gekürzt.
Wenn Sie Texte eingeben, die nicht als Hex-Sequenz (ohne Leerzeichen) interpretiert werden können, erfolgt eine automatische Umsetzung in eine Hex-Sequenz bzw. Binärdaten. Ist das Ergebnis nicht umsetzbar in druckbare ASCII-Zeichen, erfolgt eine automatische Ausgabe in Hex.
Quellen, Literaturverweise und weiterführende Links
Beutelspacher, Neumann und Schwarzpaul: Kryptografie in Theorie und Praxis, Vieweg Verlag 2005, S. 84-90Ertel, Wolfgang: Angewandte Kryptographie, Hanser Verlag 2012, S. 69-74
Schmeh, Klaus: Kryptografie: Verfahren - Protokolle - Infrastrukturen, dpunkt Verlag, 5. Auflage 2013, iX-Edition, S. 127-138, 360
Kuhn, Nico: Das Buch der geheimen Verschlüsselungstechniken, Data Becker Verlag 2009, S. 76
Wobst, Reinhard: Abenteuer Kryptologie, Addison-Wesley-Verlag 2001, S. 230