Rijndael
Rijndael ist ein kryptografischer Algorithmus, der vom amerikanischen National Institute of Standards and Technology (NIST) für den bekannten Advanced Encryption Standard (AES) ausgewählt wurde. Er wurde aus einer Liste mit fünf Kandidaten selektiert, die ihrerseits aus einer weiteren Liste mit mehr als 15 Algorithmen ausgewählt wurden. Rijndael ersetzt in vie-len kryptografischen Anwendungen den mittlerweile veralteten Data Encryption Standard (DES) sowie Triple-DES. Der Algorithmus wurde von zwei belgischen Verschlüsselungsexperten entwickelt, Vincent Rijmen und Joan Daemen. Ihre Nachnamen finden sich deswegen auch im Begriff Rijndael wieder. Rijndael basiert seinerseits auf dem Algorithmus Square, der während einer früheren Zusammenarbeit zwischen den beiden Kryptologen entstanden ist.
Der Rijndael-Algorithmus ist eine neuartige Blockchiffre, die Schlüssellängen von 128, 160, 192, 224 und 256 Bit Länge unterstützt. Für AES wurde die Schlüssellänge auf 128, 192 und 256 Bit begrenzt. Die Blocklänge beträgt aber immer 128 Bit. Rijndael beziehungsweise AES nutzen eine unterschiedliche Anzahl der Runden, die von der Schlüssel- und Blocklänge abhängt.
- 10 Runden, wenn die Schlüssel- oder Blocklänge 128 Bit beträgt
- 12 Runden, wenn die Schlüssel- oder Blocklänge 192 Bit beträgt
- 14 Runden, wenn die Schlüssel- oder Blocklänge 256 Bit beträgt
Rijndael wurde als so genanntes Substitions-Permutations-Netzwerk entworfen, das kein Feistel-Netzwerk benötigt. Der Algorithmus nutzt für jeden Block unterschiedliche Transformationen: Linear Mix Transform, Non-Linear Transform sowie Key Addition Transform. Noch vor der ersten Runde wird eine Schlüsselexpansion durchgeführt, die die Sicherheit erhöhen soll. Anschließend kommen zunächst eine Vorrunde sowie danach die eigentlichen Verschlüsselungsrunden und zuletzt die Schlussrunde.
Jeder Block wird außerdem in eine Tabelle mit vier Zeilen geschrieben. Die Anzahl der Spalten variiert je nach Blockgröße von 4 (128 Bit) bis zu 8 (256 Bit). Die ersten Spalten der Ta-belle werden mit dem Benutzerschlüssel gefüllt, während die Berechnung der Werte in den weiteren Spalten rekursiv erfolgt. Die Werte werden dann nach einem bestimmten Schema rotiert und mithilfe der so genannten S-Box (Substitions-Box) verschlüsselt. Für die weitere Berechnung wird außerdem ein XOR-Gatter eingesetzt.
Die eigentlichen Transformationen werden wie folgt durchgeführt: Die Byte-Subtransformation ist nonlinear und arbeitet in jedem Status byte-unabhängig. Die inverse Substitions-Box basiert auf zwei Transformationen. Darüber hinaus gibt es Shiftrow-Transformationen, bei denen sich der Status über verschiedene Offsets ändert. Die Werte und die Anzahl der Verschiebungen hängen dabei von der jeweiligen Blocklänge ab.
Insgesamt kann man deswegen sagen, dass Rijndael über eine hoch modulare Struktur verfügt. Dadurch sollen sich Veränderungen erheblich leichter als bei früheren Algorithmen durchführen lassen, wenn etwa neuartige Angriffe bekannt werden.