AES - PowerPoint PPT Presentation

1 / 35
About This Presentation
Title:

AES

Description:

AES Advanced Encryption Standard Seminar: Kryptographie und Sicherheit, Prof. Dr. Waldvogel Cordula Bauer Thematik Wie entstand der AES? Wie funktioniert der ... – PowerPoint PPT presentation

Number of Views:136
Avg rating:3.0/5.0
Slides: 36
Provided by: usuar462
Category:

less

Transcript and Presenter's Notes

Title: AES


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
  • Mathematische Grundlagen
  • Spezifikation des Algorithmus
  • Kryptoanalyse
  • Zusammenfassung

4
AES 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

5
AES 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

6
AES 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

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

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

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

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

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 AlgorithmusBlöcke und Runden
Wort
  • Layout eines Blocks

4 Wörter, Nb 4 128 bits
Byte
  • Anzahl der Runden

18
Spezifikation des AlgorithmusPseudo-Code (1)
  • Rijndael(State, CipherKey)
  • KeyExpansion(CipherKey, ExpandedKey)
  • AddRoundKey(State, ExpandedKey0)
  • for(i1 iltNr i)
  • Round(State, ExpandedKeyi)
  • FinalRound(State, ExpandedKeyNr)

19
Spezifikation 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)

20
Spezifikation des AlgorithmusSubBytes
  • nicht-lineare Transformation (einzige)

S-Box
21
Spezifikation 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
22
Spezifikation 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

23
Spezifikation 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

24
Spezifikation des AlgorithmusMixColumns (1)
  • Die Bytes der einzelnen Spalten ( Wörter) werden
    durcheinander gewürfelt

Ä c(x)
25
Spezifikation 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
26
Spezifikation des AlgorithmusMixColumns Design
Kriterien
  • Effektivität
  • Linearität
  • Diffusion
  • Effizienz
  • Gute Performance auf
  • 32 Bit Prozessoren
  • auf 8 Bit Prozessoren

27
Spezifikation 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
28
Spezifikation 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

29
Spezifikation 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
30
Spezifikation des AlgorithmusKeyExpansion
Design Kriterien
  • Effektivität
  • Eliminierung von Symmetrie
  • Diffusion
  • Nicht-Linearität
  • Effizienz
  • Wenig Arbeitsspeicherverbrauch
  • Gute Performance auf vielen Prozessoren

31
Spezifikation 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)

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.
Write a Comment
User Comments (0)
About PowerShow.com