beweissysteme hartmut klauck universität frankfurt ws 06/07 20.12

21
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/07 20.12.

Upload: wilfreda-rasche

Post on 05-Apr-2015

107 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/07 20.12

Beweissysteme

Hartmut KlauckUniversität Frankfurt

WS 06/0720.12.

Page 2: Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/07 20.12

Orakel SAT

• Theorem 10.1Orakel-3-SAT ist NEXP-vollständig.

• Beweis:– Offensichtlich liegt Orakel-3-SAT in NEXP– Es ist weiterhin eine (in polynomieller

Zeit berechenbare) Reduktion von jeder Sprache L in NEXP auf Orakel 3-SAT zu zeigen.

Page 3: Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/07 20.12

Die Reduktion• Gegeben sei eine Sprache L aus NEXP• Wir können die Konstruktion aus dem Satz von Cook anwenden

und erhalten zu jeder Eingabe eine exponentiell lange3-KNF in , die genau dann erfüllbar ist, wenn x in L

• Es gebe 2s Variablen in für s=poly(n),|x|=n

• Die Variablen seien y(B) für B2{0,1}s

• Es gibt 23s+3 mögliche Klauseln mit 3 Literalen

• Wir schreiben Klauseln alsc(B1,B2,B3,F)= (F1©y(B1))_ (F2©y(B2))_(F3©y(B3))

• © bezeichne die Parität, und F kodiert Negation der Variablen in der KlauselBi indiziert die i-te Variable

• Wir setzen c‘(F,T)=

(F1©T1)_ (F2©T2)_(F3© T3), eine Boolesche Formel in 6 Variablen

Page 4: Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/07 20.12

Die Reduktion• Zu gegebenen Belegungen von B1,B2,B3,F kann in polynomieller Zeit

bestimmt werden, ob c(B1,B2,B3,F) eine Klausel in der Formel ist• q(x, B1,B2,B3,F) sei ein Prädikat, das dies anzeigt

• D.h. x2 L genau dann wennes eine Boolesche Funktion A:{0,1}s{0,1}

gibt, so dass für alle B1B2B32{0, 1}3s und F2{0,1}3 gilt:

c‘(F,T)_:q(x, B1,B2,B3,F) wird erfüllt wenn Ti=A(Bi) für i=1,2,3

• A entspricht der erfüllenden Belegung von , als Funktion kompakt

dargestellt, c‘(F,A(B1),A(B2),A(B3)) bedeutet Klausel c(B1,B2,B3,F) wird

erfüllt, jede Klausel wird entweder erfüllt oder ist nicht in vorhanden

• c‘ (F,T)_:q(x, B1,B2,B3,F) ist bis auf den q() Teil eine Boolesche Formel

Page 5: Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/07 20.12

Die Reduktion

• q(x, B1,B2,B3,F) liegt in P, damit auch in NP

• D.h. nach dem Satz von Cook gibt es eine 3-KNF e(x, B1,B2,B3,F, U), mit:

e(x, B1,B2,B3,F, U) ist erfüllbar gdw q(x,B1,B2,B3,F) wahr ist; U enthält neue

Variablen aus der Reduktion gemäß dem Satz von Cook

• q(x, B1,B2,B3 ,F)=0 ist äquivalent dazu, dass :e(x, B1,B2,B3,F, U) von allen U

erfüllt wird

• Unsere Boolesche Formel ist schließlich

d(B1,B2,B3,F,U,T) =c‘(F,T)_:e(x, B1,B2,B3,F,U)

• Die Variablen sind F (3 Variablen), T (3 Variablen), B1,B2,B3 (3s Variablen), U

(poly(n) Variablen); U und F entsprechen den r Z-Variablen aus der Definition von Orakel-3-SAT

• d wird von einer Funktion A Orakel-erfüllt, wenn für alle Belegungen von

B1,B2,B3 und F,U gilt dass d(B1,B2,B3,F,U,T) wahr ist wenn Ti=A(Bi) für i=1,2,3

• Nach obigem existiert ein A, das d Orakel-erfüllt gdw. x2 L

Page 6: Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/07 20.12

Die Reduktion

• Damit haben wir eine Reduktion von einer beliebigen Sprache in NEXP auf Orakel 3-SAT

• Die Reduktion kann leicht in polynomieller Zeit in der Länge von ausgeführt werden

Page 7: Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/07 20.12

Arithmetisierung

• Wir wollen wieder mit Arithmetisierung arbeiten

• Gegeben ist also eine Instanz , r,s des Orakel-3-SAT Problems

• ist eine Boolesche Formel mit r+3s+3 Variablen

Page 8: Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/07 20.12

Arithmetisierung

• Lemma 10.2:– In polynomieller Zeit können wir einen

arithmetischen Ausdruck für ein Polynom g mit ganzzahligen Koeffizienten bestimmen, so dass

– A Orakel-erfüllt gdw.B1,B2,B3,F,U 2{0,1}

3s+r

g(B1,B2,B3,F,U,A(B1),A(B2),A(B3))=0

Page 9: Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/07 20.12

Beweis

• Wir arithmetisieren und erhalten ein Polynom h• Wir setzen

g=(1-h)2 + T12(T1-1)2 +T2

2(T2-1)2 +T32(T3-1)2

• g(B1,B2,B3,F,U,T)=0 gdw

h(B1,B2,B3,F,U,T)=1 und

T1,T2,T32 {0,1}• Damit erzwingen wir, dass A (für Ti eingesetzt)

Boolesche Werte hat• Immer gilt: g(B1,B2,B3,F,U,T)¸0

Page 10: Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/07 20.12

Beweis

• B1,B2,B3,F,U 2 {0,1} 3s+r

g(B1,B2,B3,F,U,A(B1),A(B2),A(B3))=0

bedeutet: für alle Booleschen Belegungen der Variablen in B1,B2,B3,F,U gilt, dass

g(B1,B2,B3,F,U,A(B1),A(B2),A(B3))=0

• Das bedeutet h(B1,B2,B3,F,U,A(B1),A(B2),A(B3))=1 und A(Bi) Boolesch

• Also: wird vom (Booleschen) A Orakel-erfüllt.

Page 11: Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/07 20.12

Multilinearität

• Wir wollen also den AusdruckB1,B2,B3,F,U 2{0,1}

3s+r

g(B1,B2,B3,F,U,A(B1),A(B2),A(B3))=0testen

• A sei von einem Orakel gespeichert• Um unseren Ansatz weiterzuverfolgen, müssen

wir auch A als ein Polynom betrachten• Dieses Polynom soll zudem kleinen Grad haben

Page 12: Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/07 20.12

Multilinearität

• Ein Polynom in s Variablen heißt multilinear, wenn der Grad jeder Variable 1 ist

• (z.B. xyz+2 yz ist multilinear, x2 nicht)• Lemma 10.3

– Jede Funktion A:{0,1}s{0,1} kann als multilineares Polynom pA dargestellt

werden, d.h. pA(b)=A(b) für alle b2{0,1}s

– Diese Darstellung ist eindeutig

Page 13: Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/07 20.12

Beweis

• Setze pA(x1,…,xs)=

Page 14: Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/07 20.12

Unser Ansatz

• Wir erwarten in unserem Beweissystem das Polynom pA zu einer Funktion A, die Orakel-erfüllt

• Dieses Polynom soll multilinear sein• Wenn das der Fall ist, können wir so vorgehen, wie

im IP Protokoll für TAUT• Die Multilinearität von pA garantiert, dass wir

insgesamt mit Polynomen von kleinem Grad arbeiten

• Problem: Der Beweiser kann mogeln, indem er ein Polynom von hohem Grad anstellt pA angibt

• Dieses Problem führt uns dazu, zu einer als Orakel gegebenen Funktion zu testen, ob sie „nah“ an einem multilinearen Polynom ist

Page 15: Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/07 20.12

Der Ansatz

• Wir werden nicht direkt ein PCP beschreiben, sondern ein Mittelding zwischen PCPs und MIPs

• In unserem Modell gibt es zwei Beweiser– Der eine ist ein gewöhnlicher interaktiver

Beweiser– Der andere ist ein Orakel wie in einem PCP

• Dieses Modell ist gleich mächtig wie MIP und wie PCP(poly,poly)

• Beweiser P1 spielt die Rolle des Beweisers im TAUT Protokoll

• Beweis P2 enthält die Funktion pA als Orakel

Page 16: Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/07 20.12

Der Ansatz

• Das TAUT Protokoll testet Ausdrücke wie unseren, aber nun ist noch A im Spiel

• Wir wollen verifizieren, dassB1,B2,B3,F,U2{0,1}

3s+r

g(B1,B2,B3,F,U,pA(B1),pA(B2),pA(B3))=0• Dabei ist g() ein Polynom vom Grad

d=poly(n), wenn pA multilinear ist• q sei eine genügend große Primzahl, wir

rechnen modulo q, q· exp(poly(n))• Sei I={0,…,q-1)

Page 17: Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/07 20.12

Die Rolle von P2

• P2 soll pA speichern• Dabei werden alle Werte von pA auf Is

gespeichert, also nicht nur auf den Booleschen Werten {0,1}s

• Der Verifizieren kann also durch Frage nach einem Element von Is den Wert von pA an dieser Stelle ermitteln

• Dies trifft für den ehrlichen Beweiser zu, für unehrliche Beweiser können beliebige Werte gespeichert sein.

Page 18: Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/07 20.12

Das Protokoll (Skizze)1. Der Verifizierer testet mit P2, ob pA „nah“ an einem multilinearen

Polynom ist.2. Die Beweiser behaupten B1,B2,B3,F,U2{0,1}

3s+r

g(B1,B2,B3,F,U,pA(B1),pA(B2),pA(B3))=K3. Wir durchlaufen alle Variablen in B1,B2,B3,F,U und belegen diese

mit Körperelementen4. Wenn keine Variable mehr „frei“ ist, testet der Verifizierer

ob g(B1,B2,B3,F,U, pA(B1), pA(B2), pA(B3))=K (akzeptiere wenn wahr, sonst verwerfe), dies benötigt drei Fragen an P2

5. Sonst: Beweiser sendet ein univariates Polynom s vom Grad höchstens dDies ist durch d+1 Körperelemente gegeben

6. Verifizierer testet s(0)+s(1)=K (verwirft falls nicht)7. Verifizierer zieht ein zufälliges a aus I8. Rekursiv wird nun getestet, ob

s(a)= B1,B2,B3,F,U 2{0,1} 3s+r-1

g(B1,B2,B3,F,U,A(B1),A(B2),A(B3)) mit a substituiert für die erste der 3s+r Variablen.

Page 19: Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/07 20.12

Bemerkungen

• Es gibt ab Schritt 2 nur 3s+r=poly(n) Runden

• In jeder Runde sendet der Beweiser ein Polynom vom Grad d=poly(n)

• Der Verifizierer sendet ein a<q mit poly(n) Bits

Page 20: Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/07 20.12

Multilinearitätstest

• Wir müssen Schritt 1 spezifizieren• Definition 10.4

A,B seien Funktion auf einer endlichen Menge X.A -approximiert B, wenn die Anzahl der x2 X mit A(x) B(x) kleiner als |X| ist.

• Wir sagen eine Funktion A(x1,…,xs) ist-approximativ multilinear, wenn sie eine multilineare Funktion -approximiert.

Page 21: Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/07 20.12

Multilinearitätstest

• Theorem 10.5Es gibt einen Algorithmus, der zu einer als Orakel gegebenen Funktion A in s Variablen folgendes leistet:– Sei I={0,…,q-1}, k eine Konstante– Wenn A multilinear ist und ganzzahlige Werte

hat, dann akzeptiert der Algorithmus immer– Wenn A nicht s-k-approximativ multilinear ist,

verwirft der Algorithmus mit hoher Ws. – Der Algorithmus stellt poly(s) viele Fragen