Vorstellung zweier Zero-Knowledge-Verfahren

Werbung
Bayerische
Julius – Maximilians – Universität
Würzburg
Erste Staatsprüfung für ein Lehramt an Realschulen
Schriftliche Hausarbeit
Thema:
„Scio nescire
Vorstellung zweier Zero – Knowledge – Verfahren„
Eingereicht von: Bernd Götzelmann
Fach:
Eingereicht am: 12.12.2007
Dozent: Prof. Dr. Jörn Steuding
1
Mathematik
Scio nescire – Ich w eiß, dass ich nichts w eiß
Sokrates, 469 – 399 v. Chr.
2
Inhaltsverzeichnis
1. Das menschliche Bedürfnis nach Geheimhaltung ............................................................. 5
1.1 Die Kryptographie.......................................................................................................... 5
1.2 Die klassische und die moderne Kryptographie.......................................................... 6
1.3 Protokolle ........................................................................................................................ 9
2. Asymmetrische Verschlüsselungen – die Public – Key – Verfahren ............................. 10
3. Heranführung an die Zero – Knowledge – Thematik anhand zweier Beispiele........... 12
3.1 Das „Wo ist Walter – Problem“.................................................................................. 12
3.2 Die magische Tür.......................................................................................................... 16
4. Die mathematischen Grundlagen ..................................................................................... 22
4.1 Graphentheorie............................................................................................................. 22
4.1.1 Definition: Graph................................................................................................... 22
4.1.2 Definition: Untergraph .......................................................................................... 23
4.1.3 Definition: Adjazente (benachbarte) Knoten ........................................................ 23
4.1.4 Definition: Grad eines Knotens ............................................................................. 23
4.1.5 Definition: Kantenzug............................................................................................ 23
4.1.6 Definition: Kreis..................................................................................................... 24
4.1.7 Definition: Isomorphie zweier Graphen ............................................................... 24
4.1.7.1 Kriterien zum Ausschluss der Isomorphie zweier Graphen ...................... 24
4.1.7.2 Methode zum Auffinden eines Isomorphismus zwischen zwei Graphen .. 26
4.1.8 Algebraische Darstellung von Graphen .............................................................. 27
4.2 Kongruenzen und Restklassen .................................................................................... 28
4.2.1 Kongruenzen.......................................................................................................... 28
4.2.2 Restklassen............................................................................................................. 29
4.2.2.1 Grundlegendes ................................................................................................ 29
4.2.2.2 Prime Restklassen .......................................................................................... 31
4.3 Arithmetik von Restklassenringen.............................................................................. 32
4.3.1 Zusammenhang zwischen dem Grad eines Polynoms und dessen Nullstellen 32
4.3.2 Ordnung eines Restklassenringes ........................................................................ 33
4.3.3 Berechnung der Euler – Funktion ....................................................................... 33
4.3.4 Ordnung eines Elementes einer Restklasse......................................................... 34
4.3.5 Satz von Lagrange................................................................................................. 34
4.3.6 Satz von Euler – Fermat ....................................................................................... 34
3
4.3.7 Zusammenhang zwischen der Ordnung einer Gruppe und der eines Elementes
dieser Gruppe ................................................................................................................. 35
4.3.8 Chinesischer Restsatz............................................................................................ 35
4.3.9 Der euklidische Algorithmus................................................................................ 36
4.3.10 Darstellung des ggT zweier Zahlen als Linearkombinationen dieser Zahlen 36
5. Vorstellung der beiden Zero – Knowledge – Verfahren................................................. 38
5.1 Isomorphie von Graphen............................................................................................. 38
5.1.1 Grundlegendes zum Verfahren............................................................................ 38
5.1.2 Anwendung des Verfahrens „Isomorphie von Graphen“ ................................. 40
5.1.3 Praxisbezug des Verfahrens ................................................................................. 46
5.2 Fiat – Shamir – Algorithmus....................................................................................... 47
5.2.1 Grundlegendes zum Verfahren............................................................................ 47
5.2.2 Berechnung von Quadratwurzeln mod p............................................................ 52
5.2.3 Berechnung von Quadratwurzeln mod n............................................................ 54
5.2.4 Zusammenhang zwischen der Berechnung einer Wurzel von a mod n und der
Primfaktorzerlegung von n ........................................................................................... 58
5.2.5 Das Problem der Faktorisierung großer Zahlen................................................ 60
5.2.6 Anwendung des Fiat – Shamir – Verfahrens...................................................... 64
5.2.7 Praxisbezug des Fiat – Shamir – Verfahrens...................................................... 69
5.3 Was wäre wenn…......................................................................................................... 71
6. Zero – Knowledge – Verfahren in der Schule? ............................................................... 72
7. Quisquater, Guillou: „How to Explain Zero – Knowledge Protocols to Your Children“74
8. Literaturverzeichnis........................................................................................................... 79
9. Danksagungen..................................................................................................................... 81
10. Erklärung.......................................................................................................................... 82
4
1. Das menschliche Bedürfnis nach Geheimhaltung
In Zeiten, in denen das Internet jedem die Möglichkeit bietet, nach grenzenlos vielen
Informationen zu suchen, sich mit anderen Leuten aus aller Welt anonym mittels diverser
Programme zu unterhalten, sich gegenseitig Emails zu schreiben und vieles, vieles mehr,
steigt naturgemäß auch das Interesse bestimmter Gruppen daran, die Inhalte solcher
Unterhaltungen und dieses Emailverkehrs zu kennen.
Dass dies nicht im Sinne eines Nutzers dieser Services sein kann, sollte wohl allen klar sein.
Doch wie kann man dies verhindern? Wie kann man erreichen, dass Informationen, die streng
geheim sind, auch geheim bleiben?
1.1 Die Kryptographie
Die Wissenschaft, die sich mit diesem Problem auseinander setzt, ist die Kryptographie. Das
Wort stammt aus dem Griechischen, von den Worten „kryptόs“ – verborgen und „gráphein“ –
schreiben. Sie befasst sich insbesondere mit der Verschlüsselung von Informationen.
Dabei wird die Information so entstellt, dass sie für einen Außenstehenden keinerlei Sinn
ergibt. Jedoch soll eine Person, die berechtigt ist, den Inhalt der Information zu erfahren, auch
Zugang zu ihr haben. Hierfür benötigt diese Person „etwas, was [sie][…] vor allen anderen
auszeichnet“1, eine Zusatzinformation, die sie befähigt, die ursprüngliche Information zu
entschlüsseln. Diese Zusatzinformation wird in der Kryptographie als „Schlüssel“ bezeichnet.
Im Wesentlichen sollen mit diesem geheimen Schlüssel Geheimhaltung (Etwas Geheimes soll
geheim bleiben.) und Authentikation (Mit dem Schlüssel soll man seine Identität gegenüber
anderen beweisen können.) gewährleistet werden.
Natürlich besteht das Bedürfnis danach, Informationen nur denjenigen zugänglich zu machen,
die sie auch wirklich sehen sollen, nicht erst seit Einführung des Internets. Den frühesten
bekannten Einsatz von Verschlüsselung findet man 1900 v. Chr. bei den Ägyptern, die damals
unübliche Hieroglyphen nutzten, um geheime Botschaften aufzuschreiben.2 Ein bekannteres
Beispiel für Kryptographie findet sich im ersten Jahrhundert vor Christus, zu Lebzeiten von
Julius Caesar. In dieser Zeit wurde der heute als Verschiebechiffre oder Caesar –
1
BEUTELSPACHER, Albrecht; SCHWENK, Jörg; WOLFENSTETTER, Klaus – Dieter: „Moderne Verfahren
der Kryptographie“. Vieweg Verlag, 4. Auflage, 2001, S. 1
2
http://de.wikipedia.org/wiki/Kryptographie, aufgerufen am 12.06.07
5
Verschlüsselung bekannte Code entwickelt. Hierbei wird jeder Buchstabe des Alphabetes um
eine bestimmte Anzahl von Positionen zyklisch verschoben. Bei einer Verschiebung um 3
Buchstaben, wie sie Caesar meist praktizierte, wird das A zum D, das B zum E usw.
Wollte man dann einen Text verfassen, war jedem Buchstaben aus dem normalen Alphabet
ein Buchstabe aus dem anderen Alphabet zugeordnet. Zum Beispiel wurde so aus dem Wort
HALLO das verschlüsselte Wort KDOOR.3
Ein weiteres geschichtsträchtiges Beispiel ist die Chiffriermaschine ENIGMA, die vor allem
im Zweiten Weltkrieg auf Seite der faschistischen Diktatur der Nazis Verwendung gefunden
hat. Sehr lange Zeit war es wegen dieser Maschine den Alliierten Streitkräften nicht möglich,
die von den Deutschen versendeten Nachrichten zu dechiffrieren.4
Da die Funktionsweise der ENIGMA sehr kompliziert ist, würde deren Erläuterung hier den
Rahmen sprengen.
1.2 Die klassische und die moderne Kryptographie
Wenn die bisherigen Beispiele auch große Differenzen hinsichtlich ihrer Komplexität
aufweisen, so haben sie doch eines gemeinsam:
Beide Parteien, der Nachrichterstellende sowie der Nachrichtempfangende, müssen die Art
und Weise, wie die Nachricht chiffriert wurde, kennen, benötigen also den gleichen Schlüssel.
Der erste, um den Text zu verschlüsseln, der zweite, um ihn zu entschlüsseln und damit
wieder lesbar zu machen.
In Anbetracht der Rollen, die Sender und Empfänger bei diesen Verschlüsselungsverfahren
spielen, spricht man in der Praxis von „symmetrischer Verschlüsselung“. Insbesondere
werden derartige Verfahren der „Klassischen Kryptographie“ zugeschrieben.5
Bei diesem Begriff werden leicht Assoziationen mit alten, nicht mehr aktuellen Verfahren
geweckt. Dies ist jedoch so absolut nicht richtig!
Eine wichtiges symmetrisches Verfahren ist zum Beispiel der im Jahre 1976 von IBM und der
National Security Agency (NSA) entwickelte DES – Algorithmus (Data Encryption Standard
– Algorithm), mit dem „ein[…] sichere[r] einheitliche[r] Standard für behördenübergreifende
Verschlüsselung“6 geschaffen wurde. Dieses Verfahren wird heute immer noch benutzt, auch
3
http://de.wikipedia.org/wiki/Verschiebechiffre, aufgerufen am 30.06.07
http://de.wikipedia.org/wiki/Enigma_%28Maschine%29, aufgerufen am 30.06.07
5
BEUTELSPACHER, Albrecht; SCHWENK, Jörg; WOLFENSTETTER, Klaus – Dieter: „Moderne Verfahren
der Kryptographie“. Vieweg Verlag, 4. Auflage, 2001, S. 1
6
http://de.wikipedia.org/wiki/Kryptographie, aufgerufen am 12.06.07
4
6
wenn Behörden mittlerweile auf dessen Weiterentwicklung, den AES – Algorithmus
(Advanced Encryption Standard), umgestiegen sind. Vorgestellt wurde dieses Verfahren im
Jahr 2000 und auch dieses ist wieder symmetrisch.7
Man sieht also: der Begriff „klassisch“ ist in diesem Zusammenhang keinesfalls mit „alt“ oder
„überholt“ gleich zu setzen!
Im Gegensatz zur klassischen Kryptographie steht die „moderne Kryptographie“.
Es ist nicht leicht, deren Beginn genau zu umgrenzen, dennoch kann man sagen, dass ihre
Grundlagen der 1949 veröffentlichte Artikel „Communication Theory Of Secrecy Systems“
von Claude Shannon bildete8. Darin wird erstmals dargelegt, dass die Kryptographie im
Wesentlichen auf mathematischen Verfahren und Algorithmen basiert.9
Der erste große Fortschritt der modernen Kryptographie war anschließend geprägt durch
folgende wichtige Entdeckung:
In dem Artikel „New Directions in Cryptography“ veröffentlichten Whitfield Diffie und
Martin Hellman eine absolut revolutionäre Idee hinsichtlich der Schlüsselverteilung, die so
genannten „Public – Key – Verfahren“.
Der Schwachpunkt der bisherigen kryptographischen Verfahren lag immer darin, dass die
Schlüssel symmetrisch waren, also sowohl zum Verschlüsseln als auch zum Entschlüsseln
einer Nachricht benötigt wurden. Damit der Empfänger die Nachricht dechiffrieren konnte,
musste dieser Schlüssel auf einem sicheren Weg vom Sender zum Empfänger gelangen, was
immer mit einer gewissen Unsicherheit verbunden war.
Diffies und Hellmans Public – Key Kryptographie machte dies nun überflüssig. Hierbei wird
nämlich nicht mehr ein einzelner Schlüssel genutzt, sondern ein Paar zusammenpassender
Schlüssel. Auf diese Art der Verschlüsselung werden wir in Kapitel 2 noch detaillierter
eingehen.
Eine weitere, für die moderne Kryptographie extrem wichtige, Entdeckung waren die in „The
Knowledge Complexity of Interactive Proof-Systems“ im Jahre 1985 von Goldwasser, Micali
und Rackoff vorgestellten „Zero – Knowledge – Verfahren“10. Diese basieren im
Wesentlichen auf folgendem Problem:
7
http://de.wikipedia.org/wiki/Advanced_Encryption_Standard, aufgerufen am 26.07.07
SHANNON, Claude: „Communication Theory of Secrecy Systems“.
Bell System Technical Journal, vol. 28, n. 4, o. V., 1949, S. 656ff
9
http://www.netplanet.org/kryptografie/einfuehrung.shtml, aufgerufen am 26.07.07
10
GOLDWASSER, Shafi; MICALI, Silvio; RACKOFF, Charles: „The Knowledge Complexity of Interactive
Proof-Systems“. Proceedings of the 17th Annual ACM Symposium on Theory of Computing, ACM Press, 1985,
S. 291 – 304
8
7
Eine Person A besitzt ein Geheimnis und muss eine Person B davon überzeugen, dass sie
dieses Geheimnis kennt. Dies soll jedoch so gestaltet sein, dass Person B, die überzeugt
werden soll, einerseits nichts (aber auch wirklich gar nichts) über dieses Geheimnis erfährt,
andererseits aber nach Ablauf des Verfahren davon überzeugt ist, dass Person A das
Geheimnis wirklich kennt.11
Diese Zero – Knowledge – Verfahren werden nun das Thema dieser Arbeit sein.
Da sie jedoch ohne ein gewisses mathematisches und kryptographisches Vorwissen nur
schwer verständlich sind, werden auch die Grundlagen, die zum Verständnis benötigt werden,
in dieser Arbeit dargestellt.
Im folgenden Kapitel werden wir jedoch zunächst den, in der Kryptographie sehr wichtigen,
Begriff des „Protokolls“ näher erläutern. Im Anschluss daran werden wir uns mit der
kryptographischen Grundlage der Zero – Knowledge - Verfahren, den „Public – Key –
Verfahren“ beschäftigen, um dann mit zwei Beispielen fortzufahren, anhand derer wir zwei
Fragen klären wollen:
1. Was macht ein Zero – Knowledge – Problem aus?
2. Welche Bedingungen muss ein Verfahren erfüllen, damit es ein Zero – Knowledge –
Verfahren ist?
In Kapitel 4 behandeln wir dann die mathematischen Grundlagen zu den Themen
„Graphentheorie“ und „Kongruenzen und Restklassen“. Diese werden benötigt, um die
mathematischen Inhalte der beiden Verfahren, die wir vorstellen wollen, zu verstehen.
Dies wird in Kapitel 5 geschehen. Wir werden uns dabei mit zwei Verfahren
auseinandersetzen, zum einen mit dem Verfahren „Isomorphie von Graphen“ und zum
anderen mit dem „Fiat – Shamir – Algorithmus“. Weiter werden wir in diesem Kapitel auch
auf die interessante Frage eingehen, was es für dieses Verfahren bedeuten würde, wenn
bestimmte Grundlagen weg brächen.
In Kapitel 6 wollen wir uns mit der Frage auseinandersetzen, inwieweit es sinnvoll sein kann,
die Zero – Knowledge – Thematik bzw. entsprechende Verfahren in der Schule zu behandeln.
Das abschließende Kapitel dieser Arbeit stellt der Artikel „How to explain Zero – Knowledge
– Protocols to Your Children“ von Jean – Jacques Quisquater und Louis Guillou dar. Darin
wird die Zero – Knowledge Thematik und insbesondere die Voraussetzungen, die an ein
Verfahren geknüpft sind, damit es ein Zero – Knowledge – Verfahren ist, anschaulich erklärt.
11
http://de.wikipedia.org/wiki/Kryptographie, aufgerufen am 12.06.07
8
Zum einen eignet sich dieses Beispiel durch seine Anschaulichkeit und seinen etwas
märchenhaften Charakter, um Kindern das Thema „Zero – Knowledge – Verfahren“ näher zu
bringen, zum anderen stellt es in gewisser Weise eine Erläuterung dessen, was diese
Verfahren eigentlich ausmacht, in spielerischer Weise dar.
1.3 Protokolle
Ein wichtiger Begriff, der im Verlauf der Arbeit immer wieder auftauchen wird, ist der des
„Protokolls“.
Wir werden uns bei der Begriffsbestimmung im Wesentlichen an folgende Definition halten:
„Wenn mehrere Personen oder Instanzen gemeinsam ein Ziel verfolgen, müssen sie
kooperieren und zu diesem Zweck sinnvoll kommunizieren. Um ein Ziel durch
Kommunikation zu erreichen, müssen sich die Personen an gewisse Regeln halten […]. Die
Gesamtheit dieser Regeln nennt man ein Protokoll.“12.
Weiter ist es wichtig zu wissen, dass die Begriffe „Protokoll“ und „Verfahren“ beinahe als
Synonyme verwendet werden. Trotzdem bestehen minimale Differenzen hinsichtlich ihrer
Definitionen:
Der
Begriff
„Verfahren“
wird
dabei
hauptsächlich
für
generelle
Vorgehensweisen benutzt, „Protokolle“ eher für konkrete Abläufe dieser Verfahren oder für
Anwendungen.13
12
BEUTELSPACHER, Albrecht; SCHWENK, Jörg; WOLFENSTETTER, Klaus – Dieter: „Moderne Verfahren
der Kryptographie“. Vieweg Verlag, 4. Auflage, 2001, S. 10
13
http://www.inf.tu-dresden.de/content/institutes/sya/dud/lectures/2007sommersemester/KPDatensicherheit/
v9_doku.pdf, aufgerufen am 26.05.07
9
2. Asymmetrische Verschlüsselungen – die Public – Key – Verfahren
Wie bereits in der Einleitung erwähnt, muss man zwischen zwei Arten der Kryptographie
unterscheiden, nämlich der klassischen und der modernen Kryptographie.
Die Zero – Knowledge – Verfahren, die wir im weiteren Verlauf der Arbeit betrachten
werden, basieren auf der von Hellman und Diffie entwickelten Public – Key – Kryptographie
(was im wesentlichen äquivalent ist zum Begriff der modernen Kryptographie).
Diese Art der Verschlüsselung zeichnet sich durch eine Asymmetrie der Schlüsselverteilung
aus. Ist es bei symmetrischen Verfahren so, dass sowohl Sender als auch Empfänger einer
Nachricht den gleichen Schlüssel benötigen, so liegt der Fortschritt der Public – Key –
Verfahren nun darin, dass „jeder [Hervorhebung durch den Verfasser] einem Empfänger eine
verschlüsselte Nachricht schicken [kann] – ohne irgendeine Geheiminformation zu
besitzen.“14 Allerdings ist nur der Empfänger in der Lage, die Verschlüsselung wieder
aufzuheben.
Beutelspacher vergleicht dieses Verfahren in „Moderne Verfahren der Kryptographie“ mit
einem Briefkasten: jede Person kann eine geheime Nachricht hineinwerfen, aber nur der
Besitzer des Briefkastens kann diesen öffnen und die geheime Nachricht lesen.
Etwas formaler formuliert laufen die Public – Key – Verfahren wie folgt ab: Zunächst erhält
jeder Teilnehmer eines Systems einen privaten Schlüssel d T und einen öffentlichen Schlüssel
eT (die Buchstaben „d“ und „e“ ergeben sich als Anfangsbuchstaben der englischen Wörter
„decode“ – entschlüsseln und „encrpyt“ – verschlüsseln). Dabei ist der private Schlüssel d T
auf jeden Fall geheim zu halten. Im Gegensatz hierzu wird eT veröffentlicht und damit vielen
Personen zugänglich gemacht.
Nehmen wir nun an, wir wollen einen Text m verschlüsseln (m heißt dann „Klartext“).
Dazu benutzen wir einen Algorithmus f, der unter Einbeziehung des öffentlichen Schlüssels
eT unserem Klartext m einen Geheimtext c zuordnet: c = f eT (m) .
Umgekehrt ordnet dieser Algorithmus unter Einbeziehung unseres privaten Schlüssels d T
jedem Text d, der vorher mit f chiffriert wurde, einen Klartext m’ zu: m' = f dT (d ) .
Bei der Anwendung von f erhalten wir, unter Einbeziehung unserer Schlüssel eT und d T ,
somit zwei Funktionen:
Eine Verschlüsselungsfunktion f eT und eine Entschlüsselungsfunktion f dT .
14
BEUTELSPACHER, Albrecht; SCHWENK, Jörg; WOLFENSTETTER, Klaus – Dieter: „Moderne Verfahren
der Kryptographie“. Vieweg Verlag, 4. Auflage, 2001, S. 10
10
An diesen beiden Funktionen erkennt man, dass jede Person einen Klartext mit eT und dem
Algorithmus f verschlüsseln, aber im Prinzip nur der Besitzer des privaten Schlüssel d T den
so entstandenen Geheimtext wieder entschlüsseln kann.
Für unseren Algorithmus f müssen dabei die beiden folgenden Regeln gelten:
1. Korrekte Entschlüsselung:
Wurde ein Klartext m mit f eT zu dem Geheimtext c verschlüsselt, so muss die
Anwendung von f dT auf den entstandenen Geheimtext c den Klartext m wieder
hervorbringen:
m' = f dT (c) = f dT ( f eT (m)) = m
Diese Eigenschaft muss für alle Klartexte m gelten
2. Public – Key – Eigenschaft:
Es muss praktisch unmöglich sein, aus der Kenntnis des öffentlichen Schlüssels eT
den privaten Schlüssel d T erlangen zu können.15
Zur weiteren Verdeutlichung der Public – Key – Verfahren wollen wir noch ein zusätzliches
Schaubild betrachten:
Klartext m
Verschlüsselung
f eT
Geheimtext c
Entschlüsselung
f dT
Klartext m
Diese Darstellung führt uns noch einmal die Funktionsweise der Public – Key – Verfahren
vor Augen: Mit Hilfe des (öffentlichen) Verschlüsselungsalgorithmus f eT wird aus dem
Klartext
m
der
Geheimtext
c.
Dieser
kann
dann
ausschließlich
mit
dem
Entschlüsselungsalgorithmus f dT wieder dechiffriert werden.
Genau von dieser Art sind auch die beiden Zero – Knowledge – Verfahren, die wir in den
Kapiteln 5.1 und 5.2 betrachten werden.
15
Ebd., S. 10f
11
3. Heranführung an die Zero – Knowledge – Thematik anhand zweier
Beispiele
Nun kennen wir also die kryptographische Grundlage der Zero – Knowledge – Thematik.
Dennoch bleibt die Frage, womit genau sich dieses Thema eigentlich beschäftigt…
Wir wollen hierzu zwei Probleme betrachten, die den Charakter eines Zero – Knowledge –
Problems besitzen.
Dabei soll das erste Problem in einer gewissen spielerischen Weise vermitteln, was ein Zero –
Knowledge – Problem eigentlich ausmacht.
Das zweite wiederum wird mehr fachlicher Natur sein und aufzeigen, welche Bedingungen an
ein Verfahren geknüpft sind, so dass es zu einem Zero – Knowledge – Verfahren wird.
3.1 Das „Wo ist Walter – Problem“
In den „Wo ist Walter“ Suchbildern von Martin Handford geht es darum, auf einem großen,
sehr detaillierten Bild, auf dem sehr viele unterschiedliche Personen zu sehen sind, eine
bestimmte Person (Walter) zu finden. Walter sieht folgendermaßen aus:
Abbildung 1: Walter16
Ein solches Suchbild ist auf der folgenden Seite abgebildet…
16
HANDFORD, Martin: „Wo ist Walter?“. Sauerländer Verlag, 4. Auflage, 2001, vorderer Vorsatz
12
Abbildung 2: „Wo ist Walter“ – Suchbild17
17
HANDFORD, Martin: „Wo ist Walter?“. Sauerländer Verlag, 4. Auflage, 2001, S. 24
13
Der interessierte Leser sollte sich an dieser Stelle die Frage stellen: „Wo ist eigentlich
Walter?“. Da die beiden Personen, die wir nun gleich einführen werden, vor genau dem
gleichen Problem stehen, sei dem interessierten Leser das Suchen selbst überlassen… ☺
Nehmen wir an, diese zwei Personen, nennen wir sie Alice und Bob, starten einen kleinen
Wettstreit: Wer Walter auf diesem Suchbild zuerst gefunden hat, hat gewonnen.
Nachdem die beiden eine Weile gesucht haben, sagt Alice, sie habe Walter entdeckt. Bob
glaubt ihr allerdings nicht. Auch nach mehrmaligem Versichern, dass sie nicht lüge, ändert
Bob seine Meinung nicht. Nun stellt sich für Alice folgendes Problem:
Wie kann sie Bob davon überzeugen, dass sie den Ort, an dem Walter abgebildet ist, kennt,
ohne diesen jedoch zu verraten? Insbesondere soll Bob bei der Lösung dieses Problems auch
nichts über die Umgebung lernen, in der sich Walter befindet.
Ich habe diese Frage auch in meinem Bekanntenkreis gestellt und bekam oft die Antwort
„einfach die Lösung aufschreiben und wenn Bob Walter ebenfalls gefunden hat, die Lösungen
vergleichen“. Dieses Verfahren löst das Problem jedoch nicht. Zum einen müsste Alice
warten, bis auch Bob Walter entdeckt hat. Zum anderen, und das ist in diesem
Zusammenhang wesentlich gravierender, müsste Alice dann die Position von Walter trotzdem
verraten. Dies war aber gerade nicht der Sinn einer Lösung dieses Problems.
Wir müssen uns folglich andere Verfahren überlegen, die es Alice ermöglichen, Bob
glaubhaft zu versichern, dass sie den Ort, an dem Walter abgebildet ist, kennt, ohne ihm
diesen zu verraten.
Für die erste Lösung benötigen Alice und Bob ein Stück Karton, das sowohl doppelt so lang
als auch doppelt so breit ist, wie das Suchbild. In diesem Karton muss eine Aussparung
vorhanden sein, gerade so, dass man Walter darin erkennen kann, wenn man den Karton auf
das Suchbild legt.
Um Bob nun zu beweisen, dass sie Walters
Aufenthaltsort kennt, legt Alice den Karton auf das
Suchbild, genau so, dass Walter in der Aussparung
erscheint (siehe hierzu nebenstehendes Bild).
Bob darf ihr dabei natürlich nicht zusehen,
da er ja sonst etwas über den Ort lernen würde,
an dem Walter abgebildet ist. Im Anschluss daran
zeigt Alice Bob das entstandene Bild. Da er nun
Walter selbst sieht, sollte er davon überzeugt sein,
dass Alice den Aufenthaltsort von Walter kennt.
14
Zuletzt wird der Karton wieder von dem Suchbild entfernt.
Wichtig an diesem Verfahren ist, dass Bob mit dem Wissen darum, dass Alice den Ort, an
dem Walter abgebildet ist, kennt, nichts anfangen kann. Insbesondere hat er nicht erfahren,
wo sich Walter befindet. Er kann aus dem neu gewonnenen Wissen also selbst keinen Nutzen
ziehen.
Eine zweite Möglichkeit, wie Alice Bob von ihrem Wissen überzeugen kann, ist die folgende:
Die beiden benötigen für dieses Verfahren zunächst einen Kopierer, mit dem sie eine Kopie
des Suchbilds erstellen. Anschließend schneidet Alice Walter aus der Kopie heraus, wobei
Bob natürlich wiederum nicht zusehen darf. Die Reste der Kopie werden vernichtet, damit
Bob nicht anhand derer die Position von Walter herausfinden kann. Nun kann Alice Bob ihr
ausgeschnittenes Bild von Walter zeigen, was Bob in gewisser Weise davon überzeugen
sollte, dass Alice den Aufenthaltsort von Walter kennt.
Bob zweifelt jedoch nach wie vor an dem Wissen von Alice, begründet auf das Argument,
dass Alice ihm auch ein Bild von Walter, welches sie von einem anderen Suchbild
ausgeschnitten hat, zeigen könnte. Anders formuliert: die Sicherheit, dass Alice ihm wirklich
den Walter zeigt, der sich auch auf dem Suchbild befindet, das die beiden betrachteten, ist
Bob nicht hoch genug.
Auch dieses Problem können die beiden relativ leicht lösen. Nach dem Kopieren des
Suchbilds zeichnet Bob ein unregelmäßiges Muster (am besten eignen sich hier wohl
unregelmäßige Spiralen, Ellipsen oder Karos) auf die Rückseite der Kopie. Dann schneidet
Alice wiederum Walter aus der Kopie heraus, die Reste des Papiers werden vernichtet. Nun
hat sie ein Abbild von Walter mit einem speziellen Muster auf der Rückseite, das sie nicht im
Voraus hätte erraten können. Dieses Bild zeigt sie Bob, der nun anerkennen muss, dass Alice
den Aufenthaltsort von Walter kennt. Sein vorheriger Einwand ist ausgeräumt, da er anhand
des Musters auf der Rückseite erkennen kann, ob der Bildausschnitt tatsächlich von der Kopie
stammt, oder bereits vor dem Erstellen der Kopie existierte.18
Alice hat mit diesen zwei Lösungen (mit diesen zwei Verfahren) jedes Mal ihr Ziel erreicht:
Sie hat Bob nichts über den Ort verraten, an dem Walter abgebildet ist (insbesondere auch
nichts über die Umgebung) und trotzdem glaubt ihr Bob ihre Behauptung.
Das Problem, das sich Alice am Anfang stellte, kann man als Zero – Knowledge – Problem
ansehen: Alice will Bob einerseits glaubhaft versichern, dass sie ein bestimmtes Wissen
besitzt, andererseits will sie ihm dieses Wissen jedoch nicht verraten.
18
http://www.wisdom.weizmann.ac.il/~naor/PUZZLES/waldo.html, aufgerufen am 28.05.07
15
Genau diese Problematik macht die Zero – Knowledge – Verfahren interessant.
Die beiden Verfahren, die wir in diesem Kapitel betrachtet haben, eignen sich sehr gut als
Lösung des oben genannten Problems, können jedoch nicht als „Zero – Knowledge –
Verfahren“ im eigentlichen Sinne bezeichnet werden.
Dafür müssen nämlich drei Bedingungen erfüllt sein, auf die wir im nächsten Kapitel
eingehen werden.
3.2 Die magische Tür
Wir wollen nun ein Beispiel behandeln, mit dessen Hilfe wir herleiten werden, welche
Bedingungen ein Verfahren erfüllen muss, damit es ein Zero – Knowledge – Verfahren ist.
Wie im vorherigen Kapitel benötigen wir wiederum zwei Personen:
1. Frau A, die sich im Besitz eines streng geheimen Zauberspruchs befindet, der eine
ganz bestimmte „magische Tür“ öffnet, und deren Gesicht niemand kennt
2. Herr B, ein Kontrolleur, der sich von der Identität von Frau A überzeugen will
Da niemand das Aussehen von Frau A kennt, hat die einzige Möglichkeit, wie sie ihre
Identität nachweisen kann, mit ihrem geheimen Zauberspruch zu tun. Sie ist schließlich die
einzige Person, die diesen kennt, und kann sich so über ihren Zauberspruch „ausweisen“.
Natürlich wäre es auch möglich, sie anhand ihres Personalausweises zu kontrollieren. Dies
birgt jedoch immer die Gefahr in sich, dass sich eine Betrügerin ihren Ausweis gefälscht hat
und sich als Frau A ausgibt. Herr B hätte dann nicht die Möglichkeit, diese zu entlarven
(zumindest nicht, wenn er sich lediglich auf die Überprüfung des Ausweises beschränkt).
Damit Herr B nun die Identität von Frau A überprüfen kann, führen beide ein Verfahren
durch, für das sie folgendes Gebäude benötigen:
magische
Tür
Frau A
Linke
Tür
Rechte
Tür
Kontrolleur Herr B
Vorraum
16
Die „magische Tür“ in dem Gebäude ist gerade die Tür, die nur durch den Zauberspruch von
Frau A geöffnet werden kann und durch nichts sonst. Aus diesem Grund ist das Gebäude auch
genau so konstruiert, wie es ist: bei einem anderen Grundriss wäre es eventuell nicht möglich,
dass Frau A den Kontrolleur B von ihrer Identität überzeugt, ohne dass dieser ihren geheimen
Zauberspruch erfährt.
Zudem nimmt Herr B seine Sicht der nun folgenden Interaktion mit einer Videokamera auf
Band auf. Die so entstehende Videokassette nennen wir ein Protokoll.
Das Verfahren an sich läuft dann folgendermaßen ab:
1. Frau A begibt sich in den Vorraum und schließt die Eingangstür hinter sich. Dann
wählt sie eine der beiden Türen, die vor ihr sind, also entweder die linke oder die
rechte, geht in den von ihr gewählten Gang und schließt auch dort wieder die Tür
hinter sich.
2. Nun betritt der Kontrolleur Herr B den Vorraum. Er weiß natürlich nicht, in welchem
der beiden Gänge sich Frau B befindet und hat auch keinerlei Anhaltspunkte dafür.
Auch er sucht sich nun eine Seite heraus und ruft entweder „links“ oder „rechts“.
Dann erwartet er, dass Frau A aus der von ihm genannten Tür herauskommt.
3. Befindet sich Frau A zufällig auf der Seite, die Herr B gerufen hat, so kann sie einfach
zu der entsprechenden Tür herauskommen. Nennt B jedoch die Seite, auf der sie sich
gerade nicht befindet, so muss Frau A ihren Zauberspruch anwenden, um die
magische Tür zu öffnen und so in den jeweils anderen Gang zu gelangen. Nur so kann
sie B’s Wunsch auch erfüllen und auf der von ihm gewählten Seite herauskommen.
4. Dieses Verfahren wird nun t – mal wiederholt, sooft, bis Herr B davon überzeugt ist,
dass Frau A den Zauberspruch auch wirklich kennt.
Damit hat sie ihre Identität dem Kontrolleur gegenüber nachgewiesen.
5. Als Ergebnis dieses Verfahrens bleibt die Aufzeichnung der Kamera von Herrn B. Auf
dieser ist t – mal folgendes zu sehen: A verschwindet in dem Gebäude. Dann betritt B
den Vorraum, ruft entweder „links“ oder „rechts“ und A kommt zu der von B
geforderten Tür heraus.
17
Dieses Verfahren erfüllt nun die drei Bedingungen, die an ein Zero – Knowledge – Verfahren
gestellt werden:
•
Wenn Frau A den Zauberspruch kennt, kann sie jedes Mal dem Wunsch des
Kontrolleurs nachkommen, auf der entsprechenden Seite heraustreten und so
ihre Identität beweisen.
Diese Bedingung nennt man Vollständigkeit.
•
~
Nehmen wir an, eine Frau A , die das Geheimnis nicht kennt, möchte sich als
Frau A ausgeben.
Um sich gegenüber dem Kontrolleur B als Frau A auszuweisen, muss natürlich
auch sie das oben genannte Verfahren durchlaufen.
Sie geht also in den Vorraum, wählt eine der beiden Türen vor ihr, begibt sich
in den entsprechenden Gang und schließt die Tür hinter sich.
Dann betritt Herr B den Vorraum, ruft entweder „links“ oder „rechts“ und
erwartet, dass sich die vermeintliche Frau A auf der entsprechenden Seite zeigt.
~
Da sowohl die Wahl von B als auch die von A zufällig geschieht, ist die
~
Wahrscheinlichkeit dafür, dass A sich gerade auf der von B gewünschten Seite
befindet, gerade 1 . Da dieses Verfahren jedoch nicht nur einmal, sondern
2
~
t – mal durchgeführt wird, ist die Wahrscheinlichkeit, dass A sich immer auf
( 2 ) . Bei t = 20 Durchgängen liegt diese
der von B genannten Seite befindet 1
t
Wahrscheinlichkeit bereits bei ≈ 0,95 *10 −6 und ist folglich sehr gering.
Natürlich ist es B möglich, durch eine häufigere Durchführung des Verfahrens
diese Wahrscheinlichkeit weiter zu minimieren. Auf diese Weise kann er die
Gefahr, eine Person, die den geheimen Zauberspruch in Wirklichkeit gar nicht
kennt, fälschlicherweise als Frau A zu identifizieren, beinahe komplett
beseitigen.
~
Somit ist es einer Person A , die den geheimen Zauberspruch nicht kennt,
praktisch nicht möglich, sich als Frau A auszugeben.
Diese Bedingung nennt man Korrektheit.
18
•
Die letzte Bedingung, die erfüllt sein muss, damit es sich bei dem oben
genannten Verfahren um ein Zero – Knowledge – Verfahren handelt, ist die
Zero – Knowledge – Eigenschaft.
Der Begriff „Zero – Knowledge“ bedeutet in diesem Zusammenhang, dass
während des Verfahrens keinerlei Wissen von Frau A auf Herrn B übertragen
wird, er also nach Ablauf des Protokolls nicht mehr weiß, als dass Frau A den
geheimen Zauberspruch kennt.
Da dies nicht ohne weiteres zu beweisen ist, benötigen wir zunächst eine
Definition des Begriffs „Zero – Knowledge“, die es uns erlaubt, zu beweisen,
dass während des Verfahrens keine Informationen übertragen werden.
Dazu erinnern wir uns zunächst daran, dass das ganze Verfahren, dass Frau A
und Herr B durchführen, von dem Kontrolleur auf einem Band festgehalten
wird. Dieses Band zeigt t – mal die in Schritt 5. genannten Dinge (siehe hierzu
Seite 17).
Die Zero – Knowledge – Eigenschaft ist nun genau dann erfüllt, wenn es dem
Kontrolleur Herrn B zusammen mit einer beliebigen Frau M, die sich im
Allgemeinen nicht im Besitz des geheimen Zauberspruchs befindet, gelingt, ein
vom Originalband nicht unterscheidbares Video herzustellen.
Eine formale Definition könnte dann wie folgt lauten:
„Eine Interaktion [(diese ist unser vorgestelltes Verfahren)] zwischen der
Geheimnisträgerin A und [dem Kontrolleur] B besitzt genau dann die Zero –
Knowledge – Eigenschaft, wenn es“19 B zusammen mit einem Simulator M
möglich ist, die Interaktion, die auf dem Band zu sehen ist, so zu
rekonstruieren, dass das so entstandene Video von einem Außenstehenden
nicht vom Originalband unterschieden werden kann.
Diese Definition ist durchaus sinnvoll. Schließlich ist alles, was ein Angreifer
bei diesem Zero – Knowledge – Verfahren lernen kann, auf dem von Herrn B
gedrehten Videoband festgehalten.
Es ist allerdings möglich, dieses Band ohne das Wissen um den geheimen
Zauberspruch aufzunehmen (dazu gleich mehr).
19
BEUTELSPACHER, Albrecht; SCHWENK, Jörg; WOLFENSTETTER, Klaus – Dieter: „Moderne Verfahren
der Kryptographie“. Vieweg Verlag, 4. Auflage, 2001, S. 45
19
„Wenn man jedoch keine Information hineinstecken muss [um es zu
produzieren], dann kann man (so die Schlußfolgerung) auch keine Information
herausholen.“20
Natürlich interessiert uns nun, wie Kontrolleur B zusammen mit Simulator M
das Videoband ohne das Wissen des Zauberspruchs reproduzieren kann.
Die beiden stellen hierzu einfach die Abläufe des ursprünglichen Bands nach.
1. Simulator M (der natürlich in diesem Fall weiblich sein muss…) begibt
sich in das Gebäude und schließt die Tür hinter sich. Dann versucht sie, die
anschließende Frage des Kontrolleurs zu erraten und verschwindet hinter
der Tür, von der sie vermutet, dass Herr B danach fragen wird.
2. Dann betritt Herr B den Vorraum und ruft „links“ oder „rechts“.
3. Nun muss M die Anfrage von B erfüllen:
a) Befindet sich M dabei zufällig auf der Seite, die B gefordert hat, so
kann sie dessen Bitte nachkommen und einfach heraustreten.
Anschließend wird die nächste Szene gedreht. Das Verfahren startet
also wieder bei 1.
b) Ist M jedoch auf der falschen Seite, so bleibt ihr nichts anderes
übrig, als durch die falsche Tür herauszukommen. Der Grund
hierfür ist, dass sie den Zauberspruch nicht kennt, der die magische
Tür öffnen und so dazu führen würde, dass sie durch die richtige
Tür herauskommen kann.
4. Tritt Fall 3 b) ein, so löscht B einfach die soeben gedrehte Szene und die
beiden starten noch einmal von neuem.
Dieses Verfahren wiederholen B und M sooft, bis sie t – viele Szenen haben, in
denen M aus der von B geforderten Tür kommt. Da die Wahrscheinlichkeit
dafür, dass M hinter der gleichen Tür verschwindet, die später von B gefordert
wird, bei 1
2
liegt, dürften die beiden für die Reproduktion des Videobands im
Schnitt 2t – viele Versuche benötigen.21
Statt eines Kontrolleurs werden wir im weiteren Verlauf der Arbeit von einem „Verifizierer“
sprechen. Dieser hat die gleiche Aufgabe, wie der Kontrolleur Herr B: er soll sich von der
Identität einer Person oder eines Gerätes, das einer Person zugeordnet ist, überzeugen und
wenn es sich um die entsprechende Person handelt, diese bestätigen, sie „verifizieren“.
20
21
Ebd., S. 46
Ebd., S. 44 ff
20
Nun wollen wir noch einmal kurz zusammenfassen, welche Bedingungen ein Verfahren
erfüllen muss, damit es ein Zero – Knowledge – Verfahren ist. Hierzu nehmen wir an, dass
ausschließlich ein bestimmtes Geheimnis zur Verifikation einer Person benutzt werden darf.
1. Vollständigkeit: Kennt eine Person dieses Geheimnis, so wird sie immer von dem
Verfizierer verifiziert werden.
2. Korrektheit: Es ist möglich, eine Person, die das Geheimnis nicht besitzt, mit beliebig
hoher Wahrscheinlichkeit als eine solche zu entlarven.
3. Zero – Knowledge – Eigenschaft: Es muss möglich sein, die Interaktion (das
Protokoll), die zur Verifikation der Person, die das Geheimnis kennt, geführt hat, ohne
das Wissen um das Geheimnis, nachzustellen. Dies muss in der Form geschehen, dass
die so entstandene Interaktion von einem Außenstehenden nicht von der
Originalinteraktion zu unterscheiden ist.
21
4. Die mathematischen Grundlagen
In den folgenden Kapiteln werden wir die mathematischen Grundlagen besprechen, die wir
später für die Erörterung der beiden Zero – Knowledge – Verfahren benötigen.
Dabei beziehen sich die Ausführungen zu Kapitel 4.1 „Graphentheorie“ im Wesentlichen auf
das Buch „Discrete Mathematics And Its Applications“ von Kenneth Rosen.
Das Kapitel 4.2 „Kongruenzen und Restklassen“ beinhaltet als Grundlage zahlentheoretische
Überlegungen und bezieht sich auf das Werk „Zahlentheorie“ von Harald Scheid.
Sollten die hier vorliegenden Ausführungen zu den beiden Themen zum Verständnis nicht
ausreichen, seien dem geneigten Leser durchaus diese beiden Bücher zum Nachschlagen ans
Herz gelegt.
4.1 Graphentheorie
4.1.1 Definition: Graph
Ein Graph G besteht aus einer nichtleeren Menge V von Knoten und einer Menge E von
ungeordneten Paaren aus der Menge V, die Kanten genannt werden.
Man schreibt einen Graphen folgendermaßen: G = (E, V).
Ein Graph könnte z. B. so aussehen:
Dabei besteht die Knotenmenge V aus den Knoten a, b, c, d und e, also
V = {a, b, c, d, e}.
Zudem haben wir folgende Kanten vorliegen:
[a,b], [a,e], [b,e], [c,d] und [d,e]. Die Kantenmenge E besteht dann
genau aus diesen Kanten: E = {[a,b], [a,e], [b,e], [c,d], [d,e]}.
Achtung: Wir gehen bei unseren Überlegungen davon aus, dass jedes Knotenpaar des
Graphen durch maximal eine Kante verbunden wird! (Man spricht in diesem Zusammenhang
von „einfachen Graphen“.)
22
4.1.2 Definition: Untergraph
Ein Untergraph eines Graphen G = (V, E) ist ein Graph H = (W, F), wobei gilt, dass die
Knotenmenge des Graphen H eine Teilmenge der Knotenmenge von G ( W ⊆ V ) und die
Kantenmenge von H eine Teilmenge der Kantenmenge von G ( F ⊆ E ) ist.
So ist z. B. die Knotenmenge {a,b,e} zusammen mit den Kanten [a,b], [b,e] und [a,e] ein
Untergraph des letzten Beispiels.
4.1.3 Definition: Adjazente (benachbarte) Knoten
Zwei Knoten u und v eines Graphen G heißen adjazent, wenn [u,v] eine Kante des Graphen G
ist.
Im oben genannten Beispiel sind folgende Knoten adjazent, da eine Kante zwischen ihnen
existiert: a und b, a und e, b und e, c und d, d und e.
4.1.4 Definition: Grad eines Knotens
Der Grad eines Knotens v entspricht der Anzahl der Kanten, die an diesem Knoten anliegen.
Er wird geschrieben als deg(v).
Wir wollen den Grad der Knoten im ersten Beispiel herausfinden. Dazu zählen wir einfach die
Kanten, die den Knoten verlassen.
deg(a) = 2, deg(b) = 2, deg(c) = 1, deg(d) = 2, deg(e) = 3
4.1.5 Definition: Kantenzug
Sei G = (E, V) ein Graph und u, v ∈ V beliebig.
Dann nennen wir eine Abfolge von Kanten [ xo , x1 ], [ x1 , x 2 ], ..., [ x n −1 , x n ] mit x0 = u und
x n = v einen Kantenzug von u nach v.
Dabei entspricht die Länge eines Kantenzuges der Anzahl der Kanten, die er beinhaltet.
Wir betrachten hierzu ein einfaches Beispiel und nehmen uns den folgenden Graphen:
Ein Kantenzug der Länge 4 ist z. B. {[a,e],[e,d],[d,c],[c,b]}, einer der
Länge 3 z. B. {[b,c],[c,d],[d,e]} usw. Dieser Graph besitzt natürlich
unendlich viele Kantenzüge.
23
4.1.6 Definition: Kreis
Ein Kantenzug { [ xo , x1 ], [ x1 , x 2 ], ..., [ x n −1 , x n ] } heißt Kreis, wenn x0 = x n gilt, wobei n ≥ 3 .
4.1.7 Definition: Isomorphie zweier Graphen
Zwei Graphen G = (E, V) und G’ = (E’, V’) heißen isomorph, wenn eine bijektive Abbildung
σ existiert, mit der gilt: σ(G) = G’.
Genauer formuliert bedeutet dies: Die beiden Graphen sind isomorph, wenn die Knotenmenge
E mit der bijektiven Abbildung σ so auf E’ abgebildet wird, dass für alle Knoten a, b ∈ E gilt:
Sind a und b durch eine Kante verbunden, so sind dies auch σ(a) und σ(b).
4.1.7.1 Kriterien zum Ausschluss der Isomorphie zweier Graphen
In diesem Zusammenhang stellt sich die Frage:
Welche Bedingungen führen dazu, dass zwei Graphen als isomorph gelten?
Kurz gesagt: wenn man einen Isomorphismus findet, der den einen Graphen auf den anderen
abbildet. Im Allgemeinen sind diese Abbildungen jedoch nicht leicht zu finden, da man
speziell Rücksicht auf folgende Punkte nehmen muss:
•
Die beiden Graphen müssen die gleiche Anzahl Knoten und Kanten haben.
•
Insbesondere muss die Anzahl der Knoten eines bestimmten Grades
übereinstimmen.
•
Beide Graphen müssen die gleiche Anzahl von Kreisen einer bestimmten
Länge besitzen.
Sind diese Punkte erfüllt, so bedeutet dies noch nicht, dass die beiden untersuchten Graphen
wirklich isomorph sind. Ist jedoch eine der Bedingungen nicht erfüllt, so lässt sich bereits
aussagen, dass kein Isomorphismus existiert, der den einen Graphen auf den anderen abbildet.
24
Zur Veranschaulichung der oben genannten Bedingungen behandeln wir zwei Beispiele:
Beispiel a)
Graph G
Graph H
Um herauszufinden, ob es möglich ist, dass die beiden Graphen isomorph sind, untersuchen
wir die oben genannten Punkte:
•
Beide Graphen haben je 6 Knoten und 8 Kanten.
•
Beide Graphen haben 2 Knoten mit Grad 2 (G: a, d / H: a,d) und 4 Knoten mit Grad 3
(G: b, c, e, f / H: b, c, e, f).
•
G besitzt einen Kreis der Länge 3 {[a,b], [b,f], [f,a]}.
H hat keinen Kreis der Länge 3.
Da dies jedoch eine notwendige Bedingung für die Existenz eines Isomorphismus
zwischen G und H darstellt, können die beiden Graphen nicht isomorph sein.
Beispiel b)
Graph G
Graph H
Sind diese Graphen isomorph?
•
Beide besitzen je 5 Knoten und 6 Kanten.
•
Beide haben je 3 Knoten mit Grad 2 (G: b, d, e / H: b, d, e) und 2 Knoten mit Grad 3
(G: a, c / H: a, c)
•
Beide beinhalten einen Kreis der Länge
o 3: G: {[a,b], [b,c], [c,a]} / H: {[a,c], [c,d], [d,a]}
o 4: G: {[a,c], [c,d], [d,e], [e,a]} / H: {[a,e], [e,b], [b,c], [c,a]}
o 5: G: {[a,b], [b,c], [c,d], [d,e], [e,a]} / H: {[a,e], [e,b], [b,c], [c,d], [d,a]}
Die oben genannten Bedingungen sind alle erfüllt.
Folglich besteht durchaus die Möglichkeit, dass G und H isomorph sind.
Wir kennen nun also Kriterien, mit denen wir die Existenz eines Isomorphismus zwischen
zwei Graphen ausschließen können.
25
4.1.7.2 Methode zum Auffinden eines Isomorphismus zwischen zwei Graphen
Nehmen wir an, wir hätten bei einer Untersuchung zweier Graphen die Möglichkeit von deren
Isomorphie festgestellt (dies würde Beispiel b) entsprechen):
Graph G
Graph H
Dann stellt sich unter Annahme der Isomorphie in diesem Zusammenhang die Frage: wie
findet man einen Isomorphismus zu diesen zwei Graphen?
Dazu durchlaufen wir die Kantenzüge, so dass adjazente Knoten denselben Grad haben.
Suchen wir z. B. einen Isomorphismus zwischen den beiden Graphen G und H, so sieht dies
folgendermaßen aus:
Haben die Knoten in Graph G beim Durchlaufen eines Kantenzuges, der alle Knoten des
Graphen beinhaltet, nacheinander Grad 2, 4, 2, 5 und 3, so muss diese „Grad – Abfolge“ der
Knoten auch für einen Kantenzug innerhalb des Graphen H existieren.
Zur weiteren Verdeutlichung betrachten wir die Graphen G und H aus dem oben genannten
Beispiel:
Wir starten in Graph G mit Knoten a (Grad 3) zu Knoten b (Grad 2), durchlaufen die Knoten c
(Grad 3) und d (Grad 2) und enden mit Knoten e (Grad 2). Nun müssen wir H so durchlaufen,
dass die Knoten nacheinander vom Grad 3, 2, 3, 2 und 2 sind. Dies ist beispielsweise für die
Abfolge c, d, a, e, b der Fall.
Ein Isomorphisus σ, der G auf H abbildet, ist also:
a b c d
e
 (sprich Knoten a wird auf c abgebildet, b auf d, c auf a usw.)
σ = 
c d a e b
Neben dieser Schreibweise hat sich die so genannte Zykelschreibweise (aus der Zuordnung
zweier Mengen) etabliert, da man hier den Isomorphismus in einer Zeile zusammenfassen
kann. Zu deren Erläuterung benutzen wir unser Beispiel. In der Zykelschreibweise sieht der
Isomorphismus σ wie folgt aus:
(ac)(bde).
Dies bedeutet, dass a auf c abgebildet wird. Nach dem Knoten c wird die Klammer
geschlossen, da das Bild von c wieder der Anfangsknoten a ist. Weiter geht es mit b, das auf d
abgebildet wird, das wiederum auf e und das anschließend wieder auf b.
26
Dass diese Schreibweise insbesondere bei größeren Graphen einen Schreibvorteil bietet,
dürfte wohl klar sein.
4.1.8 Algebraische Darstellung von Graphen
Da die grafische Darstellung eines Graphen mit seinen Knoten und Kanten relativ unhandlich
ist, benötigt man zusätzlich eine algebraische Darstellung. Dies geschieht insbesondere unter
Verwendung von Matrizen, den so genannten Adjazenzmatrizen.
Für einen Graphen G mit n Knoten ist die Adjazenzmatrix A die n × n Matrix, die eine 1 an
der (i, j) – ten Stelle hat, wenn die Knoten vi und v j adjazent sind, und eine 0, wenn sie dies
nicht sind.
Hierbei ist wichtig, die Zeilen und Spalten der Matrix einheitlich durchzunummerieren.
Darauf werden wir in dem folgenden Beispiel näher eingehen:
Wir wollen zu diesem Graph die Adjazenzmatrix erstellen.
Dazu betrachten wir zunächst den Knoten a hinsichtlich der
Kanten zu anderen Knoten. a besitzt Kanten zu b, c und e, nicht
aber zu d. Folglich steht bei dem (a, b) –, dem (a, c) – und dem
(a, e) – Eintrag in der Matrix eine 1 und bei dem (a, d) – Eintrag
eine 0.
Dieses Verfahren wird nun mit allen Knoten durchgeführt und bringt uns dann zu
folgender Matrix:
0

1
A = 1

0

1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
1

0
0

1

0
In der ersten Zeile wird hierbei mit 0 oder 1 eingetragen, ob (der Reihe nach) die
Knoten a, b, c, d und e mit a adjazent sind: a und a sind nicht adjazent, deshalb ein 0 –
Eintrag, a und b sind es, daher eine 1, a und c sind es ebenfalls, was wieder zu einer 1
führt, a und d sind wiederum nicht adjazent, also ein 0 – Eintrag, a und e sind es
hingegen wieder, was einen 1 – Eintrag nach sich zieht.
Nun wird das gleiche Verfahren in der zweiten Zeile für den Knoten b vollführt, in der
dritten für c usw.
Führen wir dieses Verfahren für alle Knoten durch, erhalten wir die oben genannte
Matrix.
27
Man kann bei der Erstellung der Adjazenzmatrizen deren Symmetrie ausnutzen. Die
Begründung hierfür ist trivial: Besteht in einem Graphen zwischen den Knoten a und b eine
Kante, so auch zwischen b und a. Sind die beiden Knoten nicht adjazent, gilt das
entsprechende. Folglich müssen der (a, b) – und der (b, a) – Eintrag der Matrix gleich sein.
Mit den Adjazenzmatrizen besitzen wir nun eine übersichtliche und handliche
Darstellungsform für Graphen.
4.2 Kongruenzen und Restklassen
4.2.1 Kongruenzen
Definition:
Sei m ∈ . Lassen a und b ∈ bei Division durch m denselben Rest, so können wir a und b
in folgender Form darstellen: a = z1 * m + r ; b = z 2 * m + r .
Dann nennen wir a und b kongruent modulo m und schreiben dafür
a ≡ b mod m (in Zukunft a = b mod m).
Gilt nun a = b mod m, so ist dies äquivalent zur der Aussage, dass m Teiler der Differenz von
a und b ist:
a = b mod m ⇔ m a − b
[Begründung: Mit a = z1 * m + r und b = z 2 * m + r ergibt sich:
a − b = z1 * m + r − ( z 2 * m + r ) = m * ( z1 − z 2 ) .]
Eine Folgerung daraus ist:
a = b mod m a – b = 0 mod m.
Beispiele zur Verdeutlichung:
a) Die beiden Zahlen 19 und 51 sind modulo 8 kongruent, denn
8 | 51 – 19 = 32 bzw. 8 | 19 – 51 = -32. Diese Aussagen sind richtig. Folglich gilt:
51 – 19 = 0 mod 8 51 = 19 mod 8 (bzw. 19 – 51 = 0 mod 8 19 = 51 mod 8).
b) Die Zahlen 13 und 17 sind mod 3 inkongruent, denn die Differenz der beiden ergibt
17 – 13 = 4 und 3 ist kein Teiler von 4. Dies bedeutet, dass 13 ≠ 17 mod 3 (mod 2 wären
die beiden Zahlen wieder kongruent).
28
Die genannte Kongruenz mod m bildet eine Äquivalenzrelation auf , da sie folgende
Eigenschaften besitzt:
a) Reflexivität: a = a mod m
denn m | a – a = 0
b) Symmetrie: a = b mod m b = a mod m
a und b seien von der Form, die sie in der ersten Definition besitzen.
Für a = b mod m gilt m | a – b:
m z1 * m + r − ( z 2 * m + r ) = m * ( z1 − z 2 )
Für b = a mod m gilt m | b – a:
m z 2 * m + r − ( z1 * m + r ) = m * ( z 2 − z1 )
c) Transitivität: a = b mod m ∧ b = c mod m a = c mod m
a, b und c lassen sich also wie folgt schreiben:
a = z1 * m + r
b = z2 * m + r
c = z3 * m + r
Somit gilt für die Differenz von a und c:
a − c = z1 m + r − ( z 3 m + r ) = m * ( z1 − z 3 ) . Diese Differenz lässt sich also als
Vielfaches von m darstellen. Folglich ist m ein Teiler von (a – c):
m | (a – c) . Diese Aussage ist wiederum äquivalent zu a = c mod m.
4.2.2 Restklassen
4.2.2.1 Grundlegendes
Durch diese Äquivalenzrelation erhalten wir Äquivalenzklassen, die Restklassen modulo m.
Die Restklasse a mod m besteht aus allen ganzen Zahlen, die bei der Division durch m den
gleichen Rest wie a hinterlassen.
Statt a mod m schreibt man kürzer [a ]m oder einfach [a ] , wenn klar ist, mit welchem m
gerechnet wird.
29
Die Restklassen werden durch die Angabe eines Vertreters beschrieben, einem so genannten
Repräsentanten.
Zum Modul m existieren trivialerweise m verschiedene Restklassen:
[0]m , [1]m , [2]m , ... [m − 1]m
Die Menge aller Restklassen mod m wird mit ( / m) bezeichnet.
Beispiel für eine Restklassenmenge:
Die Restklassen mod 8:
( / 8 )= {[0],[1],[2],[3],[4],[5],[6],[7]}
Nach der 7 (= m-1) geht der Zyklus wieder von vorne los: 8 mod 8 = 0, 9 mod 8 = 1
usw.
In diesen Restklassen werden Rechenregeln definiert:
[a]m + [b]m = [a + b]m
[a]m * [b]m = [a * b]m
(modulare Addition)
(modulare Multiplikation)
Diese „neuen“ Rechenregeln für die Addition und die Multiplikation von Restklassen sind
also über Addition und Multiplikation in definiert.
Zudem besitzen diese Verknüpfungen zusammen mit den Restklassen eine gewisse
mathematische Struktur:
•
Beide Verknüpfungen sind sowohl assoziativ, als auch kommutativ.
•
Das neutrale Element bezüglich der Addition ist [0], bezüglich der Multiplikation ist
es [1].
•
Zu der Addition existiert ein inverses Element, nämlich – [a], welches definiert wird
durch – [a] := [-a]
•
Zudem gilt für „ * “ ein Distributivgesetz.
Durch diese Eigenschaften werden die Restklassen modulo m bezüglich der Verknüpfungen
„ + “ und „ * “ zu einem kommutativen Ring mit Einselement.
Ist m eine Primzahl, so ist der Restklassenring mod m sogar ein Körper.
Der Einfachheit halber wird in dieser Arbeit auf die eckigen Klammern und die Indizes
verzichtet, d.h. dass z. B. die Restklasse 1 mod 5, bisher geschrieben als „ [1]5 “, einfach als
„1 mod 5“ geschrieben wird, bzw. nur als „1“ wenn klar ist, um welchen Modul es sich
handelt.
30
4.2.2.2 Prime Restklassen
Definition
a mod m heißt prime Restklasse, wenn a und m teilerfremd sind, d.h. ggT (a, m) = 1.
Es gilt, dass a + mk mod m = a mod m (Begründung: mk ist mod m = 0, denn es gilt, dass m
die Differenz mk – 0 teilt). Folglich ist mit dem Repräsentanten a auch jedes Element von a
mod m teilerfremd zu m (also a+m, a-m, a+2m, a-2m usw.).
In diesem Zusammenhang benötigen wir natürlich eine Bezeichnung für die Menge aller
primen Restklassen mod m.
Diese werden wir in Zukunft als ( / m)* schreiben.
Beispiel für prime Restklassen:
Die Menge der primen Restklassen mod 8:
( / 8)* = {1, 3, 5, 7}
Analog zu den normalen Restklassen wiederholt sich auch dieser Zyklus wieder:
9 mod 8 = 1, 11 mod 8 = 3 usw.
Gruppeneigenschaft der primen Restklassen mod m zusammen mit „*“
Die Menge der primen Restklassen mod m ist multiplikativ abgeschlossen und hat 1 mod m
als neutrales Element. Zudem existiert zu jedem Element der primen Restklasse mod m ein
multiplikatives Inverses.
Somit bilden die primen Restklassen mod m bezüglich der Multiplikation eine Gruppe.
Wir wollen nun kurz die Struktur einer solchen Gruppe erläutern und ziehen dafür unser
zuletzt gewähltes Beispiel heran, die prime Restklasse mod 8.
Die Verknüpfungstabelle zu dieser Gruppe ist die folgende:
*
1
3
5
7
1
1
3
5
7
3
3
1
7
5
5
5
7
1
3
7
7
5
3
1
Wie man anhand der Verknüpfungstabelle leicht erkennt, erfüllen die primen Restklassen
mod 8 zusammen mit der Verknüpfung „*“ die Anforderungen an eine Gruppe:
31
•
Zwei beliebigen Elementen a, b ∈ ( / 8)* wird genau ein Element a*b ∈ ( / 8)*
zugeordnet (Abgeschlossenheit).
•
Die Verknüpfung ist zudem assoziativ, da die modulare Multiplikation auf der
Multiplikation in basiert und diese bereits assoziativ ist (Assoziativität).
•
Bezüglich „*“ wirkt „1“ als neutrales Element dieser Menge (Existenz eines neutralen
Elements).
•
Zudem existiert zu jedem Element a ∈ ( / 8)* ein multiplikatives Inverses, für das
gilt: a * a −1 = a −1 * a = 1 (Existenz eines inversen Elements).
•
Die Gruppe ist sogar abelsch, da für alle Elemente ∈ ( / 8)* gilt: a*b = b*a.
(Diese Eigenschaft besitzt bereits .)
4.3 Arithmetik von Restklassenringen
4.3.1 Zusammenhang zwischen dem Grad eines Polynoms und dessen Nullstellen
Sei p prim und f(x) ein Polynom mit ganzzahligen Koeffizienten vom Grad n und
Leitkoeffizient ≠ 0 mod p . Dann besitzt die Kongruenz f(x) = 0 mod p auf dem Körper
( / p) höchstens n Lösungen.
Das Polynom f besitzt also in ( / p) höchstens n Nullstellen.
Als Beispiele betrachten wir die Nullstellen zweier Polynome vom Grad 2, eines bei dem p
nicht prim ist und eines bei dem es prim ist.
a) Der Restklassenring ( / 8) besteht aus den Elementen {0, 1, 2, 3, 4, 5, 6, 7}.
Wir wollen nun die Gleichung x² = 1 mod 8, also x² - 1 = 0 mod 8 lösen.
Als mögliche Lösungen erhalten wir 1, 3, 5 und 7. Insgesamt also vier Elemente, die
die Gleichung x² - 1 = 0 mod 8 auf ( / 8) erfüllen.
Die Anzahl der Lösungen der Gleichung und der Grad des Polynoms, dessen
Nullstellen wir berechnen wollen, stehen also in keinem direkten Zusammenhang, wie
dies bei Satz 4.3.1 der Fall ist.
b) Im Gegensatz zu diesem Beispiel wollen wir nun die Lösungen von x² = 2 mod 7,
also des Polynoms x² - 2 = 0 mod 7, auf der primen Restklassengruppe ( / 7)*
erörtern.
( / 7)* besteht aus den Elementen {1, 3, 5, 7}. Auf dieser Gruppe wird das
Polynom x² - 2 = 0 mod 7 lediglich von den Elementen 3 und 4 gelöst
32
(3² = 9 = 2 mod 7 und 4² = 16 = 2 mod 7). Die Kongruenz x² - 2 = 0 mod 7 hat also
auf der primen Restklassengruppe mod 7, dem Grad des Polynoms entsprechend,
genau zwei Lösungen.
4.3.2 Ordnung eines Restklassenringes
Sei ( / m) der Restklassenring mod m. Dann heißt #( / m) die Ordnung oder
Kardinalität dieses Restklassenringes.
Handelt es sich insbesondere um prime Restklassen, also um die Menge ( / m)*, so ist die
Ordnung dieser Gruppe #( / m)* = ϕ (m) .
Dabei heißt φ die Euler – Funktion.
Spezialfall: Ist m eine Primzahl, so ist ϕ (m) = m – 1.
(mit m = p: ϕ ( p ) = p – 1)
Wir erörtern diese Definition nun anhand einiger Beispiele:
a) Hierzu betrachten wir die Menge der Restklassen mod 8:
( / 8) = {0, 1, 2, 3, 4, 5, 6, 7}. Dieser Ring besitzt die Ordnung 8, da er genau 8
Elemente enthält, also #( / 8) = 8.
b) Wenden wir uns hingegen den primen Restklassen mod 8 zu, also ( / 8)*, so
ändert sich mit der Struktur der Menge (diese ist nun eine multiplikative Gruppe!)
natürlich auch deren Ordnung. Sie ist gegeben durch die Elemente ( / 8)* = {1, 3,
5, 7} und hat somit die Ordnung 4: #( / 8)* = ϕ (8) = 4
c) Zuletzt behandeln wir den Spezialfall, dass p eine Primzahl ist. Dazu betrachten wir
die prime Restklassengruppe mod 7, ( / 7)* = {1, 2, 3, 4, 5, 6}.
Diese beinhaltet 6 = p – 1 Elemente. Folglich ist #( / 7)* = ϕ (7) = p – 1 = 6.
4.3.3 Berechnung der Euler – Funktion
Für ein n ∈ hat die Euler – Funktion φ den Wert

ϕ (n) = n * ∏ 1 −
p|n

1
 , wobei sich dieses Produkt auf alle Primteiler von n erstreckt.
p 
Als Beispiel betrachten wir die prime Restklassengruppe ( / 30)*.
Die Primteiler von 30 sind 2, 3 und 5.
33
Also ergibt sich die Euler – Funktion zu:


1 
 
1 
 
1 
4
ϕ (30) = 30 * 1 −  * 1 −  * 1 −  = 30 * = 8 .
15
5
3
2

In der Tat besteht ( / 30)* aus 8 Elementen, nämlich {1, 7, 10, 13, 17, 19, 23, 29}.
4.3.4 Ordnung eines Elementes einer Restklasse
Ist a mod m eine prime Restklasse, dann nennt man die kleinste natürliche Zahl k mit
a k mod m = 1 die Ordnung von a. Man schreibt ord (a) = k.
Auch dies soll kurz anhand eines Beispiels verdeutlicht werden:
Wir wählen die prime Restklassengruppe ( / 8)* und daraus das Element 5.
Nun bilden wir 51 = 5 mod 8 und 5 2 = 25 = 1 mod 8 . Folglich ist für k = 2
5 k = 1 mod 8 und somit die Ordnung des Elementes 5 in ( / 8)* gleich 2:
ord (5) = 2.
4.3.5 Satz von Lagrange
Für alle Elemente g der endlichen abelschen Gruppe G mit der Verknüpfung „ o “ gilt:
Verknüpft man das Element g #G – mal mit sich selbst, so ergibt sich das neutrale Element e
der Gruppe G:
g #G = g o g o ... o g = e .
Die Spezifizierung dieses Satzes ist der
4.3.6 Satz von Euler – Fermat
Ist a eine prime Restklasse mod m, so gilt:
a ϕ ( m ) = 1 mod m .
Insbesondere gilt: ist m eine Primzahl, so wird ϕ (m) = m − 1 und somit die letzte Gleichung
zu a m −1 = 1 mod m (auch bekannt unter dem „kleinen Fermat“).
Hier geben wir zwei Beispiele, eines mit m ist kein Element der Menge aller Primzahlen und
eines mit m ist Primzahl:
a) Sei m = 8. Wir wissen aus 4.3.2 b), dass ϕ (8) = 4 .
Wir wählen wiederum ein beliebiges Element aus ( / 8)*, z. B. sei dies 7, und
bilden 7 4 = 2401 = 1 mod 8 .
34
b) Wir betrachten ein Element aus der Gruppe ( / 7)*, z. B. das Element 4. Für die
Ordnung von ( / 7)* gilt nach 1.3.2 c) #( / 7)* = ϕ (7) = 6.
Nun berechnen wir 4 6 = 4096 = 1 mod 7 .
Wir erhalten also bei beiden Beispielen das neutrale Element 1.
4.3.7 Zusammenhang zwischen der Ordnung einer Gruppe und der eines Elementes
dieser Gruppe
Für alle primen Restklassen a ∈ ( / n)* gilt:
ord ( a ) | #( / n)* = ϕ (n)
Als Beispiel nehmen wir wieder ( / 8)* und wählen ein beliebiges Element, o.B.d.A. sei
dies 7. Nun bestimmen wir die Ordnung dieses Elementes in der Gruppe:
71 = 7 mod 8, 7 2 = 49 = 1 mod 8
Da wir für 7² das neutrale Element 1 der Gruppe ( / 8)* erhalten, ist ord ( 7 ) = 2.
Über ϕ (8) wissen wir aus 4.3.2, dass ϕ (8) = 4.
Also gilt auch ord ( 7 ) = 2 | ϕ (8) .
4.3.8 Chinesischer Restsatz
Sind m1 , m2 , ..., mk paarweise teilerfremde natürliche Zahlen und c1 , c 2 , ..., c k ganze Zahlen,
dann existiert genau eine Restklasse x zum Modul m = m1 * m2 * ... * mk , für die gilt:
x = ci mod mi , für i = 1,2, …, k.
Da wir später aus diesem Satz nur die Existenz eines solchen x benötigen, wird das Beispiel
hier weg gelassen.
35
4.3.9 Der euklidische Algorithmus
„Für a, b ∈ bezeichnet man folgende Kette von Divisionen mit Rest als euklidischen
Algorithmus:
a = v0 * b + r1
mit 0 < r1 < b
b = v1 * r1
+ r2
mit 0 < r2 < r1
r1 = v 2 * r2
+ r3
mit 0 < r3 < r2
M
rn −3 = v n − 2 * rn − 2 + rn−1 mit 0 < rn −1 < rn − 2
rn − 2 = v n −1 * rn −1 + rn
mit 0 < rn < rn −1
rn −1 = v n * rn
[wobei v j ∈ und r j ∈ 0 gilt]
Dabei ist n dadurch bestimmt, dass rn der letzte von 0 verschiedene Rest in dieser
Divisionskette ist. Ein solches n existiert, denn die Folge der Reste nimmt streng monoton ab:
b > r1 > r2 > r3 > .... > rn −1 > rn “22, wobei alle Reste > 0 sind.
Dieser sehr nützliche Algorithmus, der sich insbesondere zur Bestimmung des größten
gemeinsamen Teilers zweier Zahlen a und b benutzen lässt (denn dieser ist ja gerade
rn = ggT (a, b) ), soll an einem Beispiel verdeutlicht werden:
Wir suchen ggT (348, 72). Die Anwendung des euklidischen Algorithmus liefert:
348 = 4 * 72 + 60
72 = 1 * 60 + 12
60 = 5 * 12 + 0
12 ist also der letzte von 0 verschiedene Rest.
Folglich ist 12 der größte gemeinsame Teiler von 348 und 72.
4.3.10 Darstellung des ggT zweier Zahlen als Linearkombinationen dieser Zahlen
Der ggT zweier Zahlen a und b ist die kleinste nichtnegative Zahl, die sich als
Linearkombination von a und b darstellen lässt:
ggT (a, b) = z1 * a + z 2 * b , mit z1 , z 2 ∈ .
Zwei Bemerkungen:
1. Diese Darstellung ist nicht eindeutig.
2. Die effektivste Berechnung von z1 , z 2 erfolgt durch die Umkehrung des euklidischen
Algorithmus.
22
SCHEID, Harald: „Zahlentheorie“. Spektrum Akademischer Verlag, 4. Auflage, 2007, S. 28
36
Wir wollen nun den größten gemeinsamen Teiler der Primzahlen a = 37 und b = 53 als
Linearkombination der beiden schreiben. Hierzu berechnen wir zunächst explizit deren ggT
mit dem euklidischen Algorithmus:
53 = 1*37 + 16
37 = 2*16 + 5
16 = 3*5 + 1
5 = 5*1 + 0
Der größte gemeinsame Teiler der beiden Primzahlen 37 und 53 ist erwartungsgemäß 1.
Nun stellen wir 1 mit der Umkehrung des euklidischen Algorithmus als Linearkombination
von 37 und 53 dar. Dazu setzen wir den ggT(37, 53) (in diesem Fall „1“) als Differenz der
zwei Zahlen an, die bei Division durcheinander genau den ggT(37, 53) = 1 als Rest
hinterlassen haben. Anschließend ersetzen wir alle Reste, die im euklidischen Algorithmus
entstanden sind, durch eine entsprechende Differenz.
1 = 16 – 3*5
= 16 – 3*(37 – 2*16) = 16 – 3*37 + 6*16 = 7*16 – 3*37
= 7*(53 – 1*37) – 3*37 = 7*53 – 7*37 – 3*37
= 7*53 – 10*37
Somit ist z1 = 7 und z 2 = −10 .
37
5. Vorstellung der beiden Zero – Knowledge – Verfahren
Es existieren im Wesentlichen zwei Verfahren, mit denen man Zero – Knowledge –
Protokolle herstellen kann. Diese beiden sind von den mathematischen Grundlagen her relativ
verschieden. Das erste Verfahren, das wir vorstellen werden, begründet sich auf die
Graphentheorie im Allgemeinen und die Isomorphie von Graphen im Speziellen.
Die Quellen des zweiten Verfahrens, dem Fiat – Shamir – Algorithmus, liegen hingegen in
der Zahlentheorie.
Die Zahlen- und die Graphentheorie sind von der mathematischen Thematik sehr
unterschiedliche Gebiete, was wiederum zeigt, dass nicht nur die Verwendungsmöglichkeiten
von Zero – Knowledge – Protokollen sehr vielfältig sind (dazu im weiteren Verlauf mehr),
sondern auch deren mathematische Grundlagen.
Den Ausführungen in 5.1 und 5.2 liegt der Artikel „Was ist Zero – Knowledge“ von Albrecht
Beutelspacher und Jörg Schwenk aus den Mathematischen Semesterberichten Band 40 zu
Grunde. Ich habe mir nach meinen eigenen Erfahrungen mit diesem Artikel erlaubt, an den
Stellen zu kommentieren, wenn ich ihn für jemanden, der nicht so tief in der Thematik
verwurzelt ist, für schwer verständlich hielt. Weiter habe ich versucht, eventuelle
Missverständnisse oder Verständnisschwierigkeiten, die bei Lesen dieses Artikels auftreten
könnten, in dieser Arbeit auszuräumen.
5.1 Isomorphie von Graphen
5.1.1 Grundlegendes zum Verfahren
Dieses Verfahren zur Herstellung von Zero – Knowledge – Protokollen beruht im
Wesentlichen auf dem Fakt, dass es außerordentlich schwer ist, zu erkennen, ob zwei Graphen
isomorph sind. Insbesondere begründet es sich auf das Problem, einen Isomorphismus
zwischen zwei isomorphen Graphen zu finden.
Im Gegensatz zu diesen beiden Punkten ist es relativ leicht, zueinander isomorphe Graphen zu
erzeugen. Hierzu benutzt man einfach die Knotenmenge eines Graphen G = (E, V) und
permutiert diese, so dass der Graph G’ = (E’, V’) entsteht. Die Kanten zwischen den Knoten
bleiben hierbei erhalten. Ordnet man die Knotenmengen E und E’ also einander bijektiv zu
und erhält die entsprechenden Kanten, so erhält man einen Isomorphismus.
38
Zudem ist es mit vertretbar hohem Aufwand möglich, zu überprüfen, ob eine Abbildung ein
Isomorphismus ist oder nicht. Man überprüft dazu einfach die Definition eines
Graphenisomorphimus: sind zwei Knoten vi , v j ∈ E adjazent, so sind es auch deren Bilder
vi ' , v j '∈ E ' .
Von genau dieser „Diskrepanz zwischen der Schwierigkeit, einen Isomorphismus zu finden,
und dem ganz einfachen Nachweis, dass eine vorgelegte Abbildung ein Isomorphismus ist“23,
lebt dieses Zero – Knowledge – Verfahren, auf welches wir an späterer Stelle eingehen
werden.
Zuerst wollen wir jedoch die Schwierigkeit, zwei Graphen auf Isomorphie zu überprüfen,
etwas tiefer betrachten.
Bei kleineren Graphen, wie denen aus den Beispielen bei 4.1.7, lässt sich diese Überprüfung
noch mit vertretbarem Zeitaufwand durchführen. Doch bereits bei mehreren Knoten und einer
entsprechenden Anzahl an Kanten wird der Test sehr mühsam.
Das folgende Beispiel zeigt, dass bereits zwei Graphen mit 15 Knoten nur mit sehr großem
Zeitaufwand auf Isomorphie zu überprüfen sind.
Graph A
Graph B
Die Fragen, ob es möglich ist, auszuschließen, dass die beiden Graphen isomorph sind oder
gar festzustellen, ob sie es sind, sind, wie erwartet, alles andere als leicht zu beantworten. Das
Vorgehen nach der bei den Definitionen genannten Methode zum Ausschluss der Isomorphie
sowie die Methode zum Auffinden eines Isomorphismus werden hier nämlich extrem
kompliziert bzw. sehr zeitaufwendig, da die in den Graphen auftretenden Kreise wesentlich
zahlreicher und komplexer in Erscheinung treten, als es noch in den oben genannten
Beispielen der Fall war.
23
BEUTELSPACHER, Albrecht; SCHWENK, Jörg: „Was ist Zero – Knowledge?“. Mathematische
Semesterberichte, Band 40, Heft 1, 1993, S. 77
39
Würde man nun versuchen, einen Isomorphismus σ zu raten, der Graph A auf Graph B
abbildet, so müsste man 15!≈ 1,31 *1012 mögliche Permutationen überprüfen.
Dies ist in angemessener Zeit kaum zu schaffen. Wenn wir nun bedenken, dass vorgeschlagen
wurde, das Verfahren in der Praxis mit Graphen von mehreren hundert bis hin zu 1000
Knoten zu betreiben, kann man sich angesichts des zuletzt genannten Beispiels vorstellen,
welch Aufwand dafür nötig sein wird: bereits bei 100 Knoten hätten wir 100! Möglichkeiten,
die Knotenmenge zu permutieren…
Wie aber bereits erwähnt wurde, stellt es kein schwieriges Problem dar, zu überprüfen, ob
eine Permutation zwei Graphen tatsächlich isomorph aufeinander abbildet.
Im Bezug auf das letzte Beispiel ist es kein Problem, zu überprüfen, ob die Permutation
σ = (1 4 6 7)(2 11)(3 13 10 15 9 12 8)(5 14) ein Isomorphismus ist oder nicht. Hierzu wenden
wir den in der Einleitung dieses Kapitels genannten Test an. Wir überprüfen, ob die Bilder
zweier adjazenter Knoten wieder adjazent sind. Nehmen wir uns z. B. die adjazenten Knoten
1 und 8 aus Graph A, so müssen deren Bilder, die Knoten 4 und 3 aus Graph B, wieder
benachbart sein, wenn es sich bei σ um einen Isomorphismus handelt. In der Tat sind diese
Bilder wieder adjazent. Im weiteren Verfahren werden alle Bilder von adjazenten Knoten auf
Adjazenz überprüft. Ist diese Bedingung für die entsprechenden Knotenpaare erfüllt, so ist die
vorgelegte Abbildung σ ein Isomorphismus.
5.1.2 Anwendung des Verfahrens „Isomorphie von Graphen“
Nachdem wir uns nun mit der Schwierigkeit des Überprüfens auf Isomorphie zweier Graphen,
dem Problem des Auffindens eines Isomorphismus’ zwischen zwei isomorphen Graphen und
der Überprüfung einer Permutation auf die Eigenschaften eines Isomorphismus’ beschäftigt
haben, wollen wir uns dem eigentlichen Zero – Knowledge – Verfahren widmen.
Wie
die
meisten
kryptographischen
Verfahren,
so
wird
auch
dieses
in
eine
Geheimniserzeugungsphase und eine Anwendungsphase untergliedert. Zunächst wollen
wir uns mit der Geheimniserzeugungsphase beschäftigen:
Im Allgemeinen benötigen wir zu aller erst ein Identitätsmerkmal (einen Schlüssel), anhand
dessen man einen Benutzer identifizieren kann. Wir wählen hierzu zwei isomorphe Graphen
G0 und G1 . Damit der Benutzer seine Identität nachweisen kann, benötigt er einen
Isomorphismus σ, der G0 und G1 aufeinander abbildet. Da es (wie oben beschrieben) äußerst
schwierig ist, eine bijektive Abbildung zwischen den beiden bestehenden Graphen
herauszufinden, ist hier folgende Technik ratsam:
40
Der Benutzer nimmt den Graphen G0 und wählt eine zufällige Permutation σ der Knotenmenge E 0 . Durch Anwenden dieser Abbildung entsteht der zu G0 isomorphe Graph G1 .
G0 und G1 werden anschließend veröffentlicht, wobei σ das individuelle Geheimnis des
Benutzers bleibt und die beiden Graphen der späteren Verifikation dienen.
In der Anwendungsphase des Verfahrens stellt sich nun die Frage, wie der Benutzer A einen
Verifizierer B davon überzeugen kann, dass er σ besitzt, ohne ihm sein individuelles
Geheimnis explizit mitzuteilen.
Dieses Problem wird mit dem folgenden Protokoll gelöst.
1.
A wählt beliebig einen der beiden Graphen G0 und G1 . Anschließend wendet er
eine zufällige Permutation τ auf den gewählten Graphen an. Als Ergebnis wird er
den Graphen H erhalten, der sowohl zu G0 als auch zu G1 isomorph ist, unabhängig
davon, welchen Graph er permutiert hat.
2.
Der Graph H wird an den Verifizierer B geschickt.
3.
Dieser darf nun entweder den Isomorphismus zwischen G0 und H oder zwischen
G1 und H sehen.
4.
Je nachdem, welchen Isomorphismus B wünscht, schickt ihm A entweder τ , τσ −1
oder τσ.
Begründung:
O. B. d. A. nehmen wir an, A hätte am Anfang G0 mit σ permutiert und so
(
)
σ
G1 erhalten G0 
→
G1 (für den umgekehrten Fall analog).
Dann gibt es zwei Möglichkeiten:
(
)
τ
→
H .
1. A permutiert G0 mit τ und erhält so den Graphen H G0 
a) Möchte B dann den Isomorphismus zwischen G0 und H
sehen, schickt A ihm einfach τ.
b) Fordert der Verifizierer die Abbildung zwischen G1 und H,
so erhält er von A τσ −1
−1
τ
→
H ).
(denn G1 σ→ G0 
41
(
)
τ
→
H .
2. A permutiert G1 mit τ und erhält so den Graphen H G1 
a) Will B den Isomorphismus zwischen G0 und H erhalten, so
σ
τ
→
G1 
→
H ).
schickt A ihm τσ (denn G0 
b) Fordert B die Abbildung zwischen G1 und H, so erhält er
von A wiederum einfach τ.
5.
Nun kann der Verifizierer B mit dem oben genannten Verfahren einfach
überprüfen, ob die Abbildung, die er erhalten hat, tatsächlich ein Isomorphismus
zwischen den beiden Graphen ist, oder nicht.
6.
Dieses Protokoll wird beliebig oft wiederholt, bis B davon überzeugt ist, dass A
den geheimen Isomorphismus σ besitzt.
Nach Abhandlung dieses Protokolls drängen sich die Fragen auf:
a) Kann B den Benutzer A immer verifizieren?
b) Ist es möglich auszuschließen, dass B von einer anderen Person getäuscht wird?
c) Wurde mit diesem Verfahren wirklich kein Wissen um das Geheimnis σ übermittelt?
Erfüllt dieses Protokoll also die Anforderungen an ein Zero – Knowledge – Protokoll?
Ja, denn die Bedingungen „Vollständigkeit“, „Korrektheit“ und „Zero – Knowledge –
Eigenschaft“ (entsprechen den jeweiligen Fragen von oben) werden allesamt erfüllt:
a) Vollständigkeit
Da A den Isomorphismus σ zwischen G0 und G1 kennt, kann er jede Frage von B
nach den Isomorphismen zwischen G0 und H und zwischen G1 und H
beantworten, egal nach welcher der beiden Abbildungen B verlangt.
Der Grund hierfür ist, dass A nur durch das Wissen um σ in der Lage ist, die
Abbildungen τσ −1 und τσ zu bilden.
A kann also alle Wünsche von B erfüllen und B kann sich mit beliebig hoher
Sicherheit davon überzeugen, dass A den geheimen Isomorphismus σ wirklich
besitzt.
42
b) Korrektheit
~
Nehmen wir an, eine Person A , die das Geheimnis σ nicht besitzt, möchte B
fälschlicherweise davon überzeugen, dass sie σ kennt.
Wir werden nun veranschaulichen, dass dies im oben genannten Verfahren
praktisch nicht möglich ist. Dazu betrachten wir das Protokoll und erläutern, an
~
welchem Punkt A scheitern wird.
1. Die beiden isomorphen Graphen G0 und G1 sind gegeben.
Dabei sei o. B. d. A. der Graph G1 durch die Permutation σ von G0 entstanden.
~
A wählt nun zuerst einen der beiden Graphen (o. B. d. A. wähle er G0 ) und
permutiert die Knotenmenge des Graphen mit dem Isomorphismus τ. Aus dem
τ
→H .
Graphen G0 wird so der Graph H: G0 
2. H schickt er dann an den Verifizierer B.
3. Dieser wünscht nun entweder den Isomorphismus zwischen G0 und H oder
zwischen G1 und H zu sehen.
~
4. Wünscht B den Isomorphismus zwischen G0 und H zu sehen, kann ihm A
einfach die (selbst erstellte) Permutation τ schicken. Die Wahrscheinlichkeit,
dass B gerade diese Abbildung sehen will, liegt bei 1 , da er aus zwei
2
gleichwahrscheinlichen Ereignissen eines auswählen kann.
~
Fordert B jedoch den Isomorphismus zwischen G1 und H, so bekommt A ein
Problem: diese Abbildung ist nämlich τσ −1 und um diese zu bilden benötigt er
σ, was er nicht kennt.
~
Könnte A diese Frage beantworten, so wäre er auch in der Lage σ zu
berechnen und könnte sich so in Besitz des Geheimnisses bringen. Wie wir
~
jedoch gleich zeigen werden, ist die Wahrscheinlichkeit, dass A die Abbildung
τσ −1 heraus bekommt, äußerst gering.
Dazu gehen wir nun davon aus, dass er versucht, die Abbildung σ bzw. in
diesem Fall σ −1 zu erraten. Wie wir jedoch oben gezeigt haben, existieren
bereits bei einem Graph mit 15 Knoten 15! ≈ 1,30 *1012 Möglichkeiten, die
Knotenmenge zu permutieren. Die Wahrscheinlichkeit, eine bestimmte dieser
Möglichkeit zu erraten, ergibt sich aus dem reziproken Wert, ist also sehr klein.
Somit dürfte die Wahrscheinlichkeit, die richtige Permutation σ zu erraten, in
43
der Praxis bei 0 liegen, da dort Graphen mit mehreren hundert Knoten
verwendet werden.
Wenn
B
das
Verfahren
einmal
durchführt,
hat
~
A
folglich
die
Wahrscheinlichkeit 1 , nicht als Betrüger entlarvt zu werden. Dies ist nämlich
2
~
genau dann der Fall, wenn B den Isomorphismus zu sehen wünscht, den A
selbst erstellt hat (in unserem Fall den zwischen G0 und H). Führt B diesen
Dialog nicht einmal, sondern t – mal durch, so ergibt sich die
~
Wahrscheinlichkeit, dass B jedes Mal die von A erstellte Abbildung zu sehen
( 2 ) . Bereits bei t = 15 Runden wird diese Wahrscheinlichkeit
verschwindend klein, nämlich ≈ 0,031 *10 . Da (1 ) eine streng monotone
2
wünscht, zu 1
t
−3
t
fallende Nullfolge ist, kann B durch beliebig häufige Durchführung des
~
Dialoges die Wahrscheinlichkeit, dass er von A betrogen wird, beliebig
minimieren.
~
Folglich ist es A beinahe unmöglich, den Verifizierer B fälschlicherweise
davon zu überzeugen, das Geheimnis σ zu besitzen.
~
In den analogen Fällen (dass G0 aus Permutation von G1 entstand bzw. dass A
~
nicht G0 sondern G1 mit τ permutiert) entstehen äquivalente Probleme für A .
c) Zero – Knowledge – Eigenschaft
Um das vorgestellte Verfahren auf Zero – Knowledge – Eigenschaft zu
überprüfen, müssen wir feststellen, ob es möglich ist, mit einer beliebigen Person
M (die im Allgemeinen das Geheimnis σ nicht kennt) und dem Verifizierer B ein
Protokoll zu erstellen, das ein Außenstehender nicht von dem ursprünglichen
unterscheiden kann, sprich ob es möglich ist, ein dementsprechendes Protokoll
ohne das Wissen von σ herzustellen.
Hierzu gehen M und B nach dem auf den Seiten 41 und 42 vorgestellten Dialog
vor:
1. M wählt zufällig G0 oder G1 und permutiert den gewählten Graphen mit τ zu
dem Graphen H, der nun zu G0 und G1 isomorph ist.
2. Der Graph H wird an den Verifizierer B geschickt.
44
3. Weiter fordert B den Isomorphismus zwischen G0 und H oder den
zwischen G1 und H zu sehen.
4. Will B die Abbildung zwischen dem von M am Anfang permutierten Graphen
und H sehen, so schickt ihm M einfach τ. Einen solchen Dialog nennen wir ab
sofort „erfolgreichen Dialog“.
Möchte B jedoch den Isomorphismus zwischen H und dem Graphen, den M
nicht am Anfang gewählt hat, übermittelt bekommen, so kann M dessen
Wunsch nicht nachkommen. Daher wird der Dialog abgebrochen und von
neuem gestartet.
5. In dem Falle, dass B von M die Permutation τ erhält, überprüft er einfach, ob
die erhaltene Abbildung tatsächlich ein Isomorphismus zwischen den beiden
von ihm genannten Graphen ist (was sie sein wird, da τ ja genauso konstruiert
wurde). B wird M also verifizieren.
6. Dieser Dialog wird nun sooft ausgeführt, bis M und B die gleiche Anzahl an
erfolgreichen Dialogen haben, wie im Originalprotokoll entstanden sind (wobei
der von M am Anfang zu permutierende Graph immer wieder neu zufällig
ausgewählt wird).
Da M immer nur auf die Frage nach dem Isomorphismus zwischen dem von
ihm am Anfang gewählten Graphen und dem Graphen H antworten kann,
werden die beiden im Schnitt zwei Versuche benötigen, um einen erfolgreichen
Dialog zu erstellen.
Jeder erfolgreiche Dialog wird als ein Tripel abgespeichert, das folgendes beinhaltet:
1. Den Graphen H, der durch die Permutation τ entstanden ist, 2. die Wahl von M, welchen
Isomorphismus er zu sehen gewünscht hat und 3. die Permutation τ.
Bezeichnet man den Wunsch von M, die Abbildung zwischen G0 und H zu sehen mit 0 und
die Aufforderung, den Isomorphismus zwischen G1 und H darzulegen mit 1, so könnte ein
solches Tripel (unter Benutzung unseres Beispielgraphen von oben) wie folgt aussehen:
, 0, (1 4 6 7)(2 11)(3 13 10 15 9 12 8)(5 14)
45
Sinnvollerweise würde man für die Darstellung des Graphen wohl eine algebraische
Darstellung, wie die Darstellung in einer Adjazenzmatrix, wählen.
Dies würde dann so aussehen:
0

1
0

0

1
0

1
1

0
0

0
0

0

0
0

1 0 0 1 0 1 1 0 0 0 0 0 0 0

0 0 1 1 0 0 0 1 1 0 0 0 0 1
0 0 1 0 0 1 0 0 0 1 0 1 0 1

1 1 0 0 0 1 0 1 1 0 0 0 1 1

1 0 0 0 0 0 0 0 1 1 0 1 0 0
0 0 0 0 0 0 1 0 1 0 1 1 1 0

0 1 1 0 0 0 0 0 1 0 1 1 0 0
0 0 0 0 1 0 0 0 1 0 0 1 0 0 , 0, (1 4 6 7)(2 11)(3 13 10 15 9 12 8)(5 14)

1 0 1 0 0 0 0 0 0 0 1 0 1 0
1 0 1 1 1 1 1 0 0 0 0 0 0 0

0 1 0 1 0 0 0 0 0 0 1 0 1 1
0 0 0 0 1 1 0 1 0 1 0 0 0 1

0 1 0 1 1 1 1 0 0 0 0 0 0 0

0 0 1 0 1 0 0 1 0 1 0 0 0 0
1 1 1 0 0 0 0 0 0 1 1 0 0 0 
Davon ausgehend, dass im Originalprotokoll t – viele dieser Tripel entstanden sind, führen M
und B den Dialog sooft durch, bis sie ebenfalls t – viele dieser Tripel, also t – viele
erfolgreiche Dialoge, haben.
Ist dies vollzogen, so haben M und B ein Protokoll erstellt, bei dessen Erzeugung das
Geheimnis σ zwar nicht benutzt wurde, das aber für einen Außenstehenden das gleiche
Ergebnis liefert, wie der Originaldialog: t – viele Tripel, die einen Graphen, dessen Urbild und
die Abbildung, die zu diesem Graphen führte, enthalten.
Damit ist dieses erstellte Protokoll nicht von dem Originalprotokoll zu unterscheiden und
erfüllt somit die Zero – Knowledge – Eigenschaft.
5.1.3 Praxisbezug des Verfahrens
Beschäftigt man sich mit der Zero – Knowledge – Thematik, so beschäftigt man sich
automatisch auch mit diesem Verfahren. Es ist sehr anschaulich und bei angemessenem
Wissen über Graphentheorie auch leicht verständlich. In der Praxis findet es hingegen wenig
Anwendung. Dies könnte zum einen daran liegen, dass die Entscheidung (und damit die
letztendliche Verifizierung), ob eine gegebene Abbildung ein Isomorphismus ist, zwar relativ
leicht durchführbar ist, es aber trotzdem einige Schritte benötigt, bis alle Bilder von
adjazenten Knoten auf Adjazenz überprüft sind.
Ein weiteres Problem, dass sich in Anbetracht dieses Verfahrens stellen könnte, ist die
Speicherkapazität, die benötigt wird, um die Darstellung eines großen Graphen zu archivieren
und abzurufen.
46
Diese Probleme stellen sich in dem im weiteren Verlauf vorgestellten Verfahren nicht mehr.
Darin muss ein Verifizierer nämlich nur sehr wenige Schritte bzw. Rechnungen für eine
Überprüfung und die anschließende Verifikation durchführen. Doch dazu im Folgenden mehr.
5.2 Fiat – Shamir – Algorithmus
5.2.1 Grundlegendes zum Verfahren
Der Fiat – Shamir – Algorithmus ist das wohl bekannteste Zero – Knowledge – Verfahren. Es
wurde 1987 von Uriel Feige, Amos Fiat und Adi Shamir in „Zero knowledge proofs of
identity“24 vorgestellt. Da im Gegensatz zu unserem ersten Verfahren ein wesentlich
geringerer Rechenaufwand nötig ist, ist es zudem auch das meist benutzte Zero – Knowledge
– Verfahren.
Die Grundlagen des Fiat – Shamir – Algorithmus liegen in der Zahlentheorie, vor allem in der
Modularen Arithmetik. Insbesondere begründet er sich auf die Schwierigkeit, Wurzeln eines
quadratischen Restes modulo einer sehr großen Zahl zu berechnen. Dies wollen wir nun
ausführlich erläutern:
Sei n ∈ und ( / n)* sei wie oben beschrieben die Menge der primen Restklassen mod n.
Nach 4.2.2.2 ist diese Menge zusammen mit der Verknüpfung „*“ (modulare Multiplikation)
eine Gruppe.
Im weiteren benötigen wir zudem die folgenden Definitionen:
a) Ein Element a aus ( / n)* wird quadratischer Rest modulo n genannt, wenn ein
b ∈ ( / n)* existiert, mit b 2 (= b * b ) = a mod n .
Dabei heißt b eine Quadratwurzel von a.
b) Zwei Quadratwurzeln b und b’ von a mod n heißen wesentlich verschieden, wenn gilt,
dass b ≠ b' ≠ n − b' mod n.
Definition a) wird zunächst durch ein Beispiel verdeutlicht.
Hierzu betrachten wir die Menge der primen Restklassen mod 15 hinsichtlich ihrer Quadrate:
( / 15)* = {1, 2, 4, 7, 8, 11, 13, 14}
24
FEIGE, Uriel; FIAT, Amos; SHAMIR, Adi: „Zero knowledge proofs of identity“. Proceedings of the 19th
Annual ACM Symposium on Theory of Computing, ACM Press, 1987, S. 210 – 217
47
Die Verknüpfungstabelle dieser Menge bezüglich der Multiplikation ist die folgende:
*
1
2
4
7
8
11
13
14
1
1
2
4
7
8
11
13
14
2
2
4
8
14
1
7
11
13
4
5
8
1
13
2
14
7
11
7
7
14
13
4
11
2
1
8
8
8
1
2
11
4
13
14
7
11
11
7
14
2
13
1
8
4
13
13
11
7
1
14
8
4
2
14
14
13
11
8
7
4
2
1
Die quadratischen Reste in dieser Gruppe sind somit 1 und 4. Wichtig für den Fiat – Shamir –
Algorithmus ist nun, dass die Quadrate 1 und 4 bzw. alle Quadrate mod 15 mehr als zwei
Wurzeln besitzen.
Im Beispiel gilt:
1 = 1*1 mod 15 = 4*4 mod 15 = 11*11 mod 15 = 14*14 mod 15
4 = 2*2 mod 15 = 7*7 mod 15 = 8*8 mod 15 = 13*13 mod 15
1 besitzt also als Quadratwurzeln die Elemente 1, 4, 11 und 14, 4 die Wurzeln 2, 7, 8 und 13.
Diese oben genannte Tatsache wird nun in den Sätzen 1 und 2 genauer beschrieben.
Dabei befasst sich Satz 1 mit den Quadraten und der Anzahl der Quadratwurzeln modulo
einer Primzahl und Satz 2 mit dem Analogen für Module von Produkten zweier Primzahlen.
SATZ 1
Ist p ≠ 2 eine Primzahl, so hat jeder quadratische Rest mod p genau 2 Quadratwurzeln.
Ist b die eine Wurzel von a (d.h. es gilt b 2 = a mod p ), so ist p – b die andere.
Beweis
Es soll bewiesen werden, dass der quadratische Rest a genau 2 Wurzeln hat, nämlich b und
p – b.
Zuerst zeigen wir, dass p – b eine Quadratwurzel von a mod p ist, wenn dies bereits für b gilt.
An dieser Stelle wird der Artikel etwas oberflächlich: „dass mit b auch p – b eine
Quadratwurzel ist, folgt durch einfaches Nachrechnen“ ist zwar in der Tat richtig, sollte aber
zum besseren Verständnis doch explizit erfolgen:
48
Da b eine Quadratwurzel von a ist, gilt:
a = b 2 mod p
Nun soll gezeigt werden, dass auch
a = ( p − b) 2 mod p richtig ist:
Ausmultiplizieren von ( p − b) 2 liefert: p 2 − 2 pb + b 2
p 2 und -2pb sind mod p jeweils gleich 0.
Also
ist
( p − b) 2 = p 2 − 2 pb + b 2 mod p = 0 − 0 + b 2 mod p = b 2 mod p ,
was
nach
Voraussetzung kongruent ist zu a mod p.
Folglich ist auch (p – b) eine Quadratwurzel von a und a besitzt mindestens 2
Quadratwurzeln, nämlich b und p – b.
Um herauszufinden, ob dies die einzigen x sind, für die gilt x 2 = a mod p , interessieren uns
die Nullstellen des Polynoms x 2 − a , denn x 2 = a mod p ⇔ x 2 − a = 0 mod p .
Nach Satz 4.3.1 kann dieses Polynom auf dem Körper ( / p) maximal zwei Nullstellen
besitzen. Diese sind bereits b und p – b. Folglich sind b und p – b die einzigen Wurzeln von a.
♠
SATZ 2
Sei n = p*q und p ≠ q seien ungerade Primzahlen.
Dann hat jeder quadratische Rest mod n genau 4 Quadratwurzeln.
Beweis
Nach dem Chinesischen Restsatz (siehe 4.3.8) existiert ein eindeutiges Element
a ∈ ( / n)*, für das gilt:
1.) a = 1 mod p bzw. 1 = a mod p ∧
2.) a = -1 mod q bzw. -1 = a mod q.
Setzt man nun b := n – a = pq – a, so ergibt sich b mod p und mod q jeweils zu:
1.) b = pq – a mod p = -a mod p = -1 mod p, denn pq ist mod p = 0
2.) b= pq – a mod q = -a mod q = 1 mod q, denn pq ist mod q = 0.
Zusammengefasst bedeutet dies:
a = 1 mod p
b = -1 mod p
a = -1 mod q
b= 1 mod q
(Ж)
Weiter gilt, dass die Elemente a, b, -1 und 1 mod n verschieden sein müssen.
49
Die Begründung hierfür ist im Artikel wiederum sehr knapp in dieser Form beschrieben: „Da
p und q ungerade sind, ist es klar, dass a, b, 1 und -1 mod n verschieden sind.“
Wir wollen die Argumentation zum besseren Verständnis detaillierter darstellen:
Hierzu führen wir die Annahmen, die Elemente seien paarweise gleich, zum Widerspruch.
1. Annahme: b = 1 mod n n | b – 1
Gilt dies für n, muss es auch für p gelten, denn p | n. Demnach ergibt sich p | b – 1,
was wiederum äquivalent ist zu b = 1 mod p. Nach (Ж) gilt jedoch auch
p | b + 1. Da aber p ≥ 3 kann es nicht b – 1 und b + 1 gleichzeitig teilen.
2. Annahme: b = -1 mod n n | b + 1
Begründung analog zur 1. Annahme:
Gilt diese Aussage für n, so muss sie auch für q gelten, da q | n, also q | b + 1.
Nach (Ж) gilt jedoch auch q | b – 1. Da aber auch q ≥ 3 , kann es nicht b – 1 und b + 1
gleichzeitig teilen.
Die Begründungen zur dritten und vierten Annahme werden verkürzt dargestellt, da sie komplett analog zu den
ersten beiden Begründungen verlaufen.
3. Annahme: a = 1 mod n n | a – 1
Aus q | n folgt q | a + 1.
Nach (Ж) gilt aber auch q | a – 1.
Da q ≥ 3 kann es nicht a – 1 und a + 1 gleichzeitig teilen.
4. Annahme: a = -1 mod n n | a + 1
Aus p | n folgt p | a + 1.
Nach (Ж) gilt aber auch p | a – 1.
Da p ≥ 3 kann es nicht a – 1 und a + 1 gleichzeitig teilen.
5. Annahme: a = b mod n
Mit der Definition b := n – a ergibt sich
a = n – a mod n = -a mod n, da n mod n = 0.
Dies wiederum ist äquivalent zu 2a = 0 mod n n | 2a.
Als Produkt zweier ungerader Primzahlen ist auch n ungerade, was bedeutet, dass
n kein Teiler von 2 sein kann. Also muss n | a gelten. Da p und q Teiler von n sind,
müssen sowohl p als auch q Teiler von a sein: p | a ∧ q | a.
Dies ist jedoch für p und q ≥ 3 falsch, denn dann kann nicht gelten p| a ∧ p | a – 1
(nach (Ж)) bzw. q | a ∧ q | a + 1 (nach (Ж)).
50
6. Annahme: 1 = -1 mod n n | 1 – (-1) = 2
Als Produkt zweier ungerader Primzahlen ist auch n ungerade, was bedeutet, dass
n kein Teiler von 2 sein kann.
Da alle 6 Annahmen zu einem Widerspruch geführt haben, müssen die Elemente
a, b, 1, -1 mod n verschieden sein!
Zudem gilt in ( / n)*, dass a 2 = b 2 = 1 mod n. ( Θ )
Im Artikel wird dies nicht weiter begründet, was hier jedoch geschehen soll.
Formuliert man die Annahme um, so ergibt sich:
a 2 = 1 mod n ⇔ a 2 − 1 = 0 mod n ⇔ (a − 1)(a + 1) = 0 mod n , analog erfolgt die Rechnung
für b bzw. b².
Wie bei (Ж) gezeigt wurde, gilt p | a – 1 und q | a + 1.
Dies bedeutet, wenn wir es ausführlich schreiben, dass α, β ∈ existieren mit
α * p = a − 1 und β * q = a + 1 .
Multipliziert man die Seiten nun paarweise miteinander, ergibt sich
α * p * β * q = (a − 1)(a + 1)
α * β * p * q = (a − 1)(a + 1)
Mit α * β = λ und p*q = n folgt dann
λ * n = (a − 1)(a + 1)
n | (a – 1)(a + 1). Dies ist äquivalent zur Annahme bei ( Θ ).
Für b² = 1 mod n ist die Begründung absolut analog.
Trivialerweise gilt natürlich auch 1² = 1 mod n und (-1)² = 1 mod n.
a, b, 1 und -1 sind also verschiedene Wurzeln von 1 mod n.
Womit nun gilt, dass auch ax, bx, x und –x vier verschiedene Wurzeln von x² sind.
♠
An der Beweisführung lässt sich insbesondere erkennen, dass jeweils zwei der vier Wurzeln
eines quadratischen Restes mod n den Quadraten und deren Wurzeln mod p bzw. mod q
entstammen.
51
Da jetzt bekannt ist, wie viele Wurzeln ein quadratischer Rest mod p und mod n = mod pq
besitzt (wobei p ≠ q ∧ p, q ≥ 3 und p,q prim), ist nun interessant, wie man Quadratwurzeln
mod p und mod n berechnen kann.
Wir wenden uns zunächst der Berechnung von Quadratwurzeln mod p zu, um dann mit den
Quadratwurzeln mod n fortzufahren.
5.2.2 Berechnung von Quadratwurzeln mod p
Da ungerade Primzahlen entweder von der Form p = 4k + 1 oder p= 4k + 3 sind, müssen 2
Fälle unterschieden werden. Hier erfolgt die Quadratwurzelberechnung nur für den zweiten
Fall. (Die alleinige Betrachtung des Falles p = 4k + 3 ist durchaus legitim, da die Menge der
Primzahlen dieser Form unendlich groß ist. Wäre dies nicht der Fall, würde man im Hinblick
auf die Verschlüsselung auf Probleme stoßen.)
Sei p eine Primzahl der Form p = 4k + 3 und a ein quadratischer Rest mod p.
Dann ist w = a
p +1
4
eine Wurzel von a und p – w die andere.
Beweis
Zunächst wird w quadriert:
w = (a
2
p +1
2
4
) =a
p +1
2
Das Umformen dieses Ergebnisses liefert uns:
a
p +1
2
= a*a
p −1
2
(= w²)
Zudem definieren wir b zu b = a
p −1
2
Dies setzen wir nun in die Zeile darüber ein und erhalten so
w 2 = a * b ( Џ ).
Da wir auf der primen Restklasse ( / p)* operieren, ist die Ordnung von ( / p)* nach
Satz 4.3.2 gleich ϕ ( p ) = p − 1 .
Nach dem Satz von Euler - Fermat (siehe 4.3.6) gilt nun
b =a
2
(
p −1 2
)
2
= a p −1 = 1 mod p .
Also ist b 2 − 1 = 0 mod p ⇔ (b − 1)(b + 1) = 0 mod p.
52
Diese Aussage wiederum ist äquivalent dazu, dass p das Produkt aus b – 1 und b + 1 teilt
(denn (b − 1)(b + 1) = 0 mod p ⇔ p | (b − 1)(b + 1) ).
Es gilt also entweder
p | b + 1 b + 1 = 0 mod p
b = -1 mod p
oder
p | b – 1 b – 1 = 0 mod p
b = 1 mod p.
Folglich ist b entweder 1 oder -1 mod p. ( Ξ )
Nun wird gezeigt, dass -1 kein Quadrat mod p sein kann.
Hierzu nehmen wir an, -1 sei ein Quadrat und führen diese Annahme zum Widerspruch.
Ist -1 ein Quadrat, so besitzt es eine Wurzel i mit i² = -1 mod p.
Jetzt konstruieren wir über die Elemente i und -1 eine Gruppe M bezüglich der Multiplikation
mod p. Diese muss wegen der Abgeschlossenheit einer Gruppe zusätzlich die beiden
Elemente –i und 1 enthalten.
Die dazugehörige Verknüpfungstabelle sieht dann wie folgt aus:
*
i
-1
-i
1
i
-1
-i
1
i
-1
-i
1
i
-1
-i
1
i
-1
-i
1
i
-1
-i
1
So wie M konstruiert wurde, stellt es eine Untergruppe von ( / p)* dar, da alle vier
Elemente bereits in dieser Gruppe liegen.
Zudem wird M erzeugt von dem Element i, da für dieses gilt:
i 1 = i, i 2 = −1, i 3 = −i, i 4 = 1
Also ist nach 4.3.4 ord( i ) = 4.
Nach Satz 4.3.7 teilt die Ordnung eines Elementes einer Gruppe immer die Kardinalität dieser
Gruppe.
Da M Untergruppe von ( / p)* und da i ∈ M ⊆ ( / p)*, muss folglich gelten, dass die
Ordnung von i die Kardinalität von ( / p)* teilt, also ord( i ) | #( / p)* = ϕ ( p ) .
Dies ist jedoch nicht richtig, da ord( i ) = 4 und nach Satz 1.3.2 ϕ ( p ) = p – 1 = 4k + 3 – 1 =
4k + 2 ist.
Folglich kann -1 kein Quadrat mod p sein.
53
w2
. Da a ein Quadrat mod p ist (und deswegen als x²
Eine Umformung von (Џ) ergibt b =
a
w2 w2
geschrieben werden kann), ist dies auch
= 2 = b . Also ist auch b ein Quadrat mod p.
a
x
Nach (Ξ) ist b ∈ {−1, 1} . Da b ein Quadrat sein muss und -1 nach oben kein Quadrat mod p
ist, muss gelten, dass b = 1 mod p.
Setzt man dieses Ergebnis nun in ( Џ ) ein, so ergibt sich:
w 2 = a * b mod p = a *1 mod p
w² = a mod p
Also ist w ist eine Wurzel von a.
Dass p – w die andere Quadratwurzel ist, ergibt sich wiederum durch einfaches Nachrechnen:
( p − w) 2 = p 2 − 2 pw + w 2 mod p
p² und -2pw sind mod p natürlich = 0, womit gilt:
( p − w) 2 = 0 − 0 + w 2 mod p
= w 2 mod p
= a mod p
♠
Wir besitzen nun also eine Methode, mit der wir ziemlich leicht Wurzeln eines Quadrates
mod p errechnen können.
In der Praxis werden jedoch keine Wurzeln eines Quadrates modulo einer Primzahl benutzt
(w² = a mod p), sondern Wurzeln eines Quadrates modulo eines Produktes n zweier
verschiedener großer Primzahlen p und q (w² = a mod n=pq). Dies hat insbesondere
sicherheitstechnische Gründe, wie wir später noch sehen werden.
5.2.3 Berechnung von Quadratwurzeln mod n
Seien p, q verschiedene ungerade Primzahlen und a ∈ ( / n)* so gewählt, dass gilt
a = u² mod p und a = v² mod q (also so, dass a ein quadratischer Rest mod p und mod q ist).
Dann ist a auch ein quadratischer Rest mod n und man kann eine Lösung der Gleichung
a = w² mod n ( Ψ )
wie folgt berechnen.
54
Da p und q teilerfremde Primzahlen sind, ist ihr größter gemeinsamer Teiler 1.
Dieser ggT
lässt sich dann mit dem Euklidischen Algorithmus nach 4.3.10 wie folgt
darstellen:
1 = a*p + b*q mit a, b ∈ .
Nun definieren wir c = bq = 1 – ap
und d = ap = 1 – bq.
Setzen wir dies in 1 = a*p + b*q ein, so ergeben sich für c und d:
c = 0 mod q (= bq mod q)
c = 1 mod p (= 1 – ap mod p)
d = 0 mod p (= ap mod p)
d = 1 mod q (= 1 – bq mod q).
Weiter bestimmen wir nun w näher durch
w = cu + dv.
Um herauszufinden, ob dieses w tatsächlich eine Wurzel von a mod n und somit Lösung der
Gleichung (Ψ) ist, überprüfen wir, ob w eine Wurzel mod p und mod q ist:
a) Zunächst erfolgt die Überprüfung für w² = a mod p:
w 2 mod p = (cu + dv)² mod p = (c 2 u 2 + d 2 v 2 + 2cduv) mod p
Da c = 1 mod p und d = 0 mod p ergibt sich die Gleichung dann zu
w 2 mod p = (1u 2 + 0 + 0) mod p
= u 2 mod p.
Nach Definition ist u² = a mod p. Also ist w eine Wurzel von a mod p.
b) Analog der Test für w² = a mod q:
w 2 mod q = (cu + dv)² mod q = (c 2 u 2 + d 2 v 2 + 2cduv) mod q
Mit c = 0 mod q und d = 1 mod q können wir die Gleichung wie folgt umformulieren:
w 2 mod q = (0 + 1v 2 + 0) mod q
= v 2 mod q
= a mod q
w ist also sowohl Wurzel von a mod p als auch von a mod q:
Es gilt somit w² = a mod q und w² = a mod p bzw. q | w² - a und p | w² - a.
Folglich muss auch das Produkt aus p und q die Differenz (w² - a) teilen: pq | w² - a.
Dies formulieren wir um. Es ergibt sich:
w² - a = 0 mod pq w² = a mod pq
♠
55
Diese Berechnung lässt nun zweierlei Schlussfolgerungen zu:
1. Es ist möglich, Quadratwurzeln mod n zu berechnen, wenn man die Faktorisierung
von n kennt.
2. Das Berechnen von Quadratwurzeln mod n ist nicht schwerer, als n zu faktorisieren.
Allerdings ist aus der zweiten Folgerung im Moment noch nicht wirklich viel gewonnen, da
die Faktorisierung sehr großer Zahlen ein schweres mathematisches Problem darstellt.
Beispiel zu dem vorgestellten Verfahren
Da dieses Verfahren relativ komplex ist, wird es nun anhand eines Beispiels vorgeführt:
Dazu wählen wir p = 17 und q = 23, also n = p*q = 391.
Nun stellt sich die Frage nach quadratischen Resten mod p und mod q.
Die Menge ( / 17)* ist die folgende: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}.
Hierbei sind die quadratischen Reste dieser Gruppe die Elemente 1, 2, 4, 8, 9, 13, 15 und 16.
Die Wurzeln zu den Quadraten werden wegen der besseren Übersichtlichkeit tabellarisch
aufgeführt:
Quadratischer Rest
Quadratwurzeln
1
1, 16
2
6, 11
4
2, 15
8
5, 12
9
3, 14
13
8, 9
15
7, 10
16
4, 13
( / 23)* beinhaltet die Elemente 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21 und 22. Dabei sind elf Elemente dieser Gruppe quadratische Reste, nämlich
1, 2, 3, 4, 6, 8, 9, 12, 13, 16 und 18.
56
Deren Quadratwurzeln stellen wir wiederum in einer Tabelle dar:
Quadratischer Rest
Quadratwurzeln
1
1, 22
2
5, 18
3
7, 16
4
2, 21
6
11, 12
8
10, 13
9
3, 20
12
9, 14
13
6, 17
16
4, 19
18
8, 15
Vergleichen wir nun die quadratischen Reste mod 17 und mod 23, so stellen wir fest, dass die
Elemente 1, 2, 4, 8, 9, 13 und 16 in beiden primen Restklassengruppen quadratische Reste
sind.
Somit müssen diese Elemente auch Quadrate mod 17*23 sein.
Aus diesen quadratischen Resten wählen wir nun einen aus, z. B. a = 13 und berechnen eine
Wurzel davon.
Zunächst gilt:
u = 8 mod 17 ∨ u = 9 mod 17
v = 6 mod 23 ∨ v = 17 mod 23
(mit u² = 13 mod 7 und v² = 13 mod 11)
Nun gilt es herauszufinden, welches w die Gleichung w² = 13 mod 17*23 löst.
Hierzu bestimmen wir zunächst mit dem euklidischen Algorithmus die Linearkombination
von 17 und 23, die auf deren größten gemeinsamen Teiler 1 führt:
23 = 1*17+6
17 = 2*6 +5
6 = 1*5 +1
5 = 5*1 +0
Für die Umkehrung des Algorithmus setzen wir den ggT(17, 23) (in diesem Fall „1“) als
Differenz der zwei Zahlen an, die bei Division durcheinander genau den ggT(17, 23) = 1 als
57
Rest hinterlassen haben. Anschließend ersetzen wir alle Reste, die im euklidischen
Algorithmus entstanden sind, durch eine entsprechende Differenz.
Das Ergebnis wird der ggT(17, 23) sein, dargestellt als Linearkombinationen der Zahlen 17
und 23:
1 = 6 – 1*5
= 6 – (17 – 2*6) = 3*6 - 17
= 3*(23 – 1*17) – 17
= 3*23 – 4*17
Also ist a = -4 und b = 3.
Hieraus ergeben sich dann c und d zu
c = b*q = 3*23 = 69
d = a*p = -4*17 = -68
Zudem ist w definiert als w = c*u + d*v.
Einsetzen der ermittelten Werte führt dann zu
w = 69*8 + (-68)*6 mod 7*11 (hier wäre auch eine andere Kombination von u und v
möglich, da zu a mod p*q vier Wurzeln existieren.)
= 144 mod 7*11
In der Tat gilt, dass w² = 144² = 20736 mod 7*11 = 13 mod 391.
Wir haben nun also unter Miteinbeziehung der Primfaktorzerlegung von n eine Wurzel
( 144 ) des quadratischen Rests 13 mod 391 berechnet.
5.2.4 Zusammenhang zwischen der Berechnung einer Wurzel von a mod n und der
Primfaktorzerlegung von n
Im
folgenden
Satz
wird
nun
der
unmittelbare
Zusammenhang
zwischen
der
Primfaktorzerlegung einer Zahl und dem Ergebnis eines Algorithmus zur Wurzelberechnung
modulo dieser Zahl hergestellt.
SATZ 3
Sei n = pq, wobei p und q zwei verschiedene ungerade Primzahlen sind.
Dann gilt: Besitzt man einen Algorithmus zur Berechnung von Quadratwurzeln mod n, so
kann man diesen auch zur Faktorisierung von n verwenden.
Dies bedeutet, dass das Berechnen von Quadratwurzeln mod n genauso schwierig ist, wie das
Faktorisieren von n.
58
Beweis
Wir wählen zufällig ein b1 ∈ ( / n)* und quadrieren dieses:
b1 = a mod n .
2
Nun wenden wir auf a den in Satz 3 erwähnten Algorithmus zur Berechnung von
Quadratwurzeln mod n an und erhalten so eine Wurzel b2 . Die Anwendung der bei 5.2.3
genannten Methode ist hierbei nicht möglich, da dieser voraussetzt, dass wir die
Faktorisierung von n bereits kennen. Genau die wollen wir jedoch herausfinden… (Dass die
Anwendung dieses Algorithmus eben nicht möglich ist, wird in dem Artikel von
Beutelspacher und Schwenk nicht erwähnt, was leicht zu Verständnisschwierigkeiten beim
Lesen führen kann.)
Da b1 zufällig gewählt wurde und es genau 4 verschiedene Wurzeln von n gibt, von denen
jeweils zwei von den Wurzeln mod p und mod q stammen, sind b1 und b2 mit der
Wahrscheinlichkeit ½ wesentlich verschieden.
Zudem gilt in ( / n)*: (b1 + b2 )(b1 − b2 ) = b1 − b2 = a − a = 0 mod n , was bedeutet, dass n
2
2
und somit dessen beiden Primfaktoren p und q, das Produkt (b1 − b2 )(b1 + b2 ) teilen.
p teilt einen der beiden Faktoren, o. B. d. A. gelte p | b1 − b2 .
Dann gilt, dass q Teiler des anderen Faktors ist, also q | (b1 + b2 ) .
Eine Begründung für diese Aussage fehlt in Beutelspachers und Schwenks Artikel. Da
dies jedoch nicht unbedingt eine triviale Tatsache darstellt, soll hier die Begründung
aufgeführt werden:
Wir nehmen an, dass q kein Teiler von (b1 + b2 ) ist.
Dann muss q ein Teiler von b1 − b2 sein, da sonst nicht pq | (b1 − b2 )(b1 + b2 ) gelten
kann. Zudem gilt aber auch p | (b1 − b2 ) , womit sich pq | (b1 − b2 )(b1 + b2 )
vereinfachen lässt zu pq | (b1 − b2 ) .
Dies bedeutet, dass (b1 − b2 ) = 0 mod pq, was sich weiter umformen lässt zu
b1 = b2 mod pq . Da aber
b1 ≠ b2 ≠ n − b2 mod n , denn die drei sind nach
Voraussetzung wesentlich verschieden, ist das nicht möglich.
Nun berechnen wir den ggT( b1 − b2 , n) und erhalten daraus p oder q. Anschließend teilen wir
n durch die erhaltene Zahl und haben so n faktorisiert.
♠
59
Um den vorangehenden Satz zu verdeutlichen, behandeln wir ein Beispiel.
Wir suchen uns ein n, das das Produkt zweier Primzahlen ist. Welche dies sind, wollen wir
nun mittels der zuletzt behandelten Methode herausfinden.
Zunächst wählen wir n = 667, da diese Zahl genau die oben geforderte Struktur besitzt.
(Warum wir diese Zahl wählen, wird im weiteren Verlauf klar.)
Die Restklassengruppe ( / 667)* besteht nach der Formel aus 4.3.3 aus ϕ (667) = 616
Elementen. Es wird also bereits sehr schwierig, eine Wurzel eines Quadrates durch bloßes
Ausprobieren zu finden.
Wir nehmen uns zunächst ein beliebiges Element b1 aus ( / 667)*, etwa b1 = 71 und
quadrieren es mod 667:
71² mod 667 = 372 mod 667
Folglich ist ein quadratischer Rest a = 372 mod 667.
Nun finden wir mit einem Algorithmus eine weitere Wurzel b2 von 372 mod 667. Wir
erhalten z. B. das Element b2 = 393 . Achtung, der Algorithmus muss eine Wurzel liefern, die
von b1 wesentlich verschieden ist, sonst funktioniert das Verfahren nicht!
Weiter wissen wir, dass 667 | (71 – 393)(71 + 393).
Nun nehmen wir an, dass p die Differenz (71 – 393) und q die Summe (71 + 393) teilt. Um
zur Faktorisierung von n zu gelangen, müssen wir nur noch den ggT ((71 – 393), 667) =
ggT (-322, 667) berechnen. So erhalten wir einen der beiden Faktoren. Dies geschieht wieder
mit dem euklidischen Algorithmus:
667 = 2*322 + 23
322 = 14*23 + 0
Wir bekommen also 23 als größten gemeinsamen Teiler der beiden Zahlen. Dies ist nun ein
Primfaktor von 667. Den anderen erhalten wir durch die Division 667 : 23 = 29.
Folglich lautet die Primfaktorzerlegung von n = pq = 23*29.
Wir haben also über die Berechnung von Quadratwurzeln mod 667 die Faktorisierung der
Zahl 667 erhalten.
5.2.5 Das Problem der Faktorisierung großer Zahlen
Wie bereits erwähnt, stellt die Faktorisierung von sehr großen Zahlen ein schwieriges
Problem der Mathematik dar. Viele Experten sind der Meinung, dass kein Algorithmus
existiert, mit dem man in vertretbarer Zeit die Faktorisierung großer Zahlen betreiben kann.
Dass dies so ist, konnte man allerdings bis jetzt nicht beweisen.
60
In diesem Zusammenhang stellt sich natürlich die Frage, welcher Algorithmus zur
Faktorisierung großer Zahlen der (zur Zeit) beste bzw. schnellste ist. Beachtet man, wie viele
Stellen die in der Praxis genutzten Zahlen besitzen (es wird empfohlen, Zahlen mit 2048 Bit,
also ca. 617 Stellen, zu verwenden), so ist das Number Field Sieve, das Zahlkörpersieb, der
zur Zeit beste Algorithmus zur Faktorisierung solcher Zahlen. Dieser Algorithmus sollte für
Zahlen ab 110 Stellen benutzt werden.25 Hat eine Zahl weniger Stellen, so ist es möglich, mit
anderen Algorithmen teilweise wesentlich schneller zu faktorisieren.
Das Problem, das auch dieser Algorithmus nicht löst, ist, dass auch er für die Faktorisierung
einer Zahl mit z. B. 300 Stellen sehr lange braucht (wobei diese Zahl nach wie vor das
Produkt zweier großer ungleicher Primzahlen sein soll).
Um uns eine Vorstellung davon zu verschaffen, wie zeitaufwendig und schwierig es ist, große
Zahlen zu faktorisieren, wollen wir die Inhalte und Ergebnisse der RSA Factoring Challenge
näher betrachten. Dieser Wettbewerb wurde von den RSA Laboratories 1991 ins Leben
gerufen und 2007 beendet. Das Ziel des Wettstreites war, 54 Zahlen, die die RSA
Laboratories veröffentlicht hatten, zu faktorisieren. Das besondere an diesen Zahlen ist, dass
sie das Produkt zweier großer Primzahlen sind und dass sie von den RSA Laboratories für
„besonders schwer“ zu faktorisieren gehalten werden. Die Länge der Zahlen reicht dabei von
100 Stellen (330 Bit) bis hin zu 617 Stellen (2048 Bit).
Sinn dieses Wettbewerbs war es, herauszufinden, bis zu wie vielen Stellen hin man zum
jeweils aktuellen Zeitpunkt fähig war, Zahlen zu faktorisieren. Aus diesen Ergebnissen konnte
man dann natürlich den Schluss ziehen, wie viele Stellen eine Zahl mindestens haben muss,
dass ihre Faktorisierung für die heutigen Techniken ein Problem darstellt. Daraus wiederum
gewann man die Erkenntnis, wie viele Stellen eine Zahl besitzen sollte, damit sie als sichere
Verschlüsselung in bestimmten Verfahren (unter anderen auch im Fiat – Shamir – Verfahren)
der Kryptographie verwendet werden kann.
Ebenfalls sollte man an den Ergebnissen erkennen können, wie lange man anschließend eine
solche Verschlüsselung als sicher ansehen kann.
Die kleineren Zahlen (bis hin zu 130 Stellen) wurden relativ schnell faktorisiert, nämlich in
den Folgejahren von 1991. Danach ging es jedoch nicht mehr so zügig voran. So war die
letzte „RSA – Zahl“, deren Primfaktorzerlegung man gefunden hat, eine Zahl mit 200 Stellen,
also 663 Bit. Dies geschah 2005.26
25
http://www.mathematik.de/mde/information/wasistmathematik/rsa/rsa_diskussion.html, aufgerufen am
05.07.07
26
http://en.wikipedia.org/wiki/RSA_Factoring_Challenge, aufgerufen am 28.06.07
61
Man kann an diesen Ergebnissen erkennen, wie weit die aktuellen Techniken und
Algorithmen noch davon entfernt sind, eine Zahl mit 2048 Bit, also 617 Stellen, zu
faktorisieren.
An diesem Punkt möchte ich kurz eine eigene Erfahrung mit einbringen. Ich versuchte vor
kurzem die 72 – stellige Zahl
321265486413218956123486461214646468654862156484654131655491677317571327
von meinem Computer mit dem Programm Derive faktorisieren zu lassen. Das Ermitteln der
Primfaktoren dieser Zahl dauerte über vier Stunden. Jedoch bestand diese Zahl nicht aus zwei
Primfaktoren, wie es im Fiat – Shamir – Verfahren üblich ist, sondern aus sechs Stück. Zwei
davon waren 13 und 43, was die Faktorisierung der Zahl wiederum vereinfacht.
Bedenkt man nun zusätzlich, welch große Zahlen für das Fiat – Shamir – Verfahren
verwendet werden, so stellt man schnell fest, dass die zur Zeit genutzten Schlüssel auf jeden
Fall sicher sind:
2048 Bit Zahlen sind im Moment definitiv nicht in einer angemessenen Zeitdauer zu
faktorisieren.
Wenn wir nun davon ausgehen, dass es uns irgendwann möglich ist, eine derartige Zahl zu
faktorisieren, stellt das trotzdem kein Problem für das Fiat – Shamir – Verfahren dar. Die
Zahlen, die für n gewählt werden, würden einfach größer gewählt: statt 2048 Bit Zahlen
könnte man dann 4096 Bit Zahlen verwenden und wieder würde die aktuelle Technik vor
Problemen stehen.
Das einzige Problem, das sich in diesem Zusammenhang dem Verfahren (und in analoger
Weise auch anderen Verfahren der Kryptographie) stellen könnte, wäre die Entdeckung eines
Algorithmus, der die Faktorisierung einer großen Zahl „leicht“ macht.
Es existiert momentan sogar ein Algorithmus, der es schafft, Zahlen „schnell“ zu
faktorisieren, der „Shor – Algorithmus“. Dieser wurde 1994 von Peter Shor in der Arbeit
„Polynomial – Time Algorithms for Prime Factorization and Discrete Logarithms on a
Quantum Computer“27 vorgestellt. Wie der Name der Arbeit bereits aussagt, ist dieser
Algorithmus auf die Verwendung auf Quantencomputern ausgelegt.
Der Vorteil dieser Rechner ist, dass sie, im Gegensatz zu den zur Zeit verwendeten
Computern, ihre Informationen mit mehr als zwei binären Zahlen verschlüsseln. Ihre
elektronischen Bauteile arbeiten nämlich nicht mehr mit Stromimpulsen (an / aus bzw. 1 / 0),
sondern mit Überlagerungszuständen einzelner Atome.
27
SHOR, Peter W.: „Polynomial – Time Algorithms for Prime Factorization and Discrete Logarithms on a
Quantum Computer“. SIAM Journal on Computing, vol. 26, SIAM, 1997, S. 1484 - 1509
62
Zwar funktionieren Ein – und Ausgabe der Informationen ebenfalls mit Nullen und Einsen,
beim Rechnen selbst ist es jedoch möglich, dass nicht nur diese beiden Bits auftreten, sondern
auch Zwischenzustände, so genannte „Überlagerungen“.
Ein relativ treffendes Analogon zu diesen Zwischenzuständen bringt das Beispiel eines
Münzwurfs: Vor und nach dem Wurf existiert entweder der Zustand „Kopf“ oder der Zustand
„Zahl“. Während die Münze aber in der Luft ist, gibt es weitere Zustände zwischen Kopf und
Zahl.
Die Verwendung des Shor Algorithmus auf einem solchen Quantencomputer führt nun dazu,
dass das Faktorisieren einer großen Zahl wesentlich schneller geht, als es mit einem
herkömmlichen Computer der Fall wäre: „Für das Zerlegen einer 130stelligen Zahl benötigt
ein Quantencomputer 10 Millionen mal weniger Rechenschritte als klassiche[…] Rechner.“28.
Eine Zahl mit 600 Stellen wird gar um einen Faktor 10 20 schneller faktorisiert.
Kurz gesagt (und etwas verallgemeinert) ist der Shor Algorithmus zusammen mit einem
Quantencomputer ein Algorithmus der polynomiale Laufzeit besitzt. Diese steht im krassen
Gegensatz zu der Laufzeit des Number Field Sieve, die mit steigender Stellenzahl der Zahl,
die man faktorisieren will, exponentiell wächst.
Man könnte auch sagen, der Shor Algorithmus ist ein, für die Faktorisierung sehr großer
Zahlen, effektiver Algorithmus und das Number Field Sieve nicht.
Somit wäre das Problem der Faktorisierung sehr großer Zahlen gelöst…
Wenn dem so wäre, würden einige kryptographische Verfahren schlichtweg unbrauchbar für
die Verschlüsselung von Informationen. Es gibt jedoch ein gravierendes Problem mit dem
Algorithmus bzw. viel mehr mit den Quantencomputern: Es existieren momentan nur
Prototypen im Labormaßstab. Es ist den Wissenschaftlern einfach noch nicht gelungen, einen
Quantencomputer mit ausreichend hoher Rechenkapazität herzustellen. Schenkt man Shor
jedoch Glauben, so werden in 10 bis 20 Jahren große Institute, Militär sowie Universitäten
mit diesen Rechnern arbeiten. Er ist zwar auch der Ansicht, dass Hackern diese Technik nicht
zugänglich sein wird, dies ist jedoch in meinen Augen eher eine Illusion.29
Tatsache ist, dass mit der Herstellung eines Quantencomputers, der ausreichend
Rechenkapazität besitzt, die Faktorisierung einer sehr großen Zahl n kein Problem mehr
darstellen würde. Somit würde das Fiat – Shamir – Verfahren und einige andere Verfahren der
Kryptographie ihre Sicherheit einbüßen.
28
29
http://www.vossyline.de/artikel/multimedia/quantencomputer.htm, aufgerufen am 10.08.2007
http://www.vossyline.de/artikel/multimedia/quantencomputer.htm, aufgerufen am 10.08.2007
63
Denn dann könnte jeder die Zahl n faktorisieren und damit z. B. nach dem bei 5.2.3 genannten
Algorithmus die benötigten Quadratwurzeln ausrechnen. Auf ein derartiges Problem werden
wir in dem Kapitel „Was wäre, wenn…“ noch etwas detaillierter eingehen.
Wie jedoch gesagt, ist dieses Problem rein hypothetischer Natur: sowohl die aktuelle
Mathematik als auch die aktuelle Forschung auf dem Gebiet des Quantencomputers ist noch
nicht auf diesem Stand, weshalb das Fiat – Shamir - Verfahren nach wie vor sicher ist.
Zur Sicherheit des Verfahren trägt zudem folgende Tatsache bei (siehe hierzu Satz 3): Je
größer eine Zahl n gewählt wird, desto schwerer fällt nicht nur ihre Faktorisierung, sondern
auch die Wurzelberechnung mod n. Und ohne einen Algorithmus zur Wurzelberechnung ist
man ebenfalls nicht in der Lage, die Wurzelbestimmung mit vertretbarem Zeitaufwand
durchzuführen. Dies stellt das äquivalente Problem zur Faktorisierung dieser Zahl n dar.
5.2.6 Anwendung des Fiat – Shamir – Verfahrens
Genau auf den zuletzt genannten Schwierigkeiten basiert der Fiat – Shamir – Algorithmus.
Zentral in diesem Verfahren ist, dass Person A eine Wurzel x eines quadratischen Restes a
mod n besitzt, wobei n eine sehr große Zahl ist. Diese Wurzel ist aus einem bestimmten
Grund sehr wichtig und daher geheim zu halten. Dann ist es einer Person D praktisch nicht
möglich, dieses x zu errechnen oder gar zu erraten.
Nun stellt sich wie bei 5.1 die Frage, wie Person A einem Verifizierer B beweisen kann, dass
sie x besitzt, ohne aber B das Geheimnis x mitzuteilen. (x spielt in diesem Fall die Rolle des
bei 5.1 geheimen Isomorphismus σ.)
Mit diesem Problem befasst sich nun der eigentliche Fiat – Shamir – Algorithmus.
Wie das bei 5.1 erörterte Zero – Knowledge – Verfahren, so wird auch der Fiat – Shamir –
Algorithmus in zwei Phasen untergliedert, die Geheimniserzeugungsphase und die
Anwendungsphase.
In der Geheimniserzeugungsphase werden von einer Zentrale die Geheimnisse erzeugt. Dies
geschieht in der Regel dadurch, dass sie zwei sehr große (mindestens 1024 Bit) voneinander
verschiedene Primzahlen p und q nimmt und deren Produkt n = pq bildet. Die Zahl n wird
veröffentlicht, wobei p und q auf jeden Fall geheim bleiben müssen bzw. nur der Zentrale
bekannt sein dürfen, da sich bei Bekanntsein der beiden die individuellen Geheimnisse der
Teilnehmer errechnen ließen.
Nun bestimmt die Zentrale für jeden Teilnehmer die Elemente s und v, wobei gilt v = s² mod
n. s (~ secret) ist das individuelle Geheimnis des Teilnehmers, während v (~ verifier) zur
64
Verifizierung dieses Geheimnisses genutzt wird. Insbesondere bedeutet dies, dass s nur dem
Teilnehmer bekannt ist und v veröffentlicht wird.
In diesem Zusammenhang stellt sich die Frage, wie die Zentrale zu der Bestimmung der
Elemente s und v gelangt. Schließlich soll vor allem v einen gewissen Bezug zum jeweiligen
Teilnehmer, der das Geheimnis s besitzt, herstellen.
Im Wesentlichen gibt es hierfür 2 Möglichkeiten.
Die erste stellt sich folgendermaßen dar: Die Zentrale wählt s selbst und bildet damit
v = s 2 mod n . Da man hierfür die Primfaktorzerlegung von n (die das Geheimnis der Zentrale
ist) nicht benötigt, kann dies der Benutzer sogar selbst tun.
Allerdings hat diese Methode einen Nachteil. Dadurch, dass die Zentrale s wählt, hat die Zahl
v, die den Benutzer später öffentlich identifizieren soll, in gewissem Maße Zufallscharakter
und stellt keinerlei Bezug zum Teilnehmer, dem s zugeteilt wird, dar. Insbesondere hat v mit
wichtigen Daten wie „Name, Kontonummer und Bankleitzahl oder ähnliche[n], die den
Teilnehmer in anderen Zusammenhängen identifizieren“30 dementsprechend wenig zu tun.
Im Gegensatz hierzu orientiert sich die zweite Methode an der Miteinbindung dieser Daten in
die Erzeugungsphase.
Hier erhält die Zentrale zuerst eine Zahl I, die die Identität des Teilnehmers darstellt, z. B. als
Kombination von Kontonummer und Bankleitzahl oder ähnlichem.
Dann verwandelt die Zentrale die Zahl I auf nachvollziehbare Weise in ein Quadrat mod n.
Dies könnte z. B. dadurch geschehen, dass nacheinander die Zahlen j ∈ {0, 1, 2, ...} angehängt
werden. Anschließend wird I( j ) darauf untersucht, ob es ein Quadrat mod n ist und wenn es
dies ist, wird eine Quadratwurzel s der so erhaltenen Zahl berechnet. Dies könnte z. B. mit der
bei 5.2.3 behandelten Methode erfolgen. Diese setzt zur Berechnung von v und s natürlich das
Wissen der Zentrale um die Primfaktorzerlegung von n voraus.
Da jedes Quadrat mod n genau 4 Wurzeln hat, besitzt die prime Restklassengruppe mod n
n
– viele quadratische Reste. Folglich liegt die Wahrscheinlichkeit, dass I( j ) ein
4
quadratischer Rest ist, für jedes angehängte j bei ¼ und die Zentrale dürfte zum Ermitteln
eines Quadrates im Schnitt 4 Versuche benötigen.
Ist letztlich v = I ( j ) ein quadratischer Rest mod n, so ist diese Zahl die öffentliche Identität
des Teilnehmers und s dessen individuelles Geheimnis.
30
BEUTELSPACHER, Albrecht; SCHWENK, Jörg: „Was ist Zero – Knowledge?“. Mathematische
Semesterberichte, Band 40, Heft 1, Springer Verlag, 1993, S. 82
65
In der Anwendungsphase des Algorithmus muss nun A einen Verifizierer B davon
überzeugen, dass er das Geheimnis s besitzt, jedoch ohne dieses preis zu geben.
Hierzu führen A und B folgendes Protokoll durch:
1. A wählt zufällig ein r ∈ ( / n)* und quadriert dieses: x = r² mod n.
Dann wird das Quadrat x an B gesendet.
2. B wählt zufällig ein Bit (0 oder 1) und sendet dieses an A.
a) Wählt B das Bit b = 0, so sendet A einen Wert y an B, wobei y definiert ist als
y = r mod n.
b) Fällt die Wahl von B auf b = 1, sendet A wiederum den Wert y an B, wobei y
in diesem Fall definiert wird als y = r*s mod n.
3. Je nach Wahl des Bits überprüft B folgendes:
a) Gilt y² = x mod n?
b) Gilt y² = r² * s² mod n = x*v mod n?
Ist die entsprechende Prüfung erfolgreich, so verifiziert B Person A.
Dieser Vorgang wird nun beliebig oft wiederholt, wobei darauf zu achten ist, dass A das
Element r jedes Mal neu und zufällig wählt.
Zudem sollte bei genauer Betrachtung des Protokolls klar werden, dass B nur verifizieren
kann, dass A das Geheimnis s besitzt, wenn er b = 1 wählt.
Wie im Folgenden beschrieben wird, erfüllt dieses Protokoll, wie das bei 5.1 vorgestellte, die
drei Voraussetzungen für ein Zero – Knowledge – Verfahren:
1. Vollständigkeit
Kennt A das Geheimnis s, so kann er B bei einer beliebigen Anzahl des oben
erläuterten Tests davon überzeugen, da in ( / n)* gilt
y 2 = (r * s b ) 2 = r 2 * s 2b = r 2 * v b = x * v b mod n , wobei b ∈ {0, 1} .
2. Korrektheit
~
Ein Betrüger A , der behauptet, das Geheimnis s zu kennen, kann mit beliebig hoher
Wahrscheinlichkeit entlarvt werden. Hierzu müssen wir das Protokoll näher
betrachten:
~
Wir nehmen an, eine Person A versucht im oben genannten Dialog B davon zu
überzeugen, dass er s besitzt (was er natürlich nicht tut, da s das Geheimnis von A ist).
66
~
Also wählt A wiederum ein r ∈ ( / n)*, quadriert dieses (x = r² mod n) und schickt
x an B. (1)
Nun wählt B entweder b = 0 oder b = 1.
~
Wählt B das Bit b = 0, so kann A einfach y = r an B schicken (2a) und sich von
diesem verifizieren lassen (3a). Die Wahrscheinlichkeit, dass die Wahl von B auf b = 0
fällt, ist dabei ½, da er aus 2 gleichwahrscheinlichen Ereignissen eines auswählt.
~
Wählt B aber b = 1 (2b), benötigt A das Geheimnis s (das er nicht besitzt) um r*s zu
bilden und sich so im Anschluss von B verifizieren zu lassen.
~
Nun besteht durchaus die Möglichkeit, dass A sein Unterfangen, B davon zu
überzeugen, dass er s besitzt, trotz der Wahl B’s von b = 1 nicht aufgibt und versucht,
s zu erraten. Dann interessiert uns natürlich, wie hoch die Wahrscheinlichkeit ist, dass
~
A mit seinem Versuch richtig liegt:
Um diese Wahrscheinlichkeit zu bestimmen, müssen wir etwas weiter ausholen.
s ist ein Element aus ( / n)*, was nach Definition 4.3.2 die Kardinalität
ϕ (n) besitzt. Der Versuch, ein bestimmtes Element aus dieser Menge zu erraten,
besitzt also die Wahrscheinlichkeit
1
. Da das (öffentliche) Quadrat v aber vier
ϕ ( n)
Wurzeln besitzt und jede dieser Wurzeln zur erfolgreichen Verifizierung heran
gezogen werden kann, erhöht sich die Wahrscheinlichkeit, s zu erraten auf
4
.
ϕ ( n)
Diese Wahrscheinlichkeit ist jedoch sehr gering, da n als das Produkt zweier 1024 Bit
Primzahlen sehr groß ist, was dann natürlich auch für ϕ (n) gilt. Folglich geht die
Wahrscheinlichkeit, dass man s errät, für sehr großes ϕ (n) gegen 0.
Da Verifizierer B natürlich nicht nur b = 1 wählt, sondern auch b = 0, betrachten wir
ein Protokoll mit t Runden und berechnen, wie hoch die Wahrscheinlichkeit ist, dass
~
A in allen diesen Runden richtig liegt.
Hierzu setzen wir fest, dass in diesen t Runden B t 0 - mal b = 0 und t1 - mal b = 1
wählt (also t = t 0 + t1 ). Da die Wahlen von b in jeder Runde unabhängige Ereignisse
sind, lassen sich die Einzelwahrscheinlichkeiten für b = 0 und b = 1 einfach in ihrer
Anzahl multiplizieren:
~
P( A liegt in t Runden richtig) =
t
t1
t
0
1 1
1  4 
 =   *  
  * 
2 2
 2   ϕ ( n) 
− t1
t1
t
t1
 4 
1  8 
 .
 =   * 
* 
 2   ϕ ( n) 
 ϕ ( n) 
67
~
An dieser Gleichung sieht man, dass B die Wahrscheinlichkeit, dass A ihn
fälschlicherweise
davon
überzeugen
kann,
s
zu
kennen,
durch
eine
Mehrfachdurchführung des Dialogs beliebig minimieren kann.
Zum einen geht nämlich der erste Faktor für größer werdendes t streng monoton gegen
0, zum anderen ist der zweite Faktor (da ϕ (n) sehr groß ist) bereits wesentlich kleiner
als 1 und geht deshalb ebenfalls streng monoton gegen 0.
Befinden wir uns beispielsweise in ( / 77)*, so ist ϕ (n) = 60. Wird der Dialog dann
20 mal durchgeführt und wählt b davon nur 5 mal b = 1, so ist
20
5
~
1
 8 
P( A liegt in t Runden richtig) =   *   ≈ 0,95 * 10 −6 * 42 * 10 −6 = 3,99 * 10 −11 .
2
 60 
Da in der Praxis natürlich wesentlich größere Zahlen als n = 77 benutzt werden, ist es
~
A praktisch nicht möglich, B bei häufiger Durchführung des Dialoges davon zu
überzeugen, dass er s besitzt.
3. Zero – Knowledge
Damit das oben genannte Verfahren die Zero – Knowledge – Eigenschaft aufweist,
muss es möglich sein, den Dialog ohne das Wissen von s zu simulieren.
Dies führen nun ein Simulator M und der Verifizierer B durch:
a) M wählt dazu zufällig m = 0 oder m = 1 sowie eine Zahl r ∈ ( / n)*.
Dann bildet er x = r 2 v − m mod n und sendet x an B.
b) B wählt ebenfalls zufällig ein Bit b und sendet dieses an M.
c) Wenn b = m ist, schickt M y = r mod n an B.
d) B überprüft daraufhin, ob y 2 = xv b mod n gilt. Diese Prüfung wird stets
erfolgreich sein, schließlich lässt sich xv b umformulieren zu
x * v b = r 2 v − m * v b = r 2 = y 2 mod m (denn laut c) ist b = m, also v − m * v b = 1 ).
Im Falle von b ≠ m wird die Runde gelöscht und neu gestartet.
Die Wahrscheinlichkeit, dass M und B das gleiche Bit wählen, beträgt
1 1 1
* = .
2 2 4
M und B dürften also im Schnitt 4 Versuche benötigen, um zu einer Übereinstimmung
ihrer Bits und so zu einer Verifizierung seitens B zu kommen.
Dabei wird ein erfolgreicher Fall mit b = m in einem Zahlentripel (x, b, y)
festgehalten.
68
Das Verfahren wird nun sooft durchgeführt, bis man genauso viele (zufällige)
Zahlentripel (x, b, y) besitzt, wie im Originalprotokoll entstanden sind. Diese
Zahlentripel lösen allesamt die Gleichung xv b = y 2 .
Da wir nun zwei Protokolle besitzen, deren jeweilige Ergebnisse die gleiche Anzahl an
Zahlentripeln sind, die der gleichen Bedingung gehorchen, sind die beiden Dialoge für
einen Außenstehenden nicht zu unterscheiden.
Wir haben den oben genannten Dialog ohne Benutzung des Geheimnisses s simuliert.
Da die Bedingungen Vollständigkeit, Korrektheit und Zero – Knowledge – Eigenschaft erfüllt
sind, besitzt dieses Protokoll alle Voraussetzungen für ein Zero – Knowledge – Verfahren.
5.2.7 Praxisbezug des Fiat – Shamir – Verfahrens
Wie bereits weiter oben erläutert wurde, findet das bei 5.1 vorgestellte Verfahren „Isomorphie
von Graphen“ in der Praxis eher wenig Anwendung, das Fiat – Shamir – Verfahren hingegen
durchaus.
So eignet es sich sehr gut, um die Identität einer Person gegenüber einer Maschine
nachzuweisen. Dies beruht im Wesentlichen darauf, dass das Fiat – Shamir – Verfahren ein
Public – Key – Verfahren ist: derjenige, der die Identität eines Teilnehmers überprüfen will,
muss keinerlei geheime Informationen mit dem Zu – Überprüfenden teilen.31
Insbesondere wird das Verfahren dazu verwendet, die Identität einer Chipkarte, einer so
genannten Smartcard, die einer Person zugeteilt wurde, zu überprüfen. Smartcards sind
Chipkarten, die im Vergleich zu „normalen“, reinen speichernden, Chipkarten, dazu fähig
sind, eigenständig Rechenoperationen durchzuführen.32 Natürlich wird dann nicht mehr die
Identität der Person direkt überprüft. Die Karte dient so zu sagen als Vermittler zwischen der
überprüfenden Maschine und der Person.
Damit die Smartcard nicht von einer beliebigen Person genutzt werden kann, muss sich jeder
Nutzer gegenüber der Chipkarte ausweisen. Normalerweise geschieht dies in Form einer
Personal Identification Number, kurz PIN. So wird sichergestellt, dass nur Personen, die
berechtigt sind, die Karte zu nutzen, dies tun können.
Natürlich sind die Rechenleistungen einer solchen Smartcard stark begrenzt, weshalb die
Chips darauf auch nur Algorithmen ausführen können, die sehr wenige Rechenschritte haben.
Der Fiat – Shamir – Algorithmus ist ein solcher. So muss der Chip der Smartcard „pro Runde
31
BEUTELSPACHER, Albrecht; SCHWENK, Jörg; WOLFENSTETTER, Klaus – Dieter: „Moderne Verfahren
der Kryptographie“. Vieweg Verlage, 4. Auflage, 2001, S. 51
32
http://www.ubka.uni-karlsruhe.de/cgi-bin/psview?document=ira/2000/18&format=0&page=81, aufgerufen
am 13.06.07
69
im Durchschnitt nur 1,5 modulare Multiplikationen ausführen, nämlich die Berechnung von r²
und in der Hälfte der Fälle die Berechnung von rs.“33
Da es relativ einfach ist, „das Fiat – Shamir – Verfahren auf einer Chipkarte zu
implementieren“34, fand man ziemlich schnell eine praktische Verwendungsmöglichkeit
dafür: man nutzte die Karten für Fernsehsender, deren Nutzung, neben den in Deutschland
üblichen GEZ Gebühren, weitere Kosten entstehen ließen: das so genannte Pay – TV. So gab
es beispielsweise 1991 eine Patentanmeldung für ein Pay – TV – System, das unter dem
Namen „Videocrypt“ bekannt ist.
Wenn auch dieses System heute keine Verwendung mehr findet, so basierte es, wie alle heute
verwendeten Pay – TV – Modelle, auf folgendem System:
Man erhält einen Decoder, der selbst keinerlei Geheimnisse enthält, jedoch alleine auch nicht
den Empfang kostenpflichtiger Fernsehprogramme ermöglicht. Zusätzlich benötigt man eine
Smartcard, auf der sich alle, für die Entschlüsselung der Fernsehsender benötigten, Daten
befinden.
Natürlich gibt es bei kostenpflichtigem Fernsehen immer Personengruppen, die versuchen, die
Entgeldpflicht zu umgehen. Diese versuchen, Smartcards herzustellen, die es ermöglichen,
gebührenpflichtiges Fernsehen empfangbar zu machen, ohne jedoch dafür an die Pay – TV –
Sender zahlen zu müssen.
Da dies nicht im Sinne der Sender sein kann, soll der Decoder erkennen können, ob er gerade
eine Originalkarte oder eine gefälschte Karte überprüft und einer gefälschten Karte
dementsprechend den Zugang zum kostenpflichtigen Fernsehen verweigern.
Allerdings soll der Decoder zusätzlich keinerlei Geheimnisse speichern, da man diese evtl.
auslesen und bei der Entwicklung der gefälschten Karten verwenden könnte.
Folglich kommt für das Überprüfungsverfahren des Decoders nur ein Public – Key –
Verfahren in Frage, da nur dieses gewährleistet, dass der Überprüfende keine Informationen
mit dem zu Überprüfenden teilen muss. Bei dem Pay – TV – System „Videocrypt“ nutzte man
eben das Fiat – Shamir – Verfahren.35
33
BEUTELSPACHER, Albrecht; SCHWENK, Jörg: „Was ist Zero – Knowledge?“. Mathematische
Semesterberichte, Band 40, Heft 1, Springer Verlag, 1993, S. 84
34
BEUTELSPACHER, Albrecht; SCHWENK, Jörg; WOLFENSTETTER, Klaus – Dieter: „Moderne Verfahren
der Kryptographie“. Vieweg Verlag, 4. Auflage, 2001, S. 51
35
Ebd. S. 51
70
5.3 Was wäre wenn…
Nun wollen wir noch einmal die Überlegung aufgreifen, was es für die beiden vorgestellten
Zero – Knowledge – Verfahren bedeuten würde, wenn man Algorithmen besäße, die es in
vertretbarer Zeit ermöglichen, entweder einen Isomorphismus zwischen zwei isomorphen
Graphen zu finden oder das Produkt n zweier großer Primzahlen zu faktorisieren. Schließlich
verleiht allein die derzeitige Unkenntnis über die Existenz und die eventuelle Beschaffenheit
solcher Algorithmen den beiden Zero – Knowledge – Verfahren die nötige Sicherheit…
Um herauszufinden, welche Folgen aus der oben gemachten Annahme für unsere Verfahren
entstehen würden, betrachten wir einfach die Voraussetzungen an ein Zero – Knowledge –
Verfahren. So wären die Bedingung „Vollständigkeit“ nach wie vor erfüllt: kennt Person A
das Geheimnis, wird Verifizierer B sie jedes Mal identifizieren können. Ebenfalls unabhängig
von der Existenz der oben genannten Algorithmen ist die „Zero – Knowledge – Eigenschaft“
eines Verfahrens: es ist Verifizierer B in beiden Verfahren weiterhin möglich, Person A zu
verifizieren, ohne dass diese etwas von ihrem Geheimnis preisgeben muss.
Die Bedingung, die jedoch mit der Existenz dieser Algorithmen unerfüllt bleibt, ist die
~
„Korrektheit“. Mit einem Algorithmus wäre es einer beliebigen Person A , die das Geheimnis
ursprünglich nicht kannte, nun möglich, sich in den Besitz entweder eines Isomorphismus
zwischen zwei isomorphen Graphen oder einer Wurzel eines Quadrates mod n zu bringen.36
~
Mit diesen könnte A dann den Verifizierer B fälschlicherweise davon überzeugen, dass er das
Geheimnis von A kennt und sich somit als A ausgeben. B kann nämlich weder in dem
Verfahren aus 5.1 noch in dem aus 5.2 unterscheiden, ob der Schlüssel, den er vorgelegt
bekommt (im Verfahren „Isomorphie von Graphen“ spielt τ , τσ oder τσ −1 die Rolle des
Schlüssels, im „Fiat – Shamir – Verfahren“ tut dies r² oder rs) wirklich das Geheimnis der
Person A ist oder nicht. Folglich könnte sich jeder, der einen entsprechenden Algorithmus
kennt, als A ausgeben und würde jederzeit von B verifiziert werden.
Genau dies würde die von uns behandelten Dialoge als Zero – Knowledge – Verfahren
unbrauchbar machen.
36
Ebd., S. 55
71
6. Zero – Knowledge – Verfahren in der Schule?
Wenn man, wie ich als Student der Mathematik für das Lehramt an Realschulen, eine Arbeit
über Zero – Knowledge – Verfahren verfasst, so stellt sich logischerweise auch die Frage:
Eignet sich dieses Thema oder Teile dieses Themas für die Verwendung im Schulunterricht?
Dies lässt sich nicht mit einem pauschalen „ja“ oder „nein“ beantworten, sondern besitzt
sowohl Argumente, die dafür sprechen, als auch welche, die es als wenig sinnvoll erscheinen
lassen, die Thematik im Unterricht zu behandeln.
Zunächst einmal lässt sich sagen, dass es wohl kaum möglich ist, die beiden hier vorgestellten
Verfahren in der Schule durchzunehmen. So führt insbesondere die, für Schüler mit Sicherheit
sehr komplizierte modulare Arithmetik dazu, dass es wahrscheinlich nicht gelingen würde,
den meisten Schülern das Fiat – Shamir – Verfahren verständlich näher zu bringen.
Insbesondere haben wir bei den mathematischen Grundlagen gesehen, dass nicht nur
Grundlagen aus der modularen Arithmetik benötigt werden, sondern auch algebraische
Strukturen wie Gruppen und Ringe. Derartige Dinge dürften einen Schüler der Sekundarstufe
1 mit großer Wahrscheinlichkeit überfordern. Nicht umsonst wird die Thematik der
algebraischen Strukturen erst an der Universität aufgegriffen.
Folglich würde sich, rein von den mathematischen Grundlagen her gesehen, nur das
Verfahren „Isomorphie von Graphen“ für den Einsatz als Lehrstoff in der Schule eignen.
Da sich jedoch keinerlei Graphentheorie in den Lehrplänen der Sekundarstufe 1 wieder findet,
wäre es unabdingbar, dass man deren Grundlagen vor der Behandlung des eigentlichen
Verfahrens mit den Schülern durchgenommen und eingeübt hat.
Diese Grundlagen besitzen, wie wir oben gesehen haben, einen gewissen Umfang, weshalb
für deren Behandlung auch eine nicht geringe Zeit benötigt würde. Zusammen mit der
Darstellung des eigentlichen Verfahrens käme man auf einen Stoffumfang, der nur innerhalb
eines Projektes zu vermitteln wäre.
Hier setzt nun ein weiterer Punkt an: Da der Stoff absolut lehrplanfremd ist, könnten die
Schüler im weiteren Verlauf ihrer schulischen Karriere relativ wenig mit dem neu erlernten
Wissen anfangen. Eventuell würden sie das Projekt gar als reine Zeitverschwendung
empfinden und ein entsprechendes Engagement an den Tag legen.
Auf Grund des Stoffumfangs erscheint es ebenfalls als wenig sinnvoll, Zero – Knowledge –
Verfahren in der Schule vorzustellen: Der Stoff innerhalb des Lehrplans ist relativ dicht. Ob
sich in diesem Zusammenhang überhaupt die Möglichkeit ergeben würde, lehrplanfremden
Stoff mit den Schülern durchzunehmen, ist sehr fraglich…
72
Dies waren zunächst die negativen Aspekte. Es gibt jedoch durchaus auch Argumente, die
dafür sprechen, ein derartiges Projekt durchzuführen.
Zuerst würden die Schüler durch die Behandlung der Graphentheorie eine Seite an der
Mathematik kennen lernen, die sie mit großer Wahrscheinlichkeit noch nie gesehen haben.
Für viele Schüler besteht die Mathematik lediglich aus Geometrie und Algebra. Dabei wird
die Geometrie meist als Kombination aus Planimetrie und etwas Stereometrie, die Algebra
hingegen als reines Rechnen empfunden.
Mit der Behandlung der Graphentheorie könnte man die Schüler für einen, für sie neuen,
Bereich der Mathematik aufschließen. Da die Thematik an sich sehr leicht verständlich und
anschaulich ist, würde man hier vermutlich sehr schnell auf Verständnis stoßen. Zudem
ergeben sich aus der Behandlung dieser Grundlagen sehr schnell Verbindungen zu
Anwendungen im Alltag, wie z. B. dem Routenplaner.
Ein weiterer Punkt, den die Schüler anhand eines solchen Projekts lernen könnten, ist, dass
die Mathematik mehr ist, als Formeln anwenden, Rechnen und Zeichnen. Insbesondere
könnten sie problemlösendes Denken einüben, vorausgesetzt man behandelt entsprechende
Beispiele wie das „Wo ist Walter – Problem“ aus Kapitel 3.1.
Die Schüler müssten sich mit dem Problem auseinander setzen „Wie kann ich meinem
Gegenüber glaubhaft versichern, dass ich ein Geheimnis kenne, ohne es ihm zu verraten?“.
Verschiedene Medien und andere Lehrplankritiker stellen immer wieder fest, dass
problemlösendes Denken in der Schule nicht genug gefördert wird.
Hier wäre nun eine Möglichkeit, wie das Fach Mathematik dazu beitragen kann.
Ich halte es in der Tat für sehr wichtig, den Schülern zu zeigen, dass Mathematik mehr ist, als
Rechnen, Konstruieren oder Formeln auflösen, dass es Anwendungen in unserem Alltag gibt,
die ohne Mathematik nicht funktionieren würden.
Trotz der genannten Vorteile empfinde ich es aus den oben genannten Gründen als nicht sehr
sinnvoll, die Thematik der Zero – Knowledge – Verfahren in der Schule zu behandeln.
73
7. Quisquater, Guillou: „How to Explain Zero – Knowledge Protocols to
Your Children“37
– ins Englische übersetzt von Tom Berson –
The Strange Cave of Ali Baba
O Know, oh my children, that very long ago, in the Eastern City of Baghdad, there lived an
old man named Ali Baba. Every day Ali Baba would go to the bazaar to buy or sell things.
This is a story which is partly about Ali Baba, and partly also about a cave, a strange cave
whose secret and wonder exist to this day. But I get ahead of myself…
One day in the Baghdad bazaar a thief grabbed a purse from Ali Baba who right away started
to run after him. The thief fled into a cave whose entryway forked into two dark winding
passages: one to the left and the other to the right.
(The Entry of the Cave)
Ali Baba did not see which passage the thief ran into.
Ali Baba had to choose which way to go and he
decided to go to the left. The left-hand passage
ended in a dead end. Ali Baba searched all the way
from the fork to the dead end, but he did not find
the thief. Ali Baba said to himself that the thief
was perhaps in the other passage. So he searched
the right-hand passage, which also came to a dead end. But again he did not find the thief.
“This cave is pretty strange,“ said Ali Baba to himself, “Where has my thief gone?“
The following day another thief grabbed Ali Baba’s basket and fled, as the first thief had fled,
into the strange cave. Ali Baba pursued him, and again did not see which way the thief went.
This time Ali Baba decided to search to the right. He went all the way to the end of the righthand passage, but he did not find the thief. He said to himself that, like the first thief, the
second thief had also been lucky in taking the passage Ali Baba did not choose to search. This
had undoubtedly let the thief leave again and to blend quietly into the crowded bazaar.
The days went by, and every day brought its thief. Ali Baba always ran after the thief, but he
never caught any of them. On the fortieth day a fortieth thief grabbed Ali Baba‘s turban and
fled, as thirty-nine thieves had done before him, into the strange cave. Ali Baba yet again did
not see which way the thief went. This time Ali Baba decided to search the heft-hand passage,
but again he did not find the thief at the end of the passage. Ali Baba was very puzzled.
37
http://dsns.csie.nctu.edu.tw/research/crypto/html/pdf/c89/628.pdf, aufgerufen am 10.06.2007
74
He could have said to himself, as he had done before, that the fortieth thief had been as lucky
as each of the other thirty-nine thieves. But this explanation was so far-fetched that even Ali
Baba did not believe lt. The luck of the forty thieves was just too good to be a matter of
chance. There was only one chance in a million million that all of the forty would escape! So
Ali Baba said to himself that there must be another more likely explanation. He began to
suspect that the strange cave guarded a secret!
And Ali Baba set out to discover the secret of the strange cave. He decided to hide under
some sacks at the end of the right-hand passage. After a very uncomfortable wait he saw a
thief arrive who, sensing he was pursued by his victim, whispered the magic words, “Open
sesame.“ Ali Baba was amazed to see the wall of the cave slide open. The thief ran through
the opening. Then the wall slid closed again. The pursuer arrived, and was all upset to find
only Ali Baba under the sacks at the dead end of the passage. The thief had escaped. But Ali
Baba was all happy, for he was finding out the Secret of the Strange Cave.
Ali Baba experimented with the magic words.
He discovered to his amazement that when the wall
slid open the right-hand passage was connected with
the left-hand passage. Now Ali Baba knew how all
of the forty thieves had escaped from him.
Ali Baba worked and worked with the magic words,
and he finally managed to replace them with new
magic words, a little like you change the combination
for some padlocks. The very next day a thief was caught. Ali Baba recorded this story and his
discovery in a lovely illuminated manuscript. He did not write down the new magic words,
but he included some subtle clues about them.
The Fate of the Manuscript…
Ali Baba‘s lovely illuminated manuscript arrived in Italy in the Middle Ages. Today it is in
the United States, near Boston. There it has recently held the full attention of several curious
researchers. Through decryption of the subtle clues, these researchers have even recovered the
new magic words!
After several archaeological excavations in the ruins of the old Baghdad bazaar, the strange
cave was located. It was not a myth! And, despite the centuries, the magic words still worked.
All agog, the curious researchers went through the end wall between the two passages.
75
The television networks were quickly made aware of the unusual events taking place in
Baghdad. A big American network even got an exclusive on the story. One of the researchers,
a certain Mick Ali, a descendent perhaps of Ali Baba, wanted to demonstrate that he knew the
secret. But he did not want to reveal the secret. Here is what he did.
First, a television crew filmed a detailed tour of the cave with the two dead-end passages.
Then everybody went out of the cave. Mick Ali went back in alone and went down one of the
passages. Then the reporter, accompanied by the camera, went inside only as far as the fork.
There he flipped a coin to choose between right and left. If the coin come up heads he would
tell Mick to come out on the right. If the coin came up tails he would tell Mick to come out on
the left. It was heads, so the reporter called out loud, “Mick, come out on the right.“ And
Mick did just that.
In memory of the forty thieves this demonstration scene was played forty times. Each of the
times everybody went back out of the cave and Mick entered alone all the way in to one of the
passages. Then the reporter and the camera went as far as the fork where he chose by flipping
a coin which order to give to Mick. Mick succeeded in all forty scenes.
Anybody who did not know the secret of the cave would have been exposed on the first
failure. Each new test divided by two the chances of success for someone without the secret.
On the other hand, the secret allowed Mick to come out each time by the required exit.
The Jealous Reporter
Employed by another television network, a jealous reporter wanted to also film a story on the
strange cave. Mick refused to participate because he had given exclusive rights to the story to
the first network.
But Mick mischievously suggested to the jealous reporter that the story could be filmed
without possessing the secret. The jealous reporter thought and thought, and finally he
understood. He said to himself, “I even know a stage actor who looks like Mick Ali and who
could be mistaken for him.“
And the second story was filmed. In the course of the filming half of the scenes were spoiled
because Mick‘s double did not know how to get from one passage to the other! The jealous
reporter edited the tape and only kept the successful scenes until he had forty of them.
The two stories were broadcast at the same hour on the same evening by the two competing
American networks. The matter was taken to court. Both videotapes were placed into
evidence. But the judges and the experts could not tell the tapes apart.
Which tape was simulated? Which tape was genuine? The tapes alone were not enough
76
to judge by.
The simulation surely conveyed no knowledge of the secret. But the simulation and the
genuine tape were indistinguishable. So the genuine tape did not convey knowledge of the
secret either. The reporter who bad gotten the exclusive story had been convinced at the time
that Mick Ali knew the secret, but the reporter could not pass his conviction on to the judges
in court or to the television audience either.
Mick Ali had achieved his real objective. He wanted, in fact, to show that it is possible to
convince without revealing, and so without unveiling his secret.
The Tests in Parallel
Meanwhile, other researchers in Israel observed that by using several secrets and making tests
in parallel, one could reduce the number of scenes in the films. In other words, the length of
the authentication.
They imagined an apartment building with one cave per floor, each having its own magic
words. They needed was one extra actor per cave. All the floors could be filmed at once to see
where the actor came out on each floor.
They even proposed an arithmetic solution where a reply with a single number as proof could
replaced many actors.
Still, a compromise between the number of secrets and the number of scenes to film may not
always be optimal. It would be much better to have a single secret and a single scene.
Besides that, simulation by successive attempts becomes less and less practical as the number
of secrets increases. Do we have no conveyance of knowledge when you cannot simulate with
successive attempts?
The Prior Agreement
All of this really intrigued some European researchers. They made an observation that applies
equally to the serial version and to the parallel version. To save time filming, the jealous
reporter and Mick Ali‘s double would have been pretty clever to think of agreeing in advance
on a list of forty random selections between right and left. During the filming, the jealous
reporter would have then pretended to choose the questions at random in his head, and the
double, who knew in advance the questions he would be asked, would not need to know the
secret and could still pass all of the tests one after the other.
Therefore to the simulation technique of successive attempts where only the successful scenes
are kept was added a simulation technique of prior agreement between prover and verifier.
77
A Single Test, A Single Secret
In response to this observation a new cave was set up with more passages ending at a fork.
(The Revised Cave)
Certainly the physical construction of the cave becomes
problematic when the number of passages increases.
It is impossible to build a cave with a million million
passages. But whatever the number of passages, you could
simulate by prior agreement. A more arithmetic scheme
would allow a verifier to choose a question from a set of
a million million questions. With a single test you could directly reach the level of security
obtained with forty successive tests in the cave with two passages.
The court is completely unable to tell the videotapes apart: one depicting a demonstration, the
other a simulation by prior agreement. Therefore, even when the size of the question is large
the demonstration does not show knowledge of the secret‘s value.
Epilogue
And so, my children, you have heard how Ali Baba learned the secret of the strange cave, and
how his descendent, the clever researcher Mick Ali, was able to convince a television reporter
that he knew the secret without having to tell him what the secret was. Countless people saw
Mick Ali on the television, and he became famous and had adventures around the world. He
still has not revealed the secret of the strange cave, but has convinced many others, including
me, that he does know lt. The keeping of secrets reminds me of the story of the Merkle
Hellman and his super-increasing knapsack. But the hour grows late. That is another story for
another time.
78
8. Literaturverzeichnis
BEUTELSPACHER, Albrecht; SCHWENK, Jörg: „Was ist Zero – Knowledge“.
Erschienen in: Mathematische Semesterberichte, Band 40, Heft 1. Springer Verlag,
Berlin, 1993, Seite 73 – 85
BEUTELSPACHER, Albrecht; SCHWENK, Jörg; WOLFENSTETTER, Klaus –
Dieter: „Moderne Verfahren der Kryptographie“. Vieweg Verlag, Braunschweig,
4. Auflage, 2001
FEIGE, Uriel; FIAT, Amos; SHAMIR, Adi: „Zero knowledge proofs of identity“.
Erschienen in: Proceedings of the 19th Annual ACM Symposium on Theory of
Computing. ACM Press, New York, 1987, S. 210 – 217
GOLDWASSER, Shafi; MICALI, Silvio; RACKOFF, Charles: „The Knowledge
Complexity of Interactive Proof-Systems“. Erschienen in: Proceedings of the 17th
Annual ACM Symposium on Theory of Computing. ACM Press, Rhode Island, 1985,
S. 291 – 304
HANDFORD, Martin: „Wo ist Walter“. Sauerländer Verlag, Düsseldorf, 4. Auflage,
2001
KARADENIZ, Besim: „Einführung in die Kryptographie“. Erhältlich unter:
http://www.netplanet.org/kryptografie/einfuehrung.shtml, Stand: 26.07.2007
N.N.: „Advanced Encryption Standard“. Erhältlich unter:
http://de.wikipedia.org/wiki/Advanced_Encryption_Standard, Stand: 26.07.2007
N.N.: „Applied Kid Kryptographie“. Erhältlich unter:
http://www.wisdom.weizmann.ac.il/~naor/PUZZLES/waldo.html, Stand: 28.05.2007
79
N.N.: „Diskussion von RSA“. Erhältlich unter:
http://www.mathematik.de/mde/information/wasistmathematik/rsa/rsa_diskussion.html,
Stand: 05.07.2007
N.N.: „Enigma“. Erhältlich unter:
http://de.wikipedia.org/wiki/Enigma_%28Maschine%29, Stand: 30.06.2007
N.N.: „Kryptographie“. Erhältlich unter: http://de.wikipedia.org/wiki/Kryptographie,
Stand: 12.06.2007
N.N.: ohne Titel. Erhältlich unter: http://www.inf.tu-dresden.de/content/institutes/
sya/dud/lectures/2007sommersemester/KPDatensicherheit/v9_doku.pdf,
Stand: 26.05.2007
N.N.: ohne Titel. Erhältlich unter: http://www.ubka.uni-karlsruhe.de/cgibin/psview?document=ira/2000/18&format=0&page=81, Stand: 13.06.2007
N.N.: „RSA Factoring Challenge“. Erhältlich unter:
http://en.wikipedia.org/wiki/RSA_Factoring_Challenge, Stand: 28.06.2007
N.N.: „Verschiebechiffre“. Erhältlich unter:
http://de.wikipedia.org/wiki/Verschiebechiffre, Stand: 30.06.2007
QUISQUATER, Jean – Jacques; GUILLOU, Louis: „How to Explain Zero –
Knowledge Protocols to Your Children“. Erhältlich unter:
http://dsns.csie.nctu.edu.tw/research/crypto/html/pdf/c89/628.pdf, Stand: 10.06.2007
ROSEN, Kenneth H.: „Discrete Mathematics And Its Applications“. McGraw – Hill
Companies, Boston, 4. Auflage, 1999
SCHEID, Harald: „Zahlentheorie“. Spektrum Akademischer Verlag, Heidelberg,
4. Auflage, 2007
80
SHANNON, Claude: „Communication Theory Of Secrecy Systems“.
Erschienen in: Bell System Technical Journal, vol. 28., n. 4. o. V., o. O., 1949,
S. 656ff
SHOR, Peter W.: „Polynomial – Time Algorithms for Prime Factorization and
Discrete Logarithms an a Quantum Computer“. Erschienen in: SIAM Journal on
Computing, vol. 26. SIAM, Philadelphia, 1997, S. 1484 – 1509
VOßBERG, Rüdiger: „Diese Computer knacken Geheimcodes, Peter Shor über
Quantencomputer“. Erhältlich unter:
http://www.vossyline.de/artikel/multimedia/quantencomputer.htm, Stand: 10.08.2007
9. Danksagungen
Mein Dank gilt vor allem Herrn Prof. Dr. Steuding, der es sehr schnell schaffte, mich für
dieses Thema zu begeistern und immer ein offenes Ohr für meine Fragen hatte.
81
10. Erklärung
Hiermit versichere ich, dass ich die Arbeit in allen Teilen selbstständig gefertigt und keine
anderen als die in der Arbeit angegebenen Hilfsmittel benutzt habe.
Die Zeichnungen, Tabellen und bildlichen Darstellungen habe ich selbst gefertigt.
Würzburg, den 15.10.2007
Bernd Götzelmann
82
Herunterladen