1

Vorlesung 20.04.2012

1.1

Was ist Kryptographie u ¨ berhaupt?

Seit dem Altertum: Verstecken / Unkenntlichmachen von Nachrichten Atbash: Einfaches Substitutionsverfahren. Effektiv wird das Alphabet umgedreht (d.h. ein Klartext A wird auf Z abgebildet). First 13 letters : A | B | C | D | E | F | G | H | I | J | K | L | M Last 13 Letters : Z | Y | X | W | V | U | T | S | R | Q | P | O | N

Caesar:

Verschieben des Alphabets um ein Delta, z.B. A −→ D, X → X + 3mod26

Fr¨ uhneuzeit: Vigenaire-Verfahren Denke Alphabet als Zahlen von 0 bis 25. W¨ahle ein Schl¨ usselwort, das wiederholt (je nach Klartextl¨ange) auf den Klartext “addiert” wird. Autokey-Variante: Erzeuge l¨ angeren Schl¨ ussel durch Verkettung des Schl¨ ussels mit dem Klartext. GEHEIMNIS AKEYAKEYA --------------GOLCIWRGS

19. Jhd.: Friedmann-Kasinsky (Angriff ) 1. Rate Schl¨ ussell¨ ange (oder finde sie durch Autokorrelation) 2. F¨ uhre auf einzelnen Indizes (periodisch versetzt) Caesar-Angriff durch 20. Jhd: Gesetze).

Anfang der Theoretischen Betrachtung von Verschl¨ usselungsverfahren (Kerckhoffs

Shannon 1948:

Communication Theory of Secrecy-Systems

• Verwende Schl¨ ussel welche echt zuf¨allig erzeugt wurden • Genauso lang wie die Nachricht selbst • Verwende jeden Schl¨ ussel nur ein einziges Mal One-Time-Pad, bietet perfekte Sicherheit.

1.2

Ist perfekte Sicherheit u ¨ berhaupt notwendig?

Diffie, Hellman 1976: New Directions in Cryptography → Es muss prinzipiell nicht unm¨ oglich sein Chiffrate zu brechen, es gen¨ ugt wenn dies bei einem Einsatz vern¨ unftiger Ressourcen nicht m¨oglich ist. Diffie-Hellman Schl¨ usselsaustausch Sender und Empf¨anger einer verschl¨ usselten Nachricht ben¨ otigen kein gemeinsames Geheimnis. Das ist der Beginn der Public-Key-Kryptographie. 1

Rivest Shamir Adleman 1978 Signaturen).

1.3

Erste nicht-klassische kryptographische Anwendung (Digitale

Wann ist ein Verschlu ¨ sselungsverfahren sicher?

Goldwasser Micali 1984: Probabilistic Encryption Jeder Angreiferalgorithmus, welcher in Polynomialzeit l¨auft, muss irgendeiner Instanzgr¨ oße (asymptotisch) daran scheitern auch nur ein Bit Information u ¨ber den Klartext aus einem Chiffrat zu lernen. → Kryptographie braucht Zufall. −→ Erweiterung der Fragestellungen in der Kryptographie: Gibt es so etwas wie Pseudozufall?

1.4

Einige Wunder der Kryptographie

• GMR 84: Zero Knowledge • GMW 86/87: Zero Knowledge f¨ ur alle Sprachen in NP. • RS 91: Ciphertext Indistinguishability under Chosen Ciphertext Attacks (→ wirklich richtiger Sicherheitsbegriff f¨ ur Public Key Verschl¨ usselung) • Can 01: Unter welchen Bedingungen k¨onnen gr¨oßere (offene) kryptographische Protokolle als sicher gelten? • Gen 09: Heiliger Gral der Kryptographie: Fully Homomorphic Encryption Kryptographie besch¨ aftigt sich mit dem Entwurf und der Analyse von Verfahren, die im Stande sein sollen, jedwedem Missbrauch zu widerstehen.

1.5

Wahrscheinlichkeitstheoretische Grundlagen

Literaturempfehlung: Mitzenmacher und Upfahl: Probability and Computing Erinnerung Ein diskreter Wahrscheinlichkeitsraum ist ein Tripel (Ω, Σ, µ): • Ω: Menge der Elementarereignisse • Σ: Ereignisalgebra (Teilmengensystem von Ω, also Σ ⊆ P(Ω)) • µ: Wahrscheinlichkeitsmaß auf Σ E ∈ Σ ⇒ P r [E] = µ(E) Zufallsvariable

Abbildung X : Ω → M (z.B. R), wobei: P r[X = x] = µ(X −1 (x)) = µ({ω ∈ Ω|X(ω) = x})

Erwartungswert

(1)

Wenn M arithmetische Menge, z.B. N, Z, R, dann: X E[X] = x · P r[X = x] x∈M

2

(2)

(3)

Varianz V ar[X] = E[(X − E[X])2 ]

(4)

X, Y heißen stochastisch unabh¨ angig falls: ∀x, y : P r[X = x und Y = y] = P r[X = x] · P r[Y = y]

2

(5)

Vorlesung 27.04.2012

2.1

Useful Facts

F¨ ur je zwei Zufallsvariablen X, Y mit dem gleichen Wertebereich E[X + Y ] = E[X] + E[Y ]. Seien X, Y zus¨atzlich stochastisch unabh¨ angig: E[XY ] = E[X]E[Y ] V ar[X + Y ] = V ar[X] + V ar[Y ]

(6)

Vernachl¨ assigbare Wahrscheinlichkeit Eine Funktion f : N ⇒ R+ heißt vernachl¨assigbar, falls f¨ ur (jede Konstante c) jedes Polynom p ein n0 ∈ N existiert, sodass f¨ ur alle n > n0 : f (n)
] = P r[ Mi (x) − p > n i 2 n i 1X Mi (x) − p| > ≤ P r[| n i

1 − p] 2 1 − p] 2

(12)

Chernoff Ungleichung (denke obere Gleichung fort): ( 1 −p)2 2

< 2e− 2p(1−p) n 4

(13)

 1 1 1 1 1   ⇒ − p ≥ ⇒ ( − p)2 ≥ ( 1 − p)2 1 1 3 2 6 2 36 − 2 ≤− ⇒ P r[M 0 (x) = 1] ≤ 2e− 24 n 1  24  2p(1 − p) 1 − p ≤ 1 ⇒ p(1 − p) ≤ 3 (14) Das ist vernachl¨ assigbar in n. Der Beweis l¨asst sich auch auf Funktionen u ¨bertragen, die mehr Bit ausgeben, da g : {0, 1}∗ → 0, 1k ⇒ g1 , ..., gk : {0, 1}∗ ⇒ {0, 1} p
] ≤

X 1 + (x) wobei < x, v >= xi ri 2 i

mod 2

(21)

Also ist < x, r > hardcore f¨ ur die OWF g(x, r) = (f (x), r) Bew.: Annahme: < x, r > ist nicht hardcore f¨ ur g. Es gibt also ein PPT A und non-negl. (n) sodass P rx,r [A(f (x), r) =< x, r >] >

1 + (n) 2

(22)

Wir werden aus A einen Algorithmus B konstruieren, welcher die Einwegeigenschaft von f bricht. Wir nennen ein x ∈ {0, 1}n gut, falls (Wahrscheinlichkeit geht nicht u ¨ber Wahl von r) P r[A(f (x), r) =< x, r >] ≥

1  + 2 2

(23)

Der Anteil der guten x in {0, 1}n ist mindestens 2 (#{x ∈ {0, 1}n |x gut} ≥ 2 2n ). Sei x ∈ {0, 1}n gleichverteilt zuf¨ allig gezogen. Definiere die Zufallsvariable w(x) = P rr [A(f (x), r) =< x, r >]

(24)

Beweis, dass #{x ∈ {0, 1}n |x gut} ≥ 2 2n . Es gilt: X

E[w(x)] =

P rx [x = ξ]w(ξ)

ξ∈{0,1}n

=

X ξ∈{0,1}n

P r[x = ξ] P rr [A(f (ξ), r) =< ξ, r >] {z } |

P rx,r ([A(f (x),r)=|x=ξ])

= P rx,r [A(f (x), r) =< x, r >] >

8

1 + 2

(25)

Beweis, dass E[w(x)] >

1 2

+ : Falls P rx [w(x) ≥

1 2

+ 2 ]
] = 1

• Dann k¨ onnten wir x sehr einfach P finden: Sei (1 an i-ter Stelle) ei = (0, 0, ..., 1, 0, ..., 0), dann gilt A(f (x), ei ) =< x, ei >= j xj ej = xi . • Berechne so auch alle anderen Bitpositionen von x. Etwas allgemeiner Nehmen wir an, es sei P rr [A(f (x), r) =< x, r >] ≥ 0, 9 (Notiz: muss nicht 0,9 sein, aber irgendwas > 0, 75) • Obiger Ansatz funktioniert nicht, denn ei , ..., en k¨onnten zu den Werten f¨ ur r geh¨oren, f¨ ur welche A falsch liegt. Dennoch: Ist r gleichverteilt zuf¨allig gezogen, dann ist auch r ⊕ e gleichverteilt zuf¨ allig verteilt. • Weiter gilt: P rr [A(f (x), r) 6=< x, r > ∨A(f (x), r ⊕ ei ) 6=< x, r ⊕ ei >] ≤ P rr [A(f (x), r) 6=< x, r >] + P rr⊕ei [A(f (x), r ⊕ ei ) 6=< x, r ⊕ ei >] | {z } | {z } ≤0,1

≤0,1

⇒ P rr [A(f (x), r) =< x, r > ∧A(f (x), r ⊕ ei ) =< x, r ⊕ ei >] ≥ 0, 8

9

(27)

5

Vorlesung 25.05.2012 P r[(H(X), H) = (H 0 (X 0 ), H 0 )] ≤ P r[H(X) = H(X 0 )|H = H 0 ] P r[H = H 0 ] | {z } 2−l

NR Anfang: 0

P r[X = X 0 ] =

X x∈{0,1}

0

0

H(X) = H(X ) ⇔ X = X ∨ X 6= X ∧ H(X) = H(X 0 ) X P r[X = X, X 0 = X] = P r[X = X] P r[X 0 = X] ≤ 2−k {z } | m m x∈{0,1}

0

X

0

X 6= X , P r[H(X) = H(X )] =

y∈{0,1}

≤2−k

P r[H(X) = y, H(X 0 ) = y] = 2−k | {z } m ≤2−2m

NR Ende 0

P r[Y = Y ] =

X Y

0

P r[Y = y, Y = y] =

X

0

P r[Y = y] · P r[Y = y] =

X

Y

P r[Y = y]2 = kpk22

Y

(28) Sei p die Wahrscheinlichkeitsverteilung (als Vektor) von (H(X), H) kpk22 ≤ (2−k + 2−m )2−l . Schreibe p = u + w, wobei u der Vektor der Wktverteilung von (Um , H) ist und w senkrecht auf n steht, also < u, w >= 0. Der Satz des Pythagoras liefert: kpk22 = kuk22 + kwk22 . Daher gilt: kwk22 = kpk22 − kuk22 = −l−m 2 + 2−l−k − 2−l−n = 2−l−k . Aus der Bezeichnung zwischen l1 und l2 -Norm folgt: δ(H(X), H), Vl+m ) = 21 kp − nk1 ≤ √ l+n l+k m−k 1 l+m kp − nk ≤ 2−1+ 2 − 2 < 2 2 <  2 2 2

5.1

[Ende Einschub zur letzten Vorlesung]

Wenn wir also r zuf¨ allig ziehen und y = A(f (x), r) und y 0 = A(f (x), r ⊕ ei ) berechnen, dann gilt mit Wahrscheinlichkeit 0,8 dass y ⊕ y 0 =< x, r > ⊕ < x, r ⊕ ei >=< x, ei >= xi

(29)

Satz 1 liefert uns, dass wir die Wkt. dass dies gilt bel. nahe an 1 (¨ uberw¨altigend in n) heranbringen k¨ onnen. Verwende resultierenden Algorithmus um x bitweise zu berechnen. Allgemeiner Fall P rr [A(f (x), r) =< x, r >] ≥ 12 + 2 Wir ben¨ otigen einen Ersatz f¨ ur Satz 1. Idee: Wenn wir < x, r > schon h¨ atten, dann w¨ urde obiger Trick noch immer funktionieren. Fehlerwkt beim Errechnen von xi w¨ are < 12 − 2 . Wir werden r1 , ..., rm (m legen wir zum Schluss fest) paarweise unabh¨ angig statt v¨ ollig unabh¨angig w¨ahlen. (Notiz: d.h. jeweils zwei sehen zuf¨ allig aus, aber bei drei Elementen ist irgendeine Korrelation gegeben. Beispiel f¨ ur drei paarweise unabh¨angigen Bits: b1 zuf¨allig, b2 zuf¨allig, b3 = b1 ⊕ b2 .) Genauer: Wir w¨ ahlen r1 , ..., rm so, dass wir < x, rj > schon kennen und nur noch < x, rj ⊕ ei > berechnen m¨ ussen. Wie k¨ onnen wir r1 , ..., rm w¨ahlen, sodass das gilt? Sei k so dass m ≤ 2k − 1, (k ≥ log2 (m + 1)) 1. W¨ ahle k Vektoren s1 , ..., sk gleichverteilt zuf¨allig 2. Assoziiere jedes j ∈ {1, ..., 2k − 1} mit einer P nichtleeren Teilmenge Tj von {1, ..., k} (davon uck). Setze rj = t∈Tj st gibt es genau 2k − 1 St¨

10

Die rj sind nun paarweise unabh¨ angig (eines von rj und rj0 enth¨alt ein st , welches im anderen nicht enthalten ist, OBdA rj enth¨ alt st ⇒ rj unabh¨angig von rj0 ). Warum wissen wir f¨ ur diese Wahl bereits < x, rj >? P Rightarrow Es gen¨ ugt < x, st > f¨ ur t = 1, ..., k zu kennen, denn < x, rj >=< x, t∈Tj st >= P t∈Tj < x, st > Nun ist k aber so klein, dass die Wkt richtig zu liegen (also wt =< x, st >), wenn wir wt einfach raten, hinreichend groß ist. Ziehe w1 , ..., wk gleichverteilt zuf¨ allig (raten), dann ist P r[< x, s1 >= w1 , ..., < x, sk >= wk ] =

k Y

1 P r[< x, st >= wt ] = 2−k ≥ {z } | m+1 t=1

(30)

=0,5

P

Sei vj = t∈Tj wt . Nehme im Folgenden an, es gelte < x, r1 >= v1 , ..., < x, rm >= vm Definiere Zufallsvariablen Zj = {1, A(f (x), rj ⊕ ei )} =< x, rj ⊕ ei >; 0, sonst Klar: E[Zj ] = P r[A(f (x), rj ⊕ ei ) =< x, rj ⊕ ei >] ≥ 21 + 2 Wir ben¨ otigen noch eine Absch¨ atzung der Varianz von Zj : V ar[Zj ] = P r[Zj = 0] · (0 − E[Zj ])2 +P r[Zj = 1] · (1 − E[Zj ])2 ≤ 1 {z } {z } | | ≤1

(31)

≤1

Wir bauen wieder einen MehrheitsentscheiderPwie im Beweis von Satz 1. Sei Z = Z1 +...+Zm . Dann ist E[Z] = mE[Z1 ] ≥ m j V ar[Zj ] = mV ar[Z1 ] ≤ m (Aus rj paarweise 2 (1 + ) V ar[Z] = unabh. folgt Zj paarweise unabh.)

6

Vorlesung 01.06.2012 ur j = 1, ..., m • Definiere qj = A(f (x), rj ⊕ ei ) ⊕ vj f¨ {z } | χ

• Sei q die Mehrheit der qi Werte • Sei OBdA xi = 0 P r[q = 1] = P r[

m m zj ≥ ] ≤ P r[kZ − E[Z]k ≥ − 2 2 | {z } X

Z

 ≤ P r[kZ − E[Z]k ≥ m ] 2

≤ |{z}

Chebycheff

4 V ar[Z] ≤ (m 2 )2 m2

= |{z}

m= 400 =O(poly(n)) 2

E[Z] ] | {z }

≥mk 12 + 2 k

1 100 · p(n)

(32)

Wir haben nun einen Algorithmus welcher mit Wkt. 0,99 das richtige xi berechnet. Mit Satz 1 1 richtig berechnet. k¨ onnen wir daraus einen Algorithmus machen, welcher xi mit Wkt. 1 − 100·p(n) Setzen wir p(n) = n, so erhalten wir einen Algorithmus welcher x1 , .., xn gleichzeitig mit Wkt. 0,99 richtig berechnet. 1 Letzter Punkt: Alles eben gesagte gilt nur mit Wkt m Wir u ufen nun letztlich nach, ob y = f (x) gilt. Wenn ja: gib x aus, wenn nein, breche ¨berpr¨ ab. Wir haben also einen Algorithmus konstruiert, welcher f mit signifikanter Wahrscheinlichkeit invertiert.

11

Anwendungen Nochmal Satz von P GL: Ist f eine OWF, dann ist g(x, r) = (f (x), r) wieder OWF und das Pr¨ adikat b(x, r) = xi ri mod 2 ist hardcore f¨ ur g. Beobachtung

6.1

Ist f eine Permutation, so ist auch g eine Permutation.

Public Key Verschlu ¨ sselung

IND-CPA Ein Public-Key Verschl¨ usselungsschema ist ein Tripel (G, E, D). (G, E, D) heißt IND-CPA sicher, falls folgendes gilt: Jeder PPT-Angreifer A hat nur vernachl¨assigbar bessere Erfolgswkt. als 21 bei folgendem Spiel. • A w¨ ahlt 2 Nachrichten m0 , m1 und sendet beide an das Spiel • Das Spiel zieht ein zuf¨ alliges Bit b ∈ {0, 1}, berechnet c = Epk (mb ) und gibt c an A • A erzeugt Ausgabe b0 • A gewinnt, falls b = b0 Anhand von Goldreich-Levin k¨ onnen wir aus jeder Familie von Trapdoor-Einwegpermutationen (I, F, F −1 ), b(·) Hardcorebit ein IND-CPA sicheres Verschl¨ usselungsverfahren bauen. Konstruktion • Schl¨ usselerzeugung G(1k ) – (i, t) = I(1k ) – Setze pk = i, sk = t – Gib (pk, sk) aus • Verschl¨ usselung Epk (m) – Es sei m ∈ {0, 1}, pk = i – W¨ ahle ein zuf¨ alliges x ∈ {0, 1}k (Urbildraum von Fi ) – Setze y = Fi (x), r = b(x) – Gib c = (y, r ⊕ m) aus • Entschl¨ usselung Dsk (c) – Sei c = (y, s), sk = t – Berechne x = Ft−1 (y), setze r = b(x) – Gib m = s ⊕ r aus Warum ist dieses Schema IND-CPA sicher? Angenommen, es existiert ein PPT-Angreifer A welcher das IND-CPA Spiel f¨ ur dieses Schema mit Wkt. 21 + (m) gewinnt, wobei (m) nicht vernachl¨ assigbar. Wir konstrueiren einen Angreifer A0 welcher das Hardcore-Bit b(x), gegeben y = Fi (x) mit Wkt. 12 + (m) richtig r¨at, im Widerspruch zur Hardcore-Eigenschaft von b(·). A0 sieht folgendermaßen aus: • Eingabe i, y = Fi (x) ¨ • A0 simuliert nun das IND-CPA-Spiel mit A, nimmt aber folgende Anderungen vor: 12

• Anstatt (pk, sk) selbst zu erzeugen, setzt A0 pk = i. sk wird im Spiel nicht verwendet • Anstatt y = Fi (x) zu berechnen setzt A0 y = y 0 • Anstatt r = b(x) zu berechnen, zieht A0 r zuf¨allig • Ist der Guess b0 von A am Ende korrekt, b0 = b, dann gib r aus, ansonsten r¯ = r ⊕ 1

7

Bru ¨ ckentagvorlesung 08.06.2012

8

Vorlesung 15.06.2012

Intuition: B kann das Spiel immer gewinnen, wenn A richtig liegt. ⇒ Erfolgswkt. von B daher gleich wie A P r[A0 (i, Fi (x)) = b(x)] = P r[A0 (i, Fi (x)) = b(x) ∧ r( x)] + P r[A0 (i, Fi (x)) = b(x) ∧ r = b(x) ⊕ 1] 0

= P r[r = b(x)] P r[A (i, Fi (x)) = b(x)|r = b(x)] + P r[r = b(x) ⊕ 1] P r[A0 (i, Fi (x)) = b(x)|r = b(x) ⊕ 1] | {z }| {z } | {z }| {z } 0,5

0,5+

=0,5

≥0,5+

≥ 0, 5 +  (33) ⇒ Widerspruch zur Hardcore-Eigenschaft von b(·)

8.1

Pseudozufall

Def: Eine Funktion G : {0, 1}n → {0, 1}m (m = O(poly(n))) heißt Pseudozufallsgenerator, falls f¨ ur alle PPT A gilt: |P r[A(Um ) = 1] − P r[A(G(S)) = 1]| ≤ negl(n)

(34)

• Um : Zuf¨ allig der L¨ ange m • S: Zuf¨ allig der L¨ ange n Sei F : {0, 1}n → {0, 1}n eine Einwegpermutation und b(·) ein Hardcore-Bit f¨ ur F , dann ist G : {0, 1}n → {0, 1}n+1 ⇔ x → (F (x), b(x)) Wir zeigen nun allgemein: Wenn Einwegpermutationen existieren, dann existieren Pseudozufallsgeneratoren mit beliebig großem (allerdings polynomiellen) Stretch m n HILL99: Einwegfunktionen sind f¨ ur die Existenz von Pseudozufallsgeneratoren notwendig und hinreichend. Konstruktion Sei F eine OWP und b(·) ein Hardcore-Pr¨adikat f¨ ur I. Definiere G : {0, 1}n → n {0, 1} folgendermaßen: • Eingabe: S, setze s0 = S • F¨ ur i = 1, ..., m − 1 setze si = F (si−1 ) (si = F i (s)) • F¨ ur i = 0, ..., m − 1 setze Gi = b(si ) • Gib w = σ0 ...σm−1 aus 13

S -> F -> | v \ sigma_0 = b ( s )

Satz

S_1 -> F -> ... -> F -> S_ {m -1} | | v v \ sigma_1 \ sigma_ {m -1}

Ist F eine OWP mit Hardcorepr¨adikat b(·), dann ist G ein Pseudozufallsgen.

Bew Wir beweisen die Ununterscheidbarkeit von G(S) und Um u ¨ber ein Hybridargument. Wir definieren Zwischenverteilungen (Hybrid) zwischen G(S) und Um . Definiere Hybridverteilung Hi folgendermaßen: • Ziehe σ0 , .., σi−1 ∈ {0, 1} gleichverteilt zuf¨allig • Ziehe si ∈ {0, 1}n gleichverteilt zuf¨allig • F¨ ur j = i + 1, ..., m − 1 setze sj = F (sj−1 ) • F¨ ur j = i, ..., m − 1 setze σj = b(sj ) • Gib w = σ0 ...σm−1 aus

9

Vorlesung 22.06.2012

Klar: H0 stimmt exakt mit G(S) u ur zuf¨alliges S). Denn f¨ ur i = 0 sind die Algoritmen ¨berein (f¨ welche G(S) und H0 berechnen identisch. Hm stimmt exakt mit Um u ¨berein (σ1 , ..., σm sind gleichverteilt zuf¨ allig gezogen). Sei A nun ein PPT-Algorithmus, welcher G(S) und Um mit Vorteil (n) unterscheidet wobei (n) nicht vernachl¨ assigbar. |P r[A(G(S)) = 1] − P r[A(Um ) = 1]| > (n)

(35)

Wir konstruieren nun einen Algorithmus B, welcher gegeben F (x) und β, mit Wahrscheinlichkeit 0, 5 + (n) m richtig enscheidet ob β = b(x), also die Hardcore-Eigenschaft von b(·) bricht, im Widerspruch zur Annahme, dass b(·) Hardcore-Bit f¨ ur F . Definiere B folgendermaßen: (Notiz: Achtung, ab hier ist es σ1 , ..., σm und nicht mehr σ0 , ..., σm−1 • Eingabe: y = F (x), β • Ziehe i ∈ {0, ..., m − 1} gleichverteilt zuf¨allig • Ziehe σ1 , ..., σi−1 ∈ {0, 1} gleichverteilt zuf¨allig • Setze σi = β, si = y • F¨ ur j = i + 1, ..., m setze sj = F (sj−1 ) und σj = b(sj ) • Setze w = σ1 · ... · σm • Lasse A auf Eingabe w laufen, gib aus was immer A ausgibt

14

Gilt β = b(x), dann ist w aus Sicht von A mit der Verteilung Hi verteilt. Ist β hingegen zuf¨allig gezogen, dann ist w aus von A wie Hi+1 verteilt. Es gilt also: |P r[B(F (w), b(x)) = 1] − P r[B(F (x), U ) = 1]| X P r[i = t] P r[B(F (x), U ) = 1|i=t ]| =| P r[i = t] P r[B(F (x), b(x)) = 1|i=t ] − | {z } | {z } t=0,...,m−1 X

i=0,..,m−1

1 =m

=

X X 1 P r[A(Ht+1 ) = 1]| P r[A(Ht ) = 1] − | m t=0,...,m−1 t=0,...,m−1 X X 1 = | P r[A(Ht ) = 1] − P r[A(Ht ) = 1]| m t=0,...,m−1 t=1,..,m =

9.1

1 =m

(n) 1 |P r[A(H0 ) = 1] − P r[A(Hm ) = 1]| > m m (36)

Commitment Schemes

Ein Commitment-Scheme ist ein 2-Phasen Protokoll, in welchem sich ein Sender bei einem Empf¨ anger in der ersten Phase auf einen Wert festlegt, in der zweiten Phase den Empf¨anger den Wert ¨ offenlegt, sodass f¨ ur dieses Protokoll folgende Eigenschaften gelten: Secrecy/Hiding Eigenschaft Nach dem Ende der ersten Phase hat der Empf¨anger keinerlei Wissen u ¨ber den Wert des Senders empfangen. Das muss auch gelten, falls der Empf¨anger zu schummeln versucht. Eindeutigkeit/Binding Nachdem die erste Phase beendet ist, gibt es nur einene Wert, den ein m¨ oglicherweise schummelnder Sender den Empf¨anger offenlegen kann, sodass dieser akzeptiert.

Abbildung 1: Commitments (Idee)

9.1.1

Bit-Commitments

Definition Ein Bit-Commitment Schema ist ein Paar interaktiver PPT-Maschinen (S, R),die folgende Eigenschaften erf¨ ullen: 15

Bezeichne < S(b), R > die Ausgabe von R nach Interaktion von S bei Eingabe b mit R. Wenn R akzeptiert, gibt es 1 aus, ansonsten 0. • Completeness: ∀b ∈ {0, 1} : P r[< S(b), R >= 1] ≥ 1 − (n) f¨ ur ein vernachl. (n) • Secrecy: Auch ein vom Protokoll abweichender Empf¨anger kann 0-Commitments nicht von 1-Commitments unterscheiden. Genauer: F¨ ur jede interaktive PPT-Maschine R∗ gilt, dass die Ausgaben von R∗ in beiden F¨ allen ununterscheidbar sind. |P r[< S(0), R∗ >= 1] − P r[< S(1), R∗ >= 1]| ≤ negl. < S(0), R∗ >: Zufallsausgabe von R∗ < S(0), R∗ > ist ununterscheidbar von < S(1), R∗ > (Notiz: R∗ ist ein Unterscheider und kein Akzeptierer wie R)

10

Vorlesung 29.06.2012

• Binding: – Die View eines Empf¨ angers R nach der Commit-Phase bei Interkation mit einem Sender S ∗ besteht aus dem von R verwendeten Coins r und den von R empfangenen Nachrichten m, ¯ also (r, m) ¯ – Sei σ ∈ {0, 1}. Wir sagen, dass (r, m) ¯ ein m¨ogliches σ-Commit ist, falls Coin s (des Senders) existieren, sodass m ¯ die von R empfangenen Nachrichten beschreibt, wenn R die Coins r und S (ehrlicher Sender) die Coins s verwendet. – Eine Receiver-View (r, m) ¯ ist mehrdeutig, falls sie ein m¨ogliches 0-Commitment also auch ein m¨ ogliches 1-Commitment ist. Wir k¨onnen die Binding-Eigenschaft so formulieren. F¨ ur alle S ∗ ist (ξ vernachl¨assigbar): S ∗ (1n )

P rr [viewR(1n ,r) ist mehrdeutig] ≤ ξ(n) {z } |

(37)

=(r,m) ¯

Anm.: Ununterscheidbarkeit in der Definition der Secrecy kann auf verschiedene Weisen verlangt werden Computationally indistinguishable Kein effizienter PPT Unterschieder kann zwischen beiden Verteilmenge unterscheiden, also: ∀PPT A : |P r[A(R0∗ ) = 1] − P r[A(

R1∗ |{z}

) = 1]| ≤ ξ(n)

(38)



Statistically indistinguishable Es gilt (T = allg. Pr¨adikat/unbeschr. Unterscheider): ∆(R0∗ , R1∗ ) = maxT |P r[T (R0∗ ) = 1] − P r[T (R1∗ ) = 1]| ≤ ξ(n) Perfectly indistinguishable Ro∗ und R1∗ sind identisch verteilt, also ∆(Ro∗ , R1∗ ) = 0

16

(39)

Kanonische Unveilphase 1. Sender schickt (σ, s) = (N achricht, Seed) an Empf¨anger, also seine Eingabe und seine Random Coins 2. Verifier u uft ob (σ, s) tats¨ achlich zusammen mit seinen Coins r zu Transkript m ¯ = ¨berpr¨ (α, β) f¨ uhren und akzeptiert falls ja. Konstruktion: Einfaches Bit-Commitment 1. Sei F : {0, 1}∗ → {0, 1}∗ eine Einwegpermutation und b : {0, 1}∗ → {0, 1} ein Hardcore-Bit f¨ ur F 2. Commit-Phase: Eingabe von S sei σ • Ziehe zuf¨ allig gleichverteilt s ∈ {0, 1}n und berechne α = F (s), β = b(s) ⊕ σ • Sende (α, β) an R 3. Unveil-Phase • S: Sende (s, σ) an R ¨ ufe ob F (s) = α und b(s) ⊕ σ = β, falls ja akzeptiere • R: Uberpr¨ Dies ist ein sicheres Bit-Commitment-Schema: • Secrecy: Folgt direkt aus IND-CPA Sicherheit des einige Vorlesungen fr¨ uher konstruierten Verschl¨ usselungsverfahrens • Binding: Folgt aus Ein-Eindeutigkeit (Injektivit¨at) der Einwegpermutation F ,also es existiert nur ein einziges s, sodass α = F (s)

10.1

Zero-Knowledge Beweise

Definition: Interaktive Beweissysteme Ein Paar (P, V ) interaktiver Maschinen (P muss keine PPT Maschine sein, V ist eine PPT Maschine) heißt interaktives Beweissystem f¨ ur eine Sprache L, falls folgendes gilt: (Bezeichne < P, V > (x) wieder die Ausgabe von V nach Ende des Protokolls, wenn beide als Eingabe x erhalten haben) 1. Completeness: F¨ ur alle x ∈ L : P r[< P, V > (x) = 1] ≥

2 3

2. Soundness: F¨ ur jedes x ∈ / L und jede interaktive Turing-Maschine P ∗ gilt: P r[< P ∗ , V > 1 (x) = 1] ≤ 3 Def: Zero-Knowledge Sei (P, V ) ein interaktives Beweissystem f¨ ur eine Sprache L. (P, V ) (bzw. P ) heißt computational Zero-knowledge, falls es f¨ ur jede interaktive PPT Maschine V ∗ eine PPT M ∗ gilt, sodass folgende beiden Verteilungen f¨ ur alle x ∈ L computationally ununterscheidbar sind. • < P, V ∗ > (x): Ausgabe von V ∗ nach Protokolllauf mit P • M ∗ (x): die Ausgabe von M ∗ bei Eingabe x Die Maschine M ∗ heißt Simulator.

17

11

Vorlesung 06.07.2012

11.1

Ein ZK-Beweissystem fu ¨ r Graph-3-Color (G3C)

Problem Ein ungerichteter Graph G = (V, E), Frage: Gibt es eine F¨arbung φ : V → {1, 2, 3} des Graph G, sodass je zwei adjazente Knoten u und v (also (u, v) ∈ E) unterschiedlich gef¨ arbt sind (also φ(u) 6= φ(v)) Lemma G3C ist NP-vollst¨ andig 11.1.1

Das interaktive Beweissystem

Wir ben¨ otigen ein Commitment-Schema (S, R) mit Phasen-Programmen Com, U nveil. Der Prover P unseres Beweissystems ist eine PPT-Maschine und erh¨alt als Zusatzeingabe zum Graphen G eine Dreif¨ arbung Ψ von G. • Gemeinsame Eingabe von P und V : Ein 3-f¨arbbarer Graph (!) G = (V, E) • Hilfseingabe des Provers P : Eine Dreif¨arbung Ψ von G ¨ • Prover(P 1): WAhle eine zuf¨ allige Permutation π ∈ S3 auf den Farben. Setze φ = π · Ψ (wende π auf Ψ an). F¨ ur alle v ∈ V setze sv = φ(v), verwende Commitment-Schema um auf alle sv zu committen (f¨ uhre Com(sv ) f¨ ur alle v ∈ V aus). Verifier erh¨alt Commitments. • Verifier(V 1): W¨ ahle zuf¨ allig gleichverteilt eine Kante (u, v) ∈ E aus und sende diese an den Prover. • Prover(P 2): Ist e = (u, v) die vom Verifier gesuchte Kante, dann f¨ uhre mit dem Verifier U nveil(su ) und U nveil(sv ) aus • Verifier(V 2): Pr¨ ufe ob U nveil korrekt/erfolgreich (Receiver-Programm R akzeptiert) und wenn ja pr¨ ufen ob su 6= sv (u und v unterschiedlich gef¨arbt). Wenn ja akzeptiere, ansonsten lehne ab. Satz Diese Konstruktion ist ein (computational) Zero-Knowledge Beweissystem, falls Com, U nveil ein Commitment-Schema ist, welches die (statistical) Binding und die (computational) HidingEigenschaft erf¨ ullt. Beweis Completeness Klar: Ist Ψ eine 3-F¨arbung, dann ist auch φ = π · Ψ eine Dreif¨arbung. Damit akzeptiert V immer, wenn G 3-f¨arbbar ist, also P r[< P, V > (G) = 1] = 1 Soundness Ist |G| nicht dreif¨ arbbar, dann gibt es mindestens eine Kante (u, v) ∈ E sodass φ(u) = φ(v). Da der Verifier seine Challenge-Kante echt zuf¨allig w¨ahlt, trifft er diese mit 1 1 Wkt |E| (akzeptiert also h¨ ochstens mit Wkt. 1 − |E| ) Durch Wiederholung (mit unabh¨angigem neuen Zufall) l¨asst sich diese Wkt. auf Bei k Wiederholungen (w¨ ahle k ≥ |E| · ln(3)): P r[∀i ∈ {1, ..., k} : V akzeptiert in Runden i] ≤ (1 −

18

k 1 k 1 ) ≤ e− |E| ≤ |E| 3

1 3

senken.

(40)

Zero-Knowledge Sei V ∗ eine beliebige PPT-Maschine, welche mit P interagiert. Wir konstruieren uns einen Simulator M ∗ aus V ∗ . Wichtig: Simulator M ∗ erh¨alt nicht die Hilfseingabe Ψ 1. Simulator M ∗ : Eingabe G = (V, E) 2. W¨ ahle ein Random-Tape f¨ ur Maschinen V ∗ und P 3. W¨ ahle eine zuf¨ allige F¨ arbung Ψ∗ des Graphen G (das ist mit hoher Wkt. keine Dreif¨ arbung). Lasse den ersten Schritt des Protokolls mit Prover-Eingabe G, Ψ∗ laufen. V ∗ erh¨ alt also Commitments Com(sv ) f¨ ur alle v ∈ V , wobei sv = Ψ∗ (v) 4. Simuliere die Berechnung von V ∗ solange weiter, bis V ∗ eine Challenge-Kante e = (u, v) angibt 5. Falls su 6= sv dann lasse Protokollschritt P 2 laufen (U nveil des Provers), ansonsten gib ⊥ aus (breche ab) Claim: Falls Ψ∗ echt zuf¨ allig gezogen wird, gilt f¨ ur alle (u, v) ∈ E : P r[Ψ∗ (u) = Ψ∗ (v)] =

1 3

Claim 2: Ist G dreif¨ arbbar und erf¨ ullt Com die Hiding-Eigenschaft, dann ist P r[M ∗ (G) = 1 ⊥] ≤ 2 Idee: Annahme: Es existiert ein V ∗ sodass P r[M ∗ (G) = ⊥] ≥ 31 + . Ein solches V ∗ k¨onnen wir dazu verwenden, einen Angreifer A zu konstruieren, welcher die Hiding-Eigenschaft des Commitment-Schemas bricht. Claim 3: F¨ ur einen 3-f¨ arbbaren Graphen G sind die Zufallsvariablen < P (Ψ), V ∗ > (G) ∗ ∗ und M (G)|M (G) 6= ⊥ computationally indistinguishable

11.2

Mehrparteienberechnung

Bisher: Wir haben Protokollen f¨ ur spezielle Aufgaben und Funktionalit¨aten angegeben (Commitments, ZK). Man h¨ atte gerne ein Entwurfsschema, mit welchem man beliebige Mehrparteienfunktionen (Funktion mit mehreren Eingabebl¨ocken) bzw. -berechnungen sicher berechnen kann. Ziel Sichere Ausf¨ uhrung von Mehrparteienberechnung (Funktion mit 1 Eingabe pro Partei) Bsp Million¨ arsproblem von Yao Geg 2 Million¨ are M1 und M2 mit Kontost¨anden m1 , m2 Frage Wer ist reicher (ohne m1 , m2 herauszufinden)? Was heißt sicher berechnen? M1 soll nur das 1 Bit Information u ¨ber die Eingabe von M2 erfahren und umgekehrt. Diese Eigenschaft heißt Input Privacy. Zus¨ atzlich: Unabh¨ angigkeit der eingaben, Non-Malleability Sicherheitseigenschaften h¨ angen mit der zu realisierenden Funktion zusammen. ¨ Erkenntnis: Uber Liste von Sicherheitseigenschaften l¨asst sich Sicherheit nicht vern¨ unftig definieren. Es gibt quasi keine allgemeing¨ ultige absolute Definition von Sicherheit. Stattdessen: Definiere Sicherheit relativ und zwar mit denselben Paradigmen wie ZK (Simulierbarkeit)

19

Protokoll πZK : Austausch von P1 und P2 , Protokoll FZK : Austausch u urdige ¨ber vertrauensw¨ Instanz Die ZK-Eigenschaft besagt, dass beide Protokolle, egal wie die Eingaben gew¨ahlt sind und egal ob P2 korrumpiert ist ununterscheidbar sind. Denn f¨ ur jeden P2 links existiert ein P1∗ rechts (Simulator), sodass die Protokollabl¨aufe links und rechts ununterschiedbar sind. Wir haben die Sicherheit von πZK auf die Sicherheit von FZK reduziert. Anders: πZK ist mindestens so sicher wie FZK . Denn: Zu jedem korrumpierten P2 welcher πZK erfolgreicht angreift, gibt es ein P2∗ , welcher FZK mit demselben Erfolg angreift. F¨ ur allgemeine Funktionen F mit Anzahl m an Parteien sieht folgendermaßen aus: • Ein Realweltangreifer A ist eine PPT, die eine Menge M von Parteien korrumpiert. A steuert die Parteien Pi und kann Verbindungen zwischen beliebigen Parteien abh¨oren. Erhalten die Parteien Eingaben x = (x1 , ..., xn ) dann berechnen wir die Ausgabe von A mit Realπ,A (x). • Ein Idealweltangreifer S ist ein PPT welcher eine Menge M von Parteien in F steuert (aber keine zus¨ atzlichen Verbindungen der Parteien mit F abh¨oren kann). Erhalten die Parten Eingabe x = (x1 , ..., xn ), dann bezeichnet IdealF ,S (x) die Ausgabe von S. Annahme • In der Eingabe x steckt jeweils implizit ein Sicherheitsparameter, welcher sie auf geeignete L¨ ange paddet. • A modelliert eine Verschw¨ orung einer Menge M von Parteien, welche zus¨atzlich noch Abh¨ orequipment besitzt. Man kann A auch deutlich mehr erlauben, bspw. Nachrichten zw. ehrlichen Parteien blockieren. Dadurch wird der erhaltene Sicherheitsbegriff st¨arker. Wir k¨ onnen nun formal Sicherheit definieren: Def 8.1. Wir sagen, dass π sicher F implementiert, falls es f¨ ur alle Angreifer A (welches M Parteien korrumpiert) einen Simulator S gibt (der diese Menge M von Parteien korrumpiert) sodass die Ensembles: {Realπ,A (x)}x und {IdealF ,S (x)}x ununterscheidbar sind. Anm: Ununterscheidbarkeit kann hierbei nat¨ urlich wieder perfekt, statistisch oder computational sein und legt den Grad der Sicherheit fest (perfekt und statistische Sicherheit gegen unbeschr¨ ankte Angreifer). Frage Wie kann man nun in diesem Simulierbarkeits-Framework Protokollprobleme l¨osen? → Falls |M | < 1/3m und A keine Verbindungen abh¨aren kann, dann ex. f¨ ur jede Funktionalit¨at F eine stat. sichere Implementierung π. Man kommt also komplett ohne Computational Assumptions aus. Beschr¨ anken wir uns auf den 2-Parteien-Fall. Hier kann mann einen 2-Schritte-Ansatz durchf¨ uhren um F zu implementieren. 1. Implementiere F passiv sicher zu π0 , also sicher gegen solche Angreifer, welche sich an die Protokollregeln halten, aber alles was sie zu sehen bekommen speichern (z.b. auch nicht l¨ oschen, wenn l¨ oschen gefordert ist) 2. Compiler um passiv sicheres Protokoll in aktiv sicheres (wie oben spezifiziert) umwandeln. 20

3. Vorgehensweise: Anfangs commited sich jeder auf seine Eingabe und randomtape, und beweist in jedem einzelnen Protokollschritt in ZK, dass er sich an die Protokollregeln h¨alt. (Das ist ein NP-statement u ¨ber die Inhalte des Commitments) 4. Wie l¨ asst sich eine Fkt. passiv sicher machen? Yao schl¨agt vor, einen Schaltkreis, welcher F implementiert, zu obfuszieren. → passiv sicherer kryptographische Primitive namens Oblivious Transfer (OT)

12 12.1

Vorlesung 20.07.2012 Universelle Komponierbarkeit

Letztes Mal: Simulationsbasierte Sicherheit in Mehrparteienberechnungen ∀A∃ρ : viewπ,A (x) ≈ viewF ,ρ (x) 12.1.1

(41)

Problem mit diesem Modell

Wir w¨ urden Protokolle gerne als Bausteine f¨ ur gr¨oßere Protokollaufgaben verwenden (Existiere Protokolle als Sub-Protokolle verwenden) Aber: Allgemein geht das schief Gesucht: Ein Modell in welchem Angreiferverhalten unter Komposition ber¨ ucksichtigt wird. Zun¨ achst: Ist ρF ein Protokoll, welches als Subprotokoll eine ideale Funktion F verwendet und π realisiert die Funktionalit¨ at F dann schreiben wir ρF /π f¨ ur das Kompositum von ρ und π, wobei F in ρ durch π ersetzt werden. Wir m¨ ochten, dass Sicherheit unter solchen Kompositionsoperationen erhalten bleibt. Eine Umgebungsmaschine Z ist eine Maschine, welche sowohl die Ein/Ausgabe der ehrlichen Parteien kontrolliert, als auch das Verhalten des Angreifers steuert (Z ersetzt sozusagen Unterscheider D im klassischen simulationsbasierten Sicherheitsbegriff). Intuitiv: Z modelliert einen gr¨ oßeren Kontext, in welchem Protokoll π l¨auft. Das schließt mit ein, dass die Eingaben der ehrlichen Parteien gewissen Konditionen unterliegen. Das modelliert auch, dass ein Angreifer Zusatzinformationen (Weltwissen) irgendwoher erfahren kann. Definition: UC-Sicherheit: Wir sagen ein Protokoll π UC-emuliert eine ideale Funktionalit¨ at F, falls f¨ ur jeden PPT-Angreifer A ein PPT-Simulator ρ existiert, sodass f¨ ur alle PPTUmgebungsmaschinen Z gilt: viewπ,A (Z) ≈ viewF ,ρ (Z) Satz: Das Kompositionstheorem Ist π eine UC-Realisierung von F. Dann gilt f¨ ur jedes FHybrid ρF . ρF /π UC-emuliert ρF Beweisskizze: Wo ist der Haken an der Sache? Man braucht beweisbar zus¨atzliche Annahmen selbst um einfachste Funktionalit¨ aten zu realisieren. Beispiel: Bit-Commitment Betrachte den Fall dass der Sender korrumpiert ist.

13

Glossar

Bayes-Regel P r[A|B] · P r[B] = P r[A, B] PPT Probabilistic Polytime TM

21