Pseudozufallsfunktionen (PRF) · Eine effizient berechenbare Funktion f (mit f(x,·):{0,1}n...

32
Pseudozufallsfunktionen (PRF) Pseudozufallsfunktionen (PRF) Kapitel 3

Transcript of Pseudozufallsfunktionen (PRF) · Eine effizient berechenbare Funktion f (mit f(x,·):{0,1}n...

Pseudozufallsfunktionen (PRF)Pseudozufallsfunktionen (PRF)

Kapitel 3

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

Advanced Encryption Standard

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)

Data Encryption Standard

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

Pseudozufallspermutationen

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:

Ein- und Ausgabelänge

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)