MuPAD Education Group: Kostenlose Materialen für MuPAD Pro:
www.sciface.com/education, schule.mupad.de, studium.mupad.de, mupad.zum.de.

________________________________________________________________________________

 

Inhalt....: Fiat-Shamir-Algorithmus

Kategorie.: Arbeitsblatt

Mathematik: Kryptographie, Zahlentheorie

MuPAD.....: 3.0.0

Datum.....: 2003-06-23

Autoren...: Julia Faflek <faflek@mupad.de>

Funktionen: nextprime, random, powermod, igcd, is

________________________________________________________________________________

 

Das Fiat-Shamir-"Nullwissen"-Protokoll

 

Wenn man jemanden davon überzeugen will, dass man ein Geheimnis kennt, dieses aber

nicht preisgeben will, dann benutzt man Nullwissen-Protokolle. In diesem Notebook wird

die Methode von Fiat und Shamir vorgestellt.

 

 

Ein Nullwissen-Protokoll hat zwei bedeutende Eigenschaften. Erstens ist es

interaktiv und besteht aus mehreren Runden und zweitens hängt die Betrugs-

wahrscheinlichkeit von der Anzahl der durchgeführten Runden ab. Je mehr

Runden, desto kleiner ist die Wahrscheinlichkeit, betrügen zu können. Die

charakteristischste Eigenschaft ist jedoch die Nullwisseneigenschaft, d.h.

man kann bei Beobachtung des Protokollverlaufs nicht unterscheiden, ob

jemand das Geheimnis kennt oder nicht.

 

Aber nun genaueres zu dem Fiat-Shamir-Verfahren, welches sich insbesondere

zum Identitätsnachweis mittels Chipkarten eignet. Da der Algorithmus stark auf

RSA beruht, müssen erst einmal Schlüssel erzeugt werden. Dazu werden zwei

große Primzahlen gewählt und das Produkt dieser gebildet:

 

p := nextprime(2^512);

q := nextprime(p + 2^16);

N := p*q

math

math

math

 

Nun wird eine beliebige zu N teilerfremde Zahl s zwischen 1 und N gewählt:

 

s := random(1..N)():

while (igcd(s, N) > 1) do

   s := random(1..N)()

end_while:

s

math

 

Würden wir hier einen Teiler von N finden, so hätten wir die Primfaktorzerle-

gung von N gefunden und könnten das Protokoll brechen. Die Wahrschein-

lichkeit dafür ist aber sehr gering. Die Zahl s ist das Geheimnis. Jetzt wird

eine Zahl v berechnet, die als eine Art Ausweis fungiert und daher öffentlich

ist.

 

v := powermod(s, 2, N)

math

 

Kommen wir zu der Anwendung: Eine andere Person will jetzt überprüfen,

ob wir das Geheimnis s kennen. Wir werden jedoch nichts von s preisgeben.

Zunächst wählen wir eine weitere zufällige Zahl r, teilerfremd zu N, und be-

stimmen eine Zahl x, die wir an die andere Person schicken:

 

r := random(1..N)():

while (igcd(r, N) > 1 ) do

   r := random(1..N)()

end_while:

r;

x := powermod(r, 2, N)

math

math

 

Die andere Person wählt ein Zufallsbit, also 0 oder 1. Dazu kann sie z.B. eine

Münze werfen. Dieses Bit wird an uns geschickt.

 

b := random(0..1)()

math

 

Nun berechnen wir folgendes:

 

y := (r * powermod(s, b, N)) mod N

math

 

Ist b = 0, so folgt y = r mod N. Wir schicken y wieder zurück. Die andere

Partei muss nachprüfen, ob

image

 

Erg1 := powermod(y, 2, N):

Erg2 := (x * powermod(v, b, N)) mod N:

is (Erg1 - Erg2 = 0)

math

 

Es stimmt also. Aber warum? Dazu müssen wir uns nur überlegen, wie y, x

und v erzeugt wurden:

image

image

image

Stellen wir uns nun vor, jemand wollte betrügen und der anderen Person weis-

machen, dass er unser Geheimnis kennt. Wie soll dieser Betrüger vorgehen?

Es gibt zwei Möglichkeiten:

 

1) Wenn ihm das Bit 0 zu geschickt wird, hat er keine Probleme das korrekte y

sszurück zu schicken, da es sich in diesem Fall ja lediglich um das von ihm

ssselbstgewählte r handelt.

 

2) Ihm wird das Bit 1 zu geschickt. Dann muss er rs modulo N abschicken.

ssDies ist nicht so einfach möglich. Denn

image

aaEr müsste also die Quadratwurzel modulo N aus vx berechnen. Dies ist aller-

aadings und glücklicherweise bei so großen Zahlen sehr schwer. Was aber,

aawenn er vorher wüsste, dass der Herausforderer ihm eine 1 zuschickt? Dann

aakönnte er sich folgenderweise darauf vorbereiten. Er wählt 

image

aaund

image

Demnach kann der Betrüger immer nur in einer der beiden Situation betrügen.

Allgemein sieht das Vorgehen folgenderweise aus:

Er wählt zufällig ein Bit c und setzt

image

image

Der Herausforderer verifiziert, dann so:

image

image

Falls folgende Gleichung gilt, hat der Betrüger es geschafft, zu betrügen:

image

Demnach kann man nur betrügen, wenn b = c gilt. Dies gilt aber schon mit einer

Wahrscheinlichkeit von 1/2. Daher muss das Protokoll mehrmals durchgeführt

werden, um die Wahrscheinlichkeit zu verringern. Bei t Durchführungen ergibt

sich eine Wahrscheinlichkeit von

image

 

_____________________________________________________________________________________

 

Anmerkungen:

1. Unter www.schule.mupad.de/material/ befinden sich Notebooks, die sich ebenfalls mit Kryptographie

ssbeschäftigen.

 

2. Weitere Anregungen finden Sie in der Buchreihe Mathematik 1 x anders. In dieser Reihe wird eine Vielzahl

ssunterschiedlichster mathematischer Probleme mit MuPAD gelöst. Die Bücher können unter

sswww.schule.mupad.de/literatur kostenfrei kopiert werden.

 

_____________________________________________________________________________________

 

 

 

MuPAD Education Group: Kostenlose Materialen für MuPAD Pro:
www.sciface.com/education, schule.mupad.de, studium.mupad.de, mupad.zum.de.