Problemseminar Komplexitätstheorie und Kryptographie Martin Huschenbett Student am Institut für Informatik an der Universität Leipzig 30. Oktober 2008 1 / 33
Gliederung 1 Randomisierte Algorithmen und die Komplexitätsklasse BPP 2 2 / 33
Das Modell: Probablistische Turingmaschinen Intuitiv: Ein Algorithmus, der während der Ausführung zufäl1lige Entscheidungen per Münzwurf fällen kann. Formal: Definition 1.1 (Probablistische Turingmaschine) Eine probablistische Turingmaschine M ist eine nichtdeterministische Turingmaschine mit folgenden Eigenschaften: 1 Zu jedem Zeitpunkt existieren maximal zwei mögliche Transitionen. 2 M wählt eine von beiden zufällig und gleicherwahrscheinlich aus. 3 Eine Berechnung bei Eingabe x liefert eine Zufallsvariable M(x). 4 Für ein Wort y ist Pr [M(x) = y] die Wahrscheinlichkeit das M bei Eingabe x Ergebnis y liefert. Wir betrachten nur probablistische Polynomialzeit-Turingmaschinen. 3 / 33
Probablistische Polynomialzeit-Turingmaschinen Wir betrachten: Probablistische Polynomialzeit-Turingsmaschine M Polynom T M, das die Laufzeit von M beschränkt Und erhalten: Anzahl der Zufallsentscheidungen von M bei Eingabe von x: Dann: T M ( x ) Pr [M(x) = y] = {r {0, 1}T M( x ) M r (x) = y} 2 T M( x ) 4 / 33
Vernachlässig- und Wahrnehmbarkeit Definition 1.2 (Vernachlässig- und Wahrnehmbarkeit) Eine Funktion f : N R heißt vernachlässigbar, wenn für jedes positive Polynom p für fast alle n N gilt: f(n) < 1 p(n) wahrnehmbar, wenn es ein positives Polynom p gibt, so dass für fast alle n N gilt: f(n) > 1 p(n) Achtung: Manche Funktionen sind weder vernachlässig- noch wahrnehmbar. 5 / 33
Die Komplexitätsklasse BPP Definition 1.3 (BPP - Bounded-Probability Polynomial Time) Eine Sprache L Σ wird von einer probablistischen Polynomialzeit-Turingmaschine M erkannt, wenn es ein positives Polynom p gibt, so dass für alle x Σ gilt: Pr [M(x) = χ L (x)] 1 2 + 1 p( x ) BPP sei die Klasse aller Sprachen, die von einer probablistischen Polynomialzeit-Turingmaschine erkannt werden. 6 / 33
Die Komplexitätsklasse BPP Definition 1.3 (BPP - Bounded-Probability Polynomial Time) Eine Sprache L Σ wird von einer probablistischen Polynomialzeit-Turingmaschine M erkannt, wenn es ein positives Polynom p gibt, so dass für alle x Σ gilt: Pr [M(x) = χ L (x)] 1 2 + 1 p( x ) BPP sei die Klasse aller Sprachen, die von einer probablistischen Polynomialzeit-Turingmaschine erkannt werden. Proposition 1.4 Für alle L BPP (L Σ ) gibt es eine probablistische Polynomialzeit-Turingmaschine M, so dass für alle x Σ gilt: Pr [M(x) = χ L (x)] 1 2 x 6 / 33
Beweis von Proposition 1.4 Beweis: Wir haben: Probablistischer Polynomialzeit-Algorithmus A, positives Polynom p Für alle x Σ : Pr [A(x) = χ L (x)] 1 2 + 1 p( x ) Probablistischer Algorithmus A : Input : x Output : χ L (x) n 2 x p( x ) 2 + 1, c 0 loop n do z A(x) if z = 1 then inkrementiere c end if c < n 2 then return 0 else return 1 7 / 33
Beweis von Proposition 1.4 Fortsetzung: Wir untersuchen den Fall x L: Pr [A(x) = 1] = 1 2 + α mit 1 p( x ) α 1 2 Zufallsvariable X: Wert von c nach Ausführung von A [ Pr [A (x) = 1] = Pr X > n ] 2 E(X) = n Pr [A(x) = 1] = n 2α + 1 2 Mit Pr [X < (1 δ)e(x)] < e E(X) δ2 2 [ Pr X < n ] = Pr 2 < < 2 x folgt: [ ( X < 1 2α 2α + 1 ) ( n 2α + 1 )] 2 8 / 33
Aufzählbarkeit in Polynomialzeit Definition 2.1 (Aufzählbarkeit in Polynomialzeit) Sei I N eine unendliche Menge. s I (n) bezeichne den Nachfolger von n in I: s I (n) = min{i I i > n} I heißt aufzählbar in Polynomialzeit, wenn es einen deterministischen Polynomialzeit-Algorithmus A gibt, der s I berechnet, d.h. für alle n N gilt A(1 n ) = 1 s I (n). 9 / 33
Starke Definition 2.2 (Starke Einwegfunktion) Sei I N in Polynomialzeit aufzählbar. Eine Funktion f : n I {0, 1}n {0, 1} heißt starke Einwegfunktion bezüglich Längen aus I, wenn: 1 Es gibt einen deterministischen Polynomialzeit-Algorithmus, der f berechnet. 2 Für alle probablistischen Polynomialzeit-Algorithmen A und alle positiven Polynome p gilt für fast alle n I: Pr [ A(f(U n ), 1 n ) f 1 (f(u n )) ] < 1 p(n) Im Falle I = N heißt f auch einfach nur starke Einwegfunktion. 10 / 33
Der Random-Guess-Algorithmus Betrachte: Algorithmus A: A(y, 1 n ) liefert zufälliges z {0, 1} n Erfolgswahrscheinlichkeit: Folgerungen: Pr [ A(f(U n ), 1 n ) f 1 (f(u n )) ] = Pr [f(u n) = f(u n )] = Man kann nicht fordern: y {0,1} Pr [f(u n ) = y] 2 2 n Pr [ A(f(U n ), 1 n ) f 1 (f(u n )) ] = 0 Für ist die Kollisionswahrscheinlichkeit vernachlässigbar 11 / 33
Schwache Definition 2.3 (Schwache Einwegfunktion) Sei I N in Polynomialzeit aufzählbar. Eine Funktion f : n I {0, 1}n {0, 1} heißt schwache Einwegfunktion bezüglich Längen aus I, wenn: 1 Es gibt einen deterministischen Polynomialzeit-Algorithmus, der f berechnet. 2 Es existiert ein positives Polynom p, so dass für alle probablistischen Polynomialzeit-Algorithmen und fast alle n I gilt: Pr [ A(f(U n ), 1 n ) f 1 (f(u n )) ] > 1 p(n) Im Falle I = N heißt f auch einfach nur schwache Einwegfunktion. 12 / 33
bezüglich Längen aus N Lemma 2.4 Sei I N in Polynomialzeit aufzählbar. Aus einer starken (bzw. schwachen) Einwegfunktion f : n I {0, 1}n {0, 1} bezüglich Längen aus I kann man effektiv eine starke (bzw. schwache) Einwegfunktion g : {0, 1} {0, 1} konstruieren. Ist f längenerhaltend, so kann g auch längenerhaltend gewählt werden. 13 / 33
Beweis von Lemma 2.4 Beweis: Wir haben: Starke Einwegfunktion f : n I {0, 1}n {0, 1} Polynom q mit s I (n) q(n) für alle n N Definiere g : {0, 1} {0, 1} für x {0, 1}, wobei x längstes Präfix von x mit x I: g(x) = f(x ) g ist in Polynomialzeit berechenbar Ziel: g ist starke Einwegfunktion 14 / 33
Beweis von Lemma 2.4 Annahme: g ist keine starke Einwegfunktion Es existieren: Probablistischer Polynomialzeit-Algorithmus B, Polynom p im Widerspruch zu Definition 2.2 Unendliche Menge M der m N mit Pr [ B(g(U m ), 1 m ) g 1 (g(u m )) ] 1 p(m) Algorithmus A: Input : y, 1 n Output : f 1 (y) forall k n, n + 1,..., s I (n) 1 do z k B(y, i k ) x k längstes Präfix von z k mit x k I if g(z k ) = y then return x k end 15 / 33
Beweis von Lemma 2.4 Widerspruch: Für unendliche viele n I existiert m M mit m {n, n + 1,..., s I (n) 1} und Pr [ A(f(U n ), 1 n ) f 1 (f(u n )) ] Pr [ B(g(U m ), 1 m ) g 1 (g(u m )) ] Zusatz: f ist längenerhaltend: 1 p(m) > 1 p(s I (n)) 1 p(q(n)) Definiere g : {0, 1} {0, 1} für x = x x {0, 1}, wobei x längstes Präfix von x mit x I: g(x) = f(x )x Modifiziere Algorithmus A leicht 16 / 33
Längenerhaltende Lemma 2.5 Aus einer starken (bzw. schwachen) Einwegfunktion f : {0, 1} {0, 1} kann man effektiv eine längenerhaltende starke (bzw. schwache) Einwegfunktion g : {0, 1} {0, 1} konstruieren. 17 / 33
Beweis von Lemma 2.5 Beweis: Wir haben: Starke Einwegfunktion f : {0, 1} {0, 1} Polynom p mit f(x) p( x ) für alle x {0, 1} Definiere f : {0, 1} {0, 1} durch f (x) = f(x)10 p( x ) f(x) Menge I = {p(n) + 1 n N} in Polynomialzeit aufzählbar Definiere f : n I {0, 1} {0, 1} für x x {0, 1} mit x x = p( x ) + 1 durch f (x x ) = f (x ) f und f sind in Polynomialzeit berechenbar f ist längenerhaltend Ziel: f ist starke Einwegfunktion 18 / 33
Beweis von Lemma 2.5 Annahme: f ist keine starke Einwegfunktion Es existieren: Probablistischer Polynomialzeit-Algorithmus A, Polynom q im Widerspruch zu Definition 2.2 Algorithmus A mit A (y, 1 n ) = n-bit-präfix von A (y, 1 p(n)+1 ) Algorithmus A mit A(y, 1 n ) = A (y10 p(n) y, 1 n ) Widerspruch: Für unendlich viele n N gilt Pr [ A(f(U n ), 1 n ) f 1 (f(u n )) ] = Pr [ A (f (U n ), 1 n ) f 1 (f (U n )) ] [ ] = Pr A (f (U p(n)+1 ), 1 p(n)+1 ) f 1 (f (U p(n)+1 )) 1 q(p(n) + 1) 19 / 33
Nicht-starke Proposition 2.6 Sofern es überhaupt gibt, existieren auch schwache, nicht-starke. 20 / 33
Beweis von Proposition 2.6 Beweis: Wir haben: Schwache Einwegfunktion f : {0, 1} {0, 1}, o.b.d.a. längenerhaltend Definiere g : ({0, 1} 2 ) {0, 1} für p, x {0, 1} mit p = x : { pf(x) falls p mit log g(px) = 2 x Nullen beginnt px sonst Mann kann zeigen: g ist keine starke Einwegfunktion Ist g keine schwache Einwegfunktion, dann auch f nicht Also: g ist schwache Einwegfunktion 21 / 33
Schwache implizieren starke Satz 2.7 Starke existieren genau dann, wenn schwache existieren. 22 / 33
Beweis von Satz 2.7 Beweis: Wir haben: Schwache Einwegfunktion f : {0, 1} {0, 1}, o.b.d.a. längenerhaltend Polynom p aus Definition 2.3 Polynom t(n) = n p(n) Menge I = {n 2 p(n) n N} in Polynomialzeit aufzählbar Definiere g : n I {0, 1}n {0, 1} für x 1,..., x t(n) {0, 1} n : g(x 1... x t(n) ) = f(x 1 )... f(x t(n) ) g ist in Polynomialzeit berechenbar Ziel: g ist starke Einwegfunktion bezüglich Längen aus I 23 / 33
Beweis von Satz 2.7 Annahme: g ist keine starke Einwegfunktion Es existieren: Probablistischer Polynomialzeit-Algorithmus B, Polynom q im Widerspruch zu Definition 2.2 Unendliche Menge M der m I mit Pr [ B(g(U m )) g 1 (g(u m )) ] 1 q(m) Unendliche Menge N der n N mit n 2 p(n) M Nächste Schritte: 1 Konstruktion eines Algorithmus zur Invertierung von f 2 Abschätzung dessen Erfolgswahscheinlichkeit nach unten 3 Widerspruch zur schwachen Einwegeigenschaft von f 24 / 33
Beweis von Satz 2.7 Schritt 1: Probablistischer Algorithmus zur Invertierung von f Polynom a(n) = 2n 2 p(n)q(n 2 p(n)) Algorithmus A: führt bei Eingabe y a( y )-mal Algorithmus I aus Algorithmus I: Input : y Output : f 1 (y) n y forall i 1, 2,..., t(n) do wähle x 1,..., x t(n) {0, 1} n zufällig (z 1,..., z t(n) ) B(f(x 1 ),..., f(x i 1 ), y, f(x i+1 ),..., f(x t(n) )) if f(z i ) = y then return z i end I und A sind Polynomialzeit-Algorithmen 25 / 33
Beweis von Satz 2.7 Schritt 2: Abschätzung der Erfolgswahrscheinlichkeit von A S n (n N) sei Menge der x {0, 1} n mit Pr [ I(f(x)) f 1 (f(x)) ] > n a(n) Für x S n : Pr [ A(f(x)) f 1 (f(x)) ] < ( 1 n ) a(n) < 1 a(n) 2 n 26 / 33
Beweis von Satz 2.7 Schritt 2 (Fortsetzung): Für n N : Pr [ B(g(U n2 p(n))) g 1 (g(u n2 p(n))) ] }{{} (U (i) n =s(n) [ ] Pr B(g(U n2 p(n))) g 1 (g(u n2 p(n))) ( i : U n (i) S n ) }{{} =s 1(n) [ ] + Pr B(g(U n 2 p(n))) g 1 (g(u n 2 p(n))) ( i : U n (i) S n ) }{{} =s 2(n) ist i-ter n-bit-block von U n 2 p(n) (1 i n 2 p(n))) = 27 / 33
Beweis von Satz 2.7 Abschätzung von s 1 (n): [ ] s 1 (n) = Pr B(g(U n 2 p(n))) g 1 (g(u n 2 p(n))) ( i : U n (i) S n ) n p(n) i=1 n p(n) i=1 n p(n) { max x S n [ Pr B(g(U n2 p(n))) g 1 (g(u n2 p(n))) U (i) n { [ max Pr I(f(x)) f 1 (f(x)) ]} x S n n a(n) = n2 p(n) a(n) ]} = x 28 / 33
Beweis von Satz 2.7 Abschätzung von s 2 (n): Pr [U n S n ] 1 1 2p(n) impliziert für hinreichend große n N : [ ] ( s 2 (n) Pr i : U n (i) S n 1 1 ) n p(n) < 1 2p(n) 2 < n2 p(n) n/2 a(n) und 1 q(n 2 p(n)) < s(n) = s 1(n) + s 2 (n) < 2 n2 p(n) 1 = a(n) q(n 2 p(n)) Für unendlich viele n N gilt also Pr [U n S n ] > 1 1 2p(n) 29 / 33
Beweis von Satz 2.7 Schritt 3: Herleitung des Widerspruchs. Für unendlich viele (hinreichend große) n N : Pr [ A(f(U n )) f 1 (f(u n )) ] Pr [ A(f(U n )) f 1 (f(u n )) U n S n ] = Pr [U n S n ] Pr [ A(f(U n )) f 1 ] (f(u n )) U n S n ( > 1 1 ) ( 1 1 ) 2p(n) 2 n > 1 1 p(n) Widerspruch zur Wahl von p 30 / 33
Kandidaten für Faktorisierung Diskrete Logarithmen RSA-Funktion Teilmengensummenproblem 31 / 33
Abschließende komplexitätstheoretische Betrachtungen Bisher ist unbekannt, ob es tatsächlich gibt. Es sind jedoch einige notwendige Bedingungen für die Existenz von bekannt: N P BPP: Folgender N P-Algorithmus invertiert f: Input : y, 1 n Output : f 1 (y) rate x {0, 1} if f(x) = y then return x P N P: Sonst wäre N P = P BPP. 32 / 33
Ende Danke für Ihre Aufmerksamkeit. 33 / 33
Beweis von Proposition 1.5 Sei L BPP. Dann existieren eine probablistische Polynomialzeit-Turingmaschine M und ein positives Polynom p mit, so dass für alle x gilt: Pr [M(x) = χ L (x)] 1 2 + 1 p( x ) Betrachte eine probablistische Turingmaschine M, die bei Eingabe x folgendes tut: Setze n := 2 x p( x ) 2 + 1 (geht in polynomieller Zeit). Werte n-mal M(x) aus (führt polynomiell oft eine polynomiell beschränkte TM aus). Wenn mindestens n -mal 1 herausgekommen ist, gib 1 zurück, sonst 0. 2 Dann gilt für alle x: Pr [M (x) = χ L (x)] 1 2 x Wir untersuchen nur den Fall x L. Der Fall x L geht analog. Sei also x L. Es sei Pr [M(x) = 1] = 1 + p. Dann gilt 1 p 1. X sei eine Zufallsvariable, die die Anzahl der Ausführungen von M(x) mit Ergebnis 1 zählt. Dann gilt: 2 p( x ) 2 [ Pr [M (x) = 1] = Pr X > n ] ( ) 1 und E(X) = n 2 2 + p = n 2p + 1 2 Weiter gilt wegen Pr [X < (1 δ)e(x)] < e E(X) δ2 2 : [ Pr X < n ] [ = Pr X < n 2p + 1 ( 1 2p )] 2 2 2p + 1 Dann gilt weiter: Pr [M (x) = 1] = Pr 2p+1 n < e 1 2 2 < e (n 1) 1 2p( x ) 2 < 2 x ( 2p+1) 2 = e n p 2 2p+1 = e x [ X > n ] [ = 1 Pr X < n ] > 1 2 x 2 2 1
Beweis von Lemma 2.5 Zunächst konstruieren wir g: Für x {0, 1} sei x das längste Präfix von x mit x I. Wir setzen: g(x) := f(x ) Weiter sei q ein Polynom, dass die Funktion s I beschränkt, d.h. für alle n N gilt s I (n) q(n). Ein derartiges Polynom existiert, da sich s I in Polynomialzeit berechnen lässt. Wir diskutieren nur den Fall der starken Einwegfunktion, der der schwachen geht analog. Nehmen wir an, g wäre keine starke Einwegfunktion. Dann existieren ein probablistischer Polynomialzeit-Algorithmus B und ein Polynom p, so dass für unendlich viele m N gilt: Pr [ B(g(U m ), 1 m ) g 1 (g(u m )) ] 1 p(m) (1) Daraus konstruieren wir nun einen probablistischen Polynomialzeit-Algorithmus A wie folgt: Input : y, 1 n Output : f 1 (y) forall k n, n + 1,..., s I (n) 1 do z k B(y, i k ) x k längstes Präfix von z k mit x k I if g(z k ) = y then return x k ; {- Es gilt g(z k ) = f(x k ) -} end return 0 n Algorithmus 1 : A Nun sei n N derart, dass es ein m {n, n + 1,..., s I (n) 1} gibt, das (1) erfüllt. Dann gilt: Pr [ A(f(U n ), 1 n ) f 1 (f(u n )) ] Pr [ B(U m, 1 m ) g 1 (g(u m )) ] 1 p(m) 1 p(s I (n)) 1 p(q(n)) Da es unendlich viele m gibt, die (1) erfüllen, gibt es auch unendlich viele n, die (2) erfüllen. Damit ist f keine starke Einwegfunktion. Widerspruch! Nun sei f zusätzlich längenerhaltend. Für alle x {0, 1} sei x = x x, wobei x das längste Prefix von x mit x I ist. Wir setzen: g(x) := f(x )x Der Algorithmus wird dann zu: Input : y, 1 n Output : f 1 (y) forall k n, n + 1,..., s I (n) 1 do z k B(y0 k n, i k ) x k n-bit-präfix von z k if g(z k ) = y0 k n then return x k ; {- Es gilt g(z k ) = y0 k n f(x k ) = y -} end return 0 n Algorithmus 2 : A (2) 2
Beweis von Lemma 2.6 Es sei p ein Polynom mit f(x) p( x ) für alle x {0, 1}. Ein derartiges Polynom existiert, da sich f in Polynomialzeit berechnen lässt. Definiere die starke (bzw. schwache) Einwegfunktion f : {0, 1} {0, 1} durch f (x) = f(x)10 p( x ) f(x) f ist eine Einwegfunktion, weil ein unerlaubt guter Inverter A für f einen unerlaubt guten Inverter A(y, 1 n ) := A (y10 p(n) y, 1 n ) für f liefert. Für alle x {0, 1} : f (x) = p( x )+1. Die Menge I = {p(n)+1 n N} ist in Polynomialzeit aufzählbar. Jetzt konstruieren wir f : n I {0, 1}n {0, 1}. Für x {0, 1} mit x I sei x = x x die Zerlegung mit x = p( x ) + 1. Wir setzen: f (x) = f (x ) f ist eine starke (bzw. schwache) Einwegfunktion, weil mit einem unerlaubt guten Inverter A für f auch A (y, 1 n ) := n-bit-präfix von A (y, 1 p(n)+1 ) ein unerlaubt guter Inverter für A wäre. Lemma 2.5 macht aus f eine längenerhaltende starke (bzw. schwache) Einwegfunktion. 3
Proposition 2.7 f : {0, 1} {0, 1} sei eine schwache Einwegfunktion. O.B.d.A. sei f längenerhaltend. Definiere eine Funktion g : ({0, 1} 2 ) {0, 1}. Für px {0, 1} mit p = x definiere: { pf(x) falls p mit log g(px) = 2 x Nullen beginnt px sonst g ist keine starke Einwegfunktion, denn für den Algorithmus A mit A(y, 1 n ) = y gilt für alle n N: Pr [ A(g(U 2n )) g 1 (g(u 2n )) ] 1 Pr [U 2n S 2n ] = 1 log 2 n 1 2 n Dabei sei S 2n = {x {0, 1} 2n x beginnt mit log 2 n Nullen}. Wir zeigen nun indirekt, dass g eine schwache Einwegfunktion ist. Nehmen wir also an, g wäre keine schwache Einwegfunktion. p sei ein Polynom, so dass für alle probablistischen Polynomialzeitalgorithmen A für fast alle n N gilt: Pr [ A(f(U n )) f 1 (f(u n )) ] > 1 p(n) (3) Dann existiert ein probablistischer Polynomialzeit-Algorithmus B, so dass für unendlich viele gerade n N gilt: Pr [ B(g(U n )) g 1 (g(u n )) ] 1 (4) n p(n) Betrachte den folgenden Algorithmus A: Input : y Output : f 1 (y) n y, l log 2 n wähle p 0 l {0, 1} n l zufällig z B(py) return n-bit-suffix von z Dann gilt für alle n N, die (4) erfüllen, mit l = log 2 n : Pr [ A(f(U n )) f 1 (f(u n )) ] Pr [ B(0 l U n l f(u n )) 0 l U n l f 1 (f(u n )) ] = Pr [ B(g(U 2n )) g 1 (g(u 2n )) U 2n S 2n ] Pr [B(g(U 2n)) g 1 (g(u 2n ))] Pr [U 2n S 2n ] Pr [U 2n S 2n ] = Pr [B(g(U 2n)) g 1 (g(u 2n ))] ( 1 1 2 l ) 1 2 l = 1 2 l (1 Pr [ B(g(U 2n )) g 1 (g(u 2n )) ] ) 1 n Pr [ B(g(U 2n )) g 1 (g(u 2n )) ] 1 n Dies ist offensichtlich ein Widerspruch zu (3). 1 2n p(2n) 1 n 1 n p(n) = 1 1 p(n) 4
Beweis von Satz 2.8 f : {0, 1} {0, 1} sei eine schwache Einwegfunktion und p ein Polynom, so dass für alle probablistischen Polynomialzeit-Algorithmen A und für fast alle n N gilt: Pr [ A(f(U n )) f 1 (f(u n )) ] > 1 p(n) O.B.d.A. sei f längenerhaltend. Weiter setzen wir t(n) := n p(n). Für I = {n 2 p(n) n N} definieren wir g : n I {0, 1}n x 1,..., x t(n) {0, 1} n setzen: g(x 1... x t(n) ) = f(x 1 )... f(x t(n) ) {0, 1}, indem wir für g kann offensichtlich in Polynomialzeit berechnet werden. Wir beweisen indirekt, dass g eine starke Einwegfunktion ist. Nehmen wir also an, es gäbe einen probablistischen Polynomialzeitalgorithmus B und ein Polynom q, so dass die Menge { M := m I Pr [ B(g(U m )) g 1 (g(u m )) ] > 1 } q(m) unendlich ist. Dann ist auch die Menge N := {n N n 2 p(n) M } unendlich. Weiter setzen wir a(n) := 2n 2 p(n)q(n 2 p(n)). Der Algorithmus A führe bei Eingabe y a( y )-mal den folgenden Algorithmus I mit Eingabe y aus: Input : y Output : f 1 (y) n y forall i 1, 2,..., t(n) do wähle x 1,..., x t(n) {0, 1} n zufällig (z 1,..., z t(n) ) B(f(x 1 ),..., f(x i 1 ), y, f(x i+1 ),..., f(x t(n) )) if f(z i ) = y then return z i end Algorithmus 3 : I Jetzt werden wir die Erfolgswahrscheinlichkeit von A nach unten abschätzen, um einen Widerspruch zu erhalten. Zunächst definieren wir für alle n N: Für alle x S n gilt: S n := { x {0, 1} n Pr [ I(f(x)) f 1 (f(x)) ] > Pr [ A(f(x)) f 1 (f(x)) ] < Nun zeigen wir indirekt, dass für alle n N gilt: ( S n > 1 1 ) 2 n 2p(n) n } a(n) ( 1 n ) a(n) < e n < 1 a(n) 2 n Nehmen wir also an, es gibt ein n N mit S n (1 1 2p(n) ) 2n. Aus n N folgt n 2 p(n) M und damit s := Pr [ B(g(U n 2 p(n))) g 1 (g(u n 2 p(n))) ] 1 > (5) q(n 2 p(n) 5
U n (1),..., U n (n (n)) seien die n-bit-blöcke von U n 2 p(n). Dann setzen wir: s 1 := Pr [ B(g(U n 2 p(n))) g 1 (g(u n 2 p(n))) ( i : U n (i) S n ) ] und s 2 := Pr [ B(g(U n 2 p(n))) g 1 (g(u n 2 p(n))) ( i : U (i) n S n ) ] und es gilt offensichtlich s = s 1 + s 2. Für alle x {0, 1} und 1 i n p(n) gilt: Weiter gilt: Pr [ I(f(x)) f 1 (f(x)) ] Pr [ B(g(U n 2 p(n))) g 1 (g(u n 2 p(n))) U (i) n = x ] s 1 = Pr [ i : B(g(U n 2 p(n))) g 1 (g(u n 2 p(n))) U (i) n S n ] = n p(n) i=1 n p(n) i=1 n p(n) i=1 n p(n) i=1 n p(n) i=1 Außerdem gilt: Daraus folgt: Pr [ B(g(U n 2 p(n))) g 1 (g(u n 2 p(n))) U (i) n S n ] n p(n) x S n Pr [ B(g(U n 2 p(n))) g 1 (g(u n 2 p(n))) U (i) n = x ] Pr [ U n (i) x S n = x ] Pr [ B(g(U n 2 p(n))) g 1 (g(u n 2 p(n))) U (i) n = x ] { [ max Pr B(g(Un x S 2 p(n))) g 1 (g(u n 2 p(n))) U n (i) = x ]} n { [ max Pr I(f(x)) f 1 (f(x)) ]} x S n n a(n) = n2 p(n) a(n) s 2 Pr [ i : U n (i) S n ] s = s 1 + s 2 < 2n2 p(n) a(n) Dies ist offensichtlich ein Widerspruch zu (??). Insgesamt erhalten wir: ( 1 1 ) n p(n) < 1 2p(n) 2 < n2 p(n) n/2 a(n) = 1 q(n 2 p(n)) Pr [ A(f(U n )) f 1 (f(u n )) ] Pr [ A(f(U n )) f 1 (f(u n )) U n S n ] = Pr [U n S n ] Pr [ ] A(f(U n )) f 1 (f(u n )) U n S n ( 1 1 ) (1 2 n) > 1 1 2p(n) p(n) Das ist ein Widerspruch zur Voraussetzung, dass f eine schwache Einwegfunktion ist. 6