21.11.2013 Aufrufe

Handreichung zum Fiat-Shamir-Protokoll - Universität Koblenz ...

Handreichung zum Fiat-Shamir-Protokoll - Universität Koblenz ...

Handreichung zum Fiat-Shamir-Protokoll - Universität Koblenz ...

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.

<strong>Handreichung</strong> zu <strong>Fiat</strong>-<strong>Shamir</strong><br />

Daniel Pähler<br />

16. Dezember 2011<br />

1 Auswahl der Schlüssel<br />

1. Die zentrale Vertrauensinstanz T kennt die Primzahlen p und q sowie<br />

n = p · q.<br />

2. T wählt den privaten Schlüssel s und berechnet v, so dass gilt v −1 ≡<br />

s 2 (mod n). Anders ausgedrückt: T berechnet v ≡ (s 2 ) −1 (mod n).<br />

3. T gibt das Schlüsselpaar (v, s) Peggy.<br />

4. T nimmt (Peggy, v) in sein öffentliches Verzeichnis auf und bürgt somit<br />

dafür, dass der öffentliche Schlüssel v wirklich der Person Peggy gehört.<br />

Anmerkung: streng genommen ist die Schlüsselauswahl nicht Teil des <strong>Fiat</strong>-<br />

<strong>Shamir</strong>-<strong>Protokoll</strong>s. So könnte Peggy n, v und s auch selbst festlegen; sie müsste<br />

nur für die Veröffentlichung der Zahl n sowie der Zuordnung (Peggy, v) sorgen.<br />

2 Peggy beweist Victor, dass sie s kennt, ohne<br />

s zu verraten<br />

Der folgende Beweisvorgang wird zwischen Peggy und Victor mehrfach wiederholt:<br />

1. Peggy wählt ein r < n und berechnet x = r 2 mod n.<br />

2. Peggy sendet x an Victor. Falls Victor Peggys öffentlichen Schlüssel v nicht<br />

bereits im Vorfeld (von T) erfahren hat, kann Peggy auch v senden.<br />

3. Victor wählt ein e ∈ {0, 1} und sendet e an Peggy.<br />

4. Peggy berechnet y = r · s e ( mod n) und sendet y an Victor. Abhängig von<br />

dem Wert e, den Victor bestimmt hat, gilt also<br />

(e = 0) y = r mod n<br />

(e = 1) y = r · s 1 mod n<br />

5. Victor prüft, ob y 2 ≡ x · v −e (mod n) gilt. Dies entspricht<br />

(e = 0) y 2 ≡ x (mod n) / falls Peggy wirklich wie in Schritt 1 x aus r<br />

berechnet hat, gelingt diese Überprüfung.<br />

1


(e = 1) y 2 ≡ x·v −1 ( mod n) / falls Peggy wirklich den geheimen Schlüssel<br />

s sowie das zufällig gewählte r <strong>zum</strong> berechnen von y verwendet hat,<br />

gelingt diese Prüfung, da gilt:<br />

y 2 ≡ (r · s) 2 ≡ r 2 · s 2 ≡ x · v −1 (mod n)<br />

3 Betrugsmöglichkeiten für Peggy<br />

Bei jedem Durchlauf des <strong>Protokoll</strong>s hat Peggy die Chance zu betrügen: Wenn<br />

sie jeweils vor einem neuen Durchlauf geschickt rät, welchen Wert Victor für e<br />

wählt, kann sie das <strong>Protokoll</strong> zu einem erfolgreichen Abschluss bringen, ohne s<br />

zu kennen. Offensichtlich ist die Wahrscheinlichkeit, den Wert von e im Voraus<br />

richtig zu raten, 1 2<br />

. Analog ist die Wahrscheinlichkeit, bei m Durchläufen des<br />

1<br />

<strong>Protokoll</strong>s jedesmal richtig zu raten und so erfolgreich zu betrügen,<br />

2<br />

. m<br />

Ablauf des Betrugs falls e = 0: Rechnet Peggy damit, dass Victor e = 0<br />

wählt, ist der Betrug leicht: sie rät wie in Schritt 1 angegeben r und sendet<br />

x = r 2 mod n und sendet dann in Schritt 4 y = r; hierzu benötigt sie an keiner<br />

Stelle den Wert von s. Victor prüft in Schritt 5 erfolgreich, dass y 2 ≡ r 2 ≡<br />

x(mod n) gilt.<br />

Ablauf des Betrugs falls e = 1: Rechnet Peggy damit, dass Victor e = 1<br />

wählt, geht sie wie folgt vor: in Schritt 1 sendet sie x = r 2 · v mod n, in Schritt<br />

4 dann y = r. Auch in dieser Variante braucht Peggy den Wert von s nicht zu<br />

kennen. Victor prüft in Schritt 5, ob y 2 ≡ x·v −1 ( mod n) gilt. Durch Einsetzen<br />

der Werte für x und y, die Peggy gesendet hat, ergibt sich y 2 ≡ r 2 · v · v −1 ≡<br />

r 2 (mod n), die Prüfung verläuft also erfolgreich.<br />

Zu beachten ist also, dass Peggy, falls sie betrügen will, sich schon in Schritt 1<br />

entscheiden muss, welche Methode sie verwendet. Sendet sie x = r 2 mod n und<br />

Victor entscheidet sich, dass er y = r·s −1 mod n sehen will, scheitert der Betrug,<br />

da Peggy s nicht kennt. Der Betrug scheitert ebenso, wenn sie x = r 2 · v mod n<br />

sendet und Victor sich entscheidet, dass er y = r mod n sehen will, da Peggy<br />

√<br />

r2 · v mod n nicht kennt.<br />

4 Anmerkung<br />

In der hier beschriebenen Variante des <strong>Fiat</strong>-<strong>Shamir</strong>-<strong>Protokoll</strong>s wird (wie in den<br />

Vorlesungsfolien) v als Inverses von s 2 mod n gebildet; in anderen Quellen wird<br />

v = s 2 mod n berechnet. Beide Verfahren sind gleichwertig, es ist allerdings zu<br />

beachten, dass im beschriebenen <strong>Protokoll</strong>ablauf sowie in den Betrugsmöglichkeiten<br />

v durch v −1 ersetzt werden muss, wenn v mit der zweiten Methode gebildet<br />

wird.<br />

2

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!