Studium, Ausbildung und Beruf

web uni-protokolle.de
 powered by
NachrichtenLexikonProtokolleBücherForenMontag, 13. Juli 2020 

Advanced Encryption Standard


Dieser Artikel von Wikipedia ist u.U. veraltet. Die neue Version gibt es hier.
Der Advanced Encryption Standard ( AES ) ist ein symmetrischer Verschlüsselungsalgorithmus welcher als Nachfolger für DES bzw. 3DES im Oktober 2000 vom National Institute Standards and Technology ( NIST ) als Standard bekannt gegeben wurde. Nach Entwickler wird er auch Rijndael -Algorithmus genannt.

Inhaltsverzeichnis

Entstehung

Bisher war der Data Encryption Standard DES ) der am häufigsten genutzte symmetrische Algorithmus Verschlüsseln von Daten. Trotzdem wurde er oft kritisiert. Da er lange Zeit nicht vollständig war wurden sogar Hintertüren der NSA vermutet die allerdings nie gefunden wurden. an der Sicherheit von DES waren jedoch (schließlich benutzt DES nur einen 56 Bit Schlüssel) und wurden durch die Electronic Frontier (EFF) bestätigt die 1998 eine Maschine zur von DES mittels Brute-Force-Verfahren bauten. 3DES bot sich als eine vorübergehende Lösung ist jedoch recht langsam und die verwendete von 64 Bit ist ein potenzielles Sicherheitsrisiko. musste also ein neuer Verschlüsselungsstandard entwickelt werden nicht die Fehler seiner Vorgänger besitzt.

Auswahl eines Nachfolgers

Das US-amerikanische National Institute of Standards Technology ( NIST ) hat Anfang 1997 zu einem offenen Wettbewerb aufgerufen dessen als Advanced Encryption Standard (AES) festgelegt werden Dabei wurden folgende Kriterien aufgestellt die von Algorithmen zu erfüllen sind:

  • AES muss ein symmetrischer Algorithmus sein und zwar eine Blockchiffre .
  • AES muss mindestens 128 Bit lange verwenden und Schlüssel von 128 192 und Bit Länge einsetzen können.
  • AES soll gleichermaßen leicht in Hard- Software zu implementieren sein.
  • AES soll in Hardware wie Software eine überdurchschnittliche Performance haben.
  • AES soll allen bekannten Methoden der Kryptoanalyse (die Kunst einen Geheimtext ohne Kenntnis Schlüssels zu dechiffrieren ) widerstehen können insbesondere Power- und Timing-Attacken.
  • Speziell für den Einsatz in Smartcards sollen geringe Ressourcen erforderlich sein (kurze Codelänge niedriger Speicherbedarf ).
  • Der Algorithmus muss frei von patentrechtlichen Ansprüchen sein und darf von jedermann genutzt werden.

Im August 1998 sind 15 Algorithmen beim NIST eingegangen werden nun öffentlich diskutiert und auf die der genannten Kriterien geprüft. Die engere Wahl im April 1999 beendet und die fünf Kandidaten (MARS RC6 Rijndael Serpent Twofish ) kommen in die nächste Runde.

Alle fünf Kandidaten erfüllen die Forderungen. werden ab nun weitere Kriterien hinzugezogen: Die sollen auf theoretische Schwachstellen überprüft werden durch ein Algorithmus möglicherweise irgendwann einmal unsicher werden Dies klingt sehr weit hergeholt ist aber Denn leider kann man heute nicht sagen sich der Technologie-Fortschritt in den nächsten Jahren Vorgehensweisen die heute als unmöglich erklärt sind in einigen Jahren schon alltäglich sein. Ein Risiko darf nicht eingegangen werden.

Eindeutiger ist jedoch die Staffelung der nach Ressourcenverbrauch und Performance . Als einziger Algorithmus ist Rijndael als Hardware - und Software - Implementierung überdurchschnittlich schnell. Andere Kandidaten haben jeweils unterschiedlichen Bereichen kleinere Schwächen.

Im Mai 2000 wurden die Analysen und öffentlichen Diskussionen und schließlich am 2. Oktober 2000 der Sieger bekannt gegeben: Der belgische Rijndael wird neuer Standard. Sicherlich entspricht das der üblichen Sicherheitspolitik in den USA dass man sich künftig auf einen europäischen Algorithmus berufen soll. Aber Rijndael hat durch seine Einfachheit (die Referenz -Implementierung umfasst weniger als 500 Zeilen C-Code ) und Performance überzeugt.

Der Auswahlprozess überzeugte insbesondere durch seine Gestaltung viele Kryptografen weltweit. Bis heute wird Wettbewerb als sehr vorbildlich dargestellt.

Arbeitsweise

AES (in Zukunft ist mit AES Algorithmus Rijndael gemeint) ist wie bereits erwähnt Blockchiffre dessen Blocklänge und Schlüssellänge unabhängig voneinander Werte 128 192 oder 256 Bit erhalten Jeder Block wird zunächst in eine zweidimensionale Tabelle mit vier Zeilen geschrieben dessen Zellen Byte groß sind. Die Anzahl der Spalten somit je nach Blockgröße von 4 (128 bis 8 (256 Bit). Jeder Block wird nacheinander bestimmten Transformationen unterzogen. Aber anstatt jeden Block einmal dem Schlüssel zu Chiffrieren wendet AES verschiedene Teile des Schlüssels auf den Klartext-Block an. Die Anzahl dieser (r) variiert und ist von Schlüssellänge (k) Blockgröße (b) abhängig:

Je nach Blocklänge b und Schlüssellänge k die Anzahl der Runden bestimmt (10 12 14)
r b=128 b=192 b=256
k=128 10 12 14
k=192 12 12 14
k=256 14 14 14

S-Box

Eine Substitutionsbox (S-Box) dient als Basis für eine monoalphabetische Verschlüsselung . Sie ist meist als Array implementiert und gibt an welches Byte wie getauscht wird. Die S-Box in basiert auf einem mathematischen Zusammenhang und ist fest im Algorithmus implementiert. Doch dies ist Schwachpunkt da die S-Box lediglich zur Vermischung Bytes in Kombination mit weiteren Operationen und Schlüssel genutzt wird.

Ablauf

  • Schlüsselexpansion
  • Vorrunde
    • KeyAddition ()
  • Verschlüsselungsrunden (wiederhole solange runde<r)
    • Substitution()
    • ShiftRow()
    • MixColumn()
    • KeyAddition()
  • Schlussrunde
    • Substitution()
    • ShiftRow()
    • KeyAddition()

Schlüsselexpansion

Zunächst muss der Schlüssel in <math>r+1</math> (auch Rundenschlüssel genannt) aufgeteilt werden. Die Rundenschlüssel die gleiche Länge wie die Blöcke erhalten. muss der Benutzerschlüssel auf die Länge <math>b (r +1)</math> expandiert werden. Die Schlüssel werden in zweidimensionalen Tabellen mit vier Zeilen und der Größe 1 Byte gebildet. Der erste ist identisch mit dem Benutzerschlüssel. Die weiteren werden wie folgt berechnet: Um die Werte die Zellen in der ersten Spalte eines zu erhalten wird zunächst das Byte welches in der letzten (je nach Blockgröße: vierten oder achten) Spalte befindet und drei Zeilen durch die S-Box verschlüsselt und anschließend mit um eine Schlüssellänge zurückliegendem Byte XOR verknüpft. Befindet sich das zu berechnende an einer Position die ein ganzzahliger Teiler Schlüssellänge ist so wird das berechnete Byte mit einem Eintrag aus der rcon-Tabelle XOR Hierfür wird als Index eine fortlaufende Nummer Die rcon-Tabelle ist ähnlich wie die S-Box Tabelle in Form eines Arrays das konstante enthält die auf einem mathematischen Zusammenhang beruhen. weitere Byte (das sich nicht in der Spalte befindet) wird aus einer XOR-Verknüpfung des Bytes (<math>w_{i-1}</math>) mit dem Byte einer Schlüssellänge (<math>w_{i-k/32}</math>) gebildet.

KeyAddition

In der Vorrunde und nach jeder Verschlüsselungsrunde wird die KeyAddition ausgeführt. Hierbei wird bitweise XOR-Verknüpfung zwischen dem Block und dem Rundenschlüssel vorgenommen. Dies ist die einzige Funktion AES die den Algorithmus vom Benutzerschlüssel abhängig

Substitution

Im ersten Schritt jeder Runde wird jedes Byte im Block ein Äquivalent in S-Box gesucht. Somit werden die Daten monoalphabetisch verschlüsselt.

ShiftRow

Wie oben erwähnt liegt ein Block Form einer zweidimensionalen Tabelle mit vier Zeilen In diesem Schritt werden die Zeilen um bestimmte Anzahl von Spalten nach links verschoben. Zellen werden von rechts fortgesetzt. Die Anzahl Verschiebungen ist zeilen- und blocklängenabhängig:

Je nach Blocklänge b und Zeile in Datentabelle wird die Zeile um 1 bis Spalten verschoben
r b=128 b=192 b=256
Zeile 0 0 0 0
Zeile 1 1 1 1
Zeile 2 2 2 2
Zeile 3 3 3 4

MixColumn

Schließlich werden die Spalten vermischt. Es zunächst jede Zelle einer Spalte mit einer multipliziert und anschließend die Ergebnisse XOR verknüpft. dieser Vorgehensweise steckt ein komplizierter mathematischer Zusammenhang hier nicht näher erläutert wird. Die Konstante folgendermaßen bestimmt:

Zeile 1: 2
Zeile 2: 3
Zeile 3: 1
Zeile 4: 1

Entschlüsselung

Bei der Entschlüsselung von Daten wird rückwärts vorgegangen. Die Daten werden zunächst wieder zweidimensionale Tabellen gelesen und die Rundenschlüssel generiert. wird nun mit der Schlussrunde angefangen und Funktionen in jeder Runde in der umgekehrten aufgerufen. Durch die vielen XOR-Verknüpfungen unterscheiden sich die meisten Funktionen zum nicht von denen zum Verschlüsseln. Jedoch muss andere S-Box genutzt werden (die sich aus original S-Box berechnen lässt) und die Zeilenverschiebungen in die andere Richtung.

Anwendung

AES wird u.a. von WPA dem für WLAN und bei SSH genutzt.


Literatur

  • Joan Daemen Vincent Rijmen - The Design of Rijndael. The Wide Trail ISBN 3540425802 (Englisch)

Weblinks


Siehe auch: Kryptographie WikiProjekt Kryptologie



Bücher zum Thema Advanced Encryption Standard

Dieser Artikel von Wikipedia unterliegt der GNU FDL.

ImpressumLesezeichen setzenSeite versendenSeite drucken

HTML-Code zum Verweis auf diese Seite:
<a href="http://www.uni-protokolle.de/Lexikon/AES.html">Advanced Encryption Standard </a>