Diplomarbeit zu "`Zero-Knowledge Arguments"' - Telle-Online.de
Diplomarbeit zu "`Zero-Knowledge Arguments"' - Telle-Online.de
Diplomarbeit zu "`Zero-Knowledge Arguments"' - Telle-Online.de
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