Einführung in die Kryptographie • TU Darmstadt, WS 07/08 • Marc Fischlin • www.minicrypt.de • Page 2
Motivation
Verschlüsselung eines Dateisystems durch PRG:
Entschlüsselung:berechne aus x entsprechende Generator-Ausgabe
…
PRG G(x)
⊕ ⊕ ⊕ ⊕…
…
Aber: Entschlüsselung der letzten Dateierfordert Iteration von G bis zum Ende
Einführung in die Kryptographie • TU Darmstadt, WS 07/08 • Marc Fischlin • www.minicrypt.de • Page 3
Pseudozufallsfunktion: Idee
G(x)
f(x,•)
j j-tes Bit von G(x)
a b=f(x,a)
≈U
j j-tes Bit von U
???
a b
allgemeiner als Funktion
scheller Zugriffauf einzelne Bits
PRG
{0, 1}n → {0, 1}n
pseudozufällig
≈pseudozufällig
wiederhole
PRF
Einführung in die Kryptographie • TU Darmstadt, WS 07/08 • Marc Fischlin • www.minicrypt.de • Page 4
Zufällige Funktionen
Menge aller 2n2n
Funktionen von {0, 1}n nach {0, 1}n:
Rn := {g | g : {0, 1}n → {0, 1}n}
Zufaellige Funktion g ← Rn.waehle unter allen Funktionen aus Rn eine Funktion g,jede Funktion hat gleiche Wahrscheinlichkeit.
(Die meisten der Funktionen aus Rn haben exponentielle Beschrei-bungslaenge log2 2
n2n = n2n)
Einführung in die Kryptographie • TU Darmstadt, WS 07/08 • Marc Fischlin • www.minicrypt.de • Page 5
Interaktiver Unterscheider
g
effizienter Algorithmus D
ab a
b
oder
Ausgabe 0 oder 1
Waehle g ← Rn zufaellig
f(x, ·)
(D sieht nurEin- und Ausgabeder jeweiligen Box)
Waehle x← {0, 1}n zufaellig(x Schluessel der Funktion)
Einführung in die Kryptographie • TU Darmstadt, WS 07/08 • Marc Fischlin • www.minicrypt.de • Page 6
Pseudozufallsfunktion
(Die Restriktion f(x, ·) : {0, 1}n → {0, 1}n dient nur zur Vereinfa-chung; allgemeinere Ein- und Ausgabelaengen koennen ebenfalls defi-niert werden.)
Definition.Eine effizient berechenbare Funktion f (mit f(x, ·) : {0, 1}n → {0, 1}nfuer alle x ∈ {0, 1}n) heisst Pseudozufallsfunktion, wenn fuer alle effi-zienten Algorithmen D gilt:¯̄̄
PrhDf(x,·)(1n) = 1
i− Pr [Dg(1n) = 1]
¯̄̄≈ 0,
wobei die Wahrscheinlichkeit ueber die Zufallsbits von D und die Wahlvon x← {0, 1}n bzw. g ← Rn gebildet wird.
Einführung in die Kryptographie • TU Darmstadt, WS 07/08 • Marc Fischlin • www.minicrypt.de • Page 7
Pseudozufallsgeneratoren und -funktionen
Satz.Pseudozufallsfunktionen existieren genau dann, wenn es Pseudozufalls-generatoren gibt.
Beweisidee (⇒).Setze G(x) := f(x, 0n)||f(x, 1n).Dann ist G(x) ununterscheidbar von g(0n)||g(1n) fuer zufaellige Funk-tion g ← Rn, und String g(0
n)||g(1n) ist verteilt wie U2n.
Beweisidee (⇐).Goldreich, Goldwasser, Micali (GGM-Konstruktion, naechste Folien).
Einführung in die Kryptographie • TU Darmstadt, WS 07/08 • Marc Fischlin • www.minicrypt.de • Page 8
Goldreich-Goldwasser-Micali-Konstruktion (I)
Definiere Pseudozufallsfunktion f(x, a) fuer a = a1a2 · · · an ∈ {0, 1}ndurch:
f(x, a) := Gan(Gan−1(· · ·Ga1(x) · · · ))
Sei G Pseudozufallsgenerator mit Ausgabelaenge 2n. Unterteile Ausga-be von G(x) in linke und rechte Haelfte:
G(x) = G0(x)||G1(x) mit Gb(x) ∈ {0, 1}n
Einführung in die Kryptographie • TU Darmstadt, WS 07/08 • Marc Fischlin • www.minicrypt.de • Page 9
Goldreich-Goldwasser-Micali-Konstruktion (II)
x
G1(x)G0(x)
G0(· · · ) G0(· · · )G1(· · · ) G1(· · · )
G0(· · · ) G0(· · · ) G0(· · · ) G0(· · · )G1(· · · ) G1(· · · ) G1(· · · ) G1(· · · )
als Baum (n = 3):
f(x, 011) = G1(G1(G0(x)))
Einführung in die Kryptographie • TU Darmstadt, WS 07/08 • Marc Fischlin • www.minicrypt.de • Page 11
Advanced Encryption Standard (AES)
Geschichte:– NIST ruft 1997 öffentlichen Wettbewerb aus– Gewinner 2001: Rijndael-Algorithmus– Adaption als Standard und Namensvergabe AES
AES guter Kandidat für PRF mit n=128– auch Versionen mit 192 und 256 Bits– AES ist sogar “mehr” (siehe Ende des Abschnitts)
NIST=National Institute of Standards and Technology
(von Rijmen und Daemen)
Einführung in die Kryptographie • TU Darmstadt, WS 07/08 • Marc Fischlin • www.minicrypt.de • Page 12
Darstellung von 128-Bit-Werten
AES-Spezifikation:– Darstellung und Operationen über Körper GF(28)– sehr schnell in Hardware und Software
Darstellung hier:– unterteile 128 Bit in 16 Blöcke von je 8 Bit– stelle 8-Bit-Werte jeweils hexadezimal dar– stelle 16 Blöcke als 4 x 4 Matrix dar
AES-Beschreibung hier nach Enrique Zabalahttp://www.cs.bc.edu/~straubin/cs381-05/blockciphers/rijndael_ingles2004.swf
Einführung in die Kryptographie • TU Darmstadt, WS 07/08 • Marc Fischlin • www.minicrypt.de • Page 13
Rundenbasierte Struktur des AES
unterteile 128 Bit in 16 Blöcke von je 8 Bit
stelle 8-Bit-Werte jeweils hexadezimal dar
stelle 16 Blöcke als 4 x 4 Matrix darj
j
Rundenschlüsselwerden aus
ursprünglichemSchlüssel abgeleitet
Einführung in die Kryptographie • TU Darmstadt, WS 07/08 • Marc Fischlin • www.minicrypt.de • Page 14
Transformation SubBytes
Substitutions-Box (S-Box)
ersetze 19 durch d41
9
(Idee: SubBytes/S-Box garantiert Nicht-Linearität von AES)
für alle Einträge
Einführung in die Kryptographie • TU Darmstadt, WS 07/08 • Marc Fischlin • www.minicrypt.de • Page 15
Transformation ShiftRows
(Idee: ShiftRows garantiert zeilenweise Diffusion)
rotiere in j-ter Zeilejeweils j Positionen
nach rechts (j=0,1,2,3)
Einführung in die Kryptographie • TU Darmstadt, WS 07/08 • Marc Fischlin • www.minicrypt.de • Page 16
Transformation MixColumns
(Idee: MixColumns garantiert spaltenweise Diffusion)
•
konstante Matrix
für alle Spalten
Einführung in die Kryptographie • TU Darmstadt, WS 07/08 • Marc Fischlin • www.minicrypt.de • Page 17
Transformation AddRoundKey
(Idee: AddRoundKey garantiert Abhängigkeit vom Schlüssel)
für alle Spalten⊕ =
Einführung in die Kryptographie • TU Darmstadt, WS 07/08 • Marc Fischlin • www.minicrypt.de • Page 18
Permutationseigenschaft
AES(x, ·) : {0, 1}128 → {0, 1}128
AES−1(x, ·) : {0, 1}128 → {0, 1}128
ist für jeden Schlüssel x sogar Permutation
ist bei Kenntnis von x leicht zu berechnen
S-Boxen sind Permutationen
Rotation nach links statt rechts
Matrix invertierbar
⊕ mit Rundenschlüssel
(AES als Verschlüsselungsverfahren–genauer: Block Cipher– konzipiert)
Einführung in die Kryptographie • TU Darmstadt, WS 07/08 • Marc Fischlin • www.minicrypt.de • Page 20
Data Encryption Standard (DES)
Geschichte:– Ende 70er von NIST zusammen mit IBM entwickelt– erste erfolgreiche Angriffe in den 90ern– theoretisch durch AES ersetzt
DES war guter Kandidat für PRF mit n=64– Schlüssel zu kurz für heutige Sicherheitsniveaus– auch Versionen mit längeren Schlüsseln (siehe Ende)– auch DES ist “mehr”
Einführung in die Kryptographie • TU Darmstadt, WS 07/08 • Marc Fischlin • www.minicrypt.de • Page 21
Rundenbasierte Struktur des DES
Lj Rj
F⊕
Lj+1 Rj+1
Lj+1 := Rj
Rj+1 := F (Kj , Rj)⊕Lj
Rundenschlüssel Kj (64 Bit)
Eingabe
IP
IP-1
Ausgabe
initiale Permutation (kein Schlüssel)
16 Runden
64 Bit
64 Bit
P Permutation, S S-Boxen, E ExpansionF (Kj , Rj) = P (S(E(Rj)⊕Kj))
Einführung in die Kryptographie • TU Darmstadt, WS 07/08 • Marc Fischlin • www.minicrypt.de • Page 22
Feistel-Struktur
Lj Rj
F⊕
Lj+1 Rj+1
Lj+1 := Rj
Rj+1 := F (Kj , Rj)⊕Lj
Kj
Lj Rj
F⊕
Lj+1 Rj+1
Kj
Lj = F (Kj , Lj+1)⊕Rj+1Rj = Lj+1
Ist Permutation, auch wennF selbst keine Permutation!
inverse Abbildung
benannt nach Horst Feistel (damals IBM)
Einführung in die Kryptographie • TU Darmstadt, WS 07/08 • Marc Fischlin • www.minicrypt.de • Page 23
Triple-DES
Schwächen von DES– kurze Schlüssel (64 Bit, davon 8 Parity-Check-Bits)– sogar bessere Angriffe als Brute-Force
Rettungsanker: Triple-DES (3•56=168 Bit-Schlüssel)
DES DES-1 DESa b
x1 x2 x3Schlüssel =
64 Bit 64 Bit
Einführung in die Kryptographie • TU Darmstadt, WS 07/08 • Marc Fischlin • www.minicrypt.de • Page 25
AES, DES und Permutationen
AES und DES sind
pseudozufällig + Permutationen,
also auch
Pseudozufallspermutationen?
ununterscheidbar von zufaelliger Funktion g ← Pn mit
Pn := {g : g : {0, 1}n → {0, 1}n ist Permutation}
Einführung in die Kryptographie • TU Darmstadt, WS 07/08 • Marc Fischlin • www.minicrypt.de • Page 26
Pseudozufallspermutation
(Man kann statt Pn auch die Klasse Rn fuer den Vergleich zu f her-anziehen, da fuer alle effizienten Algorithmen D gilt
|Pr [Dg(1n) = 1]− Pr£Dh(1n) = 1
¤| ≈ 0,
fuer g ← Pn bzw. h← Rn und die Zufallsbits von D.)
Definition.Eine effizient berechenbare Funktion f (mit f(x, {0, 1}n) = {0, 1}nfuer alle x ∈ {0, 1}n) heisst Pseudozufallspermutation (PRP), wennfuer alle effizienten Algorithmen D gilt:¯̄̄
PrhDf(x,·)(1n) = 1
i− Pr [Dg(1n) = 1]
¯̄̄≈ 0,
wobei die Wahrscheinlichkeit ueber die Zufallsbits von D und die Wahlvon x← {0, 1}n bzw. g ← Pn gebildet wird.
Einführung in die Kryptographie • TU Darmstadt, WS 07/08 • Marc Fischlin • www.minicrypt.de • Page 27
Starke Pseudozufallspermutation (I)
Stärkeres Angreifermodell:Unterscheider erhält auch Zugriff auf Box mit inverser Funktion
g
effizienter Algorithmus D
ab a
b
oder
Ausgabe 0 oder 1
f(x, ·)
Waehle x← {0, 1} zufaellig
g -1
Waehle g ← Pn zufaellig
b*a*b*
a*
f−1(x, ·)
Einführung in die Kryptographie • TU Darmstadt, WS 07/08 • Marc Fischlin • www.minicrypt.de • Page 28
Starke Pseudozufallspermutation (II)
Definition.Ein effizient berechenbare Funktion f (mit f(x, {0, 1}n) = {0, 1}n fueralle x ∈ {0, 1}n) heisst starke Pseudozufallspermutation (SPRP), wennfuer alle effizienten Algorithmen D gilt:¯̄̄
PrhDf(x,·),f−1(x,·)(1n) = 1
i− Pr
hDg,g−1(1n) = 1
i¯̄̄≈ 0,
wobei die Wahrscheinlichkeit ueber die Zufallsbits von D und die Wahlvon x← {0, 1}n bzw. g ← Pn gebildet wird.
Einführung in die Kryptographie • TU Darmstadt, WS 07/08 • Marc Fischlin • www.minicrypt.de • Page 29
Feistel-Konstruktion für (S)PRPs
Sei f Pseudozufallsfunktion und x1,x2,x3,x4 unabhängige Schlüssel
f⊕x1
3-RundenFeistelist PRP
4-RundenFeistel
ist SPRPLuby, Rackoff:
f⊕x2
f⊕x3
f⊕x1
f⊕x2
f⊕x3
f⊕x4
3-Runden Feistel: 4-Runden Feistel:
Einführung in die Kryptographie • TU Darmstadt, WS 07/08 • Marc Fischlin • www.minicrypt.de • Page 31
Ändern der Ausgabelänge
Verkleinere Ausgabelänge:(m<n Bits)
Verdopple Ausgabelänge:(längere Schlüssel)
Verdopple Ausgabelänge:(kürzere Eingaben)
F1(x, a) := lsbm(f(x, a))
F2(x1||x2, a) := f(x1, a)||f(x2, a)
f Pseudozufallsfunktion
F3(x, a∗) := f(x, 0||a∗)||f(x, 1||a∗)
mit a∗ ∈ {0, 1}n−1
Einführung in die Kryptographie • TU Darmstadt, WS 07/08 • Marc Fischlin • www.minicrypt.de • Page 32
Ändern der Eingabelänge
f(x, ·) ⊕ f(x, ·) ⊕ f(x, ·)
x x x
…
a2 a3
00…0 ⊕
a1
Ausgabe(n Bits)
Wenn k fest und f Pseudozufallsfunktion,dann auch diese Konstruktion Pseudozufallsfunktion.
Eingabe: a = a1a2 · · · ak ∈ {0, 1}kn mit ai ∈ {0, 1}n, und x ∈ {0, 1}n
Ausgabe: bk ∈ {0, 1}n mit b0 = 0n, bi = f(x, bi−1⊕ai)