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 />

Wenn hij[m] = 0 dann setzt er wij[m] = vij[m]<br />

und tij[m] = bij[m]<br />

Wenn hij[m] = 1 und νi[j] = bij[m] dann setzt er wij[m] = vij[m] − zi[j]<br />

und tij[m] = 0<br />

Wenn hij[m] = 1 und νi[j] = bij[m] dann setzt er wij[m] = vij[m] + zi[j]<br />

und tij[m] = 1<br />

Der Prover sen<strong>de</strong>t alle wij’s und tij’s an <strong>de</strong>n Verifier.<br />

Schritt V3: (Der Verifier prüft, dass die aktuellen Commitments nicht EPR sind.<br />

In diesem Fall öffnet er seine Öffnungsauffor<strong>de</strong>rung.) Für je<strong>de</strong>s i, j und m<br />

prüft <strong>de</strong>r Verifier:<br />

Wenn hij[m] = 0 prüft er ϕ(uij[m], wij[m], tij[m])<br />

Wenn hij[m] = 1 und tij[m] = 0 prüft er uij[m] = α wij[m] xi[j]<br />

Wenn hij[m] = 1 und tij[m] = 1 prüft er uij[m]xi[j] = α wij[m]<br />

Wenn einer dieser Kontrollen fehl schlägt, dann stoppt <strong>de</strong>r Verifier und<br />

verwirft die Behauptung. An<strong>de</strong>rnfalls sen<strong>de</strong>t <strong>de</strong>r Verifier r und y an <strong>de</strong>n<br />

Prover.<br />

Schritt P3: (Der Prover kontrolliert, dass die Öffnungsauffor<strong>de</strong>rung korrekt ist<br />

und folgt dieser.) Der Prover prüft ϕ(e, r, y). Falls die Prüfung fehl schlägt,<br />

been<strong>de</strong>t <strong>de</strong>r Prover die Kommunikation. An<strong>de</strong>rnfalls sen<strong>de</strong>t <strong>de</strong>r Prover<br />

folgen<strong>de</strong>s für alle i an <strong>de</strong>n Verifier:<br />

Wenn y[i] = 0 sen<strong>de</strong>t er zi und νi.<br />

Wenn y[i] = 1 berechnet er ɛi = γ(Ψ, νi,a),<br />

setzt zi[j] = 0 falls ɛi[j] = <br />

und sen<strong>de</strong>t zi und ɛi.<br />

Schritt V4: (Der Verifier kontrolliert, ob alles in Ordnung ist.) Für alle i prüft<br />

<strong>de</strong>r Verifier:<br />

Wenn y[i] = 0 prüft er νi ∈ VΨ und ϕ(xi, zi, νi).<br />

Wenn y[i] = 1 prüft er ɛi ∈ EΨ und ϕ(xi, zi,ɛi).<br />

Wenn einer dieser Kontrollen fehl schlägt, dann stoppt <strong>de</strong>r Verifier und<br />

verwirft die Behauptung. An<strong>de</strong>rnfalls stoppt <strong>de</strong>r Verifier und akzeptiert.<br />

Es ist offensichtlich, dass das Protokoll 6.3 perfekt vollständig ist. Als nächstes wird<br />

gezeigt, dass das Protokoll berechenbar ein<strong>de</strong>utig ist.<br />

Lemma 6.3 (Protokoll 6.3 ist berechenbar ein<strong>de</strong>utig)<br />

Angenommen, <strong>de</strong>r Prover versucht seinen Beweis auf eine Boolesche Formel Ψ <strong>zu</strong> begrün<strong>de</strong>n,<br />

die nicht erfüllbar ist. Weiterhin angenommen, dass <strong>de</strong>r Prover nicht in <strong>de</strong>r<br />

Lage ist, während <strong>de</strong>r Laufzeit <strong>de</strong>r Kommunikation <strong>de</strong>n diskreten Logarithmus von <strong>de</strong>m<br />

s aus<strong>zu</strong>rechnen, welches er in Schritt V1 von <strong>de</strong>m Verifier erhalten hat. Dann beträgt<br />

die Wahrscheinlichkeit, dass <strong>de</strong>r Täuschungsversuch unent<strong>de</strong>ckt bleibt, im besten Fall<br />

2 −k , wenn <strong>de</strong>r Prover gemäß Protokoll 6.3 mit einem ehrlichen Verifier interagiert.<br />

63

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!