Title: AES
1AES Advanced Encryption Standard
- Seminar Kryptographie und Sicherheit, Prof. Dr.
Waldvogel - Cordula Bauer
2Thematik
- 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?
3Inhalt
- AES Der Prozess
- Der Algorithmus Rijndael
- Mathematische Grundlagen
- Spezifikation des Algorithmus
- Kryptoanalyse
- Zusammenfassung
4AES Der ProzessAES 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
5AES Der ProzessAES 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
6AES Der ProzessAnforderungen an AES
- Formal symmetrischer Blockchiffre
- Blockgröße128 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
7AES Der ProzessDie 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.
8Rijndael - Mathematische Grundlagen Bits, Bytes
und Wörter
- Rijndael verschlüsselt mit 8 und 32 Bit
Operationen - 8 Bit 1 Byte 32 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.
9Rijndael - Mathematische Grundlagen GF(2) 8
- Byte b7b6b5b4b3b2b1b0 kann als Polynom
dargestellt werden - b(x) b7x7 b6x6 b5x5 b4x4 b3x3 b2x2
b1x b0 - Beispiel 01010111 ? 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
10Rijndael - Mathematische Grundlagen endliche
Körper
- Endlicher Körper ltF, Å, Ä gt
- ltF, Ågt und ltF\0, Ägt sind abelsche Gruppen
- Å und Ä sind distributiv
-
- abelsche Gruppe ltG, gt
- Abgeschlossenheit "a,bÎG abÎG
- Assoziativität "a,bÎG (ab)c a(bc)
- Kommutativität "a,bÎG ab ba
- neutrales Element 0ÎG,"aÎG a0 a
- inverses Element "a,bÎG ab 0
11Rijndael - Mathematische Grundlagen Addition von
Bytes
- ltF, Ågt
- Å ist Addition der Komponenten modulo 2
- ( x6 x2 x 1 ) ( x7 x 1) x7 x6
x2 - 01000111 10000011 11000100
-
- Auf Byte-Ebene entspricht Å der Operation XOR
12Rijndael - Mathematische Grundlagen
Multiplikation
- ltF\0, Ägt
- Ä 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
13Rijndael - 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)
14Rijndael - 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)
15Rijndael - Mathematische Grundlagen
Multiplikation von Wörtern (2)
- a(x) Ä b(x) º d(x) (mod x4 1)
- kann als Matrizzen-Multiplikation dargestellt
werden
16Spezifikation des Algorithmus
- Rijndael ist ein schlüssel-iterierter
Blockchiffre
17Spezifikation des AlgorithmusBlöcke und Runden
Wort
4 Wörter, Nb 4 128 bits
Byte
18Spezifikation des AlgorithmusPseudo-Code (1)
- Rijndael(State, CipherKey)
-
- KeyExpansion(CipherKey, ExpandedKey)
- AddRoundKey(State, ExpandedKey0)
- for(i1 iltNr i)
- Round(State, ExpandedKeyi)
- FinalRound(State, ExpandedKeyNr)
-
19Spezifikation des AlgorithmusPseudo-Code (2)
- Round(State, ExpandedKeyi)
-
- SubBytes(State)
- ShiftRows(State)
- MixColumns(State)
- AddRoundKey(State, ExpandedKeyi)
-
- FinalRound(State, ExpandedKeyNr)
-
- SubBytes(State)
- ShiftRows(State)
- AddRoundKey(State, ExpandedKeyNr)
-
20Spezifikation des AlgorithmusSubBytes
- nicht-lineare Transformation (einzige)
S-Box
21Spezifikation des AlgorithmusSubBytes 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
22Spezifikation des AlgorithmusSubBytes Design
Kriterien
- Nicht-Linearität
- Korrelation Input ?? Output
- - so gering wie möglich
- difference propagation Wahrscheinlichkeit
- - so gering wie möglich
- Algebraische Komplexität
- soll hoch sein
23Spezifikation des AlgorithmusShiftRows
- Einzelne Reihen i werden um eine Anzahl Ci
geshiftet - Blockgröße 128 C00, C11, C22, C33
- Design Kriterium für verschiedene Werte von Ci
- optimale Diffusion
24Spezifikation des AlgorithmusMixColumns (1)
- Die Bytes der einzelnen Spalten ( Wörter) werden
durcheinander gewürfelt
Ä c(x)
25Spezifikation des AlgorithmusMixColumns (2)
- b(x) a(x) Ä c(x) (mod x4 1)
- (Multiplikation Wortebene)
- mit c(x) 03 x3 01 x2 01 x 02
Koeffizienten sind Bytes in Hexadezimal-Schreibwe
ise
26Spezifikation des AlgorithmusMixColumns Design
Kriterien
- Effektivität
- Linearität
- Diffusion
- Effizienz
- Gute Performance auf
- 32 Bit Prozessoren
- auf 8 Bit Prozessoren
27Spezifikation des AlgorithmusAddRoundKey
- Länge des Rundenschlüssels Blocklänge
- aktueller Zustand (state) wird mit
Rundenschlüssel (round key) XOR verknüpft
Å
state
round key
new state
28Spezifikation des AlgorithmusKeyExpansion (1)
- KeyExpansion cipher key ? expanded key
- W Nb(Nr1)
- Beispiel cipher key Länge 192 bit ? Nk 6
- Blocklänge 128 bit ? Nb 4
- ? Nr 12 ? Nek 52 ?W 52
29Spezifikation des AlgorithmusKeyExpansion (2)
- Wi i kein Vielfaches von Nk
- Wi Wi - Nk Å Wi-1
- Wi i Vielfaches von Nk
- Wi Wi - Nk Å S(Wi-1)
s
30Spezifikation des AlgorithmusKeyExpansion
Design Kriterien
- Effektivität
- Eliminierung von Symmetrie
- Diffusion
- Nicht-Linearität
- Effizienz
- Wenig Arbeitsspeicherverbrauch
- Gute Performance auf vielen Prozessoren
31Spezifikation des AlgorithmusDechriffrieren
- I_Rijndael(State,CipherKey)
-
- I_KeyExpansion(CipherKey,I_ExpandedKey)
- AddRoundKey(State, I_ExpandedKeyNr)
- for( iNr-1 igt0 i- - )
- I_Round(State, I_ExpandedKeyi)
- I_FinalRound(State, I_ExpandedKey0)
-
- I_Round(State,I_ExpandedKeyi)
-
- InvSubBytes(State)
- InvShiftRows(State)
- InvMixColumns(State)
- AddRoundKey(State,I_ExpandedKeyi)
32Kryptoanalyse
- 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
33Zusammenfassung
- 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
34Anwendungen die AES benutzen
- Wireless LAN
- WPA2
- SSH
- IPsec
- Skype
- 7-Zip
- PGP
35Ende
- Noch Fragen?
- Vielen Dank für die Aufmerksamkeit.