AES steigert Krypto-Performance

Sicherheit war oberstes Gebot

Die Sicherheit der Algorithmen gegen kryptoanalytische Attacken stand bei den Auswahlkriterien des NIST an der Spitze. Das Gremium verlangte, dass der Algorithmus auch in 30 Jahren noch sicher sein sollte. Deshalb mussten die Kandidaten Schlüssellängen von 128, 192 und 256 Bit unterstützen. Die Mindestlänge von 128 Bit schließt eine erfolgreiche Brute-Force-Attacke für die nächsten Jahrzehnte aus, wenn keine unvorhersehbaren Entwicklungen auf dem Hardwaresektor eintreten.

Krypto-Spezialisten haben sich neben den simplen Brut-Force-Attacken allerdings weitere kryptoanalytische Verfahren ausgedacht, um die Algorithmen zu brechen. Eine gesicherte Aussage darüber, wie resistent sich ein Algorithmus gegen solche Angriffe verhalten wird, ist zwar nicht möglich - aber es haben sich Prüfungsverfahren durchgesetzt, die nach heutigem Verständnis hinreichend aussagekräftig sind.

Eine übliche Vorgehensweise ist die, den Algorithmus abzuschwächen, indem man die Anzahl der "Runden", die beim Verschlüsseln durchlaufen werden, reduziert und dann versucht, den Algorithmus zu attackieren. Eine "Runde" bezeichnet in diesem Fall einen Verschlüsselungsdurchgang: Der Algorithmus verändert die Ausgangsdaten wieder und wieder, bis sie bei der Analyse wie eine Zeichen- oder Bit-Ansammlung mit zufälliger Verteilung wirken. Die Differenz zwischen der tatsächlichen Zahl der Runden eines Algorithmus und der Zahl an Runden, bei denen der Algorithmus gerade noch mit kryptoanalytischen Methoden als angreifbar gilt, wird als Maß für den "Sicherheitspuffer" angesehen.

Alle fünf Finalisten schlugen sich auf diesem Gebiet ausreichend gut, so dass für die Entscheidung schließlich das zweitwichtigste Kriterium an Bedeutung gewann: Die Performance. Vorgabe war, dass der Algorithmus bei bedeutend besserer Sicherheit mindestens so schnell wie die DES-Verschlüsselung sein musste. Die hohe Leistung sollte in Software-Implementierungen auf den unterschiedlichsten Plattformen und in den unterschiedlichsten Programmiersprachen erreicht werden und darüber hinaus auch bei Hardware-Implementierungen zur Verfügung stehen. Schließlich sollte sich der neue Algorithmus auch für Einsatzgebiete mit sehr beschränkten Ressourcen eignen, also zum Beispiel auf Lowend-Smartcards einsetzbar sein.

Rijndael lag bei Software- und Hardware-Implementierungen auf den verschiedenen Plattformen auf den Spitzenplätzen. Der Ressourcenbedarf ist aufgrund des äußerst geringen Speicherbedarfs ebenfalls sehr niedrig.

Die Technik verwendet Schlüssel von 128, 192 und 256 Bit und Blocklängen, die von der Schlüssellänge unabhängig ebenfalls 128, 192 oder 256 Bit betragen können. Die Anzahl der durchlaufenen Iterationen beträgt je nach Schlüssel- und Blocklänge 10, 12 oder 14 Runden. Dabei schreibt der Algorithmus die Bytes der Daten in Tabellen zu vier Spalten und vier, sechs oder acht Zeilen. Mathematiker sprechen von 4x4-, 4x6- oder 4x8-Matrizen.

Jede Iteration - eine Schlüssel- und Blocklänge von 128 Bit unterstellt - besteht aus vier einfachen Operationen der 4x4-Byte-Matrix, die in der Abbildung skizziert sind. Zunächst wird jedes Byte mittels einer vorgegebenen 8-Bit-"S-Box", die 256 Einträge enthält, substituiert. Im zweiten Schritt folgt eine zyklische Verschiebung innerhalb der Zeilen der 4x4-Byte-Matrix. Die Elemente der ersten Zeile werden nicht, die der zweiten Zeile um eine, die der dritten Zeile um zwei und die der vierten Zeile um drei Elemente nach links verschoben. Danach werden die Spalten mit einer vorgegebenen Matrix multipliziert. Der vierte Schritt schließlich führt eine XOR-Verknüpfung der 128 Bit in der 4x4- Byte-Matrix mit dem rundenabhängigen Schlüssel durch.

Die in der Grafik erkennbaren Multiplikationsoperationen 2 und 3 bedürfen dabei einer Erklä-rung. Die Operation 2 bedeutet einen Bit-Shift um eins nach links wie bei einer normalen binären Multiplikation mit 2. Weist das Ergebnis allerdings mehr als 8 Bit auf, wird es mit der Binärzahl 100011011 per XOR ( ) verknüpft. Die Operation 3 besteht aus einer XOR-Addition des Ergebnisses der Operation 2 zum Ausgangswert.