Der AES-Algorithmus ist ein symmetrisches Kryptosystem und wird heutzutage in vielen Anwendungsgebieten eingesetzt. Im Rahmen dieser Ausarbeitung sollen der geschichtliche Hintergrund, die Eigenschaften und die Arbeitsweise dieses Algorithmus vorgestellt werden.
Einleitung
Bis zum Oktober 2000 war der DES-Algorithmus ein populärer Algorithmus für die Verschlüsselung von Daten. Aufgrund einiger Schwächen wurde DES zu diesem Zeitpunkt vom damals neuartigen AES-Verfahren offiziell abgelöst. Zunächst sollen einige kryptografische Begriffe geklärt, dann auf die Geschichte von AES eingegangen sowie die Eigenschaften und Funktionsweisen des Algorithmus vorgestellt werden. Im Anschluss folgt eine kurze kryptografische Bewertung von AES und eine Übersicht über die Anwendungsgebiete des Verfahrens.
Grundlegende kryptografische Begriffe
AES steht für Advanced Encryption Standard. Dabei handelt es sich um ein symmetrisches Kryptosystem. Ein Kryptosystem liegt immer dann vor, wenn aus einem Klartext mit einem zugrunde liegenden Schlüssel ein Geheimtext generiert wird. Kryptosysteme werden wiederum in symmetrisch und asymmetrisch unterteilt. Bei asymmetrischen Kryptosystemen verfügen die Kommunikationspartner jeweils über einen privaten und öffentlichen Schlüssel. Mit dem öffentlichen Schlüssel von Person X können Daten für sie verschlüsselt werden. Und nur diese Person X, die allein über ihren privaten Schlüssel verfügt, kann diese Daten entschlüsseln. Im Umkehrschluss kann Person X sich zum Beispiel mit ihrem privaten Schlüssel eindeutig authentifizieren.
Symmetrische Kryptosysteme zeichnen sich dadurch aus, dass zum Verschlüsseln des Klartextes und zum Entschlüsseln des zugehörigen Geheimtextes der gleiche Schlüssel benötigt wird. Problematisch dabei ist, dass der Schlüssel vom Absender an den Empfänger übermittelt werden muss, was wiederum ein Sicherheitsrisiko für die Übertragung der Nachricht an sich darstellt.
Symmetrische Kryptosysteme kann man in Blockchiffren und Stromchiffren unterteilen. Eine Blockchiffre ist ein Algorithmus, der einen Datenblock fester Größe (bei AES zum Beispiel immer 128 Bit) verschlüsselt. Im Gegensatz dazu wird bei einer Stromchiffre der Ausgangstext immer zeichenweise abgearbeitet und verschlüsselt. Bei AES handelt es sich letztendlich um ein symmetrisches Kryptosystem mit Blockverschlüsselung. Die Blockgröße ist genau auf 128 Bit festgelegt.
Geschichtlicher Hintergrund
Der AES-Algorithmus ist der Nachfolger des DES-Algorithmus, welcher 1975 von IBM entwickelt wurde und lange Zeit eines sehr populären Verschlüsselungsalgorithmus darstellte. Durch die geringe Schlüssellänge von lediglich 56 Bit wurde DES aber mit der zunehmenden Leistungsfähigkeit der Computer unsicher.
Das National Institute of Standards and Technology (NIST) ist eine Bundesbehörde in den Vereinigten Staaten und zuständig für Standardisierungsprozesse [WINIST]. Aufgrund der Unsicherheit von DES rief das NIST zu einem Wettbewerb auf, einen Algorithmus zu entwickeln, der
- symmetrisch ist
- eine variable Schlüssellänge zulässt
- für jedermann und unentgeltlich verfügbar ist und
- einfach zu implementieren ist
Im Oktober 2000 erkannte das NIST den von den beiden belgischen Kryptografen Dr. Vincent Rijmen und Dr. Joan Daemen entwickelten AES-Algorithmus als Nachfolger von DES an.
Eigenschaften des Algorithmus
Bei dem AES-Algorithmus handelt es sich um eine Blockchiffre, also ein symmetrisches Kryptosystem. Für die Verschlüsselung und Entschlüsselung von Daten muss somit der gleiche Schlüssel verwendet werden. Die Blockgröße bei AES ist auf 128 Bit festgelegt, somit werden die zu verschlüsselnden Daten bei der Abarbeitung des Algorithmus in 128-Bit-Blöcke aufgeteilt.
Im Gegensatz zu DES ist die Schlüssellänge bei AES variabel. Es existieren die Varianten AES-128 (128 Bit), AES-192 (192 Bit) und AES-256 (256 Bit). Zur Verschlüsselung kann bei AES also eine größere Anzahl an Schlüsseln verwendet werden (Größe Schlüsselraum = Schlüsselanzahl) [SCHMEH]. Darüber hinaus ist der AES-Algorithmus nicht patentiert. Er ist also frei verfügbar und darf ohne Lizenzgebühren von jedermann eingesetzt werden. Ein weiteres bedeutendes Merkmal von AES ist seine vergleichsweise einfache programmiertechnische Implementierung.
Arbeitsweise des Algorithmus
Die Arbeitsweise des AES-Algorithmus kann in verschiedene Teilschritte unterteilt werden.
Der zu verschlüsselnde Klartext wird zunächst in gleich große Datenblöcke aufgeteilt, wobei jeder Block über die gleiche Blockgröße verfügt. Bei AES beträgt dies 128 Bit:
Jeder dieser Blöcke wird nun bitweise in eine 4×4-Matrix geschrieben, wobei jede Zelle genau 1 Byte groß ist:
Die verschiedenen Teilschritte werden „pro Runde“ ausgeführt. R gibt die Rundenanzahl an und ist abhängig von der Schlüssellänge (z.B. folgt aus 128 Bit das R = 10 ist). Als nächstes erfolgt die Schlüsselaufbereitung. Dabei wird der Benutzerschlüssel in (R + 1) Teilschlüssel aufgeteilt. Jeder Teilschlüssel besteht aus 16 Bytes. Zur Berechnung der einzelnen Subschlüssel werden Funktionen wie SubWord (Substitution von Bytes) oder RotWord (byteweise Linksrotation) angewandt.
Die nun folgenden Schritte werden insgesamt für jeden Datenblock ausgeführt. Bei der Schlüsseladdition verknüpft der Algorithmus den aktuellen Block und den aktuellen Teilschlüssel mit dem XOR-Operator. Die Substitution tauscht die Bytes im aktuellen Datenblock aus. Die dabei eingesetzte statische Substitutionsbox hat für jeden Bytewert von 0 bis 255 einen Funktionswert.
Shift Row sorgt dafür, dass die Zeilen des aktuellen Blocks um eine bestimmte Anzahl nach links verschoben sind. Überlaufende Zellen werden von rechts fortgesetzt.
Mix Column beinhaltet die Vermischung der Spalten, indem jede Zelle eine Spalte mit einer Konstanten multipliziert und die Ergebnisse wiederum XOR verknüpft werden.
Einzelne Datenblöcke werden jetzt zum erzeugten Geheimtext zusammengefügt.
Zur Entschlüsselung des Geheimtextes kann der AES-Algorithmus invers angewendet werden. Dazu sind lediglich alle Funktionen in umgekehrter Reihenfolge aufzurufen. Dazu muss eine neue Substitutionsbox verwendet werden, die aber aus der alten Substitutionsbox berechnet werden kann [WIAES].
Kryptografische Bewertung
AES ist ein sehr elegantes Verfahren, denn es weist viele neuartige Designprinzipien auf (z.B. eine S-BOX, die mithilfe einer einfachen Formel berechnet werden kann). Die bisher gelungenen Angriffe sind nicht praxisrelevant. Jedoch ist AES nicht komplett unumstritten, denn es hat in den Augen vieler Kryptografen einen zu geringen Sicherheitspuffer bezüglich der Rundenanzahl.
Heutige Anwendungsgebiete
Die wichtigsten Anwendungsgebiete von AES liegen in der WLAN Verschlüsselungsmethode WPA2, bei Voice Over IP (Skype verschlüsselt die Sprachpakete mit AES) und in der Verschlüsselung von Dateiarchiven (RAR, 7-ZIP). In den Vereinigten Staaten setzt man AES zur Verschlüsselung staatlicher Dokumente ein.
Literatur
[WIAES] „Advanced Encryption Standard“ in der deutschen Wikipedia.
http://de.wikipedia.org/wiki/Advanced_Encryption_Standard. Stand 27.10.2009
[WINIST] „National Institute of Standards and Technology“ in der deutschen Wikipedia.
http://de.wikipedia.org/wiki/NIST. Stand 26.10.2009
[SCHMEH] Schmeh, K.: Kryptografie. Verfahren – Protokolle – Infrastrukturen. Heidelberg:
dpunkt.verlag 2007
Autor des Beitrags
Marco Dahms