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

• Ψ ist ein erfüllbarer Boolescher Ausdruck. Es wird angenommen, dass <strong>de</strong>r Prover<br />

eine erfüllen<strong>de</strong> Belegung a für Ψ kennt.<br />

• Alle weiteren Notationen folgen <strong>de</strong>n Definitionen <strong>de</strong>s Basis–Protokolls ab Seite 58.<br />

Um das nachfolgen<strong>de</strong> Protokoll nicht mit trivialen Details <strong>zu</strong> überfrachten, wer<strong>de</strong>n<br />

offensichtliche aber notwendige Tests nicht explizit aufgeführt. Zum Beispiel muss <strong>de</strong>r<br />

Prover sicherstellen, dass im Schritt P1 s ∈ ∗ p gilt, weil <strong>de</strong>r Verifier sonst umgehend das<br />

Geheimnis erhält, wenn <strong>de</strong>r Prover die Kommunikation bei einem s = 0 fortführt.<br />

Protokoll 6.3 (Zero–<strong>Knowledge</strong> Argument in konstanter Run<strong>de</strong>nzahl)<br />

Gemeinsame Eingabe (Initialisierung)<br />

• p: Eine große Primzahl, von <strong>de</strong>ssen Vorgänger p−1 die Faktorisierung<br />

bekannt ist.<br />

• α ∈ ∗ p: Ein erzeugen<strong>de</strong>s Element.<br />

• k ∈ : Sicherheitsparameter<br />

Dieser Schritt zählt nicht bei <strong>de</strong>r Run<strong>de</strong>nzahl, da diese Einigung schon im<br />

Vorwege erfolgen kann. Desweiteren können p und α öffentlich bekannt und<br />

frei verfügbar sein.<br />

Schritt V1: (Der Verifier bereitet die Bit–Commitment–Scheme Paramter vor<br />

und verschlüsselt seine Öffnungsauffor<strong>de</strong>rung.) Der Verifier wählt <strong>zu</strong>fällige<br />

s ∈R ∗ p und y ∈R Σ k . Er berechnet (e, r) = β(y) und sen<strong>de</strong>t s und e an<br />

<strong>de</strong>n Prover.<br />

Schritt P1: (Der Prover verschlüsselt mit einem verschlüsselten Schaltkreis und<br />

sen<strong>de</strong>t die Kontroll Commitments <strong>zu</strong>sammen mit je<strong>de</strong>m aktuellen Commitment.)<br />

Für je<strong>de</strong>s i mit 1 ≤ i ≤ k berechnet <strong>de</strong>r Prover νi = σ(Ψ) und<br />

(xi, zi) = β(νi). Für je<strong>de</strong>s Commitment xi[j] wählt <strong>de</strong>r Prover ein <strong>zu</strong>fälliges<br />

bij ∈R {0, 1} k und berechnet (uij, vij) = β( bij). Er sen<strong>de</strong>t alle<br />

xi’s und uij’s an <strong>de</strong>n Verifier. (Das xi[j] repräsentiert dabei das akuelle<br />

Commitment für das j-te Bit <strong>de</strong>s i-ten verschlüsselten Schaltkreises und<br />

uij stellt eine Familie von Kontroll Commitments für xi[j] dar.)<br />

Schritt V2: (Der Verifier wählt für das aktuelle Commitment eine Öffnungsauffor<strong>de</strong>rung<br />

um sicher<strong>zu</strong>stellen, dass es kein EPR–Commitment ist.) Für je<strong>de</strong>s<br />

i und j wählt <strong>de</strong>r Verifier <strong>zu</strong>fällige hij ∈R {0, 1} k und sen<strong>de</strong>t diese hij an<br />

<strong>de</strong>n Prover.<br />

Schritt P2: (Der Prover zeigt, dass seine aktuellen Commitments nicht EPR<br />

sind.) Für je<strong>de</strong>s i, j und m berechnet <strong>de</strong>r Prover folgen<strong>de</strong>s:<br />

62

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!