30.10.2013 Aufrufe

Diplomarbeit zu "`Zero-Knowledge Arguments"' - Telle-Online.de

Diplomarbeit zu "`Zero-Knowledge Arguments"' - Telle-Online.de

Diplomarbeit zu "`Zero-Knowledge Arguments"' - Telle-Online.de

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

6 Perfekte Zero–<strong>Knowledge</strong> Arguments mit konstanter Run<strong>de</strong>nzahl<br />

reines Glück, da <strong>de</strong>r Prover <strong>de</strong>n diskreten Logarithmus von s nicht kennt. Nichts<strong>de</strong>stotrotz<br />

ist <strong>de</strong>rartiges Glück möglich und muss berücksichtigt wer<strong>de</strong>n.<br />

4. Der Verifier weicht <strong>zu</strong> bestimmten Zeitpunkten von <strong>de</strong>m Protokoll ab, das heißt<br />

dass er die ” vernünftige“ Zusammenarbeit verweigert und dadurch <strong>de</strong>n Prover da<strong>zu</strong><br />

bringt, die Interaktion vorzeitig <strong>zu</strong> been<strong>de</strong>n. Dass geschieht <strong>zu</strong>m Beispiel in Schritt<br />

V1, wenn <strong>de</strong>r Verifier ein s = 0 liefert, o<strong>de</strong>r in Schritt V3, wenn er behauptet, <strong>de</strong>r<br />

Prover habe in Schritt P2 bei <strong>de</strong>n Kontroll Commitments getäuscht, ohne dass das<br />

tatsächlich <strong>de</strong>r Fall ist, o<strong>de</strong>r wenn er eine ” 2“ als eine <strong>de</strong>r Öffungsauffor<strong>de</strong>rungen<br />

yi in V3 liefert.<br />

Im ersten Fall könnte die Öffnungswahl <strong>de</strong>s Verifiers von <strong>de</strong>r Ausgabe <strong>de</strong>s Provers<br />

in <strong>de</strong>n Schritten P1 und P2 abhängig sein. Wenn dies eintritt, wird <strong>de</strong>r Simulator <strong>de</strong>n<br />

Verifier <strong>zu</strong>rücksetzen und dadurch <strong>de</strong>n diskreten Logarithmus von s erhalten. Wenn <strong>de</strong>r<br />

Simulator diese Information erst einmal hat, kann er in Schritt P3 ” mogeln“, da er damit<br />

<strong>de</strong>n Schlüssel <strong>zu</strong>m Invertieren <strong>de</strong>s Bit–Commitment–Schemes hat.<br />

Im zweiten Fall lässt <strong>de</strong>r Simulator <strong>de</strong>n Verifier einmal laufen, um die Öffnungswahl<br />

in Schritt V3 <strong>zu</strong> erhalten. Anschließend wird <strong>de</strong>r Verifier auf eine vorherige Konfiguration<br />

<strong>zu</strong>rückgesetzt, und <strong>de</strong>r Schritt P1 wird erneut simuliert. Diesmal jedoch mit Commitments,<br />

die <strong>de</strong>r Öffnungswahl <strong>de</strong>s Verifiers entsprechen.<br />

Die Fälle drei und vier sind schwieriger <strong>zu</strong> handhaben und wer<strong>de</strong>n bei <strong>de</strong>r nachfolgen<strong>de</strong>n<br />

formalen Beschreibung <strong>de</strong>s Simulators abgehan<strong>de</strong>lt.<br />

Um <strong>de</strong>n Simulator <strong>zu</strong> beschreiben, ist es einfacher sich vor<strong>zu</strong>stellen, dass <strong>de</strong>r Verifier<br />

eine <strong>de</strong>terministische Maschine ist, die Zugriff auf ein Zufallsband hat. Dieses Zufallsband<br />

unterliegt <strong>de</strong>r vollständigen Kontrolle <strong>de</strong>s Simulators. Anfangs ist das Band leer.<br />

Je<strong>de</strong>smal, wenn <strong>de</strong>r Verifier Zugriff auf ein neues Bit <strong>de</strong>s Zufallsban<strong>de</strong>s hat, führt <strong>de</strong>r<br />

Simulator einen Münzwurf aus und schreibt das Resultat für <strong>de</strong>n Verifier auf das Zufallsband.<br />

Zu je<strong>de</strong>r Zeit kann <strong>de</strong>r Simulator einen Speicheraus<strong>zu</strong>g vom Verifier anfertigen<br />

bzw. sich als Turing Maschine die Konfiguration merken und später <strong>de</strong>n Verifier exakt<br />

an dieser Stelle weiterarbeiten lassen. Wenn <strong>de</strong>r Verifier <strong>zu</strong> einer vorhergehen<strong>de</strong>n Konfiguration<br />

<strong>zu</strong>rückgesetzt wird, dann wird <strong>de</strong>r Lesekopf <strong>de</strong>s Zufallban<strong>de</strong>s ebenfalls auf<br />

die entsprechen<strong>de</strong> Stelle <strong>zu</strong>rückgesetzt, mit <strong>de</strong>m Unterschied, dass die bereits auf das<br />

Zufallsband geschriebenen Zufallsbits, die hinter dieser Stelle liegen, erhalten bleiben,<br />

so dass <strong>de</strong>r Verifier nach <strong>de</strong>m Rücksetzen exakt dieselben Bits wie<strong>de</strong>r verarbeitet, die<br />

er beim vorigen Durchlauf schon einmal gelesen hat. Der Vorteil dieses Ansatzes gegenüber<br />

<strong>de</strong>m einmaligen Erzeugen <strong>de</strong>s Zufallban<strong>de</strong>s durch <strong>de</strong>n Simulator für alle <strong>de</strong>nkbaren<br />

Zugriffe <strong>de</strong>s Verifiers liegt darin, dass damit Verifier simuliert wer<strong>de</strong>n können, die keine<br />

von vornherein bekannte Zeitschranke haben. Noch wichtiger ist jedoch, dass selbst<br />

dann, wenn nur Verifier mit einer erwarteten polynomiellen Laufzeit betrachtet wer<strong>de</strong>n,<br />

im Einzelfall signifikant mehr Zeit benötigt wird, wenngleich auch nur mit geringer<br />

Wahrscheinlichkeit.<br />

65

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!