Komplexitätstheorie - Arbeitsgruppe Kryptographie und Sicherheit

Transcription

Komplexitätstheorie - Arbeitsgruppe Kryptographie und Sicherheit
Komplexitätstheorie
mit Anwendungen in der Kryptographie
Dennis Hofheinz∗
Karlsruher Institut für Technologie
Organisatorisches
• Wir werden Arora und Baraks Buch Computational Complexity: A Modern Approach“ benutzen.
”
Eine Vorabversion ist unter http://www.cs.princeton.edu/theory/complexity/ erhältlich.
• Die Vorlesung ist prüfbar im Masterstudiengang (6 Leistungspunkte im Modul Komplexitätstheorie“).
”
Notation
Für eine Menge S ist S ∗ := {(s1 , . . . , sn ) | n ∈ N, si ∈ S} die Menge aller endlichen Folgen über S. Für
eine Folge x ∈ S ∗ schreiben wir |x| für die Länge von x. Für f, g : N → N schreiben wir
• f = O(g) wenn f (n)/g(n) beschränkt ist,
• f = Ω(g) wenn g = O(f ) (also g(n)/f (n) beschränkt ist),
• f = o(g) wenn lim supn→∞ f (n)/g(n) = 0,
• f = ω(g) wenn g = o(f ) (also lim supn→∞ g(n)/f (n) = 0),
• f = Θ(g) wenn f = O(g) und g = O(f ).
Für n ∈ N bezeichnet 1n den String von n Einsen.
1
Turingmaschinen
Definition 1.1 (Turingmaschine). Eine (k-Band-)Turingmaschine (TM) (für k ≥ 2) M = (Γ, Q, δ)
besteht aus:
• Einer endlichen Zustandsmenge Q ⊇ {qstart , qhalt }. qstart und qhalt sind Start- bzw. Haltezustand.
• Einem endlichen Alphabet Γ ⊇ {B, , 0, 1}. B und sind Start- bzw. Leersymbol.
• Einer Transitionsfunktion δ : Q × Γk → Q × Γk−1 × {L, S, R}k .
Lauf einer TM. Wenn wir eine TM M mit Eingabe x = (x1 , . . . , xn ) ∈ Γ∗ laufen lassen, meinen
wir damit folgendes. Man stelle sich ein Nur-lese-Band vor, auf dem x steht, also eine unendliche Folge
in
N0 von Γ-Elementen mit
(tin
0 , t1 , . . .) ∈ Γ
in
(tin
0 , t1 , . . . ) = (B, x1 , . . . , xn , , , . . . ).
Man stelle sich weiter k − 1 weitere Schreib-/Lesebänder vor, die mit Leerzeichen gefüllt sind:
(t20 , t21 , . . . ) = (B, , , . . . )
..
..
.
.
(t0k−1 , t1k−1 , . . . ) = (B, , , . . . )
out
(tout
0 , t1 , . . . ) = (B, , , . . . ).
Schließlich seien k Köpfe auf den jeweils ersten Zellen der einzelnen Bänder plaziert. Man wende nun
1
out
die Transitionsfunktion δ auf M s Startzustand q = qstart und die jeweiligen Inhalte t := (tin
1 , t1 , . . . , t1 )
∗
[email protected]
1
der Bandzellen unter den Köpfen an. δ(q, t) = (q 0 , t0 , d) legt den neuen Zustand q 0 , die neuen Zellinhalte
k
t0 = (t11 , . . . , tout
1 ), sowie die Richtungen d ∈ {L, S, R} (”left“, ”stay“, ”right“) fest, in der die Köpfe bewegt
werden sollen. Dabei wird niemals ein Kopf jenseits des Startsymbols bewegt. Weiter wird erzwungen, dass
ein Startsymbol nie überschrieben wird, und kein Startsymbol auf eine Nicht-Startposition eines Bandes
geschrieben wird. Man fahre so fort, bis M den Haltezustand annimmt. Wir sagen, dass M (x) y ∈ Γ∗
ausgibt, wenn y der Inhalt des Ausgabebandes (tout
1 , . . . ) zum Zeitpunkt des Anhaltens ist, wobei das
führende Start- und abschließende Leersymbole entfernt werden. Wir sagen weiter, dass M die Funktion
f : (Γ \ {B, })∗ → (Γ \ {B, })∗ berechnet, wenn M die Ausgabe y = f (x) für alle x ∈ (Γ \ {B, })∗
gibt.
Definition 1.2 (Zeit-/Bandkomplexität). Eine TM M hat Zeitkomplexität T (n) (mit T : N → N) wenn
M (x) für alle x ∈ (Γ \ {B, })∗ nach höchstens T (|x|) Schritten anhält. M hat Bandkomplexität S(n)
wenn M (x) für alle x ∈ (Γ \ {B, })∗ auf höchstens S(|x|) Zellen der Schreib-/Lesebänder zugreift.
In vielen Fällen werden wir uns auf Beschränkungen F für Zeit- oder Bandkomplexität beschränken,
die ihrerseits in einem vernünftigen Sinn berechenbar sind:
Definition 1.3 (Zeit-/bandkonstruierbar). Eine Funktion F : N → N ist zeitkonstruierbar wenn F (n) ≥
n und eine TM M existiert, die F (n) (in Binärdarstellung) bei Eingabe 1n berechnet und Zeitkomplexität
O(F (n)) hat. Analog ist F bandkonstruierbar, sofern F (n) ≥ n und eine TM M existiert, die F (n) bei
Eingabe 1n berechnet und Bandkomplexität O(F (n)) hat.
Universalität der Definition.
Satz 1.4 (Unwichtigkeit des Bandalphabets, Claim 1.5 in [1]). Für jedes f : {0, 1}∗ → {0, 1} und T :
N → N gilt:
• wenn f von einer TM M mit Zeitkomplexität T (n) und Alphabet Γ berechnet wird,
• dann wird f von einer TM M̃ mit Zeitkomplexität 4 log |Γ|·T (n) und Alphabet {B, , 0, 1} berechnet.
Beweis. Codiere ein Element aus Γ als log |Γ| Elemente aus {B, , 0, 1}. Passe die Transitionsfunktion
an, so dass sie codierte Elemente liest/schreibt. (Dies kann etwa mit einem impliziten Zähler in der
Transitionsfunktion geschehen, der von 1 bis log |Γ| zählt.)
Satz 1.5 (Unwichtigkeit der Anzahl der Arbeitsbänder, Claim 1.6 in [1]). Eine Einzelband-TM M sei
eine TM mit einem einzigen Band, das sowohl als Eingabe-, Arbeits- und Ausgabeband fungiert. Dann gilt
für jedes f : {0, 1}∗ → {0, 1} und zeitkonstruierbares T : N → N:
• wenn f von einer k-Band-TM M mit Zeitkomplexität T (n) berechnet wird,
• dann wird f von einer Einzelband-TM M̃ mit Zeitkomplexität 5kT (n)2 berechnet.
Beweis. Codiere die k Bänder von M versetzt in ein Band. Genauer besetzt das i-te Band von M die
Positionen i, k + i, 2k + i, etc. von M̃ s Band. Für jedes Symbol a aus M s Alphabet gibt es die Symbole a
und â in M̃ s Alphabet. Ein Symbol â zeigt an, dass der jeweilige Kopf über dieser Zelle steht. M̃ verfährt
wie folgt:
1. Initialisiere das aufgeteilte Band: Codiere die Eingabe auf ein wie beschrieben aufgeteiltes Band
maximaler Länge kT (n) und markiere die jeweiligen initialen Kopfpositionen (mit ˆ).
2. Simuliere einen Berechnungsschritt von M wie folgt:
(a) Laufe das aufgeteilte Band von links nach rechts ab und sammle die Symbole unter den jeweiligen Köpfen auf.
(b) Wende M s Transitionsfunktion auf die aufgesammelten Symbole an, um den neuen Zustand,
die neuen Zellinhalte unter den Köpfen und die Kopfbewegungen zu bestimmen.
(c) Laufe das aufgeteilte Band von rechts nach links ab, wobei die Zellinhalte und Kopfpositionen
angepasst werden.
3. Wiederhole Schritt 2, bis M den Haltezustand annimmt.
4. Decodiere die Ausgabe.
Bemerkung 1.6. Man beachte, dass die Kopfbewegungen von M̃ bei geschickter Implementierung nur
abhängig von der Länge |x| der Eingabe, nicht aber abhängig von x selbst sind. Solche Maschinen heißen
oblivious.
2
Bemerkung 1.7. Der quadratische Overhead in der Simulation ist inhärent. Beispielsweise kann die
Funktion f : {0, 1}∗ → {0, 1} mit f (b1 b2 . . . bn ) = 1 ⇔ b1 b2 . . . bn = bn bn−1 . . . b1 auf einer Einzelband-TM
nur in Zeit Ω(n2 ) berechnet werden, auf einer 2-Band-TM aber in Zeit O(n).
2
Universalität und ein schwieriges Problem
Die universelle Turingmaschine.
tion sinnvoll:
Turingmaschinen sind abzählbar. Insbesondere ist folgende Defini-
Definition 2.1 (Gödelnummerierung). Eine Gödelnummerierung ist eine Aufzählung M1 , M2 , . . . aller
Turingmaschinen. Wir nennen i die (nicht notwendig eindeutige) Gödelnummer von Mi . Wir fordern,
dass für gegebene TM M unendlich viele Gödelnummern i mit M = Mi existieren.1 Gelegentlich wird es
nützlich sein, auch Bitstrings α ∈ {0, 1}∗ in naheliegender Weise als Gödelnummern zu interpretieren:
dann ist Mα = Mi , wobei i die Interpretation von α als natürliche Zahl ist.
Wir werden im Folgenden eine feste Gödelnummerierung annehmen, die effiziente Simulationen durch
eine universelle Turingmaschine erlaubt:
Satz 2.2 (Universelle TM, Theorem 1.9 in [1]). Es existiert eine Gödelnummerierung und eine TM U,
so dass U(α, x) für beliebige (α, x) ∈ ({0, 1}∗ )2 die Berechnung von Mα (x) emuliert. Dabei
• gibt U(α, x) dieselbe Ausgabe wie Mα (x), und
• existiert eine von x unabhängige (aber von α abhängige) Konstante C, so dass U(α, x) in höchstens
CT log T Schritten hält, sofern Mα (x) in T Schritten hält.
U heißt universelle TM.
Der Beweis von Satz 2.2 ist technisch, aber konzeptionell einfach: U(α, x) schreibt zunächst die Transitionsfunktion von Mα auf ein gesondertes Arbeitsband und simuliert anschließend Mα schrittweise, mit
den eigenen Bändern als Arbeitsbändern. (Wir können davon ausgehen, dass Mα höchstens zwei Arbeitsbänder benutzt und ein festes Alphabet hat.)
Beispiel für schwierige Probleme: Funktionen, die nicht berechenbar sind.
Satz 2.3 (Nicht-berechenbare Funktion, Theorem 1.10 in [1]). Es existiert eine Funktion fUC : {0, 1}∗ →
{0, 1}, die von keiner TM berechnet wird.
Beweis. Sei fUC (x) = 0 genau dann, wenn Mx (x) schließlich 1 ausgibt. Gibt Mx (x) keine 1 aus (oder hält
nicht), setzen wir fUC (x) = 1. Wäre fUC berechenbar von einer TM M = Mx , so würde M (x) = Mx (x) =
fUC (x) gelten, im Widerspruch zur Definition von fUC .
Bemerkung 2.4. Der Beweis von Satz 2.3 ist ein Beispiel für ein Diagonalisierbarkeitsargument. Diese
Art von Argumenten wird uns noch häufiger begegnen.
Satz 2.5 (Das Halteproblem ist nicht entscheidbar, Theorem 1.11 in [1]). Es gibt keine TM, die die
Funktion fHALT : ({0, 1}∗ )2 → {0, 1} mit
fHALT (α, x) = 1
⇐⇒
Mα (x) erreicht den Haltezustand
berechnet.
Beweis. Angenommen, M berechnet fHALT . Dann berechnet die folgende TM M 0 fUC . Zunächst simuliert
M 0 (x) als Unterroutine M (x, x). Ist M (x, x) = 0, dann hält Mx (x) nicht, und M 0 kann 1 ausgeben.
Andernfalls kann M 0 die Ausführung von Mx (x) intern simulieren; es ist garantiert, dass diese Simulation
abbricht. Ist Mx (x) = 1, so gibt M 0 schließlich 0 aus, ansonsten 1.
Bemerkung 2.6. Der Beweis von Satz 2.5 enthält eine Reduktion. Reduktionen spielen eine zentrale
Rolle in der Komplexitätstheorie und in der Kryptographie.
1
Diese Forderung wird nützlich sein, um für eine gegebene TM M die Existenz beliebig großer Gödelnummern i mit
M = Mi zu folgern.
3
3
Sprachen und Komplexitätsklassen
In vielen Fällen ist es sinnvoll und handhabbarer, Entscheidungsprobleme zu betrachten, also die Aufgabe,
zu entscheiden, ob x ∈ L für gegebenes x ∈ {0, 1}∗ und eine feste Sprache L ⊆ {0, 1}∗ ist. Die Berechnung
von fUC und fHALT etwa sind Beispiele für Entscheidungsprobleme.
Definition 3.1 (Sprache). Eine Sprache L über einem Alphabet Γ ist eine Untermenge L ⊆ Γ∗ . Wir
sagen, dass eine TM M eine Sprache L entscheidet (oder erkennt), wenn M deren charakteristische
Funktion f : Γ∗ → {0, 1} mit f (x) = 1 ⇔ x ∈ L berechnet.
Üblicherweise werden wir Sprachen über dem Alphabet Γ = {0, 1} betrachten.
Definition 3.2 (Elementare Komplexitätsklassen). Wir schreiben
DTIME(T (n)) := {L | L wird entschieden von einer TM mit Zeitkomplexität O(T (n))}
SPACE(S(n)) := {L | L wird entschieden von einer TM mit Bandkomplexität O(S(n))}
und weiter
P :=
[
DTIME(T (n)),
PSPACE :=
T ∈N[X]
[
SPACE(S(n)).
S∈N[X]
Definition 3.3 (Nichtdeterministische TM). Eine nichtdeterministische TM (auch NDTM) M ist eine
TM mit zwei Transitionsfunktionen δ0 und δ1 , sowie einem speziellen Zustand qaccept . In jedem Schritt
kann M δ0 oder δ1 benutzen. Die Ausführung von M hält an, wenn M qaccept oder qhalt erreicht. Wir
sagen, dass M eine Eingabe x ∈ Γ∗ akzeptiert (oder: M (x) akzeptiert, M (x) = 1), wenn es eine Folge von
Schritten gibt, nach der M (x) qaccept erreicht. M entscheidet (oder erkennt) eine Sprache L ⊆ {0, 1}∗ ,
wenn gilt: M akzeptiert x ⇔ x ∈ L. M hat Zeit-/Bandkomplexität F (n), wenn für alle möglichen Berechnungspfade nur F (n) Zeit-/Bandkomplexität benötigt wird.
Definition 3.4 (Nichtdeterministische Komplexitätsklassen). Wir schreiben
NTIME(T (n)) := {L | L wird entschieden von einer NDTM mit Zeitkomplexität O(T (n))}
NSPACE(S(n)) := {L | L wird entschieden von einer NDTM mit Bandkomplexität O(S(n))}
sowie
NP :=
[
NTIME(T (n)),
NPSPACE :=
T ∈N[X]
[
NSPACE(S(n)).
S∈N[X]
Satz 3.5 (Zusammenhang det./nichtdet. Zeit-/Bandkomplexität, Theorem 4.3 in [1]). Für bandkonstruierbares S : N → N ist:
DTIME(S(n)) ⊆ NTIME(S(n)) ⊆ SPACE(S(n)) ⊆ NSPACE(S(n)) ⊆ DTIME(2O(S(n)) ).
Beweis. Es genügt, NTIME(S(n)) ⊆ SPACE(S(n)) und NSPACE(S(n)) ⊆ DTIME(2O(S(n)) ) zu
zeigen.
Um NTIME(S(n)) ⊆ SPACE(S(n)) einzusehen, betrachte man eine TM M̃ , die eine NDTM M mit
Zeitkomplexität cS(n) wie folgt simuliert:
• Für alle w = (w1 , . . . , wcS(n) ) ∈ {0, 1}cS(n) :
– Simuliere M mit Transitionsschritten von δw1 , . . . , δwcS(n) . Wenn M akzeptiert, gib 1 aus.
• Gib 0 aus.
M̃ hat Bandkomplexität O(S(n)) und entscheidet dieselbe Sprache wie M .
Wir zeigen NSPACE(S(n)) ⊆ DTIME(2O(S(n)) ). Sei dazu M eine NDTM mit Bandkomplexität
O(S(n)). Wir müssen eine (deterministische) TM M̃ mit Zeitkomplexität 2O(S(n)) konstruieren, die dieselbe Sprache wie M entscheidet.
Man betrachte dazu den Graphen GM,x aller Konfigurationen von M bei Eingabe x ∈ {0, 1}n . Eine
Konfiguration besteht dabei aus einem Zustand, einer Belegung aller Bänder, und der Position aller Köpfe.
Es existiert eine Kante zwischen zwei Knoten u und v, wenn u durch einen einzigen Schritt in v überführt
werden kann. Nach Annahme kann jede mögliche Konfiguration von M in O(S(n)) Zellen ausgedrückt
werden. Wir können ohne Beschränkung der Allgemeinheit annehmen, dass
4
• genau eine akzeptierende Konfiguration Caccept existiert,
• der Graph aller Konfigurationen von M zyklenfrei ist, und
• für je zwei Knoten in O(S(n)) Schritten entschieden werden kann, ob sie Nachbarn sind.
Insgesamt hat der Konfigurationsgraph 2O(S(n)) Knoten, und es muss lediglich entschieden werden, ob
ein Pfad von Startkonfiguration Cstart zur akzeptierenden Konfiguration Caccept existiert. Etwa mit einem
Breitensuchalgorithmus kann dies in 2O(S(n)) Schritten erledigt werden. Beispielsweise kann M̃ wie folgt
verfahren:
1. Schreibe alle syntaktisch möglichen Konfigurationen auf. (Dies kann in 2O(S(n)) Schritten geschehen.)
2. Markiere die Startkonfiguration Cstart .
3. Für jede neu markierte Konfiguration:
(a) Markiere jede Folgekonfiguration. (Benutze dazu ein gesondertes Band für Tests auf Folgekonfigurationen. Es ergibt sich ein Aufwand von 2O(S(n)) Schritten.)
4. Wiederhole Schritt 3, bis sich keine neuen Markierungen mehr ergeben. (Insgesamt ergeben sich
2O(S(n)) Wiederholungen von Schritt 3, also insgesamt (2O(S(n)) )2 = 2O(S(n)) Schritte.)
5. Gib 1 aus genau dann wenn Caccept markiert ist.
?
Die vielleicht bekannteste offene Frage aus der Komplexitätstheorie ist P = NP. Überraschenderweise
ist diese Frage für Band komplexitätsklassen relativ einfach klärbar:
Satz 3.6 (Savitch, Theorem 4.12 in [1]). Wenn S : N → N bandkonstruierbar ist, dann gilt NSPACE(S(n)) ⊆
SPACE(S(n)2 ).
Beweis. Sei M eine NDTM mit Bandkomplexität S(n). Wir konstruieren eine deterministische TM M̃ mit
Bandkomplexität O(S(n)2 ), die dieselbe Sprache wie M entscheidet. Wie im Beweis von Satz 3.5 können
annehmen, dass für jedes x ∈ {0, 1}n der Konfigurationsgraph GM,x höchstens m := 2O(S(n)) Knoten hat,
zyklenfrei ist, und eine eindeutige akzeptierende Konfiguration Caccept existiert.
Betrachte die Funktion reach?(u, v, i), die angibt, ob Knoten v von Knoten u durch einen Pfad der
Länge ≤ 2i erreichbar ist. Offensichtlich gilt
reach?(Cstart , Caccept , dlog me) = 1
⇐⇒
M akzeptiert x.
Wir implementieren reach? rekursiv. Zunächst kann reach?(u, v, 0) mit Bandkomplexität O(S(n)) berechnet werden. Weiter ist reach?(u, v, i) = 1 genau dann wenn eine Zwischenkonfiguration“ w existiert
”
mit reach?(u, w, i − 1) = 1 und reach?(w, v, i − 1) = 1. Demnach kann reach?(u, v, i) wie folgt implementiert werden:
• Für alle syntaktisch möglichen Knoten w:
– Wenn reach?(u, w, i − 1) = reach?(w, v, i − 1) = 1, gib reach?(u, v, i) = 1 zurück.
• Gib reach?(u, v, i) = 0 zurück.
Man beachte, dass bei jedem rekursiven Abstieg nur zusätzlicher Speicherplatz O(S(n)) benötigt wird,
um sich die Werte für u, v, w, und i zu merken. Da wir reach?(Cstart , Caccept , dlog me) aufrufen, ergibt
sich eine Bandkomplexität von O(dlog me · S(n)) = O(S(n)2 ).
Korollar 3.7. PSPACE = NPSPACE.
4
Manche Probleme sind schwieriger als andere
Satz 4.1 (Zeithierarchietheorem, Theorem 3.1 in [1]). Seien t, T : N → N zeitkonstruierbar mit t(n) log t(n) =
o(T (n)). Dann ist DTIME(t(n)) ( DTIME(T (n)).
Beweis. Wir beweisen zunächst DTIME(n) ( DTIME(n1,5 ). Man betrachte dazu die TM D, die bei
Eingabe x ∈ {0, 1}n die universelle Turingmaschine U(x, x) für n1,4 Schritte simuliert. Gibt U(x, x) Ausgabe y ∈ {0, 1}, dann gibt D Ausgabe 1 − y. Andernfalls gibt D Ausgabe 0. Die Sprache L, die von D
entschieden wird, liegt offenbar in DTIME(n1,5 ).
Nehmen wir zum Widerspruch an, dass L ∈ DTIME(n) ist. Dann existiert einerseits eine TM M ,
die L in O(n) Schritten entscheidet. Insbesondere gilt M (x) = D(x) für alle x ∈ {0, 1}∗ . Andererseits
simuliert D(x) die Ausführung von Mx (x) in F (|x|) = O(|x| log |x|) Schritten. Es existiert also ein x mit
5
F (|x|) < |x|1,4 und Mx = M . Nach Definition von D gilt also D(x) = 1 − Mx (x) = 1 − M (x), was
D(x) = M (x) widerspricht.
Dies beweist den Satz für t(n) = n und T (n) = n1,5 . Der allgemeine Fall folgt analog, erfordert jedoch
mehr Sorgfalt bei der Wahl und Analyse der Konstanten.
Mit analogem Beweis ergibt sich:
Satz 4.2 (Bandhierarchietheorem, Theorem 4.8 in [1]). Seien t, T : N → N bandkonstruierbar mit t(n) =
o(T (n)). Dann ist SPACE(t(n)) ( SPACE(T (n)).
Der fehlende log T (n)-Faktor ergibt sich daraus, dass universelle Simulation mit U zwar einen logarithmischen Zeit-Overhead, jedoch nur einen konstanten Band-Overhead hat.
Der nichtdeterministische Fall gestaltet sich komplizierter:
Satz 4.3 (Nichtdeterministisches Zeithierarchietheorem, Theorem 3.2 in [1]). Seien t, T : N → N zeitkonstruierbar mit t(n + 1) = o(T (n)). Dann ist NTIME(t(n)) ( NTIME(T (n)).
Beweis. Wir beweisen nur NTIME(n) ( NTIME(n1,5 ). Man ist versucht, die Strategie aus dem Beweis
von Satz 4.1 direkt zu übernehmen. Dies scheitert jedoch, da es nichttrivial ist, die Ausgabe einer NDTM
zu invertieren. Unsere geänderte Strategie sieht deshalb vor, eine NDTM zu simulieren und nur auf sehr
wenigen Eingaben zu invertieren.
1,2
Man betrachte dazu die Funktion f : N → N mit f (1) = 2 und f (i + 1) = 2f (i) . Sei D die NDTM,
die bei Eingabe der Form 1n (andere Eingaben führen direkt zur Ablehnung) wie folgt verfährt:
1. Finde i mit f (i) < n ≤ f (i + 1). (Dies kann in O(n1,5 ) Schritten geschehen.)
2. Ist n < f (i + 1), so simuliere nichtdeterministisch Mi (1n+1 ) für n1,1 Schritte und gib Mi s Ausgabe
aus. Hält Mi nicht, gib 0 aus. (Dies kann in O(n1,5 ) Schritten geschehen.)
3. Ist n = f (i + 1), ermittle durch vollständige Suche über Mi s mögliche Schritte, ob Mi (1f (i)+1 ) in
(f (i)+1)1,1 Schritten ablehnt oder akzeptiert. Gib 1−Mi (1f (i)+1 ) aus, oder 0, falls Mi zu lange läuft.
1,1
Dieser Schritt erfordert eine vollständige Suche über 2(f (i)+1) Transitionsmöglichkeiten. Wegen
1,2
n = f (i + 1) = 2f (i) ist dies aber in O(n1,5 ) Schritten möglich.
Wenn L die Sprache bezeichnet, die D entscheidet, gilt also L ∈ NTIME(n1,5 ).
Nehmen wir zum Widerspruch an, dass L ∈ NTIME(n), und dass eine NDTM M mit Zeitkomplexität
O(n) existiert, die L entscheidet. Dann existiert ein hinreichend großes i, so dass M = Mi ist, und dass
M (1n+1 ) für alle n ≥ f (i) in weniger als n1,1 Schritten simuliert werden kann. Nach Konstruktion von D
gilt dann
D(1n ) = M (1n+1 )
f (i+1)
D(1
f (i)+1
) 6= M (1
für f (i) < n < f (i + 1),
).
Nach Annahme gilt D(1n ) = M (1n ) für alle n, was zum Widerspruch führt.
5
NP
Definitionen.
Wir nennen eine TM M mit polynomieller Zeitkomplexität auch Polynomialzeit-TM.
Definition 5.1 (NP, alternative Definition). NP ist die Menge aller Sprachen L ⊆ {0, 1}∗ , für die ein
Polynom p : N → N und eine Polynomialzeit-TM M existiert mit
x∈L
⇐⇒
∃w ∈ {0, 1}p(|x|) mit M (x, w) = 1
für alle x ∈ {0, 1}∗ . Solche w heißen Zeugen (für die Aussage x ∈ L).
Bemerkung 5.2. Diese Definition ist offensichtlich äquivalent zu unserer generischen Definition: eine
NDTM kann den Zeugen durch nichtdeterministische Zustandsübergänge raten“ und dann überprüfen.
”
Umgekehrt kann die Folge der zu qaccept führenden Zustandsübergänge einer NDTM als Zeuge betrachtet
werden. NP kann also als die Menge der Sprachen betrachtet werden, die effizient verifizierbare (Mitgliedschafts-)Beweise haben.
6
Definition 5.3 (co-Klassen). Für eine Sprache L ⊆ {0, 1}∗ sei L = {0, 1}∗ \ L deren Komplement. Für
eine Menge CLASS von Sprachen sei dann
coCLASS := {L | L ∈ CLASS}.
Insbesondere ist coNP = {L | L ∈ NP}. Zwar ist trivialerweise coP = P, aber es ist nicht trivialerweise coNP = NP. Tatsächlich wird vermutet, dass coNP 6= NP ist. (Übungsaufgabe: Wenn
coNP 6= NP, dann gilt sowohl coNP 6⊃ NP als auch coNP 6⊂ NP.) Man beachte außerdem, dass aus
coNP 6= NP schon P 6= NP folgt.
Beispiel 5.4. Beispiele für Sprachen in NP (wobei eine geeignete Codierung als Bitstrings angenommen
wird):
COMPOSITE := {x | x ∈ N hat mehr als einen Primfaktor}
PRIMES := {x | x ∈ N ist prim}
GI := {(G1 , G2 ) | G1 und G2 sind isomorphe Graphen}
Wir haben sogar PRIMES ∈ P, und deshalb COMPOSITE = PRIMES ∈ coP = P. Auch ist für
GNI := {(G1 , G2 ) | G1 und G2 sind nicht-isomorphe Graphen}
GNI = GI ∈ coNP. Es ist nicht bekannt, ob GI ∈ P gilt.
NP-Vollständigkeit.
Definition 5.5 (Karp-Reduktion, Härte, Vollständigkeit). Eine Sprache L ⊆ {0, 1}∗ ist (PolynomialzeitKarp-)reduzierbar auf eine Sprache L0 ⊆ {0, 1}∗ , geschrieben L ≤K L0 , wenn es eine in Polynomialzeit
berechenbare Funktion f : {0, 1}∗ → {0, 1}∗ gibt, so dass für alle x ∈ {0, 1}∗ gilt:
x∈L
⇐⇒
f (x) ∈ L0 .
Sei CLASS eine Menge von Sprachen, etwa CLASS = NP. Dann ist L0 CLASS-hart, wenn L ≤K L0
für alle L ∈ CLASS gilt. L0 ist CLASS-vollständig, wenn L0 CLASS-hart ist und L0 ∈ CLASS.
Bemerkung 5.6. Im Falle P 6= NP liegt jede NP-vollständige Sprache schon in NP \ P.
Definition 5.7 (SAT, 3SAT). Man wähle eine geeignete Codierung von aussagenlogischen Formeln in
konjunktiver Normalform (CNF). (Also Formeln der Form (u1 ∨ ū2 )∧(ū1 ∨ ū3 ) etc.) Literale sind Variablen
oder negierte Variablen, und Klauseln sind Disjunktionen von Literalen. Es bezeichne SAT die Sprache
aller erfüllbaren Formeln in CNF. Weiter bezeichne 3SAT die Sprache aller erfüllbaren Formeln in 3CNF,
also Formeln mit höchstens 3 Literalen pro Klausel.
Satz 5.8 (Cook-Levin, Theorem 2.10 in [1]). Sowohl SAT als auch 3SAT sind NP-vollständig.
Bemerkung 5.9. Neben SAT und 3SAT sind eine Reihe weiterer Sprachen als NP-vollständig bekannt:
3-Färbbarkeit von Graphen, das Problem des Handlungsreisenden, Sudoku, Tetris, und viele mehr. Es sind
momentan mehr als 3000 NP-vollständige Probleme bekannt. Da man P 6= NP vermutet, wird für alle
diese Sprachen angenommen, dass sie in NP \ P liegen, also nicht in Polynomialzeit entschieden werden
können.
Aber nicht alle Sprachen in NP \ P sind NP-vollständig, vorausgesetzt, dass P 6= NP:
Satz 5.10 (Ladner, Theorem 3.3 in [1]). Wenn P 6= NP ist, gibt es eine Sprache L ∈ NP \ P, die nicht
NP-vollständig ist.
Beweis. Betrachte L := SATH , wobei H : N → N eine noch festzulegende in Polynomialzeit berechenbare
und monoton wachsende Funktion ist:
H(n)
SATH := {ψ01n
| ψ ∈ SAT und n = |ψ|}.
In Abhängigkeit von H gibt es zwei Möglichkeiten (man beachte, dass H monoton ist!):
7
1. Ist H beschränkt (etwa H(n) ≤ C ∈ N für alle n), dann ist SATH NP-vollständig. (Die triviale
Reduktion SAT ≤K SATH fügt lediglich das polynomielle Padding hinzu.)
2. Gilt aber limn→∞ H(n) = ∞, dann ist SATH nicht NP-vollständig. Nehmen wir zum Widerspruch
SAT ≤K SATH an. Dann gibt es eine mit Aufwand O(ni ) (für festes i ∈ N) berechenbare Funktion
H(|ψ|)
f , die SAT-Instanzen ψ 0 der Länge n auf SATH -Instanzen ψ01|ψ|
der Länge |ψ| + 1 + |ψ|H(|ψ|) =
O(ni ) abbildet. Wegen limn→∞ H(n) = ∞ ist |ψ| = o(n). Damit können also beliebige SAT-Instanzen
der Länge n auf SAT-Instanzen der Länge o(n) reduziert werden. Insbesondere existiert ein n0 , so
dass jede SAT-Instanz der Länge n ≥ n0 in O(ni ) Schritten auf eine SAT-Instanz n0 < n reduziert
werden kann. Eine SAT-Instanz der Länge n0 kann aber in konstanter Zeit gelöst werden. Damit kann
also SAT rekursiv in Polynomialzeit gelöst werden, und SAT ∈ P, im Widerspruch zur Annahme
P 6= NP.
Wir definieren nun eine geeignete Funktion H. Genauer ist H 0 (n) die kleinste natürliche Zahl i < log log n,
so dass für alle x ∈ {0, 1}∗ mit |x| ≤ log n gilt: Mi (x) hält in i|x|i Schritten und Mi (x) = 1 ⇔ x ∈ SATH .
Hierbei ist H die Monotonisierung von H 0 , also H(n) := maxm≤n H 0 (m). Wenn kein solches i existiert,
setzen wir H 0 (n) := log log n.
Man beachte, dass die Definition von H rekursiv, aber wohldefiniert ist. Wir behaupten, dass SATH eine
geeignete Sprache ist. Zunächst ist H offenbar monoton. Weiter ist H 0 (und damit H) in Polynomialzeit
berechenbar: zur Berechnung von H reicht eine Reihe von universellen Simulationen aus, bei denen sowohl
die Eingaben als auch die Gödelnummer logarithmisch (bzw. doppelt logarithmisch) klein sind. Weiter
gilt:
1. Falls SATH ∈ P, dann gibt es eine TM M , die SATH in cnc Schritten (für geeignetes c ∈ N)
i
entscheidet. Sei i > c mit Mi = M . Nach Definition von H 0 gilt für n > 22 also H 0 (n) ≤ i. Dann
ist H beschränkt, und SATH ist NP-vollständig, was SATH ∈ P widerspricht.
2. Falls SATH NP-vollständig ist, gilt SATH 6∈ P, und für jedes i ∈ N gibt es ein (hinreichend langes)
x ∈ {0, 1}∗ , so dass Mi (x) nicht korrekt entscheidet, ob x ∈ SATH ist. Insbesondere kann es nur
endlich viele n ∈ N mit H 0 (n) = i geben. Das bedeutet, dass H 0 (n) beliebig große Werte annimmt.
Damit ist limn→∞ H(n) = ∞, und SATH ist nicht NP-vollständig, im Widerspruch zur Annahme.
Insgesamt ist SATH also weder in P, noch NP-vollständig, und leistet demnach das Gewünschte.
Bemerkung 5.11. Es sind keine natürlichen“ Sprachen bekannt, die – unter der Annahme P 6= NP
”
– in NP \ P liegen und nicht NP-vollständig sind. Es gibt auch nur wenige Kandidaten hierfür; ein
bekannter Kandidat ist das Faktorisierungsproblem: gegeben (N, k) ∈ N2 , entscheide, ob N einen Teiler
≤ k hat.
?
Die Schwierigkeit der P = NP-Frage. Die Frage, ob P = NP gilt, ist aus mehreren Gründen
interessant. Zum einen kann sie umformuliert werden als Frage, ob alles, was effizient nachvollziehbar
ist, auch effizient berechnet werden kann. Zum anderen stellt sie als ungelöstes Problem eine technische
Herausforderung dar. Es gibt Gründe, warum die Frage bislang noch nicht gelöst werden konnte. Einer
dieser Gründe soll jetzt näher betrachtet werden.
Definition 5.12 (Orakel-TM). Eine (deterministische oder nichtdeterministische) Orakel-Turingmaschine
M ist eine TM mit
• einem speziellen (Schreib-/Lese-)Orakelband,
• speziellen Zuständen qquery , qyes , und qno .
M kann wie folgt mit einem Orakel O ⊆ {0, 1}∗ ausgeführt werden: M wird wie üblich ausgeführt, jedoch
• wann immer M den Zustand qquery erreicht, wird der Inhalt von M s Orakelband als Bitstring x ∈
{0, 1}∗ interpretiert, und
• falls x ∈ O, so wird M s Zustand in qyes überführt, und
• falls x 6∈ O, so wird M s Zustand in qno überführt.
?
Mit anderen Worten, M kann Anfragen x ∈ O stellen. Für diese Ausführung schreiben wir auch M O .
Für festes O ⊆ {0, 1}∗ sind die Sprachklassen PO , NPO , etc. in offensichtlicher Weise definiert.
Definition 5.13 (EXP).
EXP :=
[
c
DTIME(2n ).
c∈N
8
Satz 5.14 (Baker, Gill, Solovay, Theorem 3.7 in [1]). Es existieren Orakel A, B ⊆ {0, 1}∗ mit PA = NPA
und PB 6= NPB .
Beweis. Wir definieren geeignete Orakel A und B:
Das Orakel A. Wir setzen
(i, x, 1n ) ∈ A
Mi (x) gibt 1 in ≤ 2n Schritten aus.
:⇐⇒
Dann gilt EXP ⊆ PA , weil A erlaubt, exponentielle TMs effizient zu simulieren. Andererseits gilt
NPA ⊆ EXP, weil in exponentieller Zeit sowohl A als auch eine Polynomialzeit-NDTM simuliert
werden können. Also ist
EXP ⊆ PA ⊆ NPA ⊆ EXP,
also PA = NPA = EXP.
Das Orakel B. Für gegebenes B ⊆ {0, 1}∗ betrachte man zunächst die Sprache
UB = {1n | B ∩ {0, 1}n 6= ∅}.
Es ist UB ∈ NPB , denn eine NDTM kann einen String x ∈ B ∩ {0, 1}n nichtdeterministisch raten
und dann über das B-Orakel überprüfen.
Wir konstruieren B iterativ und legen in jedem Schritt die charakteristische Funktion fB : {0, 1}∗ →
{0, 1} auf endlich vielen neuen Eingaben fest. Anfangs ist fB noch nirgendwo festgelegt. Im i-ten
Schritt wählen wir zunächst ein n, das größer ist als die Länge jeder bislang festgelegten Eingabe
x von f . Wir lassen MiB (1n ) für 2n /10 Schritte laufen (oder bis Mi hält), und beantworten Mi s
Orakelanfragen x wie folgt:
• Wenn fB (x) schon festgelegt wurde, antworten wir mit fB (x).
• Wenn fB (x) noch nicht festgelegt wurde, antworten wir mit 0 und setzen fB (x) := 0.
Gibt Mi (1n ) schließlich 0 aus, setzen wir fB (x) := 1 für alle noch nicht festgelegten x ∈ {0, 1}n .
Weil jedes Mi nur höchstens 2n /10 Schritte läuft, gibt es zu diesem Zeitpunkt noch mindestens
ein bis dahin noch nicht festgelegtes fB (x) für x ∈ {0, 1}n , weshalb in dem Fall 1n ∈ UB ist. Wir
setzen für alle verbleibenden x ∈ {0, 1}n analog fB (x) := 0, falls Mi (1n ) = 1 ist, so dass in dem
Fall 1n 6∈ UB ist. In jedem Fall gilt also Mi (1n ) = 1 ⇔ 1n 6∈ UB . (Hält Mi (1n ) nicht innerhalb von
2n /10 Schritten, ist unwichtig, wie wir weiter verfahren. Wir können etwa wie im Falle Mi (1n ) = 0
verfahren.)
Für alle durch dieses Verfahren noch nicht definierten fB (x) setzen wir fB (x) := 0. Unsere Konstruktion von f (bzw. von B und damit UB ) stellt sicher, dass keine TM M die Sprache UB in
Polynomialzeit entscheidet. In der Tat: für jedes Polynom T , welches M ’s Laufzeit beschränkt, gilt
schließlich T (n) < 2n /10 (für alle hinreichend großen n ≥ n0 ). Man wähle eine Gödelnummer i von
M (so dass M = Mi ist), für die i ≥ n0 gilt. (Solch ein i nach unserer Annahme, dass jede TM
durch unendlich viele Gödelnummern repräsentiert wird.) Dann gilt Mi (1i ) ⇔ 1i 6∈ UB nach unserer
Konstruktion von B.
Satz 5.14 zeigt, dass es keinen relativierenden Beweis für P = NP oder P 6= NP geben kann.
(Ein relativierender Beweis ist ein Beweis, der auch gültig bleibt, wenn alle Maschinen Zugriff auf ein
beliebiges, aber festes Orakel O haben.) Man beachte, dass unsere bisherigen Diagonalisierungsbeweise
?
alle relativieren. Man kann also zwar hoffen, P = NP durch Diagonalisierung zu klären; man wird aber in
jedem Fall nicht-relativierende Techniken benutzen müssen. (Wir werden nicht-relativierende Techniken
noch im Kontext interaktiver Beweissysteme kennenlernen.)
Ausflug: Brassards Satz. Zunächst benötigen wir einige Definitionen.
Definition 5.15 (Probabilistische TM). Eine probabilistische Turingmaschine (PTM) ist eine TM mit
zwei Transitionsfunktionen δ0 , δ1 . In jedem Schritt wird δ0 bzw. δ1 jeweils mit Wahrscheinlichkeit 1/2
angewandt. Die Ausgabe M (x) von M bei Eingabe x ∈ {0, 1}∗ ist demnach eine Zufallsvariable.
Definition 5.16 (Public-Key-Verschlüsselung). Ein Public-Key-Verschlüsselungsschema (PKE-Schema)
PKE = (Gen, Enc, Dec) besteht aus drei probabilistischen Polynomialzeitalgorithmen (d.h. PTMs):
9
Schlüsselgenerierung. Gen(1n ) gibt Tupel (e, d) aus. e ist öffentlicher und d geheimer Schlüssel.
Verschlüsselung. Enc(e, m) gibt bei Eingabe eines öffentlichen Schlüssels und einer Nachricht m ∈ {0, 1}
ein Chiffrat c aus.
Entschlüsselung. Dec(d, c) gibt bei Eingabe eines geheimen Schlüssels und eines Chiffrats eine Nachricht
m aus.
Ein (öffentlicher oder geheimer) Schlüssel bzw. ein Chiffrat heißt wohlgeformt, wenn er/es mögliche Ausgabe von Gen bzw. mögliche Ausgabe von Enc für gegebenes e ist. Wir fordern, dass wohlgeformte geheime
und öffentliche Schlüssel und Chiffrate effizient erkennbar sind. Außerdem soll Korrektheit in dem Sinne gelten, dass Dec(d, Enc(e, m)) = m immer und für alle möglichen (e, d) im Bild von Gen und alle
m ∈ {0, 1} gilt. Insbesondere sind die Mengen der möglichen Chiffrate Enc(e, 0) und Enc(e, 1) für festes e
disjunkt.
Definition 5.17 (Schwache Sicherheit). Für ein PKE-Schema PKE = (Gen, Enc, Dec) betrachte man die
Sprache
LPKE = {(1n , e, c) | e ist wohlgeformt und c ist mögliche Ausgabe von Enc(e, 1)}.
Wir nennen PKE schwach sicher, wenn LPKE 6∈ P.
Es sind keine (schwach) sicheren PKE-Schemata bekannt, obwohl es Kandidaten hierfür gibt. Wegen
LPKE ∈ NP (was noch zu zeigen ist) würde die Existenz eines sicheren PKE-Schemas schon P 6= NP
implizieren. P 6= NP ist also eine notwendige Annahme für sichere PKE-Schemata. Andererseits gab es
Bestrebungen, sichere PKE-Schemata allein unter der Annahme P 6= NP zu konstruieren. Insbesondere
könnte man hoffen, LPKE als NP-vollständig zu zeigen; damit würde schon P 6= NP implizieren, dass
LPKE 6∈ P ist. Diese Bestrebungen waren (bislang) jedoch nicht von Erfolg gekrönt. Ein Grund hierfür ist
in Brassards Satz zu finden:
Satz 5.18 (Brassard, vereinfacht). Sei PKE ein PKE-Schema. Ist LPKE NP-hart, gilt NP = coNP.
Beweis. Zunächst ist LPKE ∈ NP ∩ coNP: einerseits ist der von Gen und Enc verwendete Zufall (d.h. die
Folge der Transitionen) ein Zeuge für (1n , e, c) ∈ LPKE . Andererseits bezeugt Zufall, mit dem (e, d) =
Gen(1n ) und c = Enc(e, 0) ist, dass (1n , e, c) 6∈ LPKE . (Da Wohlgeformtheit der Chiffrate nach Annahme
effizient nachprüfbar ist, können wir annehmen, dass e und c wohlgeformt sind, dass also ein Zeuge wie
oben entweder für (1n , e, c) ∈ LPKE oder für (1n , e, c) 6∈ LPKE existiert.)
Wir zeigen nun coNP ⊆ NP; sei dazu L ∈ coNP, also nach Definition L ∈ NP. Weil LPKE NPvollständig ist, gilt also L ≤K LPKE , weshalb nach Definition L ≤K LPKE ist. Nun ist LPKE ∈ coNP,
weshalb LPKE ∈ NP ist, womit schließlich L ∈ NP folgt. Also gilt coNP ⊆ NP, und somit coNP =
NP.
Weil vermutet wird, dass coNP 6= NP ist, gibt Brassards Satz also Anlass zur Vermutung, dass kein
LPKE tatsächlich NP-hart ist.
Beispiel: Polly Cracker. Es wurde schon häufiger versucht, PKE-Schemata zu konstruieren, deren
Sicherheit auf NP-vollständigen Problemen beruht. Ein Beispiel ist Polly Cracker:
Definition 5.19 (Polly Cracker). Das PKE-Schema Polly Cracker PKE = (Gen, Enc, Dec) ist wie folgt
definiert, wobei F = GF2 ist und X = (X1 , . . . , Xr ) Variablen sind:
Schlüsselgenerierung. Gen(1n ) generiert ` = `(n) Polynome f = (f1 , . . . , f` ) ⊆ F[X] mit gemeinsamer
Nullstelle s ∈ Fr .2 Öffentlicher Schlüssel ist e = f , und geheimer Schlüssel ist d = s.
Verschlüsselung. Enc(e, m) wählt Polynome (h1 , . . . , h` ) ⊆ F[X] und berechnet
c = c(X) = m +
`
X
hi (X) · fi (X) ∈ F[X].
i=1
Entschlüsselung. Dec(d, c) berechnet
m = c(s) ∈ F.
Zum Beispiel könnte man dazu beliebige Polynome fi0 ∈ F[X] und ein s ∈ Fn wählen, und dann fi (X) = fi0 (X) − fi0 (s)
setzen.
2
10
Korrektheit folgt sofort wegen
Dec(d, Enc(e, m)) = Dec(d, m +
`
X
hi (X) · fi (X)) = m +
i=1
`
X
i=1
hi (s) · fi (s) = m.
| {z }
=0
Eine konkrete Polly-Cracker-Instanz. Das Berechnen des geheimen Schlüssels d aus dem öffentlichen
Schlüssel e entspricht genau dem Lösen eines multivariaten Gleichungssystems f (X) = 0. Die vorangegangene Beschreibung von Polly Cracker legt nicht fest, wie genau die fi , die hi , oder auch nur ` gewählt
werden. Es gibt konkretere Vorschläge hierfür, die insbesondere eine Übersetzung NP-vollständiger Probleme ermöglichen. Etwa können wir einen Graphen G = (V, E) mit V = (v1 , . . . , vt ) und E ⊆ V × V
so auf Polynome f = (f1 , . . . , f` ) abbilden, dass jede Dreifärbung von G Anlass zu einer Lösung des
Gleichungssystems f (X) = 0 gibt:
X = (Xv,i )v∈V, 1≤i≤3
f1 = (Xv,1 + Xv,2 + Xv,3 + 1)v∈V
f2 = (Xv,i Xv,j )v∈V, 1≤i<j≤3
f3 = (Xu,i Xv,i )(u,v)∈E, 1≤i≤3
f = (f1 , f2 , f3 )
(Xv,i = 1 heißt: Knoten v hat Farbe i)
( = 0“ heißt 1 oder 3 Farben pro Knoten)
”
( = 0“ heißt höchstens eine Farbe pro Knoten)
”
( = 0“ heißt unterschiedliche Farben für benachbarte Knoten)
”
(also f (s) = 0 für alle f ∈ f ⇐⇒ sv,i induziert Dreifärbung).
Ist Polly Cracker NP-vollständig? Die vorangegangene Beschreibung suggeriert, dass Polly Cracker
so sicher ist wie NP-vollständige Probleme schwer sind“. Insbesondere scheint ein Widerspruch zu Bras”
sards Satz vorzuliegen. Dies ist jedoch nicht der Fall:
• Schwache Sicherheit“ wie im Satz von Brassard betrachtet das Problem, einzelne Chiffrate zu
”
entschlüsseln. Die NP-Vollständigkeit von Polly Cracker bezieht sich auf das Problem, den geheimen
Schlüssel aus dem öffentlichen zu berechnen.
• Tatsächlich kann, je nach Wahl der hi , ein Polly-Cracker-Chiffrat schon durch bloße lineare Algebra
gebrochen werden. (Man betrachte die Gleichung
c(X) = m +
`
X
hi (X) · fi (X)
i=1
bei bekanntem c, setze m und die Koeffizienten der hi als Unbekannte an, und vergleiche die Koeffizienten links und rechts.)
• Je nach Wahl der fi und der hi könnten wohlgeformte Schlüssel und Chiffrate nicht effizient erkennbar sein. (Im Falle der Dreifärbbarkeitsvariante oben sind allerdings zumindest wohlgeformte
Schlüssel effizient erkennbar.)
Warnung. Die Beschreibung der Sicherheit von Verschlüsselungssystemen mit den bislang besprochenen komplexitätstheoretischen Mitteln kann aus folgendem Grund nur unzureichend sein. Wir haben
bislang nur die Worst-Case-Komplexität“ von Problemen betrachtet. Das heißt, dass wir ein Problem als
”
schwer betrachtet haben, wenn es schwere Instanzen gibt. In der Kryptographie ist man aber vor allem an
Average-Case-Komplexität“ interessiert. Das bedeutet, dass etwa ein PKE-Schema nur dann als sicher
”
betrachtet werden sollte, wenn fast alle induzierten Probleminstanzen schwer sind. (Wer würde schon ein
Verschlüsselungsschema benutzen, das nur manchmal schwer zu brechen ist?)
Impagliazzos 5 Welten. 1995 hat Russell Impagliazzo 5 verschiedene mögliche Welten“ vorgestellt.
”
Hintergrund dieser Einteilung ist, dass wir zwar in einer dieser Welten leben – wir wissen aber nicht in
welcher. Abhängig davon, in welcher Welt wir leben, ergeben sich ganz unterschiedliche Konsequenzen.
Impagliazzos Welten sind:
Algorithmica. Es gilt P = NP (oder ein moralisches Äquivalent“ wie NP ⊆ BPP, wobei BPP die
”
Menge aller effizient von probabilistischen TMs erkennbaren Sprachen ist). In Algorithmica existieren keine PKE-Schemata, und genereller nur extrem eingeschränkte Kryptographie. Andererseits
können in Algorithmica viele Probleme (etwa Optimierungsprobleme) effizient gelöst werden, für
die im Augenblick nur Heuristiken existieren.
11
Heuristica. NP-vollständige Probleme haben schwierige Instanzen (und es gilt insbesondere P 6= NP),
alle NP-Probleme sind aber easy on average“. Anders gesagt: alle NP-Probleme sind heuristisch
”
lösbar. Diese Welt ähnelt Algorithmica, jedoch könnte die Lösung von Problemen um so schwieriger
werden, je ausgewählter“ die Probleminstanzen werden.
”
Pessiland. NP-Probleme sind hard on average“ (und damit ist P 6= NP), es gibt aber keine Ein”
wegfunktionen. (Einwegfunktionen sind noch zu definieren und stellen eine Voraussetzung für die
meisten kryptographischen Systeme – insbesondere Secret-Key- und Public-Key-Verschlüsselung –
dar.) Pessiland vereint die Nachteile der anderen Welten: NP-Probleme sind schwierig, aber nicht
nutzbar für kryptographische Zwecke.
Minicrypt. Es existieren Einwegfunktionen (was P 6= NP impliziert), aber keine Public-Key-Kryptographie
(also keine sicheren Schlüsselaustauschprotokolle oder PKE-Schemata).
Cryptomania. Es existiert sichere Public-Key-Kryptographie (und damit auch Einwegfunktionen).
6
Alternierung
Um die nun folgenden Techniken kennenzulernen, sehen wir uns zunächst ein PSPACE-vollständiges
Problem an:
Definition 6.1 (Quantifizierte Formeln, TQBF). Eine quantifizierte Boolesche Formel (QBF) ist eine
Formel
Q1 x1 Q2 x2 . . . Q` x` φ(x1 , . . . , x` ).
Hierbei ist Qi ∈ {∀, ∃}, die xi sind Variablen über {0, 1}, und φ ist eine aussagenlogische Formel. TQBF
ist die Sprache der (in der offensichtlichen Interpretation) wahren QBF.
Satz 6.2 (Theorem 4.13 in [1]). TQBF ist PSPACE-vollständig.
Beweis. Zunächst gilt TQBF ∈ PSPACE: eine QBF ψ kann rekursiv ausgewertet werden, wobei in
Rekursionstiefe i den i-ten Quantor Qi eliminiert. Im Basisfall muss φ für bekannte Eingaben xi ausgewertet werden, was mit |ψ| Bandkomplexität gelingt. Weiter benötigt jeder Rekursionsschritt lediglich
Bandkomplexität O(|ψ|).
Es bleibt nachzuweisen, dass TQBF PSPACE-hart ist, dass also jede Sprache L, die von einer TM M
mit polynomieller Bandkomplexität S(n) entschieden wird, auch auf TQBF reduzierbar ist. Dazu konstruieren wir für gegebenes x ∈ {0, 1}n eine QBF ψ mit ψ ∈ TQBF ⇔ M (x) = 1. Sei m = O(S(n)) die maximale Bitlänge einer Konfiguration von M . Wir starten mit einer aussagenlogischen Formel φM,x (C, C 0 )
für Bitstring-Variablen C, C 0 ∈ {0, 1}m , wobei φM,x (C, C 0 ) = 1 ist genau dann wenn Konfiguration C
mittels einer Transition in Konfiguration C 0 überführt werden kann.
Ähnlich wie beim Beweis des Satzes von Savitch werden wir nun schrittweise φM,x in (quantifizierte)
Formeln ψi abwandeln, so dass ψi (C, C 0 ) = 1 ist genau dann wenn C in höchstens 2i Transitionen in C 0
überführt werden kann. Wir setzen ψ0 := φM,x und definieren ψi (C, C 0 ) als
∃C 00 ∀D1 ∀D2 ((D1 = C ∧ D2 = C 00 ) ∨ (D1 = C 00 ∧ D2 = C 0 )) ⇒ ψi−1 (D1 , D2 ).
Diese etwas komplizierte Definition stellt sicher, dass die Größe von ψi nur linear in i wächst (anders etwa
als die naheliegendere Formel ∃C 00 ψi−1 (C, C 00 ) ∧ ψi−1 (C 00 , C 0 )).
Ähnlich wie bei Savitchs Satz gilt M (x) = 1 ⇔ ψcm (Cstart , Caccept ) ∈ TQBF für geeignetes festes c ∈ N.
Dabei ist |ψcm | = O(m2 ), was bedeutet, dass unsere Reduktion polynomiell ist.
Die Wahrheit einer QBF zu finden kann als Spiel angesehen werden: nehmen wir eine QBF ψ der Form
∃x1 ∀x2 . . . ∃xn−1 ∀xn φ(x1 , . . . , xn )
an. Stellen wir uns vor, dass alle Variablen mit ungeradem Index (x1 , x3 , . . .) von Spieler A gewählt werden,
während alle Variablen mit geradem Index (x2 , x4 , . . .) von Spieler B gewählt werden. Spieler A fängt an
und wählt x1 ; sodann wählt B x2 , und so fort. Spieler A gewinnt, wenn schließlich φ(x1 , . . . , xn ) = 1 ist.
Dann ist ψ genau dann wahr, wenn es für A eine Gewinnstrategie gibt.
12
Die polynomielle Hierarchie.
Definition 6.3 (Polynomielle Hierarchie). Sei i ≥ 1. Dann ist Σpi die Klasse aller Sprachen L, für die
eine Polynomialzeit-TM M und ein Polynom q existiert mit
x∈L
⇐⇒
∃u1 ∀u2 . . . Qi ui M (x, u1 , . . . , ui ) = 1,
wobei uj Variablen über {0, 1}q(|x|) sind, und Qi = ∃ oder Qi = ∀ je nachdem, ob i ungerade oder gerade
ist.
Weiter ist Πpi := coΣpi , und die polynomielle Hierarchie ist definiert als
[ p
Σi .
PH :=
i≥1
Man beachte, dass demnach Πpi aus allen Sprachen L besteht, für die M und q existieren mit
x∈L
⇐⇒
∀u1 ∃u2 . . . Qi ui M (x, u1 , . . . , ui ) = 1,
für Variablen uj wie oben und
einzusehen, dass Σpi ⊆ Πpi+1 ⊆ Σpi+2
S Qi p= ∃ für gerade i. Hiermit ist einfach
gilt, und deshalb PH = i≥1 Πi . Man beachte weiter, dass Σp1 = NP, und Πp1 = coNP ist. Es ist
unbekannt, ob Σpi = Σpi+1 für ein i gilt. (Man glaubt, dass dies nicht so ist.) Weil TQBF ∈ PSPACE ist,
gilt weiterhin Σpi ⊆ PSPACE; die Klassen Σpi bilden somit eine Hierarchie zwischen NP und PSPACE.
Der folgende Satz zeigt eine Motivation für Interesse an der polynomiellen Hierarchie:
Satz 6.4 (Theorem 5.4 in [1]). Es gilt:
1. Für jedes i ≥ 1 ist PH = Σpi sofern Σpi = Πpi . Wir sagen in diesem Fall, dass die polynomielle
Hierarchie zur i-ten Ebene kollabiert.
2. P = NP impliziert PH = P. In diesem Fall kollabiert die polynomielle Hierarchie zu P.
Beweis. Wir zeigen nur die zweite Behauptung; der Beweis für die erste Behauptung ist ähnlich. Genauer
zeigen wir durch vollständige Induktion über i ≥ 1, dass Σpi = P gilt; Πpi = coΣpi = coP = P folgt dann
sofort. Für i = 1 folgt Σpi = NP = P nach Annahme.
Sei also Σpi−1 = Πpi−1 = P und L ∈ Σpi . Dann gibt es eine Polynomialzeit-TM M und ein Polynom q
mit
x ∈ L ⇐⇒ ∃u1 ∀u2 . . . Qi ui M (x, u1 , . . . , ui ) = 1
mit Variablen uj ∈ {0, 1}q(|x|) und Qi = ∃ oder Qi = ∀ je nachdem, ob i ungerade oder gerade ist.
Betrachte die Sprache L0 mit
(x, u1 ) ∈ L0
⇐⇒
∀u2 ∃u3 . . . Qi ui M (x, u1 , . . . , ui ) = 1.
Nach Induktionsannahme gilt L0 ∈ Πpi−1 = P, und L0 wird von einer Polynomialzeit-TM M 0 entschieden.
Also ist
x ∈ L ⇐⇒ ∃u1 ∈ {0, 1}q(|x|) M 0 (x, u1 ) = 1.
Demnach ist L ∈ NP = P, was Σpi ⊆ P und damit wie gewünscht Σpi = P zeigt.
Alternierende Turingmaschinen.
Definition 6.5 (ATM, ATIME, AP). Eine alternierende TM (ATM) M ist definiert wie eine NDTM,
jedoch hat jeder Zustand q außer qaccept und qhalt ein Label l(q) ∈ {∀, ∃}. Bei einer Ausführung von M
können wie bei einer NDTM beide Transitionsfunktionen genutzt werden. Wir legen nun fest, wann M
eine Eingabe x ∈ {0, 1}∗ akzeptiert. Hierbei beschränken wir uns auf ATMs M , die Zeitkomplexität T (n)
haben, wobei T : N → N beliebig ist. (Das heißt, dass M immer nach höchstens T (n) Schritten qhalt oder
qaccept erreicht.)
Es bezeichne GM,x den Konfigurationsgraphen von M bei Eingabe x. Eine Konfiguration ist ∀- bzw. ∃Konfiguration, wenn dies für den Zustand von M in dieser Konfiguration gilt. Wir markieren nun Knoten
C von GM,x :
• Zunächst werden alle Konfigurationen C, in denen M im akzeptierenden Zustand qaccept ist, markiert.
13
• Anschließend werden alle ∃-Konfigurationen markiert, bei denen mindestens eine direkte Nachfolgekonfiguration markiert ist.
• Weiter werden alle ∀-Konfigurationen markiert, bei denen alle direkten Nachfolgekonfigurationen
markiert sind.
• Dieses Verfahren wird fortgesetzt, bis keine neuen Markierungen mehr hinzukommen.
M (x) akzeptiert, wenn die Startkonfiguration (mit Zustand qstart ) markiert ist.
Für T : N → N ist ATIME(T (n)) die Menge aller
S Sprachen, die von einer ATM mit Zeitkomplexität
O(T (n)) akzeptiert wird. Damit setzen wir AP = T ∈N[X] ATIME(T (n)).
Man beachte, dass eine NDTM einfach eine ATM ist, bei der die Labels aller Zustände ∃ sind. Im
Gegensatz zu einer NDTM können wir aber die Ausgabe einer ATM negieren, indem wir qaccept und qhalt
vertauschen, sowie alle Labels ändern. (Die Regeln von de Morgan zeigen, dass diese Transformation zur
Negation der Ausgabe führt.)
Beispiel 6.6 (ATM). Sei
L := {N ∈ N | N = pq für Primzahlen p und q} .
Weil es einen (nichttrivialen) deterministischen Polynomialzeit-Primzahltest gibt, liegt diese Sprache
schon in NP, und damit insbesondere in AP. (Mögliche Zeugen wären etwa p oder q.) Wir geben hier
aber eine besonders einfache ATM M an, die L entscheidet.
M (x) rät zunächst mittels ∃-Zuständen p ∈ {1, . . . , N } und q ∈ {1, . . . , N } und überprüft dann, ob
alle folgenden Bedingungen erfüllt sind:
a. N = pq,
b. p ist prim,
c. q ist prim.
Wenn a., b., und c. gelten, akzeptiert M . Hierbei kann b. (und analog c.) wie folgt verifiziert werden: M
wählt mittels ∀-Zuständen einen Teiler t ∈ {2, . . . , p − 1} und überprüft, ob t|p gilt. Wenn ja, so ist p nicht
prim, und M betritt qhalt . Wenn t 6 |p gilt, akzeptiert M .
Satz 6.7 (Theorem 5.10 in [1]). AP = PSPACE.
Beweis. Zum einen gilt PSPACE ⊆ AP, weil TQBF ∈ AP ist. Genauer kann eine geeignete ATM M
bei gegebener QBF ψ der Form
Q1 x1 Q2 x2 . . . Q` x`
φ(x1 , . . . , x` )
zunächst Variablen xi ∈ {0, 1} in ∃- bzw. ∀-Zuständen (je nach Qi ) raten“ und φ(x1 , . . . , x` ) auswerten.
”
Die Definition von Akzeptanz bei ATMs stellt sicher, dass ψ ∈ TQBF ⇔ M (ψ) = 1 ist.
Andererseits kann AP ⊆ PSPACE ähnlich gezeigt werden, wie in Satz 6.2 TQBF ∈ PSPACE gezeigt
wurde: genauer kann das Label der Startkonfiguration einer ATM rekursiv bestimmt werden, was lediglich
polynomiellen Bandplatz erfordert.
7
Interaktive Beweissysteme
Deterministische interaktive Beweissysteme.
Definition 7.1 (k-Runden-Interaktion). Für zwei Funktionen f, g : {0, 1}∗ → {0, 1}∗ , eine Eingabe
x ∈ {0, 1}∗ und k = k(|x|) ≥ 0 bezeichnet hf, gi(x) die k-Runden-Interaktion von f und g. Dabei ist
hf, gi(x) die Konkatenation der Bitstrings a1 := f (x), a2 := g(x, a1 ), a3 := f (x, a1 , a2 ), . . . , ak , sowie
der Ausgabe outf hf, gi(x) := f (x, a1 , . . . , ak ).
Definition 7.2 (Deterministisches interaktives Beweissystem, dIP). Eine deterministisches interaktives
Beweissystem für eine Sprache L ⊆ {0, 1}∗ sind zwei TMs (P, V), wobei gilt:
Effizienz. V (der Verifier) hat polynomielle Zeitkomplexität in der ersten Eingabe. P (der Prover) ist
nicht beschränkt.
Vollständigkeit. Für alle x ∈ L gilt outV hV, Pi(x) = 1.
Soundness. Für alle x 6∈ L und alle TMs P0 gilt: outV hV, P0 i(x) = 0.
14
Für k : N → N bezeichnet dIP[k] die Klasse aller Sprachen L ⊆ {0, 1}∗ , für die ein deterministisches
Beweissystem (P, V) mit k-Runden-Interaktion existiert. Weiter ist
[
dIP[k].
dIP :=
k∈N[X]
Satz 7.3 (Lemma 8.4 in [1]). dIP = NP.
Beweis. Zunächst hat jede Sprache L ∈ NP ein triviales Beweissystem, in dem P lediglich einen Zeugen
für x ∈ L sendet. Weiter sei L ∈ dIP[k], so dass P existiert mit ∀x ∈ L : outV hV, Pi(x) = 1. Für gegebenes
x ∈ L ist das (eindeutige) Transkript hV, Pi(x) ein Zeuge für x ∈ L. Zum einen kann ein solches Transkript
effizient (mittels V) auf Gültigkeit überprüft werden; andererseits existiert im Falle x 6∈ L kein in diesem
Sinne überzeugendes Transkript. (Andernfalls gäbe es ein P mit outV hV, P0 i(x) = 1, was der Soundness
von (P, V) widerspräche.)
Deterministische interaktive Beweissysteme sind demnach nicht mächtiger als nicht-interaktive Beweissysteme (im Sinne von NP). Die Situation wird bedeutend interessanter, wenn wir Probabilismus
zulassen.
Probabilistische interaktive Beweissysteme.
Definition 7.4 (Probabilistische interaktive Beweissysteme, IP). Ein (probabilistisches) interaktives Beweissystem für eine Sprache L ⊆ {0, 1}∗ besteht aus zwei TMs (P, V), so dass
Effizienz. V ist probabilistisch (im Sinne von Definition 5.15) und hat polynomielle Zeitkomplexität in
der ersten Eingabe. P ist deterministisch und nicht beschränkt.
Vollständigkeit. Für alle x ∈ L gilt Pr [outV hV, Pi(x) = 1] ≥ 2/3.
Soundness. Für alle x 6∈ L und alle TMs P0 gilt Pr [outV hV, P0 i(x) = 1] ≤ 1/3.
Für k : N → N bezeichnet IP[k] die Klasse aller Sprachen L ⊆ {0, 1}∗ , für die ein interaktives Beweissystem (P, V) mit (probabilistischer) k-Runden-Interaktion existiert. Weiter ist
[
IP :=
IP[k].
k∈N[X]
Die Schranken 2/3 und 1/3 sind (fast) beliebig. Mehrfache Ausführung des interaktiven Beweises zeigt,
dass beliebige feste Schranken 1/2 + c bzw. 1/2 − c für festes 0 < c < 1/2 zu einer äquivalenten Definition
von IP führen. (Wie steht es um den Fall c = 1/2?)
Im Falle von probabilistischen interaktiven Beweissystemen wie oben spricht man auch von privatecoin-Beweissystemen, da der Verifier seine Zufallsentscheidungen nicht notwendig öffentlich machen muss.
Offenbar gilt NP = dIP ⊆ IP. Es gibt allerdings auch interessantere interaktive Beweissysteme:
Beispiel 7.5. Wir haben schon gesehen, dass die Sprache graph non-isomorphism“
”
GNI := {(G1 , G2 ) | G1 und G2 sind nicht-isomorphe Graphen}
in coNP liegt. Aber es gilt auch GNI ∈ IP. Betrachte dazu folgendes interaktive Beweissystem (P, V):
1. V wählt i ∈ {1, 2} und eine Permutation π (der Knoten) von Gi gleichverteilt. V sendet H := π(Gi )
an P.
2. P überprüft, ob H isomorph zu G1 oder G2 ist (etwa durch vollständige Suche über eine Permutation). Sei H isomorph zu Gj . Dann sendet P j an V.
3. V gibt 1 aus genau dann, wenn i = j ist.
Es ist klar, dass dieses Protokoll effizient und vollständig ist. Um Soundness einzusehen nehme man
isomorphe Graphen G1 , G2 an. Dann ist H unabhängig von i, weshalb auch j unabhängig von i ist.
Unabhängig von P gibt also V 1 mit Wahrscheinlichkeit höchstens 1/2 aus. (Schon zwei Wiederholungen
des interaktiven Beweises führen also zur Ablehnung von Instanzen x 6∈ GNI mit Wahrscheinlichkeit 3/4.)
Beispiel 7.6. Ähnlich wie im Falle der Sprache GNI lässt sich ein interaktives Beweissystem für die
Sprache
QNR := {(a, N ) | N ∈ N und a ∈ Z∗N ist ein quadratischer Nichtrest}
15
angeben. Zwar ist QNR ∈ coNP; es ist aber nicht bekannt, ob QNR in NP liegt. Wir zeigen, dass
zumindest QNR ∈ IP gilt. Sei zunächst ohne Beschränkung der Allgemeinheit a ∈ Z∗N . Wir definieren
nun P und V wie folgt:
1. V wählt b ∈ {0, 1}, sowie r ∈ Z∗N gleichverteilt und sendet c := r2 ab mod N an P.
2. P prüft, ob c ein quadratischer Rest ist, und sendet b0 ∈ {0, 1} (mit b0 = 0 genau dann wenn c
quadratischer Rest ist) an V.
3. V gibt 1 aus genau dann wenn b = b0 ist.
Wieder ist klar, dass dieses Protokoll effizient und vollständig ist. Auch gilt Soundness: falls a ∈ Z∗N ein
quadratischer Rest ist, hängt c und damit b0 nicht von b ab. Es gilt dann also Pr [b = b0 ] ≤ 1/2 für jedes P.
Warnung. Meist übergangen wird folgende Komplikation: es ist mit einer wie üblich definierten probabilistischen Polynomialzeit-TM nicht möglich, etwa 1 mit Wahrscheinlichkeit exakt 1/3 auszugeben.
Insbesondere ist es im Allgemeinen auch nicht möglich, eine Permutation π wie oben exakt gleichverteilt zu wählen. (Allerdings sind exponentiell genaue Approximationen möglich, was im Beispiel oben
hinreichend ist, aber eine kompliziertere Analyse erfordert.)
7.1
IP ⊆ PSPACE
Eine naheliegende Frage ist nun beispielsweise, ob auch coNP ⊆ IP gilt. Die Antwort ist ja“; tatsächlich
”
gilt sogar:
Satz 7.7 (Theorem 8.19 in [1]). IP = PSPACE.
Wir werden den Beweis von Satz 7.7 aufteilen. Zunächst soll IP ⊆ PSPACE bewiesen werden, wobei
wir der Darstellung aus [3, Chapter 17] folgen.
Lemma 7.8. Sei L ∈ IP, so dass ein interaktives Beweissystem (P, V) existiert, wobei P polynomielle
Bandkomplexität hat. Dann ist L ∈ PSPACE.
Beweis. Seien L und (P, V) wie im Lemma. Dann gilt nach Definition:
• x ∈ L genau dann wenn Pr [outV hV, Pi(x) = 1] ≥ 2/3.
• x 6∈ L genau dann wenn Pr [outV hV, Pi(x) = 1] ≤ 1/3.
Außerdem ist V polynomiell zeitbeschränkt. Es existiert also ein Polynom p : N → N, so dass die Gesamtlänge aller ausgetauschten Nachrichten höchstens p(|x|) ist. Eine einzelne TM M kann bei Eingabe x somit eine vollständige Suche über alle 2p(|x|) Transitionsmöglichkeiten von V, über alle 2p(|x|)
möglichen P-Nachrichten, und alle damit verbundenen V-Ausgaben anstellen. Mittels Gewichtung kann
M so q := Pr [outV hV, Pi(x) = 1] bestimmen. Ist q ≥ 2/3, so folgt x ∈ L, und M kann 1 ausgeben.
Andernfalls (q ≤ 1/3) folgt x 6∈ L, und M kann 0 ausgeben.
Es bleibt zu zeigen, dass jeder Prover P durch einen Beweiser Popt ersetzt werden kann, der polynomielle
Bandkomplexität hat. Sei also ein Beweissystem (P, V) gegeben. Wie üblich bezeichne x ∈ {0, 1}n die
gemeinsame Eingabe. Wir nehmen ohne Beschränkung der Allgemeinheit an, dass ein Polynom p : N → N
existiert, so dass
• jede Nachricht aus exakt p(n) Bits besteht, und
• V seine Ausgabe immer nach exakt p(n) ausgetauschten Nachrichten generiert.
Sei im Folgenden Ai ∈ {0, 1}p(n) die i-te ausgetauschte Nachricht.
Definition 7.9 (Optimaler Prover). Sei Popt die folgende TM, welche mit V interagiert. Ein partielles
Transkript (a1 , . . . , ai ) ∈ ({0, 1}p(n) )i heißt möglich, wenn a1 , a3 , . . . mögliche Nachrichten von V bei PNachrichten a2 , a4 , . . . sind. Für ein mögliches vollständiges Transkript a = (a1 , . . . , ap(n) ) sei
Wa := Pr outV hV, Pi(x) = 1 | (A1 , . . . , Ap(n) ) = (a1 , . . . , ap(n) ) ,
(1)
wobei die Wahrscheinlichkeit über Vs Zufall ist. Popt wird nun rekursiv so definiert (beginnend mit der
letzten Nachricht), dass Vs Annahmewahrscheinlichkeit maximiert wird. Wenn das Transkript soweit
(a1 , . . . , ap(n)−1 ) war, wird Popt
a∗p(n) := arg
max
ap(n) ∈{0,1}p(n)
16
W(a1 ,...,ap(n) )
(2)
berechnen und an V senden.3 a∗p(n) ist die Nachricht, die Vs Annahmewahrscheinlichkeit bei gegebenem
teilweisen Transkript (a1 , . . . , ap(n)−1 ) maximiert. Mittels a∗p(n) läßt sich nun W(a1 ,...,ap(n)−2 ) wie in (1) definieren, wenn wir als letzte P-Nachricht a∗p(n) annehmen. Hieraus ergibt sich a∗p(n)−2 , W(a1 ,...,ap(n)−4 ) , und
schließlich a∗2 . Hierdurch wird Popt rekursiv als die Maschine definiert, die Nachrichten a∗2 , a∗4 , etc. sendet.
Lemma 7.10. Popt hat polynomielle Bandkomplexität.
Beweis. Für ein vollständiges Transkript (a1 , . . . , ap(n) ) kann W(m1 ,...,mp(n) ) mittels vollständiger Suche
über Vs Zufall berechnet werden. Mittels vollständiger Suche über ap(n) ∈ {0, 1}p(n) kann so a∗p(n) aus
(a1 , . . . , ap(n)−1 ) mit O(p(n)) Bandkomplexität berechnet werden. Jeder einzelne Rekursionsschritt zur
Berechnung eines a∗i erfordert demnach O(p(n)) Bandkomplexität. Insgesamt ergibt sich eine Bandkomplexität von O(p(n)2 ).
Lemma 7.11. (Popt , V) ist ein interaktives Beweissystem für L.
Beweis. Es reicht aus, Vollständigkeit zu zeigen, da Effizienz klar ist und Soundness eine Eigenschaft von
V allein ist. Wir zeigen, dass für alle x ∈ {0, 1}∗ gilt:
Pr [outV hV, Popt i(x) = 1] ≥ Pr [outV hV, Pi(x) = 1] ,
(3)
was für Vollständigkeit ausreicht.
Sei also x beliebig. Für gerades i und ein teilweises Transkript (a1 , . . . , ai−1 ) von (P, V) sei aPi die
(eindeutige) Nachricht, die von P als i-te Nachricht gesendet werden würde. Sei a∗i die Nachricht, die von
Popt gesendet werden würde. (Man beachte, dass a∗i auch für teilweise Transkripte definiert ist, die nicht
notwendig von (Popt , V) generiert wurden.)
Sei A das Ereignis, dass V schließlich 1 ausgibt. Dann gilt (wobei die Wahrscheinlichkeit wie üblich
über Vs Zufall ist):
Pr [outV hV, Pi(x) = 1]
h
i
= Pr A | A2 = aP2 , . . . , Ap(n)−4 = aPp(n)−4 , Ap(n)−2 = aPp(n)−2 , Ap(n) = aPp(n)
h
i
≤ Pr A | A2 = aP2 , . . . , Ap(n)−4 = aPp(n)−4 , Ap(n)−2 = aPp(n)−2 , Ap(n) = a∗p(n)
h
i
≤ Pr A | A2 = aP2 , . . . , Ap(n)−4 = aPp(n)−4 , Ap(n)−2 = a∗p(n)−2 , Ap(n) = a∗p(n)
...
h
i
≤ Pr A | A2 = a∗2 , . . . , Ap(n)−4 = a∗p(n)−4 , Ap(n)−2 = a∗p(n)−2 , Ap(n) = a∗p(n)
= Pr [outV hV, Popt i(x) = 1] .
(3) folgt.
Nehmen wir Lemma 7.10, Lemma 7.11 und Lemma 7.8 zusammen, so ergibt sich:
Satz 7.12. IP ⊆ PSPACE.
7.2
PSPACE ⊆ IP
Es verbleibt, PSPACE ⊆ IP zu zeigen. Dazu folgen wir größtenteils [2, Chapter 9].
Arithmetisierung einer Formel. Zunächst wissen wir, dass es wegen der PSPACE-Vollständigkeit
von TQBF ausreicht, ein interaktives Beweissystem für TQBF anzugeben. Dazu wird hilfreich sein, logische
Ausdrücke als arithmetische Formeln zu betrachten. Genauer:
Definition 7.13 (Arithmetisierung). Die Arithmetisierung AF einer aussagenlogischen Formel F ist der
arithmetische Ausdruck über Z, der aus F durch
Aus technischen Gründen sollte a∗p(n) eindeutig definiert sein, deshalb bezeichne arg max in (2) die lexikographisch kleinste
Nachricht ap(n) , die W(a1 ,...,ap(n) ) maximiert.
3
17
• Ersetzen von u ∧ v durch u · v,
• Ersetzen von u ∨ v durch u + v, und
• Ersetzen von ¬u durch (1 − u)
entsteht.
Die Arithmetisierung einer 3CNF-Formel
F := (L1,1 ∨ L1,2 ∨ L1,3 ) ∧ . . . ∧ (Lm,1 ∨ Lm,2 ∨ Lm,3 )
(mit Literalen Li,j ) ist also
AF := (L1,1 + L1,2 + L1,3 ) · . . . · (Lm,1 + Lm,2 + Lm,3 ),
wobei negierte Literale Li,j = ¬u als (1 − u) interpretiert werden. Für eine Formel F in CNF und eine
Variablenbelegung φ = (φ1 , . . . , φ` ) ∈ {0, 1}` haben wir zudem
F (φ) = 1
⇔
AF (φ) 6= 0.
(4)
(Man beachte, dass Negationen nur direkt vor Variablen vorkommen können, da F in CNF ist. Tatsächlich
gilt (4) nicht für beliebige Formeln.)
Hat F in CNF nun m Klauseln, so ist zudem 0 ≤ AF (φ) ≤ rm für alle φ ∈ {0, 1}` , wobei r eine obere
Schranke für die Anzahl der Literale pro Klausel in F ist. Weiter ist das univariate Polynom p0i : Z → Z
mit
p0i (X) := AF (φ1 , . . . , φi−1 , X, φi+1 , . . . , φ` )
vom Grad höchstens m.
Beweissystem für SAT. Wir werden nun zunächst ein interaktives Beweissystem (P, V) für SAT angeben, also ein System, das beweist, dass eine aussagenlogische Formel F in CNF nicht erfüllbar ist. Wegen
der gerade gemachten Bemerkungen ist F nicht erfüllbar genau dann wenn
X
X
···
AF (φ1 , . . . , φ` ) = 0.
(5)
φ1 ∈{0,1}
φ` ∈{0,1}
Für P reicht es aus, V zu zeigen, dass (5) modulo einer hinreichend großen Primzahl q > 2` rm gilt. (Die
Bitlänge eines solchen q ist polynomiell in der Größe von F , weshalb auch V modulo q arbeiten kann.) Im
Folgenden werden wir also
X
X
···
AF (φ1 , . . . , φ` ) ≡ 0 mod q
(6)
φ1 ∈{0,1}
φ` ∈{0,1}
betrachten. V kann (6) nicht direkt auswerten, weil (6) aus exponentiell vielen Summanden besteht.
Deshalb wird (6) durch Interaktion mit P schrittweise
auf einfachere Gleichungen reduziert. Dazu wird
P
in jedem Schritt die jeweils äußerste Summe
φi ∈{0,1} A(φi ) durch eine Auswertung A(ri ) an einem
zufälligen, von V gewählten ri ∈ Zq ersetzt. Dies führt schließlich zu einem einzigen Wert v ∈ Zq . Aufgabe
von P wird es sein, V zu überzeugen, dass die Ersetzung korrekt durchgeführt wird. (Man beachte, dass
V nicht direkt mit der Summe (6) arbeiten kann.)
Genauer wird im i-ten Schritt die Aussage
X
X
···
AF (r1 , . . . , ri−1 , φi , . . . , φ` ) ≡ vi−1 mod q
(7)
φi ∈{0,1}
φ` ∈{0,1}
auf die Aussage
X
φi+1 ∈{0,1}
X
···
AF (r1 , . . . , ri , φi+1 , . . . , φ` ) ≡ vi mod q
(8)
φ` ∈{0,1}
reduziert, wobei v0 = 0 ist und die ri ∈ Zq von V gewählt werden. Um V von (8) zu überzeugen, berechnet
P das Polynom
X
X
pi (X) :=
···
AF (r1 , . . . , ri−1 , X, φi+1 , . . . , φ` ) mod q,
φi+1 ∈{0,1}
φ` ∈{0,1}
18
und sendet es an V. (Man beachte, dass pi von kleinem Grad und univariat ist.) V bricht sofort ab, falls
pi (0) + pi (1) 6≡ vi−1 mod q ist (was wegen (7) der Fall sein muss). Ist pi (0) + pi (1) ≡ vi−1 mod q, so wählt
V ri ∈ Zq gleichverteilt und sendet es an P. Beide Parteien berechnen vi := pi (ri ) und fahren mit dem
nächsten Schritt fort. Nach ` Schritten kann V die Gleichung
AF (r1 , . . . , r` ) ≡ v` mod q
(9)
selbst durch Auswertung von AF überprüfen. V gibt 1 aus genau dann wenn (9) gilt.
Satz 7.14. (P, V) ist ein interaktives Beweissystem für SAT.
Beweis. Effizienz ist klar. Vollständigkeit folgt, weil die richtigen“ Polynome pi die Gleichung pi (0) +
”
pi (1) ≡ vi−1 mod q erfüllen, und weil (8) für korrektes pi aus (7) folgt. Deshalb wird V im Zusammenspiel
mit P immer akzeptieren.
Um Soundness einzusehen betrachte man beliebiges P0 und eine Formel F mit
X
X
···
AF (φ1 , . . . , φ` ) 6≡ 0 mod q.
φ1 ∈{0,1}
φ` ∈{0,1}
Es genügt, zu zeigen, dass ¬(7) ⇒ ¬(8) gilt (für jedes i und mit hoher Wahrscheinlichkeit über Vs Zufall).
Man nehme also
X
X
AF (r1 , . . . , ri−1 , φi , . . . , φ` ) 6≡ vi−1 mod q
···
φi ∈{0,1}
φ` ∈{0,1}
an, so dass insbesondere pi (0) + pi (1) 6≡ vi−1 mod q für das richtige“ Polynom pi (X) gilt. Sei p0i (X) das
”
Polynom, das von P0 tatsächlich an V gesandt wird. Wir dürfen p0i (0) + p0i (1) ≡ vi−1 mod q annehmen,
da andernfalls V direkt abbricht. Weil pi (X) und p0i (X) verschiedene Polynome vom Grad ≤ m sind,
hat pi (X) − p0i (X) höchstens m Nullstellen. Deshalb ist die Wahrscheinlichkeit, dass pi (ri ) ≡ p0i (ri ) für
zufälliges ri ist, beschränkt durch m/q, also exponentiell klein.
Da vi durch p0i (ri ) 6≡ pi (ri ) definiert wird, gilt (8) höchstens mit Wahrscheinlichkeit m/q. Dies beweist
¬(7) ⇒ ¬(8) mit hoher Wahrscheinlichkeit über Vs Zufall und für alle i wie gewünscht.
Korollar 7.15. coNP ⊆ IP.
Von SAT zu TQBF. Um ein Beweissystem für TQBF anzugeben (und damit IP ⊆ PSPACE zu zeigen),
müssen wir zusätzlich Quantoren vor einer Formel F wie oben berücksichtigen.
Die Arithmetisierung
Q
einer
QBF
erfolgt
wie
zu
erwarten
ist:
Wir
ersetzen
∀u
F
(u)
durch
A
(u)
und ∃ uF (u) durch
u∈{0,1} F
P
u∈{0,1} AF (u). Bei der Anpassung des obigen Beweissystems (P, V) an QBFs treten folgende Probleme
auf:
(a) die reduzierten Polynome pi (X) könnten von hohem Grad sein, da sie eine polynomielle Anzahl von
geschachtelten Produkten (bedingt durch ∀-Quantoren) enthalten können,
(b) die Größe der Zahlen, die bei der Auswertung der Arithmetisierung einer QBF auftreten können,
kann doppelt exponentiell werden (und nicht nur einfach exponentiell wie bei aussagenlogischen
Formeln).
Problem (a) kann gelöst werden, indem eine QBF F zunächst in eine einfache“ Form gebracht wird, die
”
einfacher behandelt werden kann. Problem (b) verschwindet, wenn der Verifier V eine Primzahl q wählt.
(Wenn zwei Terme ungleich modulo Q sind, sind sie auch ungleich modulo fast aller Primzahlen q < Q.)
Definition 7.16 (Einfache QBF). Eine QBF F ist einfach, sofern
• Negationen nur vor Variablen stehen (wie etwa bei einer CNF-Formel),
• in jeder Unterformel von F der Form ∃u G(u) oder ∀u G(u) gilt folgendes: in G tritt u ungebunden
im Bereich höchstens eines ∀-Quantors auf. Mit anderen Worten: zwischen jedem Auftreten einer
Variablen u und ihrer Quantifizierung steht höchstens ein ∀u0 .
Lemma 7.17. Jede QBF kann in Polynomialzeit in einfache Form gebracht werden.
Beweis. Idee: ersetze ∀u G(u) durch ∀u∃ũ (u = ũ) ∧ G(ũ) für eine neue Variable ũ.
Das interaktive Beweissystem (P, V) kann damit auf QBFs F angewandt werden, wobei P Aussagen
der Form AF 0 = K mod q für geeignetes K > 0, die Vereinfachung F 0 von F , und von V gewähltes q ist.
Es folgt:
Satz 7.18. PSPACE ⊆ IP.
19
Zero-Knowledge-Beweissysteme. Die Soundness-Eigenschaft eines IPS schützt den Verifier davor,
eine falsche Aussage zu akzeptieren. Umgekehrt kann man auch daran denken, den Prover davor zu
schützen, zuviel Information“ preiszugeben. Insbesondere könnte man versuchen, etwa bei einem IPS für
”
eine Sprache L ∈ NP jeden Zeugen für x ∈ L vor dem Verifier zu verbergen.
Eine solche Eigenschaft kann etwa dann nützlich sein, wenn ein IPS als Authentifikationsprotokollen
genutzt werden soll. Man betrachte dazu ein Beweissystem für eine Sprache L ∈ NP, bei dem der Prover
effizient ausgeführt wird, sofern er einen Zeugen für x ∈ L kennt. Ein triviales Beispiel eines solchen IPS
ist das, bei dem der Prover den Zeugen an den Verifier sendet. Bei diesem trivialen Beweissystem kennt
allerdings der Verifier nach einer Interaktion mit dem Prover den Zeugen, und kann demnach von dort
an beispielsweise einem Dritten von x ∈ L überzeugen. Für Authentifikationszwecke ist dies allerdings
nachteilig; tatsächlich würde man sich wünschen, dass der Verifier nicht in der Lage ist, andere von x ∈ L
zu überzeugen. (In diesem Sinne ist ein Zeuge für x ∈ L das Geheimnis des Provers, von dessen Kenntnis
er andere überzeugt und sich damit authentifiziert.)
Um diese Zero-Knowledge“-Eigenschaft zu formalisieren, soll zunächst der Begriff eines NP-Beweissystems
”
definiert werden:
Definition 7.19 (NP-Beweissystem). Sei L ∈ NP mit Zeugenrelation R ⊆ {0, 1}∗ × {0, 1}∗ . (Das heißt:
für alle x ∈ {0, 1}n gilt ∃w ∈ {0, 1}p(n) : R(x, w) ⇔ x ∈ L, und R kann von einer Polynomialzeit-TM
berechnet werden.)
Ein NP-Beweissystem (kurz: NP-IPS) für L ist ein IPS (gemäß Definition 7.4) für L mit den folgenden Änderungen:
Effizienz des Provers. P ist eine Polynomialzeit-PTM, die als Eingabe nicht nur x ∈ {0, 1}n erhält,
sondern auch einen Zeugen w ∈ {0, 1}p(n) mit R(x, w).
Vollständigkeit. Wir fordern Pr [outV hV, Pi(x) = 1] ≥ 2/3. für alle x ∈ L und w mit R(x, w).
Die Soundness-Bedingung bleibt unverändert; insbesondere wird Soundness auch gegen unbeschränkte Prover P0 gefordert.
Wir können nun weiter die Eigenschaft der Verifier lernt nichts (außer der Richtigkeit der Aussage x ∈
”
L)“ formalisieren. Die Intuition ist hier wie folgt: wir fordern, dass es effizient möglich sein soll, Transkripte
von Prover-Verifier-Interaktionen zu generieren, auch wenn kein Zeuge für die zugrundeliegende Aussage
x ∈ L bekannt ist. Auf diese Weise kann argumentiert werden, dass alles, was man aus einem solchen
Transkript lernen kann, schon effizient generierbar sein muss.
Definition 7.20 (Zero-Knowledge-Beweissystem). Sei (P, V) ein NP-IPS für L ∈ NP mit Zeugenrelation
R. Für eine TM V∗ sei hP, V∗ i(x, w) das Transkript (also alle gesendeten Nachrichten) einer Interaktion
von P und V∗ bei gemeinsamer Eingabe x und zusätzlicher P-Eingabe w. (P, V) ist perfect zero-knowledge
wenn für jede Polynomialzeit-PTM V∗ eine PTM S (der Simulator) mit erwarteter polynomieller Laufzeit4 existiert, so dass folgendes gilt:
• für jedes x ∈ L und jedes w mit R(x, w) sind die Zufallsvariablen hP, V∗ i(x, w) und Ss Ausgabe S(x)
bei Eingabe x identisch verteilt.
Abschwächungen von Definition 7.20, die nur eine kleine statistische Distanz der Zufallsvariablen
hP, V∗ i(x, w) und S(x) fordern, oder gar nur Ununterscheidbarkeit durch effiziente TMs“ sind möglich
”
und üblich.
Beispiel 7.21. Wir betrachten wieder die Sprache
GI := {(G1 , G2 ) | G1 und G2 sind isomorphe Graphen}
und das folgende NP-IPS für GI:
1. P erhält x = (G1 , G2 ) und einen Isomorphismus φ mit φ(G1 ) = G2 als Eingabe. P wählt gleichverteilt
eine Permutation π der Knoten von G2 und sendet den Graphen H := π(G2 ) an V.
2. V wählt gleichverteilt b ∈ {1, 2} und sendet b an P.
3a. Ist b = 1, so sendet P ψ := π ◦ φ an V.
4
Wir fordern hier, dass der Erwartungswert der Laufzeit von S polynomiell beschränkt ist. Diese etwas unnatürlich wirkende Eigenschaft ist ein Zugeständnis an viele natürliche Beweissysteme, die nur mit dieser schwächeren Laufzeitbeschränkung
als Zero-Knowledge bewiesen werden können.
20
3b. Ist b = 2, so sendet P die Permutation ψ := π an V.
4. V erhält ψ und akzeptiert genau dann wenn ψ(Gb ) = H ist.
Effizienz und Vollständigkeit dieses Protokolls sind klar. Um Soundness einzusehen, nehme man x 6∈ L
an, so dass G1 und G2 zwei nicht-isomorphe Graphen sind. Sobald ein Prover P0 in dieser Situation einen
Graphen H sendet, kann dieser Graph als Permutation H = ψ(Gb ) höchstens eines der beiden Gb erklärt
werden. (Würde H = ψ1 (G1 ) und H = ψ2 (G2 ) gelten, so wäre G1 = (ψ1−1 ◦ ψ2 )(G2 )) isomorph zu G2 .)
Mit einer Wahrscheinlichkeit von mindestens 1/2 wählt V demnach ein b ∈ {1, 2}, für das kein ψ mit
H = ψ(Gb ) existiert; in diesem Fall wird V nicht akzeptieren.
Zusammengenommen zeigt dies, dass (P, V) ein NP-IPS für GI ist. Wir zeigen nun noch, dass (P, V)
auch die perfect-zero-knowledge-Eigenschaft hat. Man betrachte dazu für gegebenen Verifier V∗ folgenden
Simulator S, der intern V∗ simuliert und hierfür die Rolle eines Provers einnimmt.
1. S wählt gleichverteilt b0 ∈ {1, 2} und eine Permutation π der Knoten von Gb0 , und sendet H :=
π(Gb0 ) an V∗ .
2. Hierauf wird (die interne Simulation von) V∗ ein b ∈ {1, 2} an S senden.
3a. Ist b = b0 , so sendet S π an V∗ , gibt das Protokoll der gesamten Interaktion aus, und hält.
3b. Ist b 6= b0 , so beginnt S den gesamten Prozeß (mit neuem b0 und π) von vorn.
Die erwartete Laufzeit von S ist polynomiell, da die erwartete Anzahl der Durchläufe (bis b = b0 ) erreicht
ist, 1 · 1/2 + 2 · 1/4 + 3 · 1/8 + 4 · 1/16 + . . . = 2 ist. (In jedem Durchlauf gilt b = b0 mit Wahrscheinlichkeit
1/2.) Weiter hat die Ausgabe von S (nach erfolgreichem Durchlauf mit b = b0 ) dieselbe Verteilung wie
hP, V∗ i(x, w): in beiden Fällen ist H ein zufälliges Element aus der Isomorphieklasse von G1 und G2 , und
ψ ist die Abbildung mit H = ψ(Gb ).
Es ist sogar möglich, Zero-Knowledge-Beweissysteme für NP-vollständige Sprachen anzugeben. Wir
zitieren ohne Beweis:
Satz 7.22 (Goldreich, Micali, Wigderson). Für jede Sprache L ∈ NP existiert ein perfect zero-knowledge
NP-IPS.
8
Schaltkreise
Turingmaschinen stellen ein universelles, jedoch bisweilen unhandliches Berechnungsmodell dar. Die Betrachtung alternativer Berechnungsmodelle kann deshalb dazu dienen, insbesondere die Herleitung unterer Komplexitätsschranken zu erleichtern. Zudem ist anzunehmen, dass etwa logische Schaltkreise ein
realitätsnäheres Berechnungsmodell als Turingmaschinen darstellen.
Definition 8.1 (Boolesche Schaltkreise). Ein Boolescher Schaltkreis (BSK) C ist ein azyklischer gerichteter Graph. Ein Knoten heißt
• Eingabeknoten, falls er Eingangsgrad 0 hat,
• Ausgabeknoten, falls er Ausgangsgrad 0 hat,
• und Gatter, falls er kein Eingabeknoten ist. Jedes Gatter trägt einen Bezeichner ∨, ∧ oder ¬.
Wir fordern, dass es genau einen Ausgabeknoten gibt, jedes ∨- oder ∧-Gatter Eingangsgrad 2 hat, und
jedes ¬-Gatter Ausgangsgrad 1. Es bezeichne |C| die Größe von C, also die Anzahl der Knoten.
Sei nun C ein BSK mit n Eingaben (d.h. Eingabeknoten). Dann ist die Ausgabe C(x) für eine Eingabe
x ∈ {0, 1}n in offensichtlicher Weise durch Auswertung von C definiert.
Definition 8.2 (Schaltkreisfamilie, SIZE, P/poly ). Sei T : N → N eine Funktion. Eine T (n)-Schaltkreisfamilie
ist eine Folge (Cn )n∈N von BSKs, wobei Cn n Eingaben hat und |Cn | ≤ T (n) gilt. (Wir werden gelegentlich
auch sagen, dass die Familie (Cn ) T (n)-größenbeschränkt ist.) SIZE(T (n)) ist die Menge aller Sprachen,
die von einer passenden T (n)-Schaltkreisfamilie erkannt werden können. Weiter ist
[
P/poly :=
SIZE(p(n)).
p∈N[X]
Satz 8.3 (Theorem 6.16 in [1]). P ⊆ P/poly .
Beweis. Ein Beweis ähnlich dem des Cook-Levin-Theorems Satz 5.8 kann durchgeführt werden. Genauer
kann ein geeigneter BSK die Ausführung einer TM M Schritt für Schritt simulieren. Die Größe des BSK
ist dabei polynomiell in der Zeitkomplexität von M .
21
Die Mächtigkeit von Schaltkreisen. Bemerkenswerterweise ist einfach einzusehen, dass P 6= P/poly
gilt: Man betrachte die Sprache
L := {1n | Mn (n) hält}.
Da fHALT nicht berechenbar ist, ist auch L nicht berechenbar. Andererseits existiert offenbar eine (n + 2)Schaltkreisfamilie (Cn ), die L erkennt: je nachdem, ob 1n ∈ L ist, gibt Cn (1n ) entweder 1 oder 0 aus.
(Weiter ist Cn (x) = 0 für x ∈ {0, 1}n \ {1n }.) Entscheidend hierbei ist, dass für jede Eingabelänge n nur
ein geeignetes Cn existieren muss; dieses muss jedoch nicht effizient aus n berechnet werden können.
Schaltkreisfamilien, bei denen Cn effizient (also mittels einer TM, deren Zeitkomplexität polynomiell
in n ist) berechnet werden können, nennt man uniform. Es ist einfach einzusehen, dass P genau die
Sprachen enthält, die mittels uniformer Schaltkreisfamilien erkannt werden können.
Andererseits enthält die Klasse P/poly genau die Sprachen, die von Turingmaschinen mit Hinweis
entschieden werden können:
Definition 8.4 (TM mit Hinweis). Seien T : N → N und a : N → N Funktionen. Dann bezeichnet
DTIME(T (n))/a(n) die Klasse aller Sprachen L, für die eine TM M mit Zeitkomplexität O(T (n)) und
eine Familie (αn )n∈N mit αn ∈ {0, 1}a(n) existiert, so dass
x∈L
⇐⇒ M (x, α|x| ) = 1.
S
= T,a∈N[X] DTIME(T (n))/a(n).
Lemma 8.5 (Theorem 6.18 in [1]). P/poly
S
Beweis. P/poly ⊆ T,a∈N[X] DTIME(T (n))/a(n) gilt, weil eine Beschreibung eines polynomiell großen
BSKs Cn als S
Hinweis αn codiert und von einer geeigneten universellen TM M ausgewertet werden kann.
P/poly ⊇ T,a∈N[X] DTIME(T (n))/a(n) gilt, weil die Ausführung jeder polynomiell beschränkten TM
mittels eines BSKs Cn emuliert werden kann, wobei die Information αn in Cn festverdrahtet wird.
Grenzen der Mächtigkeit von Schaltkreisen. Um einen genaueren Eindruck zu bekommen, wie
sich die Klasse P/poly zu bekannten Klassen verhält, beweisen wir das folgende:
Satz 8.6 (Meyer, Theorem 6.20 in [1]). EXP ⊆ P/poly impliziert EXP = Σp2 .
Beweis. Es reicht, EXP ⊆ Σp2 zu zeigen. Sei dazu L ∈ EXP, so dass L von einer oblivious TM M ,
die in genau 2p(n) Schritten terminiert, erkannt wird. (Man erinnere sich, dass eine oblivious TM eine
solche ist, deren Kopfbewegungen unabhängig von der Eingabe sind. Solche TMs haben sich als hilfreich
erwiesen, um TM-Simulationen durch Formeln oder Schaltkreise zu emulieren.) Wir müssen zeigen, dass
eine quantifizierte Formel existiert mit
x∈L
⇐⇒
∃u1 ∀u2 M 0 (x, u1 , u2 ) = 1,
(10)
wobei |u1 | und |u2 | polynomiell beschränkt sind und M 0 eine TM mit polynomieller Zeitkomplexität ist.
Ähnlich wie beim Beweis des Cook-Levin-Theorems betrachte man nun für feste Eingabe x ∈ {0, 1}n
die eindeutige Abfolge z1 , . . . , z2p(n) von aufeinanderfolgenden Konfigurationen von M (x). Nach Annahme
existiert ein BSK Cn polynomieller Größe, so dass Cn bei Eingabe (i, j) (in binärer Codierung) das jte Bit einer geeigneten festen Beschreibung von zi ausgibt. (Man beachte, dass M (x) in exponentieller
Zeit simuliert werden kann. Jede so in exponentieller Zeit erkennbare Sprache kann aber wegen EXP ⊆
P/poly auch von einem geeigneten BSK Cn erkannt werden.) Der interessante Fall in (10) wird u1 =
Cn sein; deshalb wird im Folgenden u1 als ein Schaltkreis mit Eingabe (i, j) interpretiert. Weiter wird
in (10) u2 einen Index i enthalten, so dass M 0 folgende Überprüfung durchführt, wobei z̃i die durch
p(n)
(u1 (i, 1), . . . , u1 (i, 2p(n) )) ∈ {0, 1}2
gegebene Konfiguration ist:
1. Falls i = 2p(n) ist, so ist in z̃i ein Haltezustand mit Ausgabe 1 erreicht.
2. Falls i < 2p(n) ist, so codiert z̃i+1 den eindeutigen Nachfolgezustand von z̃i .
Da die Beschreibung von zi (bzw. z̃i ) exponentielle Größe hat, wird die zweite Bedingung über einen
zusätzlichen Zähler in u2 realisiert, der etwa die zu überprüfende Stelle auf dem Arbeitsband angibt.
Hiermit gilt L ∈ Σp2 und damit EXP ⊆ Σp2 wie gewünscht.
In ähnlicher Weise erhält man:
Satz 8.7 (Karp-Lipton, Theorem 6.19 in [1]). NP ⊆ P/poly impliziert PH = Σp2 .
22
Es erscheint also unwahrscheinlich, dass etwa eine NP-vollständige Sprache wie SAT in P/poly liegt,
oder dass exponentiell harte Probleme von polynomiell beschränkten Schaltkreisfamilien gelöst werden
können.
Tatsächlich gibt es sogar Funktionen, die nicht von BSKs (einer vorgegebenen Größe) berechnet werden
können:
Satz 8.8 (Existenz nicht-berechenbarer Funktionen für Schaltkreise, Theorem 6.21 in [1]). Für jedes
n > 1 existiert eine Funktion f : {0, 1}n → {0, 1}, die von keinem BSK der Größe 2n /(10n) berechnet
wird.
n
Beweis. Es existieren 22 verschiedene Funktionen f : {0, 1}n → {0, 1}. Andererseits kann jeder BSK der
Größe S durch einen Bitstring der Länge 9S log S repräsentiert werden. (Eine geeignete Codierung wäre
etwa eine Liste aller Gatter, mit einer Liste von eingehenden Kanten für jedes Gatter; man beachte, dass
jedes Gatter einen Eingangsgrad von höchstens 2 hat.) Es gibt also höchstens 29S log S BSKs der Größe S.
n
n
Für S = 2n /(10n) folgt, dass es höchstens 29S log S < 2(2 )·(9/10) < 22 BSKs der Größe S gibt. Da jeder
BSK nicht mehr als eine Funktion berechnet, gibt es Funktionen f : {0, 1}n → {0, 1}, die von keinem
BSK der Größe S = 2n /(10n) berechnet werden.
Satz 8.9 (Nichtuniforme Zeithierarchie, Theorem 6.22 in [1]). Für Funktionen T, T 0 : N → N mit 2n /n >
T 0 (n) > 10T (n) > n gilt SIZE(T (n)) ( SIZE(T 0 (n)).
Beweis. Wir zeigen SIZE(n) ( SIZE(n2 ) zur Veranschaulichung der Beweisstrategie. Wegen Satz 8.8
gibt es für jedes ` ∈ N Funktionen f : {0, 1}` → {0, 1}, die nicht von BSKs der Größe 2` /(10`) berechnet
werden. Andererseits kann f von einem geeigneten BSK der Größe 2` 10` berechnet werden. (Man denke
etwa an einen BSK, der eine explizite Fallunterscheidung für jeden Wert der Eingabe durchführt.)
Setzen wir etwa ` = 1, 1 log n und g : {0, 1}n → {0, 1} mit g(x) = f (x` ), wobei x` die ersten ` Bits der
Eingabe x ∈ {0, 1}n darstellt, so folgt g ∈ SIZE(n2 ) \ SIZE(n).
Schaltkreise beschränkter Tiefe. Besonders interessant ist die Erforschung von Schaltkreisen, deren
Tiefe (d.h. die Länge des längsten Pfades von einem Eingabe- zu einem Ausgabeknoten) beschränkt ist.
Zum einen entsprechen Schaltkreise beschränkter Tiefe parallelisierbaren (bzw. parallelisierten) Algorithmen. Zum anderen können wir für Schaltkreise beschränkter Tiefe interessante (Unmöglichkeits-)Resultate
angeben.
Definition 8.10 (NC, AC). Für d ∈ N ist NCd die Menge aller Sprachen, die von polynomiell (in n)
größenbeschränkten Schaltkreisfamilien (Cn ) erkannt werden, wobei Cn Tiefe O(logd n) hat. Weiter ist
[
NC :=
NCd.
d∈N
Analog definieren wir ACd und AC, wobei wir jedoch BSKs mit ∨- und ∧-Gattern unbeschränkten
Eingangsgrades zulassen.
Offenbar gilt NCi ⊆ ACi ⊆ NCi + 1 und damit NC = AC.
NC repräsentiert intuitiv genau die Probleme, die durch effiziente Parallelalgorithmen gelöst werden
können: jeder Teilprozess evaluiert ein Gatter, wobei nur logd n (parallele) Rechenschritte nötig sind.
(Diese Intuition kann auch formalisiert werden, was jedoch hier nicht geschehen soll.)
Beispiel 8.11. Es ist einfach einzusehen, dass die Sprache
PARITY := {x ∈ {0, 1}∗ | x hat Parität 0}
zwar in NC1 liegt, nicht jedoch in NC0. (Tatsächlich befinden sich in NC0 nur Sprachen, deren Ausgabe
von einer konstanten Anzahl der Eingabebits abhängen.) Es gilt sogar PARITY 6∈ AC0, was jedoch weitaus
schwieriger einzusehen ist.
23
Håstads Switching-Lemma. Ziel dieses Abschnitts wird es sein, eine untere Schranke für ein konkretes
Problem herzuleiten. Das heißt, dass gezeigt werden soll, dass ein gewisser Mindestaufwand nötig ist, um
dieses Problem zu lösen. Das Problem, um das es hierbei geht, ist es, die Sprache PARITY zu erkennen,
|x|
also die Funktion ⊕(x) = ⊕i=1 xi zu berechnen. Es soll gezeigt werden:
Satz 8.12 (Theorem 14.1 in [1]). PARITY 6∈ AC0.
Korollar 8.13. AC0 ( NC1.
Maßgebliches technisches Werkzeug im Beweis von Satz 8.12 wird Håstads Switching-Lemma sein.
Es bezeichne hierbei eine k-CNF eine aussagenlogische Formel in konjunktiver Normalform, wobei jede
Klausel höchstens k Literale enthält; analog für k-DNFs. Für eine Funktion f : {0, 1}n → {0, 1} und
eine (teilweise) Belegung ρ ∈ {0, 1, ⊥}n der Eingabebits von f bezeichne f |ρ die Spezialisierung von f
bezüglich ρ, also die Funktion f 0 ((xi )ρi =⊥ ) := f (x01 , . . . , x0n ) mit x0i = ρi für ρi 6= ⊥ und x0i = xi für ρi = ⊥.
Lemma 8.14 (Switching-Lemma, Lemma 14.2 in [1]). Es werde f : {0, 1}n → {0, 1} von einer k-DNF
berechnet. Sei ρ eine zufällige Belegung von t zufällig gewählten Eingabebits, und sei s ≥ 2. Dann gilt:
Pr [f |ρ ist nicht als s-CNF darstellbar] ≤
(n − t)k 10
n
s/2
,
wobei die Wahrscheinlichkeit über ρ ist.
Mit anderen Worten: Wir können eine k-DNF in eine s-CNF umwandeln, indem wir hinreichend viele
Variablen zufällig belegen. Es ist einfach einzusehen (nach de Morgan), dass das Switching-Lemma auch
mit vertauschten Rollen von DNF und CNF gilt.
Lemma 8.14 selbst soll nicht bewiesen werden; jedoch soll gezeigt werden, wie Lemma 8.14 hilft,
Satz 8.12 zu zeigen.
Beweis von Satz 8.12 mittels Lemma 8.14. Wir nehmen einen beliebigen AC0-Schaltkreis C an und zeigen, dass C nicht die Paritätsfunktion berechnet. Genauer zeigen wir, dass bei geeigneter Spezialisierung
der meisten (aber nicht aller) Eingabebits von C ein Schaltkreis mit konstanter Ausgabe entsteht. Dies
führt zum Widerspruch, denn die Paritätsfunktion hängt von allen Eingabebits ab.
Sei also C ein AC0-Schaltkreis der Tiefe d, wobei wir ohne Beschränkung der Allgemeinheit annehmen,
dass folgendes gilt:
• alle Gatter (bis auf den Ausgabeknoten) haben Ausgangsgrad 1,
• ¬-Gatter kommen nur direkt nach den Eingabeknoten vor,
• ∨- und ∧-Gatter treten abwechselnd auf; auf der i-ten Ebene des Schaltkreises (gerechnet von den
Eingabeknoten) kommen nur ∨- (für gerade i) bzw. ∧-Gatter (für ungerade i) vor,
• die erste Ebene (direkt nach den Eingabe- und ¬-Gattern) besteht ausschließlich aus ∧-Gattern mit
Eingangsgrad 1.
Auf diese Weise kann man sich C als sehr strukturierten Baum vorstellen (wenn man von den Eingabeknoten absieht). Ziel wird sein, die Tiefe dieses Baums schrittweise zu reduzieren, indem wir Eingabebits
zufällig spezialisieren. Sei ni die Anzahl der nach dem i-ten Schritt noch nicht spezialisierten Eingabebits
√
(so dass n0 = n). Wir werden in jedem Schritt ni − ni zufällige noch nicht spezialisierte Eingabebits
i
zufällig festlegen, womit sich ni = n1/2 ergibt. Sei weiter ki = 10b2i , wobei |C| ≤ nb für hinreichend
großes n ist. (Ein solches von n unabhängiges b existiert, da |Cn | polynomiell beschränkt in n ist.)
Sei i ungerade (der Fall für gerades i verläuft analog). Vor dem i-ten Schritt besteht die jeweils
erste (nicht-¬)-Ebene des Baums ausschließlich aus ∧-Gattern mit Eingangsgrad ≤ ki ; die nächste Ebene
besteht ausschließlich aus ∨-Gattern. Jedes dieser ∨-Gatter wertet eine ki -DNF in ni Variablen aus. Legen
√
wir nun zufällig gewählte ni − ni Eingabebits zufällig fest, können wir das Switching-Lemma anwenden.
Es ergibt sich, dass die entstehende ki -DNF mit Wahrscheinlichkeit mindestens
1−(
ki10
n1/2i+1
)ki+1 /2 ≥ 1 − 1/(10nb )
(für hinreichend große n) durch eine äquivalente ki+1 -CNF ersetzt werden kann. Der Vorteil hierbei ist,
dass nach dieser Prozedur (betrachtet für alle ∨-Gatter der zweiten Ebene) sowohl die zweite als auch die
24
dritte Ebene lediglich auch ∧-Gattern bestehen. Die zweite kann also mit der dritten Ebene verschmolzen
werden, so dass die Tiefe des Schaltkreises um eins reduziert wird.
Dieser Prozess endet nach d − 2 Schritten mit einem Schaltkreis der Tiefe 2 und konstantem Eingangsgrad kd−2 = 10b2d−2 auf der ersten (nicht-¬-)Ebene. Dies entspricht genau einer kd−2 -CNF oder einer
kd−2 -DNF. Eine solche Formel kann durch Fixierung von höchstens kd−2 Variablen konstant gemacht
werden (etwa so, dass eine Klausel immer zu 0 bzw. 1 auswertet). Die entstehende konstante Funktion
entspricht C mit einigen (aber nicht allen) spezialisierten Eingabebits. Da die Paritätsfunktion aber von
allen Eingabebits abhängt, kann sie von C nicht berechnet werden.
Schaltkreise mit Zählern.
Wir geben noch ein weiteres Beispiel für eine bekannte untere Schranke:
Definition 8.15 (ACC0). Für m ∈ N ist ein MODm -Gatter wie folgt definiert: ist die Summe aller Eingaben ≡ 0 mod m, so gibt MODm 0 aus, andernfalls 1. Für m1 , . . . , mk ∈ N ist die Klasse
ACC0(m1 , . . . , mk ) die Menge aller Sprachen L, die mit Schaltkreisfamilien (Cn ) konstanter Tiefe und
polynomieller Größe erkannt werden. Hierbei dürfen die Cn ∨-, ∧-, ¬- und MODmi -Gatter mit unbeschränktem Eingangsgrad benutzen. Weiter ist ACC0 die Vereinigung aller ACC0(m1 , . . . , mk ) für beliebige k ∈ N und m1 , . . . , mk ∈ N.
Satz 8.16 (Razborov-Smolensky, Theorem 14.4 in [1]). Seien p und q verschiedene Primzahlen. Dann
kann MODp nicht von Schaltkreisfamilien in ACC0(q) berechnet werden.
Insbesondere kann etwa die Parität nicht von ACC0(3)-Schaltkreisen (und somit erst recht nicht von
AC0-Schaltkreisen) berechnet werden.
9
Randomisierung
Wir erinnern zunächst an Definition 5.15:
Definition (Probabilistische TM). Eine probabilistische Turingmaschine (PTM) ist eine TM mit zwei
Transitionsfunktionen δ0 , δ1 . In jedem Schritt wird δ0 bzw. δ1 jeweils mit Wahrscheinlichkeit 1/2 angewandt. Die Ausgabe M (x) von M bei Eingabe x ∈ {0, 1}∗ ist demnach eine Zufallsvariable.
Um PTMs strukturiert zu behandeln, definieren wir nun die entsprechenden Komplexitätsklassen:
Definition 9.1 (BPP, RP). BPP ist die Menge aller Sprachen L, für die eine Polynomialzeit-PTM M
existiert mit:
• für x ∈ L ist Pr [M (x) = 1] ≥ 2/3,
• für x 6∈ L ist Pr [M (x) = 1] ≤ 1/3.
Analog ist RP ist die Menge aller Sprachen L, für die eine Polynomialzeit-PTM M existiert mit:
• für x ∈ L ist Pr [M (x) = 1] ≥ 2/3,
• für x 6∈ L ist Pr [M (x) = 1] = 0.
Damit ist trivialerweise P ⊆ RP ⊆ BPP = coBPP, und coRP ist die Menge aller Sprachen L, für
die eine Polynomialzeit-PTM M existiert mit:
• für x ∈ L ist Pr [M (x) = 1] = 1,
• für x 6∈ L ist Pr [M (x) = 1] ≤ 1/3.
Desweiteren sind die Konstanten 1/3 bzw. 2/3 (fast) beliebig: durch wiederholte Ausführung können etwa
Konstanten 1/2n bzw. 1 − 1/2n erreicht werden.
Es wird im Folgenden nützlich sein, den von einer PTM verwendeten Zufall explizit zu machen.
Genauer gibt es zu jeder PTM M eine TM M 0 und ein Polynom p : N → N, so dass
Pr [M (x) = 1] = Pr M 0 (x, r) = 1 ,
wobei die Wahrscheinlichkeit auf der rechten Seite über gleichverteiltes r ∈ {0, 1}p(|x|) ist. (M 0 simuliert
M und verwendet das i-te Bit von r, um die Transitionsfunktion im i-ten Schritt zu bestimmen.) Wir
schreiben kurz M (x; r) statt M 0 (x, r).
25
Beispiele für randomisierte Algorithmen. Ein Beispiel für einen (nichttrivialen) randomisierten
Algorithmus ist der Primzahltest von Rabin und Miller. Dieser zeigt, dass die Sprache
PRIMES := {x | x ∈ N ist prim}
in coRP liegt.
Beispiel 9.2. Ein weiteres Beispiel für einen nichttrivialen randomisierten Algorithmus ist der folgende
Algorithmus von Karp und Rabin. Sei ein Polynom p ∈ Z[X1 , . . . , Xm ] in impliziter Form (also etwa durch
einen Schaltkreis mit +“-, und ·“- und Konstantengattern)
gegeben. Wir nehmen eine implizite Form
Q
”
”
an, da in bestimmten Fällen (etwa p(X1 , . . . , Xm ) = i (1 + Xi )) eine implizite Form sehr kompakt sein
kann, wohingegen etwa die ausgeschriebene Form exponentiell viele Terme enthält. Ziel ist es, festzustellen,
ob p ≡ 0, also ob p(X1 , . . . , Xm ) = 0 für alle Belegungen der Xi ist. In dieser Situation benutzen wir (ohne
Beweis):
Lemma 9.3 (Schwartz-Zippel). Sei p ∈ Z[X1 , . . . , Xm ] vom Totalgrad d und mit p 6≡ 0. Für jede endliche
Menge S ⊆ Z und gleichverteilte a1 , . . . , am ∈ S gilt dann
Pr [p(a1 , . . . , am ) 6= 0] ≥ 1 − d/|S|.
Eine offensichtliche Möglichkeit, auf p ≡ 0 zu testen, ist demnach, p auf zufälligen Eingaben ai aus
einer hinreichend großen Menge S auszuwerten. Ist p(a1 , . . . , am ) 6= 0, so kann abgelehnt werden. Ist aber
p(a1 , . . . , am ) = 0, ist wegen Lemma 9.3 wahrscheinlich, dass p ≡ 0 ist. Dieses Vorgehen kann jedoch
ineffizient werden, da bei der Auswertung von p exponentiell große Zwischenergebnisse entstehen können
(selbst wenn p ≡ 0 sein sollte).
Um Abhilfe zu schaffen, kann p(a1 , . . . , am ) modulo einer hinreichend großen Zahl k ausgewertet
werden. (Ist nämlich p(a1 , . . . , am ) 6= 0, so wird auch p(a1 , . . . , am ) 6= 0 modulo der meisten“ Zahlen
”
k sein. Tatsächlich würde p(a1 , . . . , am ) 6= 0 zusammen mit p(a1 , . . . , am ) ≡ 0 mod k implizieren, dass
k|p(a1 , . . . , am ) 6= 0 ist.)
Bezug zu anderen Komplexitätsklassen. Eine naheliegende Frage ist: Was genau lässt sich durch
”
den Einsatz von randomisierten Algorithmen gewinnen?“ Anders formuliert: Wie ordnet sich etwa BPP
in das Netz der schon besprochenen Komplexitätsklassen ein?
Satz 9.4 (Theorem 6.22 in [1]). BPP ⊆ P/poly .
Beweis. Sei L ∈ BPP. Wir dürfen annehmen, dass eine PTM M und ein Polynom p existiert mit
• für x ∈ L ist Pr [M (x; r) = 1] ≥ 1 − 1/2|x|+1 ,
• für x 6∈ L ist Pr [M (x; r) = 1] ≤ 1/2|x|+1 ,
wobei die Wahrscheinlichkeiten über uniformes r ∈ {0, 1}p(|x|) sind. Man fixiere eine Bitlänge n von x.
Wir nennen r schlecht für x, wenn M (x; r) = 0 ∧ x ∈ L oder M (x; r) = 1 ∧ x 6∈ L, d.h. wenn r zu einer
falschen Ausgabe von M führt. Andernfalls heißt r gut für x.
Für festes x gibt es höchstens 2p(n) /2n+1 schlechte r. Sei badx die Menge dieser schlechten r für
gegebenes x. Sei weiter bad = ∪|x|=n badx die Menge aller r, welche schlecht für irgendein x sind. Dann
gilt
X
|bad| ≤
|badx | ≤ 2n · 2p(n) /2n+1 ≤ 2p(n) /2.
|x|=n
Insbesondere existiert also ein r, welches gut für alle x ∈ {0, 1}n ist. Für jedes n kann ein solches r als
Hinweis αn aufgefasst werden. Das zeigt L ∈ DTIME(T (n))/p(n) für geeignetes polynomielles T , und
damit (wegen Lemma 8.5) L ∈ P/poly .
Satz 9.5 (Theorem 7.15 in [1]). BPP ⊆ Σp2 ∩ Πp2 .
Beweis. Wir zeigen BPP ⊆ Σp2 ; wegen coBPP = BPP ⊆ Σp2 = coΠp2 folgt damit auch BPP ⊆ Πp2 . Sei
also L ∈ BPP. Wir dürfen eine TM M annehmen, die L erkennt und (ggf. nach hinreichend vielen Wiederholungen) für alle x ∈ {0, 1}n eine Fehlerwahrscheinlichkeit von Pr [M (x; r) gibt falsche Ausgabe] ≤ 1/2n
hat, wobei die Wahrscheinlichkeit über M s Zufall r ∈ {0, 1}p(n) (für ein geeignetes Polynom p) definiert
ist.
26
Für x ∈ {0, 1}n sei Sx die Menge aller Zufallswerte r, für die M (x; r) akzeptiert. Je nachdem, ob x ∈ L
oder x 6∈ L ist, enthält dann Sx entweder fast alle oder fast keine p(n)-Bitstrings (jeweils höchstens bis
auf einen 1/2n -Anteil aller p(n)-Bitstrings).
Wir betrachten nun jeweils um u ∈ {0, 1}p(n) verschobene“ Mengen Sx + u := {r + u | r ∈ Sx }, wobei
”
r + u hier als komponentenweises XOR von Bitstrings zu verstehen
+ 1 gilt:
Sk ist. Für k := dp(n)/ne
p(n) . (Dies folgt aus
p(n) ist S :=
(S
+
u
)
=
6
{0,
1}
1. Für x P
6∈ L und beliebige
u
,
.
.
.
,
u
∈
{0,
1}
i
k
i=1 x
P 1
|S| ≤ i |Sx + ui | = i |Sx | ≤ k/2p(n)−n = (k/2n ) · 2p(n) < 2p(n) .) Insbesondere existiert ein r ∈ S
mit M (x; r) = 0.
S
2. Für jedes x ∈ L existieren u1 , . . . , uk ∈ {0, 1}p(n) mit S := ki=1 (Sx + ui ) = {0, 1}p(n) . Dies folgt mit
einem probabilistischen Argument: für jedes r ∈ {0, 1}p(n) und ein unabhängig
gleichverteiltes ui ist
S
Pr [r ∈ Sx + ui ] ≥ 1 − 1/2n . Für unabhängig gleichverteilte ui und S = ki=1 (Sx +
ui ) ist demnach
nk
p(n)
p(n)
Pr [r ∈ S] ≥ 1 − 1/2 > 1 − 1/2
. Mit einer union bound folgt Pr S = {0, 1}
> 0 für zufällige
ui , weshalb eine Kombination der ui existieren muss, so dass S = {0, 1}p(n) ist.
Zusammengenommen ergibt sich:
[
x ∈ L ⇔ ∃u1 , . . . , uk ∀r r ∈ (Sx + ui ),
i
wobei r ∈
S
i (Sx
+ ui ) durch Ausführen von M (x; r + ui ) überprüft werden kann. Es folgt L ∈ Σp2 .
Es lässt sich also BPP in sinnvoller Weise in Beziehung zu unseren bisher betrachteten Komplexitätsklassen setzen. Tatsächlich vermutet man, dass P = BPP gilt, was jedoch nicht bewiesen ist.
10
?
Die Frage P = BPP und Derandomisierung
Motivation. Es ist klar, dass P ⊆ BPP ist. Es ist nicht bekannt, ob Gleichheit gilt. Ein offensichtlicher
Ansatz, BPP ⊆ P zu zeigen, wäre, eine PTM zu derandomisieren. Hierbei wird eine vorhandene PTM
M mit verschiedenen Zufallswahlen ausgeführt, um Pr [M (x) = 1] zu approximieren (es wird also M (x; r)
mit verschiedenen r ∈ {0, 1}p(n) ausgeführt). Im Allgemeinen wird man dabei nicht alle Zufallswahlen r
betrachten können, da exponentiell viele (genauer: 2p(n) ) mögliche r existieren.
Definition von PRGs. Ein erster Schritt wird nun sein, eine PTM M , welche p(n) viele Zufallsbits
benötigt, in eine PTM M 0 umzuwandeln, welche weniger Zufallsbits benötigt. Es soll also zunächst die
Menge des benötigten Zufalls reduziert werden. Dies motiviert die folgenden Definitionen, wobei etwas
Notation nützlich sein wird: eine PPT-TM M ist eine Polynomialzeit-PTM. Eine NPPT-TM ist eine
nicht-uniforme PPT-TM (also eine PTM, die zusätzlich zur Eingabe x einen polynomiell großen Hinweis
α|x| erhält, der nur von der Eingabelänge abhängt). Weiter hat eine PTM M Zufallskomplexität R(n),
falls bei der Ausführung M (x; r) der explizite Zufall r höchstens Länge R(|x|) hat. Wir schreiben im
Folgenden Un für die Gleichverteilung auf {0, 1}n .
Definition 10.1 (vernachlässigbar). Eine Funktion : N → R ist vernachlässigbar (in n), falls gilt:
∀p ∈ N[X] ∃n0 ∈ N ∀n ≥ n0
|(n)| ≤
1
.
p(n)
Vernachlässigbare Funktionen verschwinden schließlich schneller als der Kehrwert jedes Polynoms. Wir
können vernachlässigbare Funktionen als asymptotisch kleine“ Funktionen ansehen.
”
Definition 10.2 (PRG). Sei ` : N → N mit `(n) > n für alle n. Sei weiter G : {0, 1}∗ → {0, 1}∗ von
einer Polynomialzeit-TM berechenbar, so dass |G(x)| = `(|x|) für alle x ∈ {0, 1}∗ . G ist ein Pseudozufallsgenerator (PRG) mit Streckung `, falls für alle NPPT-TMs A die Funktion
Pr [A(G(Un )) = 1] − Pr A(U`(n) ) = 1
vernachlässigbar in n ist.
27
Nutzen von PRGs.
Satz 10.3. Es werde L ∈ BPP von einer PPT-TM M mit Zufallskomplexität `(n)/3 erkannt. Weiter
sei G ein PRG mit Streckung `(n). Dann wird L (im Sinne von BPP) von einer PPT-TM M + mit
Zufallskomplexität n erkannt.
Beweis. Es gilt
Pr [M (x) gibt falsche Ausgabe] ≤ 1/3,
wobei falsche Ausgabe“ bedeutet, dass M (x) = 1 für x 6∈ L oder umgekehrt. Führen wir M dreifach
”
aus und machen einen Mehrheitsentscheid bezüglich der Ausgabe, ergibt sich eine PPT-TM M 0 mit
Zufallskomplexität `(n) und
Pr M 0 (x) gibt falsche Ausgabe ≤ 7/27.
(11)
Ersetzen wir nun den Zufall r ∈ {0, 1}`(n) (bei n = |x|) in der Ausführung von M 0 (x, r) durch G(s) für
gleichverteiltes s ∈ {0, 1}n , ergibt sich eine PPT-TM M ∗ mit Zufallskomplexität n, für die
Pr [M ∗ (x) gibt falsche Ausgabe] ≤ 1/3
(12)
für alle hinreichend großen n und alle x ∈ {0, 1}n ist. Um dies einzusehen nutzen wir die PRG-Eigenschaft
von G aus. Genauer: nehmen wir zum Widerspruch an, es gebe eine unendliche Folge (xn )n∈N (mit
xn ∈ {0, 1}n ), so dass (12) für unendlich viele xn nicht gilt. Fassen wir M 0 (xn ; r) als NPPT-TM mit
Hinweis xn und eigentlicher Eingabe r ∈ {0, 1}`(n) auf, ergibt sich ein PRG-Unterscheider A, der wegen
(11) und ¬(12) effizient zwischen r = U`(n) und r = G(Un ) unterscheidet. Dies widerspricht jedoch der
PRG-Eigenschaft von G.
Es verbleibt, M ∗ so zu modifizieren, dass für alle x ∈ {0, 1}n mit nicht hinreichend großen n die
entsprechenden Ausgaben festverdrahtet werden, so dass (12) für alle n ∈ N gilt. (Man beachte, dass nur
endlich viele n nicht hinreichend groß sind.) Dies führt zu einer PPT-TM M + mit Zufallskomplexität n,
die L erkennt.
Konstruktion von PRGs. Andererseits können wir PRGs mit beliebig (polynomiell) langer Streckung
aus PRGs mit (minimaler) Streckung n + 1 konstruieren:
Satz 10.4. Sei G ein PRG mit Streckung n + 1, und sei ` ∈ N[X] mit `(n) > n ein Polynom. Dann
existiert ein PRG G0 mit Streckung `(n).
Beweis. G0 (s) berechnet sukzessive σi si := G(si−1 ) für i = 1, . . . , `(n), s0 := s ∈ {0, 1}n , si ∈ {0, 1}n und
σi ∈ {0, 1}. Ausgabe von G0 (s) ist σ1 . . . σ`(n) ∈ {0, 1}`(n) .
Zur Analyse von G0 betrachte man folgende Zufallsvariablen, wobei die σi wie oben beschrieben aus
uniformem s ∈ {0, 1}n berechnet werden:
H0 := σ1 . . . σ`(n)
H1 := U1 σ1 . . . σ`(n)−1
..
..
.
.
H`(n)−1 := U`(n)−1 σ1
H`(n) := U`(n) ,
Wir müssen zeigen, dass für alle NPPT-TMs A0
Pr A0 (G0 (Un )) = 1 − Pr A0 (U`(n) ) = 1 = Pr A0 (H0 ) = 1 − Pr A0 (H`(n) ) = 1
=
`(n)
X
Pr A0 (Hi−1 ) = 1 − Pr A0 (Hi ) = 1
i=1
vernachlässigbar ist. (Wir werden den nur längenabhängigen Hinweis von A0 der Übersichtlichkeit halber
im Folgenden nicht explizit schreiben.) Sei also A0 beliebig, aber fest. Man betrachte die NPPT-TM A,
28
die bei Eingabe σs (für (σ, s) ∈ {0, 1} × {0, 1}n ) gleichverteilt i ∈ {1, . . . , `(n)} wählt, sodann gleichverteilt Ui−1 ∈ {0, 1}i−1 , und schließlich aus s die Bits σ1 , . . . , σ`(n)−i wie G0 berechnet. Ausgabe ist
A0 (Ui−1 σσ1 . . . σ`(n)−i ). (Hinweis von A ist hierbei der Hinweis von A0 .)
Entscheidend ist nun folgende Beobachtung: bei gleichverteilter Eingabe σs = Un+1 hat A Ausgabeverteilung A0 (Hi ); ist aber σs = G(Un ), so hat A Ausgabeverteilung A0 (Hi−1 ). Nach Annahme über G
gilt, dass
A := Pr [A(G(Un )) = 1] − Pr [A(Un+1 ) = 1]
`(n)
1 X
=
Pr [A(G(Un )) = 1 | i = j] − Pr [A(Un+1 ) = 1 | i = j]
`(n)
j=1
`(n)
1 X 0
Pr A (Hi−1 ) = 1 − Pr A0 (Hi ) = 1
`(n)
i=1
1
Pr A0 (G0 (Un )) = 1 − Pr A0 (U`(n) ) = 1
=
`(n)
=
vernachlässigbar ist. Da ` ein Polynom ist, ist hiermit auch Pr [A0 (G0 (Un ))]−Pr A0 (U`(n) ) vernachlässigbar.
Da weiter A0 beliebig war, ist deshalb G0 ein PRG mit Streckung `(n).
Wir können uns also darauf beschränken, PRGs mit Streckung n + 1 zu konstruieren. Zunächst halten
wir fest, dass wir weitere Annahmen brauchen, um einen PRG zu konstruieren:
Lemma 10.5. Angenommen, ein PRG mit Streckung n + 1 existiert. Dann ist P 6= NP.
Beweis. Sei G ein PRG mit Streckung n + 1. Man betrachte die Sprache
[
LG :=
{x ∈ {0, 1}n+1 | ∃s ∈ {0, 1}n : x = G(s)}.
n∈N
Es ist LG ∈ NP; geeigneter Zeuge für x ∈ L ist s. Wäre LG ∈ P, so gäbe es eine Polynomialzeit-TM A
mit
Pr [A(G(Un )) = 1] = 1
Pr [A(Un+1 ) = 1] ≤ 1/2,
was der PRG-Eigenschaft von G widerspräche. Also ist LG ∈ NP \ P.
Wir müssen uns also realistischerweise auf unbewiesene Annahmen zurückziehen, um PRGs zu konstruieren. Eine dieser Annahmen ist die folgende:
Definition 10.6 (Einwegpermutation). f : {0, 1}∗ → {0, 1}∗ ist eine Einwegpermutation, wenn f bijektiv und längenerhaltend (im Sinne von |f (x)| = |x|) ist und folgendes gilt: für jede NPPT-TM A ist
Pr [A(f (x)) = x] vernachlässigbar als Funktion in n, wobei x ∈ {0, 1}n gleichverteilt ist.
Kandidaten für Einwegpermutationen sind beispielsweise die Potenzierung (mit festem oder zufälligem
Exponenten) in geeigneten zyklischen Gruppen. Tatsächlich ist Definition 10.6 etwas restriktiv bezüglich
der Bitdarstellung von Urbildern und Bildern, um die Präsentation des folgenden Ergebnisses zu erleichtern. Ein Kandidat in einer syntaktisch etwas gelockerten Definition von Einwegpermutationen ist
beispielsweise die Abbildung f (x, N ) = x2 mod N für N = P Q mit primen P, Q = 3 mod 4 und x ∈ QRN .
Satz 10.7 (Goldreich-Levin). Sei f eine Einwegpermutation. Dann ist G : {0, 1}∗ → {0, 1}∗ mit
G(x, r) = (f (x), hx, ri, r) ∈ {0, 1}|x|+|r|+1
ein PRG mit Streckung n + 1, wobei x, r ∈ {0, 1}m ist, und hx, ri = ⊕m
i=1 xi ri das bitweise Skalarprodukt
von x und r ist.
29
Beweisidee. Nehmen wir zum Widerspruch einen erfolgreichen Unterscheider A zwischen G(x, r) und
U|x|+|r|+1 an. Wir können A als einen Prädiktor B auffassen, der bei Eingabe f (x) und r das innere
Produkt hx, ri vorhersagt.
Nehmen wir dabei zunächst an, dass B(f (x), r) = hx, ri immer (d.h. für alle x und r) gilt. Dann
können wir B benutzen, um x = (x1 , . . . , xm ) aus f (x) zu berechnen, indem wir B(f (x), ei ) = hx, ei i = xi
für alle Einheitsvektoren ei berechnen. Dies aber erzeugt einen Widerspruch zur Annahme, dass f eine
Einwegpermutation ist.
Weichen wir nun unsere Annahme etwas auf und nehmen Pr [B(f (x), r) = hx, ri] = 4/5 für hinreichend
viele x an (wobei die Wahrscheinlichkeit über r ist). In diesem Fall ist problematisch, dass etwa für alle
r = ei der Prädiktor B die falschen Ergebnisse liefern könnte. Wir gehen dem aus dem Weg, indem wir
hx, ai = hx, bi ⊕ hx, b ⊕ ai für alle x, a, b ∈ {0, 1}m nutzen. Genauer berechnen wir
B(f (x), s) ⊕ B(f (x), s ⊕ ei )
für alle i und jeweils viele gleichverteilte s ∈ {0, 1}m und bilden einen Mehrheitsentscheid, um hx, ei i
vorherzusagen.
Nun gilt B(f (x), r) = hx, ri tatsächlich aber nur mit Wahrscheinlichkeit 1/2 + für nicht-vernachlässigbares . Insbesondere können wir nicht annehmen, dass im Vorgehen wie oben mit hinreichender
Wahrscheinlichkeit > 1/2 sowohl B(f (x), s) als auch B(f (x), s ⊕ ei ) richtig berechnet werden.
Die Lösung von Goldreich und Levin, die hier nur skizziert werden soll, ist, die Werte s nicht echt
unabhängig und gleichverteilt zu wählen, sondern nur paarweise unabhängig. Genauer werden alle zur
Randomisierung benötigten s als Linearkombinationen der Form
s = α1 s1 ⊕ α2 s2 ⊕ · · · ⊕ αt st
(mit αi ∈ {0, 1} und gleichverteilten si ∈ {0, 1}m ) berechnet. Hiermit sind die s zwar paarweise unabhängig, es können aber 2t viele s aus den si kombiniert werden. Der Vorteil dieses Verfahrens ist, dass
sich die Werte hx, si aus den hx, si i ergeben:
hx, si = α1 hx, s1 i ⊕ · · · ⊕ αt hx, st i.
Genauer reicht es aus, anfangs die t Werte hx, si i zu raten (man beachte, dass t logarithmisch klein
ist), um sich alle hx, si ohne B zu erschließen. Auf diese Weise wird B nur gebraucht, um die Werte
hx, s ⊕ ei i zu berechnen, und eine Erfolgswahrscheinlichkeit“ 1/2 + von B reicht bei hinreichend vielen
”
Wiederholungen aus.
Von teilweiser zu vollständiger Derandomisierung. Wir fassen zusammen, was wir bisher gezeigt
haben:
• Wenn eine Einwegpermutation existiert, dann existiert ein PRG mit Streckung n + 1.
• Wenn ein PRG mit Streckung n + 1 existiert, dann wird jede Sprache L ∈ BPP von einer PTM
mit Zufallskomplexität n erkannt.
Das gerade Gesagte zeigt noch nicht, dass P = BPP ist (selbst wenn man Einwegpermutationen annimmt); man hat es immer noch mit n vielen Zufallsbits in einer PTM zu tun. Über diese 2n möglichen
Zufallswahlen kann in Polynomialzeit keine vollständige Suche angestellt werden.
Man stelle sich aber nun vor, dass eine PTM M nur c log n (für konstantes c ∈ N) Zufallsbits benötigt.
Die genaue Akzeptanzwahrscheinlichkeit einer solchen PTM bei gegebener Eingabe x ∈ {0, 1}n kann in
polynomieller Zeit berechnet werden. (Für jedes r ∈ {0, 1}c log n wird M (x; r) ausgeführt; man beachte,
dass nur 2c log n = nc solche r existieren.) Mit anderen Worten: jede Sprache, die von einer PPT-TM mit
Zufallskomplexität O(log n) entschieden wird, ist auch von einer Polynomialzeit-TM entscheidbar.
Man könnte also daran interessiert sein, PRGs zu konstruieren, die c log n Zufallsbits auf n Zufallsbits (und damit auf polynomiell viele Zufallsbits) ausdehnen. Solche PRGs lassen sich beispielsweise aus
exponentiell harten Einwegfunktionen konstruieren:
Satz 10.8 (informell). Angenommen, es existieren exponentiell harte Einwegfunktionen (oder exponentiell
starke PRGs). Dann ist P = BPP.
30
Anwendungen von Pseudozufall in der Kryptographie. Pseudozufall erweist sich in vielen Bereichen der Kryptographie als nützlich. Als vielleicht prominentestes Beispiel soll hier eine Anwendung
in Verschlüsselungsschemata angesprochen werden. Zunächst kann beobachtet werden, dass ein PRG in
naheliegender Weise als Ersatz für den echten Zufall in einem one-time pad gebraucht werden kann.
Ein one-time pad ist ein Verschlüsselungsverfahren, bei dem sowohl Sender als auch Empfänger über
einen gemeinsamen Zufallsstring K = K1 . . . K` ∈ {0, 1}` verfügen. Der Sender verschickt ein Chiffrat
C = Ri ⊕ M für eine Nachricht M ∈ {0, 1} (wobei bei mehreren Nachrichten kein Ri mehrmals verwendet
werden darf). Der Empfänger entschlüsselt M = C ⊕ Ri .
Nachteil dieses Verfahrens ist ein großer gemeinsamer Schlüssel K. Sollen ` Bits verschlüsselt werden, ist K ∈ {0, 1}` erforderlich. Statt K ∈ {0, 1}` kann aber einfach K ∈ {0, 1}n für kleines, von
` unabhängiges n gewählt werden, und mit K 0 := G(K) verschlüsselt werden, wobei G ein PRG mit
Streckung ` ist.
Der Nachteil eines solchen Verfahrens ist die benötigte Synchronisation zwischen Sender und Empfänger:
beide müssen wissen, welcher Teil Ki0 des Schlüssels gerade benutzt wird. Blockchiffren (also letztlich Abbildungen E der Form E(K, M ) = C) beheben diesen Mangel. Aus einem PRG kann auch eine Blockchiffre
gebaut werden, indem zunächst eine pseudo-random function (PRF) konstruiert wird. Eine PRF ist eine
effizient berechenbare Funktion F : {0, 1}n × {0, 1}n → {0, 1}n , so dass Orakelzugriff auf F (K, ·) (für
gleichverteiltes K) ununterscheidbar ist von Orakelzugriff auf eine gleichverteilt gezogene echt zufällige
Funktion {0, 1}n → {0, 1}n .
Eine PRF F kann aus einem PRG G mit Streckung 2n etwa wie folgt konstruiert werden: F (K, x) mit
x = (x1 , . . . , x` ) ∈ {0, 1}l setzt K0 := K, und Ki+1 = yi,xi für yi,0 yi,1 := G(Ki ) (wobei yi,0 , yi,1 ∈ {0, 1}k
also die beiden Hälften von G(Ki ) darstellen). Ausgabe ist F (K, x) = Kn . (Diese Konstruktion geht auf
eine Arbeit von Goldreich, Goldwasser und Micali zurück.)
Umgekehrt kann mit einer PRF eine Nachricht effizient blockweise (in Blöcken von n Bits) verschlüsselt
werden; üblicherweise wird hierbei noch eine PRF in einen Block-Operationsmodus eingebunden, um zu
vermeiden, dass gleiche Nachrichten bei gleichem Schlüssel auf gleiche Chiffrate abgebildet werden.
11
Probabilistically checkable proofs
Motivation. Man betrachte folgende Verallgemeinerung von NP: angenommen, man möchte x ∈ L
überprüfen und hat Zugriff auf einen Zeugen π ∈ {0, 1}` . Im Falle von NP (bzw. unserer alternativen
Definition von NP) ist π direkte Eingabe eines effizienten Verifiers V; für eine sinnvolle Definition sollte
also die Länge ` von π polynomiell in |x| sein.
Nehmen wir nun an, dass V der Zeuge π nicht als Eingabe zur Verfügung gestellt wird, sondern nur in
impliziter Form gegeben wird. (Dies kann etwa dadurch geschehen, dass V Orakelzugriff auf eine Funktion
χπ : N → {0, 1} hat, wobei χπ (i) = πi das i-te Bit von π liefert.) Offenbar kann jede Sprache L ∈ NP
auf diese Weise durch einen Verifier V erkannt werden, der zunächst den gesamten NP-Zeugen bitweise
ausliest.
Die wahre Kraft wie oben definierter Beweise entfaltet sich aber erst, wenn wir probabilistische Verifier
V erlauben, die zwar in Polynomialzeit (in |x|) laufen, aber über Orakelzugriff auf einen exponentiell langen
Zeugen π verfügen. Letztlich ist dies eine weitere Formulierung der Probleme, deren Lösungen wir effizient
überprüfen können. Es ergeben sich aber einige überraschende technische Unterschiede.
Wir schreiben kurz Vπ , um auszudrücken, dass V Orakelzugriff auf die Funktion χπ (·) wie oben hat.
Wir sagen, dass der Orakelzugriff nichtadaptiv ist, wenn die Orakelanfragen nur vom verwendeten Zufall
und der Eingabe abhängen, nicht aber vom Ergebnis früherer Orakelanfragen.
Definition 11.1 (PCP). Ein (r(n), q(n))-Verifier (für r, q : N → N) für eine Sprache L ⊆ {0, 1}∗ ist
eine Orakel-PPT-TM V mit den folgenden Eigenschaften:
Komplexität. Für x ∈ {0, 1}n und π ∈ {0, 1}∗ benutzt Vπ (x) höchstens r(n) viele Zufallsbits und macht
höchstens q(n) viele Orakelanfragen (und dies nichtadaptiv).
r(n)
Vollständigkeit. Für jedes x ∈ L existiert ein π ∈ {0, 1}q(n)2
mit
Pr [Vπ (x) = 1] = 1.
Soundness. Für jedes x 6∈ L und alle π ∈ {0, 1}∗ ist
Pr [Vπ (x) = 1] ≤ 1/2.
31
PCP(r(n), q(n)) ist die Menge aller Sprachen L, für die c, d ∈ N und ein (c · r(n), d · q(n))-Verifier
existieren.
S
Offenbar ist NP ⊆ p∈N[X] PCP(0, p(n)) und PCP(log n, 1) ⊆ NP. Spektakulärer ist folgende Aussage:
Satz 11.2 (PCP-Theorem, Theorem 11.5 in [1]). NP = PCP(log n, 1).
Es ist also jede NP-Sprache entscheidbar von einem Verifier, der nur logarithmisch viel Zufall verwendet und nur konstant viele Beweisabfragen durchführt. Tatsächlich kann ein geeigneter Beweiser immer
mit lediglich drei Beweisanfragen auskommen.
Wir werden Satz 11.2 nicht beweisen. Allerdings sind die Konsequenzen dieses Satzes überaus interessant. Bevor wir diese näher beleuchten, werden wir jedoch zunächst ein Beispiel für eine PCP-Sprache
betrachten.
Beispiel 11.3. Wir betrachten wieder die Sprache
GNI := {(G1 , G2 ) | G1 und G2 sind nicht-isomorphe Graphen}.
Wir haben schon gesehen, dass GNI ∈ coNP ist und insbesondere GNI ∈ IP (mit einem interessanten“
”
Beweissystem) gilt. Das interaktive Beweissystem (P, V), mit dem GNI ∈ IP gezeigt wurde, hatte die
folgende Form:
1. V wählt i ∈ {1, 2} und eine Permutation τ von Gi gleichverteilt und sendet H := τ (Gi ) an P.
2. P überprüft, ob H isomorph zu G1 oder G2 ist. Ist H isomorph zu Gj , so sendet P j an V.
3. V gibt 1 aus genau dann, wenn i = j ist.
Fassen wir nun die Reaktion von P als bestimmte, durch H anzeigte Stelle eines exponentiell großen
r(n)
Beweises π auf, so kann P durch einen statischen“ Beweis π ∈ {0, 1}2
für ein geeignetes Polynome r
”
ersetzt werden. (Das von H bestimmte Bit von π ist 1 genau dann, wenn H isomorph zu G1 ist.) V wird
dann nur noch nicht-interaktiv“ durch Orakelanfragen klären, ob H isomorph zu G1 oder G2 ist und eine
”
entsprechende Ausgabe geben.
Dies zeigt, dass GNI ∈ PCP(r(n), 1) für ein Polynom r ist.
PCPs und Approximationen. Es besteht ein interessanter Zusammenhang zwischen der Approximation von Problemlösungen und PCPs. Zunächst soll deshalb der Begriff der Approximation formalisiert
werden:
Definition 11.4 (Approximation der optimalen 3CNF-Lösung). Sei ϕ eine 3CNF-Formel. Der Inhalt
val(ϕ) von ϕ ist der maximale Anteil der gleichzeitig erfüllbaren Klauseln von ϕ.
Beispielsweise ist für
ϕ = (u1 ∨ u2 ) ∧ (¬u1 ∨ ¬u2 ) ∧ (u1 ∨ ¬u2 ) ∧ (¬u1 ∨ u2 )
val(ϕ) = 3/4 (denn ϕ ist nicht erfüllbar, aber jede Belegung von u1 , u2 erfüllt 3 der 4 Klauseln). Man
beachte, dass val(ϕ) = 1 ist genau dann wenn ϕ erfüllbar ist.
Definition 11.5 (ρ-Approximationsalgorithmus für 3CNF-Lösungen). Sei 0 ≤ ρ ≤ 1. Ein ρ-Approximationsalgorithmus für 3CNF-Lösungen ist ein Algorithmus, der bei Eingabe einer Formel ϕ eine Variablenbelegung ausgibt, die mindestens ρ · val(ϕ) aller Klauseln von ϕ erfüllt.
Es existiert ein trivialer 1/2-Approximationsalgorithmus für 3CNF-Lösungen: Belege alle Variablen
sukzessive so, dass jeweils immer mindestens die Hälfte aller noch nicht erfüllten Klauseln, die diese
Variable enthalten, erfüllt wird. (Hierfür setzen wir voraus, dass keine Klausel sowohl eine Variable als
auch ihre Negation enthält.)
Es stellt sich folgende Frage: Ist es schwierig, (3CNF-)Approximationen zu berechnen? Kann aus der
Existenz geeignet guter Approximationen gefolgert werden, dass das Problem eine positive Instanz ist
(dass also etwa die gegebene 3CNF-Formel erfüllbar ist)?
Die Antwort liefert eine äquivalente Formulierung des PCP-Theorems:
32
Satz 11.6 (PCP-Theorem, Theorem 11.9 in [1]). Es existiert ein ρ < 1, so dass für jede Sprache L ∈ NP
eine in Polynomialzeit berechenbare Funktion f existiert, die 3CNF-Formeln ausgibt, und für die gilt:
x∈L
⇒
val(f (x)) = 1
x 6∈ L
⇒
val(f (x)) < ρ.
Man beachte, dass dieselbe Aussage mit ρ = 1 nichts anderes als die NP-Vollständigkeit von 3SAT
anzeigt. Für ρ < 1 ergibt sich aber eine hochgradig nichttriviale Aussage. Als im Sinne von Satz 11.6
geeignete Werte für ρ wurde schon ρ = 7/8+ für beliebiges > 0 gezeigt. Aus Satz 11.6 folgt, dass mithilfe
eines effizienten ρ-Approximationsalgorithmus für 3CNF-Lösungen jede NP-Sprache effizient entschieden
werden kann. Wir erhalten
Korollar 11.7 (Corollary 11.10 in [1]). Es gibt ein ρ < 1, so dass folgendes gilt: die Existenz eines
ρ-Approximationsalgorithmus für 3CNF-Lösungen impliziert P = NP.
Um die Äquivalenz von Satz 11.2 und Satz 11.6 einzusehen, kann ein Verifier V mit festverdrahteter
Eingabe x und Zufall r als eine Menge von polynomiell vielen Formeln {φr } aufgefasst werden (und
umgekehrt). Ein Beweis π im Sinne von Satz 11.2 entspricht dabei einer Variablenbelegung von φ.
Anwendung von PCPs: Universal Arguments. Eine wesentliche Stärke der PCP-Charakterisierung
liegt in der Tatsache, dass beliebige NP-Sprachen durch Abfrage konstant vieler Beweisstellen erkannt
werden können. PCPs erlauben auf diese Weise, auch Aussagen zu beweisen, deren Zeugen (im Sinne
von NP) nicht a priori durch ein festes Polynom beschränkt sind. Ein Beispiel für die Konsequenzen
dieser Eigenschaft von PCPs ist das Zero-Knowledge-Beweissystem von Barak. Dieses Beweissystem stellt
einen theoretischen Durchbruch dar. Es zeigt nämlich, dass gewisse Eigenschaften von Zero-KnowledgeBeweissystemen nur erzielt werden können, wenn der Simulator (im Sinne von Definition 7.20) den Code
(bzw. die explizite TM-Beschreibung) des Verifiers benutzt. Für unsere Zwecke sind diese Eigenschaften
von Baraks Beweissystem aber nicht vorrangig. Hier soll vor allem eine interessante von ihm benutzte
Technik vorgestellt werden, die ohne PCPs nicht ohne weiteres möglich scheint.
Genauer nutzt Barak Universal Arguments (UAs). Hiermit ist folgende Variante interaktiver Beweissysteme gemeint:
Definition 11.8 (Universal Argument, informell und vereinfacht). Ein Universal Argument (UA) für die
universelle Sprache
LU := {(i, x, t) | ∃w ∈ {0, 1}∗ : Mi (x, w) akzeptiert in höchstens t Schritten}
besteht aus zwei TMs (P, V), so dass folgendes gilt:
Effizienz. V ist eine PTM mit Laufzeit polynomiell in der Länge der Eingabe y = (i, x, t). P ist eine
PTM und erhält als Eingabe y und ein zugehöriges w ∈ {0, 1}∗ ; seine Laufzeit ist polynomiell
in der Laufzeit von Mi (x, w). (Die zusätzliche Eingabe w gleicht den Nachteil der beschränkten
Rechenkomplexität von P aus.)
Vollständigkeit. Für alle y = (i, x, t) ∈ L und Zeugen w ∈ {0, 1}∗ (so dass Mi (x, w) in ≤ t Schritten
akzeptiert) gilt:
Pr [outV hV, Pw i(y) = 1] = 1,
wobei hV, Pw i ausdrückt, dass P in der Interaktion als zusätzliche Eingabe w erhält.
(Computational) Soundness. Für alle y 6∈ L und alle PPT-TMs P0 ist
Pr outV hV, P0 i(y) = 1
vernachlässigbar. Man beachte, dass wir nur über effiziente P0 quantifizieren. Man spricht deshalb
auch von Argumentsystemen (im Gegensatz zu Beweissystemen).
Witness Indistinguishability. V lernt in einer Interaktion nicht, welcher NP-Zeuge benutzt wurde.
(Diese Eigenschaft ist nur interessant, wenn mehrere Zeugen existieren und stellt eine Abschwächung
der Zero-Knowledge-Eigenschaft dar.) Genauer: für alle Familien (yn , wn,1 , wn,2 )n∈N mit yn ∈ {0, 1}n ∩
LU und (möglicherweise verschiedenen) zugehörigen Zeugen wn,i und alle PPT-TMs V0 gilt, dass
Pr outV0 hV0 , Pwn,1 i(yn ) = 1 − Pr outV0 hV0 , Pwn,2 i(yn ) = 1
vernachlässigbar (als Funktion in n) ist.
33
Schwacher Proof-of-Knowledge (informell). Aus jedem effizienten Prover P0 , der V bei Eingabe y =
(i, x, t) von y ∈ LU überzeugt, kann effizient ein zugehöriges w aus der Beschreibung von P0 extrahiert
werden.
Man beachte, dass die Schwierigkeit in der Konstruktion von UAs darin besteht, mit nicht a priori
längenbeschränkten Zeugen umzugehen. Dies ist der Anknüpfungspunkt für PCPs. Genauer kann ein UA
kann aus einer kollisionsresistenten Hashfunktion und einem geeigneten PCP-Verifier konstruiert werden.
Die Intuition dieser Konstruktion ist wie folgt: zunächst sei folgende Variante des PCP-Theorems
vorgestellt:
S
Satz 11.9 (PCP-Theorem, Theorem 11.8 in [1]). NEXP = r∈N[X] PCP(r(n), 1).
Offenbar ist LU ∈ NEXP; es existiert also ein PCP-Verifier, der polynomiell viel Zufall und konstant
viele Beweisanfragen benötigt, um LU zu erkennen. Stellt man sich in einem ersten Schritt vor, dass ein
Prover einfach diese Beweisanfragen beantwortet, erhält man (fast) einen UA.
Es ergibt sich allerdings eine Schwierigkeit bezüglich der Soundness dieses Argumentsystems: ein
unehrlicher Prover P0 könnte seine Antworten an die jeweiligen Beweisanfragen anpassen. Um dies zu
vermeiden, muss sich ein Prover zunächst auf den gesamten (eventuell exponentiell großen) Beweis π
festlegen. Hierzu werden die Bits von π als Blätter eines vollständigen Binärbaums polynomieller Tiefe
dargestellt. Jeder Knoten des Baums enthält einen Hashwert auf die zwei unmittelbaren Nachfolger; damit
ist ein Pfad durch den Baum, vom Wurzelknoten bis zu einem Bit von π, als Folge von polynomiell vielen
Hashwerten gegeben. Eine solche Folge kann von einem polynomiell beschränkten Verifier nachvollzogen
werden. Andererseits ist der Prover auf den gesamten Baum festgelegt, wenn er dem Verifier anfangs den
zum Wurzelknoten gehörigen Hashwert schickt. (Andernfalls gäbe es zwei Möglichkeiten, einen Hashwert
zu erklären, was der Kollisionsresistenz der verwendeten Hashfunktion widerspräche.) Auf diese Weise
lässt sich die Soundness des UA aus der Soundness des verwendeten PCPs folgern.
Weiter folgt noch nicht ohne weiteres Witness Indistinguishability, denn die Hashwerte verbergen
nicht unbedingt die gehashten Werte. Um diesem Problem beizukommen, können wir jedoch einfach statt
der eigentlichen Bits Commitments auf die jeweiligen Bits in den Blättern speichern, und diese im Falle
einer Abfrage öffnen. (Commitments verbergen den jeweiligen Inhalt ähnlich wie eine Verschlüsselung,
benötigen aber keinen Schlüssel und haben zusätzlich eine bindende Eigenschaft; dies bedeutet, dass ein
Commitment immer nur zu einem einzigen Wert geöffnet werden kann.)
Schließlich folgt die Proof-of-Knowledge-Eigenschaft aus einer ähnlichen Eigenschaft des zugrundeliegenden PCPs.
Nehmen wir nun ein UA (etwa wie beschrieben konstruiert) an. Baraks Zero-Knowledge-Argumentsystem (P, V) für beliebige NP-Sprachen L funktioniert dann wie folgt:
1. Bei Eingabe x ∈ L und einem Zeugen w sendet P zunächst ein Commitment Com auf 0n an V.
2. Dann sendet V einen zufälligen Bitstring r ∈ {0, 1}n .
3. Anschließend beweist P mittels eines UA folgende Aussage, wobei H eine feste kollisionsresistente
Hashfunktion ist:
Entweder x ∈ L, . . .
. . . oder das Commitment Com kann zu einem Wert H(Π) geöffnet werden, wobei Π die
Beschreibung einer effizient berechenbaren Funktion mit Π(Com) = r ist
(oder beides).
Ein ehrlicher Prover wird einen Zeugen für x ∈ L und damit für diese Aussage kennen.
Hintergrund für den etwas sonderbar anmutenden oder“-Teil der bewiesenen Aussage ist die Konstruktion
”
eines Simulators (im Sinne unserer Zero-Knowledge-Definition).
Halten wir uns zur Erinnerung vor Augen, dass wir Korrektheit, Soundness, und eine geeignete ZeroKnowledge-Eigenschaft von (P, V) zeigen möchten. Effizienz und Korrektheit folgen aus den jeweiligen
Eigenschaften des UAs. Soundness folgt aus der Soundness des UAs, und der Tatsache, dass r von einem
ehrlichen V unabhängig von Com gewählt wird. (Genauer: aus ein Prover, der die Soundness verletzt,
würde sich mittels der Proof-of-Knowledge-Eigenschaft ein Prover herleiten lassen, der Kollisionen der
Hashfunktion H findet.)
Um einzusehen, dass (P, V) die Zero-Knowledge-Eigenschaft hat, müssen wir einen Simulator S angeben, der Interaktionen mit einem beliebigen gegebenen Verifier V simuliert. Nun wird S in einer Interaktion
34
mit V im Allgemeinen keinen Zeugen für x ∈ L kennen. Allerdings wird S intern V simulieren können,
um ein gültiges Transkript zu produzieren. Insbesondere wird S den Programmcode und den gesamten
verwendeten Zufall von V kennen. Da V r wählt (möglicherweise in Abhängigkeit von Com), kann S also
schon zu Anfang des Protokolls ein Programm Π wie in der UA-Aussage gefordert angeben. Der Simulator
verfährt also wie folgt:
1. S sendet ein Commitment Com auf H(Π) an V, wobei Π das Programm von V selbst (mit festverdrahtetem Zufall) ist.
2. (Die Simulation von) V sendet einen zufälligen Bitstring r ∈ {0, 1}n .
3. S beweist mittels eines UA folgende Aussage:
Entweder x ∈ L, . . .
. . . oder das Commitment Com kann zu einem Wert H(Π) geöffnet werden, wobei Π die
Beschreibung einer effizient berechenbaren Funktion mit Π(Com) = r ist
(oder beides).
Entscheidend ist, dass tatsächlich Π(Com) = r ist (nach Konstruktion), und S deshalb einen Zeugen
für den oder“-Teil der Aussage kennt.
”
Auf diese Weise kann S Transkripte ausgeben, die ununterscheidbar von echten Transkripten sind. (Dies
folgt aufgrund der Sicherheit des Commitments und der Witness Indistinguishability des UAs.)
Man mache sich die Subtilität dieser Simulation klar: nur, wenn V tatsächlich innerhalb von S simuliert
wird, ist der alternative Beweisweg“ über den oder“-Teil der Aussage möglich. Anders gesagt: P (bzw. S)
”
”
beweist V die Aussage entweder die eigentliche Aussage x ∈ L stimmt, oder Du wirst gerade simuliert!“
”
Wesentlich hierbei ist, dass der einzige offensichtliche Weg, die jeweils nächste Nachricht von V vorherzusagen, darin besteht, V selbst auszuführen. (Immerhin ist a priori nichts über V bekannt.) Dies hat
zur Konsequenz, dass der Zeuge für den oder“-Teil der bewiesenen Aussage mit der Komplexität von V
”
wächst. Da wir beliebig (polynomiell) große V annehmen, ist demnach für den Zeugen keine polynomielle a-priori-Schranke bekannt. Es ist also essentiell, dass die Komplexität der UA-Kommunikation nicht
von der Größe des Zeugen abhängt. An dieser Stelle fließt letztendlich ein, dass mittels eines PCP kurze
interaktive Beweise (also UAs) konstruiert werden können.
Literatur
[1] Sanjeev Arora and Boaz Barak. Computational Complexity: A Modern Approach. Cambridge University Press, 2009.
[2] Oded Goldreich. Computational Complexity: A Conceptual Perspective. Cambridge University Press,
2008.
[3] Dexter Kozen. Theory of Computation. Springer, New York, 2006.
35