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

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

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

Schritt S9: Der Simulator wartet darauf, dass <strong>de</strong>r Verifier wie in Schritt V2<br />

die hij’s liefert. Falls <strong>de</strong>r Verifier von <strong>de</strong>m Protokoll 6.3 abweicht, geht<br />

<strong>de</strong>r Simulator <strong>zu</strong>rück <strong>zu</strong> Schritt S7.<br />

Schritt S10: Der Simulator verfährt entsprechend Schritt P2 mit <strong>de</strong>r Ausnahme,<br />

dass dann, wenn ˆyi = 1 ist, νi[j] durch ♦(ɛi[j]) ersetzt wird.<br />

Insbeson<strong>de</strong>re sen<strong>de</strong>t er die wij’s und tij’s an <strong>de</strong>n Verifier.<br />

Schritt S11: Der Simulator wartet darauf, dass <strong>de</strong>r Verifier wie in Schritt V3<br />

die r ’s und y ’s liefert. Es ist möglich, dass die Antwort <strong>de</strong>s Verifiers sich<br />

von <strong>de</strong>rjenigen unterschei<strong>de</strong>t, die er vorher in Schritt S5 gegeben hat.<br />

Falls <strong>de</strong>r Verifier von <strong>de</strong>m Protokoll 6.3 abweicht, geht <strong>de</strong>r Simulator<br />

<strong>zu</strong>rück <strong>zu</strong> Schritt S7.<br />

Schritt S12: Der Simulator verifiziert ϕ(e, r, y). Misslingt diese Prüfung, geht<br />

<strong>de</strong>r Simulator <strong>zu</strong>rück <strong>zu</strong> Schritt S7.<br />

Schritt S13: An diesem Punkt gibt es zwei Möglichkeiten: Entwe<strong>de</strong>r es gilt<br />

y = ˆy o<strong>de</strong>r y = ˆy. Im ersten Fall hat <strong>de</strong>r Simulator seine Commitments<br />

so vorbereitet, dass er <strong>de</strong>r jeweiligen Öffnungsauffor<strong>de</strong>rung nachkommen<br />

kann. Im zweiten Fall be<strong>de</strong>utet dies, dass <strong>de</strong>r Verifier seine Öffnungswahl<br />

geän<strong>de</strong>rt hat, was <strong>de</strong>m Simulator ermöglicht, <strong>de</strong>n diskreten Logarithmus<br />

von s <strong>zu</strong> berechnen. Wenn y = ˆy gilt, fährt das Protokoll mit Schritt S15<br />

fort, sonst mit Schritt S14.<br />

Schritt S14: (Der Verifier hat seine Öffnungswahl zwischen Schritt S5 und S11<br />

geän<strong>de</strong>rt.) Es wer<strong>de</strong>n alle i mit 1 ≤ i ≤ k betrachtet, für die yi = ˆyi gilt.<br />

Der Simulator berechnet<br />

a =<br />

<br />

ri − ˆri falls yi = 0<br />

ˆri − ri sonst<br />

(Dabei ist <strong>zu</strong> be<strong>de</strong>nken, dass diese Subtraktion in p−1 und damit modulo<br />

p − 1 erfolgt.) Da α ri s yi = ei = α ˆri s ˆyi gilt, folgt damit α a = s. Somit hat<br />

<strong>de</strong>r Simulator <strong>de</strong>n diskreten Logarithmus von s.<br />

Für je<strong>de</strong>s i mit yi = 0 und ˆyi = 1 berechnet <strong>de</strong>r Simulator νi = σ(Ψ) und<br />

für je<strong>de</strong>s i mit yi = 1 und ˆyi = 0 berechnet er ɛi = ρ(Ψ). Für je<strong>de</strong>s i, für<br />

das yi = ˆyi gilt, und für je<strong>de</strong>s j, für das νi[j] = ♦(ɛi[j]) gilt, än<strong>de</strong>rt <strong>de</strong>r<br />

Simulator die zi[j]’s aus Schritt S8 wenn nötig wie folgt:<br />

zi[j] =<br />

<br />

zi[j] − a falls ˆyi = νi[j]<br />

zi[j] + a sonst<br />

Dies erlaubt <strong>de</strong>m Simulator, die ” Commitments“ aus <strong>de</strong>n xi’s in einer<br />

Weise <strong>zu</strong> öffnen, die die Öffnungsauffor<strong>de</strong>rungen yi erfüllen, auch wenn<br />

xi ursprünglich dafür vorbereitet war, die Öffnungswahl ˆyi <strong>zu</strong> erfüllen.<br />

67

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!