Einwegfunktionen. Problemseminar. Komplexitätstheorie und Kryptographie. Martin Huschenbett. 30. Oktober 2008

Ähnliche Dokumente
8 Komplexitätstheorie und Kryptologie

Theoretische Informatik. Probabilistische Turingmaschinen PTM PTM. Rainer Schrader. 10. Juni 2009

Einführung in Approximative Algorithmen und Parametrisierte Komplexität

Musterlösung der Hauptklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2012/13

4.4.1 Statisches perfektes Hashing. des Bildbereichs {0, 1,..., n 1} der Hashfunktionen und S U, S = m n, eine Menge von Schlüsseln.

1. Welche Eigenschaften sollte ein Pseudo-Random Generator haben?

Die Komplexitätsklassen P und NP

Hardcore-Prädikat. Definition Hardcore-Prädikat. Ziel: Destilliere Komplexität des Invertierens auf ein Bit.

Rabin Verschlüsselung 1979

Übung zur Vorlesung Berechenbarkeit und Komplexität

Randomisierte Algorithmen 2. Erste Beispiele

Probabilistische Primzahltests

LOOP-Programme: Syntaktische Komponenten

2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung

Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben

Kapitel 1. Exakte Suche nach einem Wort. R. Stiebe: Textalgorithmen, WS 2003/04 11

Probleme aus NP und die polynomielle Reduktion

Theoretische Informatik

Algorithmentheorie Randomisierung. Robert Elsässer

11. Woche: Turingmaschinen und Komplexität Rekursive Aufzählbarkeit, Entscheidbarkeit Laufzeit, Klassen DTIME und P

Musterlösung zur Hauptklausur Theoretische Grundlagen der Informatik Wintersemester 2013/14

CPA-Sicherheit ist ungenügend

Theoretische Informatik 2

Einführung in die Theoretische Informatik

Grundlagen der Theoretischen Informatik

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Theoretische Informatik SS 03 Übung 3

Theoretische Informatik 1

Lösungsvorschläge Blatt 4

Lösungen zur 1. Klausur. Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Einführung in die Kryptographie

Reduktionen. Algorithmen und Datenstrukturen Kapitel 6.2 Komplexitätstheorie. Exkurs: Reduktionen allgemein. Reduktionen: Erläuterungen

Teil III. Komplexitätstheorie

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Proseminar Theoretische Informatik. Die Klasse NP. von Marlina Spanel

1.4 Die Ackermannfunktion

Pseudozufallsgeneratoren

Formale Methoden 2. Gaetano Geck Lehrstuhl I Logik in der Informatik WS 2015/2016

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Quanteninformation/ Quantencomputer

Primitiv rekursive und µ-rekursive Funktionen

Lösungen zu Aufgabenblatt 7P

Kryptosystem von Paillier: Analyse und Verbesserungen

Typ-1-Sprachen. Satz 1 (Kuroda ( ) 1964)

RSA Full Domain Hash (RSA-FDH) Signaturen

LOOP-Programme: Syntaktische Komponenten

Wir suchen Antworten auf die folgenden Fragen: Was ist Berechenbarkeit? Wie kann man das intuitiv Berechenbare formal fassen?

4 Diskrete Wahrscheinlichkeitsverteilungen

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung.

Berechenbarkeit und Komplexität: Rekursive Aufzählbarkeit und die Technik der Reduktion

Theoretische Grundlagen der Informatik

Vorlesung Sicherheit

8 Diskrete Optimierung

1 Potenzen und Polynome

Konstruktion reeller Zahlen aus rationalen Zahlen

WS 2009/10. Diskrete Strukturen

Automaten, Formale Sprachen und Berechenbarkeit I Wichtige Begriffe

Grundlagen Theoretischer Informatik 2 WiSe 2011/12 in Trier. Henning Fernau Universität Trier

x x y x y Informatik II Schaltkreise Schaltkreise Schaltkreise Rainer Schrader 3. November 2008

3: Zahlentheorie / Primzahlen

18 Höhere Ableitungen und Taylorformel

Einführung in die Informatik I

2.4 Kontextsensitive und Typ 0-Sprachen

Lernalgorithmen SoSe 2008 in Trier. Henning Fernau Universität Trier

Brownsche Bewegung. Satz von Donsker. Bernd Barth Universität Ulm

Urbild Angriff auf Inkrementelle Hashfunktionen

Komplexität. G. Zachmann Clausthal University, Germany Leistungsverhalten von Algorithmen

Diskrete Strukturen Kapitel 2: Grundlagen (Beweise)

Lösungsblatt zur Vorlesung. Kryptanalyse WS 2009/2010. Blatt 6 / 23. Dezember 2009 / Abgabe bis spätestens 20. Januar 2010, 10 Uhr (vor der Übung)

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Turing-Maschinen. Definition 1. Eine deterministische Turing-Maschine (kurz DTM) ist ein 6- Dem endlichen Alphabet Σ von Eingabesymbolen.

Achtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass

Übung zur Vorlesung Berechenbarkeit und Komplexität

Stetigkeit von Funktionen

Syntax von LOOP-Programmen

3.4 Asymptotische Evaluierung von Sch atzer Konsistenz Konsistenz Definition 3.4.1: konsistente Folge von Sch atzer

7 Der kleine Satz von Fermat

Ein RSA verwandtes, randomisiertes Public Key Kryptosystem

Gierige Algorithmen Interval Scheduling

Zahlentheorie I - Tipps & Lösungen. Aktualisiert: 15. Oktober 2016 vers Teilbarkeit

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck

Konvexe Mengen. Kanglin,Chen. Universität Bremen, Proseminar WS 04/05

Grundbegriffe der Wahrscheinlichkeitsrechnung

Theoretische Informatik Kap 2: Berechnungstheorie

3 Topologische Gruppen

Rechnerische Komplexität

Kapitel 3: Grundlegende Ergebnisse aus der Komplexitätstheorie Gliederung

Berechenbarkeit und Komplexität

NP-Vollständigkeit. Krautgartner Martin ( ) Markgraf Waldomir ( ) Rattensberger Martin ( ) Rieder Caroline ( )

4 Messbare Funktionen

abgeschlossen unter,,,, R,

Randomisierte Algorithmen

1 Raumwechsel: Gr. 19 (Fr 12-14, F-334) diese Woche in D Studie zum Arbeitsverhalten von Studierenden unter Leitung

Beschreibungskomplexität von Grammatiken Definitionen

3 Numerisches Rechnen

Kontextfreie Sprachen

Streaming Data: Das Modell

Berechenbarkeits- und Komplexitätstheorie

Transkript:

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