Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
1
AES – Advanced Encryption Standard
Seminar: Kryptographie und Sicherheit, Prof. Dr. Waldvogel Cordula Bauer
2
Thematik Wie entstand der AES?
Wie funktioniert der Algorithmus der hinter AES steckt ? Welche Konzepte stehen hinter dem Design des Algorithmus? Wie sicher ist der AES?
3
Inhalt AES – Der Prozess Der Algorithmus: Rijndael Zusammenfassung
Mathematische Grundlagen Spezifikation des Algorithmus Kryptoanalyse Zusammenfassung
4
AES – Der Prozess AES als Nachfolger von DES
AES: Nachfolger des Data Encryption Standard (DES) von 1976 DES, Schlüssellänge von 56 Bit durch immer höhere Rechnerleistungen unsicher geworden triple-DES: dreifache Anwendung des DES sehr ineffizient
5
AES – Der Prozess AES als Wettbewerb
Januar 1997: Nationales Institut für Standards und Technologie der USA (NIST) ruft zu öffentlichem Wettbewerb für neue Verschlüsselungstechnik auf AES soll ein Federal Information Processing Standard (FIPS) werden NIST evaluiert Sicherheit und Effizienz selbst nicht, das soll übernehmen wer Interesse daran hat
6
AES – Der Prozess Anforderungen an AES
Formal: symmetrischer Blockchiffre Blockgröße:128 Bit Schlüssellängen: 128, 192 und 256 Bit Resistenz gegen alle Methoden der Kryptoanalyse überdurchschnittlich effizient in Software und Hardware (auch auf 8 Bit-Prozessoren) einfach zu implementieren
7
AES – Der Prozess Die Auswahl: Rijndael
Im Oktober 2002 wird Gewinner bekannt gegeben: Rijndael Autoren: Joan Daemen, Vincent Rijmen (Belgien) Algorithmus zeichnet sich durch sehr gute Performance in Hardware und Software und seine Einfachheit aus. In puncto Sicherheit gab es auch einige Kandidaten, welche Rijndael gleichwertig waren
8
Rijndael - Mathematische Grundlagen Bits, Bytes und Wörter
Rijndael verschlüsselt mit 8 und 32 Bit Operationen 8 Bit = 1 Byte | Bit = 4 Byte = 1 Wort Beispiel: Blockgröße 128 Bit, bzw. 16 Byte, bzw. 4 Wörter Blockgröße bei Rijndael nicht nur 128 Bit (wie beim AES), sondern prinzipiell jedes Vielfache von 32 zwischen 128 und 256 Bit möglich.
9
Rijndael - Mathematische Grundlagen GF(2) |8
Byte b7b6b5b4b3b2b1b0 kann als Polynom dargestellt werden: b(x) = b7x7 + b6x6+ b5x5+ b4x4 + b3x3 + b2x2 + b1x + b0 Beispiel: x6 + x4 + x2 + x + 1 b(x) repräsentiert die Elemente des endlichen Körpers GF(2)|8 Alle möglichen Bytes sind genau die Elemente von GF(2)|8
10
Rijndael - Mathematische Grundlagen endliche Körper
Endlicher Körper <F, Å, Ä >: <F, Å> und <F\{0}, Ä> sind abelsche Gruppen Å und Ä sind distributiv abelsche Gruppe <G, +>: Abgeschlossenheit: "a,bÎG: a+bÎG Assoziativität: "a,bÎG: (a+b)+c = a+(b+c) Kommutativität: "a,bÎG: a+b = b+a neutrales Element: $0ÎG,"aÎG: a+0 = a inverses Element: "a,bÎG: a+b = 0
11
Rijndael - Mathematische Grundlagen Addition von Bytes
<F, Å> Å ist Addition der Komponenten modulo 2 ( x6 + x2 + x + 1 ) + ( x7 + x + 1) = x7 + x6 + x2 = Auf Byte-Ebene entspricht Å der Operation XOR
12
Rijndael - Mathematische Grundlagen Multiplikation
<F\{0}, Ä> Ä ist Multiplikation modulo m(x) m(x) = x8 + x4 + x3 + x + 1 (irreduzibles Polynom, 8ten Grades) ( x6 + x4 + x2 + x + 1 ) * ( x7 + x + 1) = x13 + x11 + x9 + x8 + x6 + x5 + x4 + x3 + 1 (x13 + x11 + x9 + x8 + x6 + x5 + x4 + x3 + 1) modulo (x8 + x4 + x3 + x + 1 ) = x7 + x6 + 1 keine simple äquivalente Ausführung auf Byte-Ebene
13
Rijndael - Mathematische Grundlagen Addition von Wörtern
Wort a3a2a1a0 kann als Polynom dargestellt werden: a(x) = a3x3 + a2x2 + a1x + a0 Addition: die Komponenten, also die einzelnen Bytes werden jeweils XOR verknüpft: (a3x3 + a2x2 + a1x +a0) Å (b3x3 + b2x2 + b1x +b0) = (a3Å b3) x3 + (a2Å b2) x2 + (a1Å b1)x + (a0Å b0)
14
Rijndael - Mathematische Grundlagen Multiplikation von Wörtern (1)
Multiplikation: ähnlich wie mit Bytes, mit irreduziblem Polynom m(x) = x4 +1 d(x) = a(x) Ä b(x) (mod x4 +1) mit d(x) = d3x3 + d2x2 + d1x + d0 di: d0 = (a0 Ä b0) Å (a3 Ä b1) Å (a2 Ä b2) Å (a1 Ä b3) d1 = (a1 Ä b0) Å (a0 Ä b1) Å (a3 Ä b2) Å (a2 Ä b3) d2 = (a2 Ä b0) Å (a1 Ä b1) Å (a0 Ä b2) Å (a3 Ä b3) d3 = (a3 Ä b0) Å (a2 Ä b1) Å (a1 Ä b2) Å (a0 Ä b3)
15
Rijndael - Mathematische Grundlagen Multiplikation von Wörtern (2)
a(x) Ä b(x) º d(x) (mod x4 +1) kann als Matrizzen-Multiplikation dargestellt werden:
16
Spezifikation des Algorithmus
Rijndael ist ein schlüssel-iterierter Blockchiffre
17
Spezifikation des Algorithmus Blöcke und Runden
Wort Layout eines Blocks: 4 Wörter, Nb = 4 128 bits Byte Schlüssel hat genau das gleiche Layout. Entscheidend für Rijndael ist nur Nb = 4, also die erste Spalte Anzahl der Runden:
18
Spezifikation des Algorithmus Pseudo-Code (1)
Rijndael(State, CipherKey) { KeyExpansion(CipherKey, ExpandedKey); AddRoundKey(State, ExpandedKey[0]); for(i=1; i<Nr; i++) Round(State, ExpandedKey[i]); FinalRound(State, ExpandedKey[Nr]); }
19
Spezifikation des Algorithmus Pseudo-Code (2)
Round(State, ExpandedKey[i]) { SubBytes(State); ShiftRows(State); MixColumns(State); AddRoundKey(State, ExpandedKey[i]); } FinalRound(State, ExpandedKey[Nr]) AddRoundKey(State, ExpandedKey[Nr]);
20
Spezifikation des Algorithmus SubBytes
nicht-lineare Transformation (einzige) S-Box
21
Spezifikation des Algorithmus SubBytes – S-Box
Konkatenation von zwei Funktionen g,f g(a) = a-1 (multiplikative Inverse aus GF(2)|8 ) f(a): Å f(a) entspricht einer polynomialen Multiplikation und anschließender XOR-Verknüpfung mit einer Konstanten
22
Spezifikation des Algorithmus SubBytes – Design Kriterien
Nicht-Linearität Korrelation Input Output - so gering wie möglich difference propagation Wahrscheinlichkeit Algebraische Komplexität soll hoch sein
23
Spezifikation des Algorithmus ShiftRows
Einzelne Reihen i werden um eine Anzahl Ci geshiftet Blockgröße 128: C0=0, C1=1, C2=2, C3=3 Design Kriterium für verschiedene Werte von Ci: optimale Diffusion
24
Spezifikation des Algorithmus MixColumns (1)
Die Bytes der einzelnen Spalten (= Wörter) werden durcheinander gewürfelt Ä c(x)
25
Spezifikation des Algorithmus MixColumns (2)
b(x) = a(x) Ä c(x) (mod x4 +1) (Multiplikation Wortebene) mit c(x) = 03 x x x + 02 Koeffizienten sind Bytes in Hexadezimal-Schreibweise
26
Spezifikation des Algorithmus MixColumns – Design Kriterien
Effektivität: Linearität Diffusion Effizienz: Gute Performance auf 32 Bit Prozessoren auf 8 Bit Prozessoren
27
Spezifikation des Algorithmus AddRoundKey
Länge des Rundenschlüssels = Blocklänge aktueller Zustand (state) wird mit Rundenschlüssel (round key) XOR verknüpft Å = state round key new state
28
Spezifikation des Algorithmus KeyExpansion (1)
KeyExpansion: cipher key expanded key W [Nb(Nr+1)] Beispiel: cipher key Länge: 192 bit Nk = 6 Blocklänge: 128 bit Nb = 4 Nr = Nek = W [52]
29
Spezifikation des Algorithmus KeyExpansion (2)
Wi: i kein Vielfaches von Nk: Wi = Wi - Nk Å Wi-1 Wi: i Vielfaches von Nk: Wi = Wi - Nk Å S(Wi-1) s
30
Spezifikation des Algorithmus KeyExpansion – Design Kriterien
Effektivität: Eliminierung von Symmetrie Diffusion Nicht-Linearität Effizienz: Wenig Arbeitsspeicherverbrauch Gute Performance auf vielen Prozessoren Symmetrie: Rundenschlüssel um keine Symmetrie zwischen den einzelnen RUnden feststellen zu können Diffusion: von Rundenschüssel sollen keine Rückschlüsse auf den richtigen Schlüssel gezogen werden können Nicht-Linearität: ähnliche cipher keys sollen nicht auf ähnliche Rundenkeys abgebildet werden
31
Spezifikation des Algorithmus Dechriffrieren
I_Rijndael(State,CipherKey) { I_KeyExpansion(CipherKey,I_ExpandedKey); AddRoundKey(State, I_ExpandedKey[Nr]); for( i=Nr-1; i>0; i- - ) I_Round(State, I_ExpandedKey[i]); I_FinalRound(State, I_ExpandedKey[0]); } I_Round(State,I_ExpandedKey[i]) InvSubBytes(State); InvShiftRows(State); InvMixColumns(State); AddRoundKey(State,I_ExpandedKey[i]);
32
Kryptoanalyse resistent gegen lineare und differentielle Kryptoanalyse
saturation attack chosen-plaintext + Ausnutzung der byte-orientierten Struktur nur für rundenreduzierte (7 Runden) Version möglich implementation attacks timing attack power analysis Implementation attacks: man muss den Verschlüsselungsvorgang des verschlüsselnden Rechners analysieren Timing attack: von Ausführungszeit können Rückschlüsse auf Schlüssel gezogen werden Power analysis: Ressourcenverbrauch während der Verschlüsselung wird analysiert
33
Zusammenfassung AES (Rijndael) ist symmetrischer Blockchiffre
arbeitet mit simplen 8 und 32 Bit Operationen Schlüssel-Iteration & Rundentransformation hohe Sicherheit erreicht durch algebraische Komplexität Diffusion und Nicht-Linearität
34
Anwendungen die AES benutzen
Wireless LAN WPA2 SSH IPsec Skype 7-Zip PGP
35
Vielen Dank für die Aufmerksamkeit.
Ende Noch Fragen? Vielen Dank für die Aufmerksamkeit.
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.