AES – Advanced Encryption Standard Seminar: Kryptographie und Sicherheit, Prof. Dr. Waldvogel...

Post on 06-Apr-2015

110 views 0 download

Transcript of AES – Advanced Encryption Standard Seminar: Kryptographie und Sicherheit, Prof. Dr. Waldvogel...

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 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.

8

Rijndael - 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.

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: 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

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,bG: a+bG Assoziativität: a,bG: (a+b)+c = a+(b+c) Kommutativität: a,bG: a+b = b+a neutrales Element: 0G,aG: a+0 = a inverses Element: a,bG: 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

01000111 + 10000011 = 11000100

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

Layout eines Blocks:

Byte

Wort

Anzahl der Runden:

4 Wörter, Nb = 4

128 bits

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]){

SubBytes(State);ShiftRows(State);

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

- so gering wie möglich

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 x3 + 01 x2 + 01 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 = 12 Nek = 52 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

31

Spezifikation des Algorithmus

DechriffrierenI_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

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

Ende

Noch Fragen?

Vielen Dank für die Aufmerksamkeit.