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

Zur Vorbereitung auf das Bit–Commitment–Scheme einigen sich <strong>de</strong>r Prover und Verifier<br />

auf ein große Primzahl p, für die bei<strong>de</strong> die Faktorisierung von p − 1 kennen. Derartige<br />

Primzahlen können mittels effizienter Verfahren gefun<strong>de</strong>n wer<strong>de</strong>n. Darüber hinaus<br />

einigen sich Prover und Verifier über ein erzeugen<strong>de</strong>s Element α ∈ ∗ p. Aufgrund <strong>de</strong>r<br />

polynomiellen Berechenbarkeit sind bei<strong>de</strong> Eigenschaften von bei<strong>de</strong>n Teilnehmern leicht<br />

<strong>zu</strong> prüfen.<br />

Diese bei<strong>de</strong>n Parameter α und p müssen nicht bei je<strong>de</strong>r Kommunikation geän<strong>de</strong>rt<br />

wer<strong>de</strong>n. Zusammen mit <strong>de</strong>r Faktorisierung von p − 1 können sie öffentlich bekannt sein<br />

und von einem Trust-Center verwaltet wer<strong>de</strong>n, wenn sie einmal überprüft wur<strong>de</strong>n. Ist<br />

eine Zahl i ∈ p−1 gegeben, kann sehr leicht α i berechnet wer<strong>de</strong>n. Es ist aber kein<br />

effizienter Algorithmus bekannt, diesen Prozess <strong>zu</strong> invertieren, wenn die Faktoren von<br />

p − 1 groß genug gewählt wur<strong>de</strong>n.<br />

Um ein Bit ν ∈ {0, 1} in einem Commitment <strong>zu</strong> verschlüsseln, wählt <strong>zu</strong>erst <strong>de</strong>r<br />

Empfänger ein beliebiges s ∈ ∗ p und sen<strong>de</strong>t es <strong>de</strong>m Sen<strong>de</strong>r. Dieser wählt ein <strong>zu</strong>fälliges<br />

r ∈R p−1 und berechnet x = α r s ν . Diese x ist das Commitment und wird <strong>de</strong>m<br />

Empfänger gesen<strong>de</strong>t. Das r wird dabei vom Sen<strong>de</strong>r geheim gehalten. Soll das Commitment<br />

geöffnet wer<strong>de</strong>n, wird das r vom Sen<strong>de</strong>r an <strong>de</strong>n Empfänger gesen<strong>de</strong>t, <strong>de</strong>r einfach<br />

x = α r s ν überprüfen kann.<br />

Da die exp α Funktion eine Permutation ist, kann je<strong>de</strong>s Element aus ∗ p dafür genutzt<br />

wer<strong>de</strong>n, sowohl eine 0 als auch eine 1 in einem Commitment <strong>zu</strong> verschlüsseln, welche über<br />

∗ p gleichverteilt sind. Daher ist es für <strong>de</strong>n Empfänger informationstheoretisch unmöglich,<br />

ein 0–Commitment von einem 1–Commitment <strong>zu</strong> unterschei<strong>de</strong>n.<br />

6.3 Täuschungsmöglichkeit <strong>de</strong>s Provers<br />

Unter bestimmten Vorausset<strong>zu</strong>ngen kann mit <strong>de</strong>m bisherigen Verfahren <strong>de</strong>r Prover immer<br />

noch betrügen. Da<strong>zu</strong> ein ein kleines Beispiel:<br />

Beispiel 8<br />

In Schritt 2 <strong>de</strong>s Protokolls 6.1 verschlüsselt <strong>de</strong>r Verifier seine Wahl, dass das Bit y später<br />

in Schritt 4 vom Prover geöffnet wer<strong>de</strong>n soll, mit einem <strong>zu</strong>fällig gewählten r ∈R p−1 und<br />

berechnet e = α r s y . Dieses Commitment wird an <strong>de</strong>n Prover gesen<strong>de</strong>t, <strong>de</strong>r seinerseits<br />

ein Bit x = y in einem Commitment mit x = α q e mit einem <strong>zu</strong>fällig gewählten q ∈R<br />

p−1 erstellt. Bis jetzt kann <strong>de</strong>r Prover dieses Commitment natürlich nicht wechselseitig<br />

öffnen. Nichts<strong>de</strong>stotrotz wird <strong>de</strong>r Verifier sein r in Schritt 4 öffnen und an <strong>de</strong>n Prover<br />

sen<strong>de</strong>n. Jetzt hat <strong>de</strong>r Prover die Möglichkeit, sein Commitment von x als Bit y mittels<br />

eines ” Zeugnisses“ q + r <strong>zu</strong> öffnen, da x = α q+r s y gilt (q und r sind Elemente von p−1<br />

und wer<strong>de</strong>n modulo p − 1 addiert).<br />

Dieses Problem enspringt nicht <strong>de</strong>m Protokoll 6.1 son<strong>de</strong>rn wohnt <strong>de</strong>r un<strong>zu</strong>reichen<strong>de</strong>n<br />

Definition <strong>de</strong>s Bit–Commitment–Schemes inne. Es reicht nicht aus, per Definition <strong>zu</strong><br />

55

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!