Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

AES – Advanced Encryption Standard

Ähnliche Präsentationen


Präsentation zum Thema: "AES – Advanced Encryption Standard"—  Präsentation transkript:

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.


Herunterladen ppt "AES – Advanced Encryption Standard"

Ähnliche Präsentationen


Google-Anzeigen