4 Diskrete Logarithmen und Anwendungen

Ähnliche Dokumente
RSA Verfahren. Kapitel 7 p. 103

3 Das RSA-Kryptosystem

11. Das RSA Verfahren und andere Verfahren

Diffie-Hellman, ElGamal und DSS. Vortrag von David Gümbel am

Das RSA-Verfahren. Armin Litzel. Proseminar Kryptographische Protokolle SS 2009

Lenstras Algorithmus für Faktorisierung

Konzepte von Betriebssystem-Komponenten: Schwerpunkt Sicherheit Grundlagen: Asymmetrische Verschlüsslung, Digitale Signatur

Oft kommt es darauf an, Potenzen a n mod m zu berechnen. Dabei kann n eine sehr groÿe Zahl sein.

Kryptographische Verfahren auf Basis des Diskreten Logarithmus

Homomorphe Verschlüsselung

Konzepte von Betriebssystemkomponenten: Schwerpunkt Sicherheit. Asymmetrische Verschlüsselung, Digitale Signatur

Der Zwei-Quadrate-Satz von Fermat

Kryptographie Reine Mathematik in den Geheimdiensten

Public-Key-Kryptosystem

Elliptische Kurven in der Kryptographie

Kryptographie mit elliptischen Kurven

Wiederholung Symmetrische Verschlüsselung klassische Verfahren: Substitutionschiffren Transpositionschiffren Vigenère-Chiffre One-Time-Pad moderne

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens

Elliptische Kurven und ihre Anwendungen in der Kryptographie

Seminar Kryptographie

RSA Verfahren. Ghazwan Al Hayek Hochschule für Technik Stuttgart. 2. November 2008

Datensicherheit durch Kryptographie

Proseminar: Electronic Commerce und Digitale Unterschriften Public-Key-Kryptographie

Übungen zu. Grundlagen der Kryptologie SS Hochschule Konstanz. Dr.-Ing. Harald Vater. Giesecke & Devrient GmbH Prinzregentenstraße 159

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik

IT-Sicherheit: Kryptographie. Asymmetrische Kryptographie

27. Algorithmus der Woche Public-Key-Kryptographie Verschlüsseln mit öffentlichen Schlüsseln

Digitale Signaturen Einführung und das Schnorr Signaturschema

Was bisher geschah Kryptographische Systeme (M, C, K, e, d) Verfahren: symmetrisch klassisch: Verschiebechiffren (Spezialfall Caesar-Code)

Einführung in Computer Microsystems

Verfügbarkeit (Schutz vor Verlust) Vertraulichkeit (Schutz vor unbefugtem Lesen) Authentizität (Schutz vor Veränderung, Fälschung)

Verschlüsselung. Chiffrat. Eve

Entwicklung der Asymmetrischen Kryptographie und deren Einsatz

DLP. Adolphe Kankeu Tamghe ALZAGK SEMINAR. Bremen, den 18. Januar Fachbereich Mathematik und Informatik 1 / 27

Verschlüsselte s Wie geht das?

10. Public-Key Kryptographie

Über das Hüten von Geheimnissen

Praktikum Diskrete Optimierung (Teil 11)

vom ggt zu gpg Lars Fischer Die Mathematik von RSA Lars Fischer Intro Mathematik RSA Anhang 1 lars.scher (bei) gmx-topmail.

Public-Key Verschlüsselung

Einleitung Shor s Algorithmus Anhang. Thomas Neder. 19. Mai 2009

Probabilistische Primzahlensuche. Marco Berger

Erste Vorlesung Kryptographie

Authentikation und digitale Signatur

IT-Sicherheit Kapitel 3 Public Key Kryptographie

Seminar zur Kryptologie

Computeralgebra in der Lehre am Beispiel Kryptografie

Digitale Signaturen. Sven Tabbert

GF(2 2 ) Beispiel eines Erweiterungskörpers (1)

Algorithmische Kryptographie

Public-Key-Algorithmen WS2015/2016

Grundlagen der Kryptographie

IT-Sicherheitsmanagement. Teil 12: Asymmetrische Verschlüsselung

Ferienakademie 2001: Kryptographie und Sicherheit offener Systeme. Faktorisierung. Stefan Büttcher

Kryptographische Systeme auf Basis des diskreten Logarithmus

Probabilistische Primzahltests

Anhang IV zur Vorlesung Kryptologie: Public-Key Kryptographie

01321 Mathematische Grundlagen der Kryptograe Vorbereitung auf die mündliche Prüfung Bei Prof. Unger

SSL/TLS Sicherheit Warum es sich lohnt, sich mit Ciphersuites zu beschäftigen

Kryptographie: Verteidigung gegen die dunklen Künste in der digitalen Welt

1. Asymmetrische Verschlüsselung einfach erklärt

Abiturvorbereitung Mathematik -Dierentialrechnungc Max. Hoffmann

Elliptische Kurven in der Kryptographie

Kryptographie. Die Verwendung elliptischer Kurven in der Kryptographie

Grundlegende Protokolle

Authentikation und digitale Signatur

RSA-Verschlüsselung. von Johannes Becker Gießen 2006/2008

Anhang I zur Vorlesung Kryptologie: Elementare Zahlentheorie

Vorlesung IT-Sicherheit FH Frankfurt Sommersemester 2007

ax 2 + bx + c = 0, (4.1)

Kryptographie. nur mit. Freier Software!

Zusammenfassung der Vorlesung vom

RSA Primzahlen zur Verschlüsselung von Nachrichten

10. Kryptographie. Was ist Kryptographie?

9 Schlüsseleinigung, Schlüsselaustausch

Mitschrift Vorlesung Einführung in die Kryptographie vom 18. Januar 2011

Modul Diskrete Mathematik WiSe 2011/12

Das wichtigste Kennzeichen asymmetrischer Verschlüsselungsverfahren ist, dass die Kommunikationspartner dabei anstelle eines

Grundlagen der Verschlüsselung und Authentifizierung (2)

Kryptografische Protokolle

Aufgaben des MSG-Zirkels 10b Schuljahr 2007/2008

Das RSA-Kryptosystem

Einführung in die Algebra

Kodierungsalgorithmen

Kryptographie eine erste Ubersicht

Kongruenzrechnung. 2 Kongruenzrechnung Rechnenregeln Addition und Multiplikation Rechenregeln bzgl. verschiedener Moduln...

ElGamal Verschlüsselungsverfahren (1984)

AUFGABEN ZUR KRYPTOLOGIE

Wiederholung: Informationssicherheit Ziele

Kryptographie praktisch erlebt

Verschlüsselung. Kirchstraße 18 Steinfelderstraße Birkweiler Bad Bergzabern Fabian Simon Bfit09

Grundbegriffe der Kryptographie II Technisches Seminar SS 2012 Deniz Bilen

12 Kryptologie. ... immer wichtiger. Militär (Geheimhaltung) Telebanking, Elektronisches Geld E-Commerce

Elementare Zahlentheorie (Version 1)

1. Klassische Kryptographie: Caesar-Verschlüsselung

Sicherheit von hybrider Verschlüsselung

Mathematik und Logik

x 2 2x + = 3 + Es gibt genau ein x R mit ax + b = 0, denn es gilt

8. Von den Grundbausteinen zu sicheren Systemen

Zuammenfassung: Reelle Funktionen

Transkript:

Stand: 18.1.2016 Vorlesung Grundlagen und Methoden der Kryptographie Dietzfelbinger 4 Diskrete Logarithmen und Anwendungen 4.1 Diskrete Logarithmen Wir betrachten eine endliche zyklische Gruppe (G,, e) (multiplikativ geschrieben) mit einem erzeugenden Element g. Das bedeutet (vgl. Übungsblatt 5): G = {g 0 = e, g 1 = g, g 2,..., g G 1 }. Sei n = G die Gröÿe (Ordnung) dieser Gruppe. Dann haben wir: Die Exponentiationsabbildung exp g : {0, 1,..., n 1} G, a g a, ist eine Bijektion (sogar ein Gruppenisomorphismus zwischen (Z n, +, 0) und (G,, e)). Die Umkehrfunktion log g : G {0, 1,..., n 1}, g a a, heiÿt der diskrete Logarithmus zur Basis g. Das DL-Problem für G und g bezeichnet die Aufgabe, zu gegebenem h G den Exponenten a = log g (h) zu berechnen, also den Exponenten a mit g a = h. Für alle kryptographischen Verfahren, die mit zyklischen Gruppen arbeiten, müssen die Gruppenelemente eine explizite Darstellung haben, auf denen die Gruppenoperationen ezient ausführbar sind. Das DL-Problem darf jedoch keinen (bekannten) ezienten Algorithmus haben. Man beachte, dass dann auch die Exponentiation a h a ezient ausführbar ist (mit 2 log a Gruppenoperationen), mittels einer Variante der schnellen modularen Exponentiation. Als Gruppen G kommen u. a. in Frage: Für Primzahlen p: Die multiplikative Gruppe Z p mit Grundmenge {1,..., p 1} und Multiplikation modulo p als Operation. Die Ordnung (d. h. die Gröÿe) dieser Gruppe ist bekanntermaÿen n = p 1. Siehe Abb. 1. 1

a 0 1 2 3 4 5 6 7 8 9 2 a 1 2 4 8 5 10 9 7 3 6 Abbildung 1: Die multiplikative Gruppe Z 11 für p = 11 mit erzeugendem Element g = 2. Die erzeugenden Elemente sind mit markiert. Sie entsprechen den Potenzen g a mit ggt(a, 10) = 1. Man weiÿ, dass diese Gruppe zyklisch ist, also ein erzeugendes Element g hat. 1 Die Gruppenoperationen sind ezient ausführbar: Die Gruppenoperation ist die Multiplikation modulo p; das neutrale Element ist die 1; zu gegebenem h G kann man h 1 mit dem erweiterten euklidischen Algorithmus berechnen. Für p mit 2048 Bits oder mehr, wobei p 1 einen groÿen Primteiler enthält, gilt das DL-Problem als praktisch nicht lösbar. Die multiplikative Gruppe eines beliebigen endlichen Körpers, z. B. GF(2 k ). Es muss nur sichergestellt sein, dass die Körperoperationen ezient ausführbar sind, und es muss ein erzeugendes Element der multiplikativen Gruppe bekannt sein. (Die Kardinalität der Gruppe sollte gröÿer als 2 2000 sein.) Zyklische Untergruppen von elliptischen Kurven über endlichen Körpern (s. Literatur). (Hier genügen Körperelemente mit einer Bitlänge von 256 Bits.) Für kryptographische Anwendungen ungeeignet ist dagegen die bekannteste zyklische Gruppe (Z n, +, 0). Hier ist die Gruppenoperation die Addition modulo n; die Potenz g a für a Z entspricht dem Element a g mod n. Die erzeugenden Elemente sind gerade die Elemente von Z n (Übungsblatt 5, Aufgabe 6(b)). Wenn g Z n ist, dann besteht das DL-Problem für g in folgendem: Gegeben h = g a (in der Gruppe gerechnet, das ist also h = a g mod n), nde a. Dies ist mit dem erweiterten Euklidischen Algorithmus leicht möglich: nde g 1 mod n, berechne h g 1 mod n. Das DL-Problem in dieser Gruppe ist also ezient lösbar. Wenn eine zyklische Gruppe G mit ezienten Operationen gefunden worden ist, muss man immer noch ein erzeugendes Element nden. Das ist unter Umständen nicht ganz 1 Einen Beweis ndet man z. B. im Buch Einführung in die Kryptographie von J. Buchmann, Abschnitt 2.10. 2

einfach. Wir wissen (Übungsblatt 5, Aufgabe 6(a)): Eine zyklische Gruppe G = g mit G = n hat genau ϕ(n) = Z n viele erzeugende Elemente, nämlich die Elemente g a mit a Z n. Das bedeutet, dass ein Anteil von ϕ(n)/n der Elemente von G erzeugende Elemente sind. Aus Kapitel 1 wissen wir, dass ϕ(n)/n = p ist prim, p n (1 1 ) gilt. Man kann p zeigen, dass dies Ω(1/ log log n) ist. Wir können also analog zum Vorgehen bei der Primzahlerzeugung ein erzeugendes Element nden, wenn wir folgende Operationen zur Verfügung haben: 1. zufälliges Wählen eines Elements von G; 2. Test, ob h G ein erzeugendes Element ist oder nicht. Jedoch setzen alle bekannten ezienten Verfahren für den Test Ist h erzeugendes Element voraus, dass man die Primfaktoren von n = G kennt. Für den Fall G = Z p ist die Situation so: Für groÿe zufällige Primzahlen p (512, 1024 oder 2048 Bits) ist die Primfaktorzerlegung von n = p 1 normalerweise nicht leicht zu ermitteln. Ein Ausweg ist, gezielt nach Primzahlen p zu suchen, für die p 1 eine übersichtliche Primfaktorzerlegung hat. Besonders angenehm ist die Situation, wenn p = 2q + 1 für eine Primzahl q ist (solche Primzahlen q nennt man Sophie-Germain- Primzahlen). Beispiele hierfür: 47 = 2 23+1 und 83 = 2 41+1. Zwischen 1 und 10 000 gibt es 190 solche Primzahlen; es besteht die Vermutung, dass es im Bereich {1,..., x} asymptotisch Θ(x/(log x) 2 ) viele solche Primzahlen gibt. Auf Übungsblatt 5 wurde besprochen, dass es in dieser Situation genau q = (p 1)/2 erzeugende Elemente gibt und dass man ein x G durch schnelle Exponentiation darauf testen kann, ob es ein erzeugendes Element ist. Man erhält direkt ein randomisiertes Verfahren, das nach durchschnittlich zwei Tests ein erzeugendes Element gefunden hat. Alle im Folgenden beschriebenen kryptographischen Verfahren werden unsicher, wenn man in der verwendeten Gruppe das DL-Problem ezient lösen kann. Bei der Verwendung solcher Verfahren muss man also unbedingt darauf achten, keine Gruppen zu benutzen, bei denen praktikable Verfahren für das DL-Problem bekannt sind. (Siehe Abschnitt 4.4.) 3

Für das Folgende nehmen wir an, dass die verwendete Gruppe diesen Mindestanforderungen genügt. 2 4.2 Die-Hellman-Schlüsselaustausch Nehmen wir an, Alice und Bob möchten per Kommunikation über einen öentlich (insbesondere von Eve) einsehbaren Kanal einen gemeinsamen, geheimen Schlüssel k G für ein symmetrisches Verfahren festlegen. Wie kann das gehen? Die Idee ist, dass k = g ab ist, wo nur Alice a kennt und nur Bob b. Über den öentlichen Kanal laufen die Gruppenelemente g a und g b. Eve hat also das Problem, aus g a und g b den Wert g ab zu berechnen. (Das ist das sogenannte DH-Problem, benannt nach W. Die und M. E. Hellman, die das Schlüsselaustauschverfahren 1976 vorgeschlagen haben.) Wenn sie das DL-Problem lösen könnte, wäre dies leicht. Andere Möglichkeiten, das DH-Problem ezient zu lösen, ohne einen ezienten Algorithmus für das DL-Problem, sind prinzipiell denkbar, aber nicht bekannt. Protokoll Die-Hellman-Schlüsselaustausch Alice wählt a {2,..., G 2} zufällig, und sendet A = g a an Bob. Bob wählt b {2,..., G 2} zufällig, und sendet B = g b an Alice. Alice berechnet B a = (g b ) a = g ab = k. Bob berechnet A b = (g a ) b = g ab = k. (Es wird benutzt, dass die Multiplikation der Exponenten a und b kommutativ ist.) Alice und Bob kennen nun k; Eve kennt nur A und B, wie gewünscht. Achtung! Das DH-Protokoll in der hier vorgestellten Form wird völlig unsicher, wenn Eve den Kommunikationskanal nicht nur abhört, sondern aktiv eingreifen kann. Man-in-the-middle-attack : Eve fängt alle Nachrichten von Alice an Bob und umgekehrt ab und modiziert sie. Bei der Schlüsselvereinbarung fängt Eve die Nachricht 2 Die Gruppe G kann wiederverwendet werden; man sollte nur in der Lage sein, von Zeit zu Zeit neue erzeugende Elemente zu generieren. Es lohnt sich also, in die Ermittlung einer solchen Gruppe eine Menge Zeit zu investieren! 4

A ab, wählt selbst eine Zufallszahl a und schickt A = g a an Bob. Dieser nimmt an, A käme von Alice. Seine Nachricht B wird ebenfalls von Eve abgefangen und durch B = g b ersetzt. Alice nimmt an, B käme von Bob. Wenn Alice Nachricht x an Bob schicken möchte, verwendet sie Schlüssel k = (B ) a = g ab und sendet y = E(x, k ). Eve fängt dies ab und entschlüsselt mittels k = A b. Sie kennt nun x, berechnet k = B a und schickt E(x, k ) an Bob. Dieser entschlüsselt mittels k = (A ) b, und erhält wieder x. Um das DH-Protokoll gegen solche Angrie abzusichern, muss man andere Protokolle (sog. Authentizierungsprotokolle) benutzen, die es ermöglichen herauszunden, ob der Absender einer Nachricht tatsächlich der gewünschte Partner (Alice bzw. Bob) ist. 4.3 ElGamal-Kryptosystem Das ElGamal-Kryptosystem steht in engem Zusammenhang mit dem DH-Schlüsselaustausch. Wie RSA ist auch dieses System ist ein Public-Key-Kryptosystem. Seine Sicherheit beruht nicht auf der (vermuteten) Schwierigkeit des Faktorisierungsproblems wie RSA, sondern auf der (vermuteten) Schwierigkeit des DL-Problems bzw. des DH-Problems. Erzeugung des Schlüssels (Bob oder Trust-Center im Auftrag von Bob): Es wird eine zyklische Gruppe (G,, e) mit einem erzeugenden Element g benötigt, für die das DH-Problem schwer zu lösen ist. Dann wird ein Element b zufällig aus {2,..., G 2} gewählt, und es wird mittels schneller Exponentiation B = g b berechnet. Der öentliche Schlüssel ist (G, g, B), der geheime Entschlüsselungs-Schlüssel ist b. Verschlüsselung: Wir nehmen an, dass die Menge der möglichen Botschaften (Binärstrings) eine Teilmenge von G ist. Um eine Botschaft x G zu verschlüsseln, wählt Alice eine Zufallszahl a aus {2,..., G 2} und berechnet A = g a. Weiter berechnet sie y := B a x. Der zu versendende Chiretext ist (A, y). Kommentare: Der Rechenaufwand liegt im Wesentlichen in den zwei schnellen Exponentiationen. RSA benötigt eine schnelle Exponentiation. Man erkennt die Kom- 5

ponenten A und B aus dem Die-Hellman-Schlüsselaustausch wieder. Der Wert B a ist k = g ab, der Wert y ist k x. Entschlüsselung: Bob kennt A und y (von Alice) sowie seinen geheimen Schlüssel b. Er berechnet A b = (g a ) b = k. Dann berechnet er das Gruppenelement z = k 1 y, mit Hilfe der ezienten Invertierung und Gruppenoperation in G. Beobachtung: z = x. (Das ist klar: z = k 1 y = k 1 (k x) = x.) Kommentar: Der Rechenaufwand der Entschlüsselung liegt im Wesentlichen in der schnellen Exponentiation und der Invertierung von k. Sicherheit: Man kann sich überlegen, dass für eine Angreiferin Eve und eine Gruppe G mit erzeugendem Element g folgende Situationen äquivalent sind: (i) Eve kann alle mit dem ElGamal-Verfahren bzgl. G und g verschlüsselten Nachrichten ezient entschlüsseln, also aus B, A und y die Nachricht x berechnen, die zum Chiretext (A, y) geführt hat. (ii) Eve kann das DH-Problem für G lösen. (Wenn Eve diskrete Logarithmen bezüglich G und g berechnen kann, gelten natürlich (i) und (ii).) Wir beweisen die Äquivalenz. (i) (ii): Eve hat B = g b und A = g a vorliegen und möchte k = g ab bestimmen. Sie wendet ihr Entschlüsselungsverfahren auf B, A und y = 1 an. Es ergibt sich ein Wert x mit g ab x = k x = y = 1. Es gilt also x = k 1, und Eve kann k durch Invertierung von x in G berechnen. (ii) (i): Eve hat B = g b, A = g a, y = g ab x vorliegen. Weil sie das DH-Problem lösen kann, kann sie k = g ab berechnen und damit natürlich x = k 1 y bestimmen. Unterschiede zwischen RSA und ElGamal: RSA in der puren Form benötigt einen Chiretext y = x e mod n, der die gleiche Bitlänge hat wie der Klartext x. ElGamal hat einen doppelt so langen Chiretext (B, y). 6

ElGamal ist erzwungenermaÿen randomisiert. Das hat die angenehme Konsequenz, dass die wiederholte Verschlüsselung desselben Klartextes x zu völlig unterschiedlichen Chiretexten führt, weil der Schlüssel k zufällig ist. Allerdings gibt es, wie wir schon notiert haben, die Empfehlung, beim Arbeiten mit RSA den Klartext x durch das Anhängen eines nicht ganz kurzen Zufallsstrings zu randomisieren. Wenn dieser angehängte Zufallsstring die gleiche Länge wie x hat, sind wir fast in derselben Situation wie bei ElGamal, nur dass die Gruppe, in der gerechnet wird, viel gröÿer ist. 4.4 Berechnung diskreter Logarithmen Wie schwierig ist das DL-Problem? Geg.: Zyklische Gruppe (G,, e), G = n, mit erzeugendem Element g. Input: h G. Gesucht: a mit 0 a < n, das g a = h erfüllt. Trivialer Algorithmus: Enumeration. Für a = 0, 1, 2,... teste, ob g a = h gilt. Man benötigt bis zu n schnelle Exponentiationen. In kryptographischen Anwendungen wird a zufällig gewählt. Die Wahrscheinlichkeit, dass a 2 log n k ist etwa 2 k. g a = h : Für k = 40 ist dies 2 40 < 10 12, also winzig. Wenn n 2 200, ist mit überwältigender Wahrscheinlichkeit a 2 160 > 10 48, und an eine Ausführung von Enumeration ist nicht zu denken. 4.4.1 Babystep-Giantstep-Algorithmus von Shanks Wähle m = n. Der gesuchte Exponent a hat eine Zerlegung a = bm + c, für 0 c < m und passendes b a/m < n/m n. Es gilt: h = g a = g bm+c = g bm g c, also g c = h 1 g bm. Gesucht: b und c. Algorithmus: Berechne alle Potenzen g bm, 0 b < n/m, und speichere h 1 g bm (als Schlüssel) mit Wert b in einer Hashtabelle T, Umfang 2n/m 2 n. 7

Berechne g c, für c = 0, 1,..., m 1 und suche g c in T. Wenn gefunden, gilt h 1 g bm = g c, also h = g bm+c. Rechenzeit: O( n) (erwartet) für Tabellenaufbau und O( n) (erwartet) für die Suche, zusammen O( n). Platzbedarf: O( n) Wenn n = 2 200, ist n = 2 100 > 10 30. Selbst wenn man nur in dem unwahrscheinlichen Fall a 2 160 erfolgreich sein möchte, muss man Tabellengröÿe 2 80 > 10 24 veranschlagen. Auch dies ist nicht durchführbar. 4.4.2 Pollards ρ-algorithmus für DL Idee: Deniere eine Folge (x i, a i, b i ), i = 0, 1, 2,..., in G Z n Z n, so dass x i = F (x i 1 ) gilt, für eine als zufällig geltende Funktion F : G G. Dann verhalten sich die ersten Komponenten x i wie zufällige Elemente in G, solange noch keine Wiederholung in der Folge (Z i ) i=0,1,2,... aufgetreten ist. Nach dem Geburtstagsparadoxon weiÿ man, dass für eine genügend groÿe Konstante K die Wahrscheinlichkeit, dass K n zufällig gewählte Elemente von G alle verschieden sind, sehr klein ist. Wir erwarten also nach O( n) Schritten die Wiederholung eines Elements, also i 0 < j 0 = O( n) mit x i0 = x j0. Danach wiederholt sich die Folge: x i0 +1 = F (x i0 ) = F (x j0 ) = x j0 +1, usw., also gilt x i = x i+kl für alle i i 0 und alle k 1, wenn man l = j 0 i 0 deniert. Man kann das Verhalten den Folge wie folgt zeichnen: x 0,..., x i0 als gerade Linie ohne Wiederholung, daran angehängt x i0,..., x j0 = x i0 als Kreis. Dies gibt die Form ρ, wie beim griechischen Buchstaben rho. Wenn man es nun noch schat, aus zwei Indizes i < j mit x i = x j den gesuchten Exponenten a mit h = g a auszurechnen, ist man fertig. Um den Algorithmus auszuführen, muss man scheinbar x 0, x 1,..., x j0 1 speichern, was wieder zu Speicherplatzbedarf Θ( n) führen würde. Es gibt nun einen Trick, mit dessen Hilfe man nur Platz O(1) benötigt. Man beobachtet die Doppelfolge ((x i, x 2i )) i=0,1,2,... und wartet, bis x i = x 2i gilt. Gibt es solche i? Ja, denn für jedes i i 0, für das 2i i = i durch l = j 0 i 0 teilbar ist, ist x 2i = x i+kl für ein k > 0, also x 2 i = x i. Zwischen i 0 und j 0 liegt auf jeden Fall ein solches i. Nun müssen wir noch F denieren. Dazu betrachten wir erweiterte Elemente (x, b, c) G Z n Z n, die die Gleichung x = g b h c erfüllen. Das Starttripel ist (g b 0, b 0, 0) für ein zufällig gewähltes b 0. Die Gruppe G muss 8

in etwa drei gleich groÿe disjunkte Teilmengen S 1, S 2, S 3 aufgeteilt sein, etwa über die letzten 10 Bits der Darstellung der Elemente. Dann denieren wir die Schrittfunktion wie folgt: f(x, b, c) = (h x, b, c + 1), falls x S 1 (x 2, 2b, 2c), falls x S 2 (g x, b + 1, c), falls x S 3 Beachte, dass mit (x, b, c) auch f(x, b, c) die geforderte Gleichung erfüllt. Die Funktion F ist einfach die Einschränkung von f auf die erste Komponente. Nun berechnen wir in Runden Y i = (x i, b i, c i ) und Z i = (x 2i, b 2i, c 2i ), für i = 0, 1, 2,.... (Es ist Y 0 = Z 0 = (g b 0, b 0, 0) für b 0 zufällig und Y i = f(y i 1 ) und Z 2i = f(f(z i 1 )).) Dies wird so lange durchgeführt, bis zum ersten Mal x i = x 2i gilt. Dann haben wir: also Weil g Ordnung n hat, folgt das heiÿt g b 2i h c 2i = g b i h c i, g b 2i+ac 2i = g b i+ac i. b 2i + ac 2i b i + ac i a(c 2i c i ) b i b 2i Falls nun ggt(c 2i c i, n) = 1 ist, können wir mit (mod n), (mod n). a = (b i b 2i )(c 2i c i ) 1 mod n den gesuchten Exponenten berechnen. 3 Die Rechenzeit ist O( n), wenn man unterstellt, dass die Abbildung F : x i 1 x i rein zufällig ist. (In der Praxis bestätigt sich diese Vorstellung.) Weitere Algorithmen für das DL-Problem: Pohlig-Hellman-Algorithmus. Dieser Algorithmus benötigt die Primfaktorzerlegung von n = G. Seine Rechenzeit ist ( ) O e i (log G + p i ) + (log G ) 2, 1 i k 3 Wenn n keine Primzahl ist, könnte es passieren, dass ggt(c 2i c i, n) > 1 gilt. Dann könnte man immer noch versuchen, die Kongruenz a(c 2i c i ) b i b 2i (mod n) anders zu lösen, oder man beginnt mit einem neuen Startwert (x 0, b 0, 0) von vorn. 9

wenn G die Primfaktorzerlegung p e 1 1 p e k k hat. Dieser Algorithmus ist also ezient, wenn G nur eher kleine Primfaktoren hat. Wenn man also mit G arbeiten will, muss n = G mindestens einen groÿen Primfaktor enthalten, damit nicht der Pohlig-Hellman-Algorithmus das DL-Problem ezient löst. Indexkalkül. Dieser Algorithmus ist nur für die multiplikative Gruppe GF(q) in endlichem Körper GF(q) anwendbar. Zahlkörpersieb. Ebenso nur für GF(q) (mit ähnlichen subexponentiellen Rechenzeiten wie bei dem gleichnamigen Algorithmus bei der Faktorisierung). Letzteres ist eine allgemeine Beobachtung: DL in GF(q) scheint nicht viel schwieriger zu sein als das Faktorisierungsproblem für Zahlen in der Gröÿenordnung von q. 4.5 Elliptische Kurven über endlichen Körpern Moderne, attraktive Methode zur Erzeugung endlicher zyklischer Gruppen. Ansatz gefunden von Neal Koblitz und Victor Miller 1986. Vorteil: Die schnellen DL-Verfahren für GF(q) sind nicht anwendbar. Die für (praktisch konstatierte) benötigte Gruppengröÿe, um Sicherheit zu garantieren, ist kleiner als die bei GF(q). Eekt: Kleinere Darstellungsgröÿe, daher ezientere Verfahren. (Ein System, das 256-Bit-Primzahlen benutzt, gilt als äuÿerst sicher. Andere endliche Körper kommen ebenfalls in Frage. Vorsicht bei GF(2 k )! Man benötigt andere Formeln.) Wir geben nur eine Beschreibung der Verfahren. Für mathematischen Hintergrund: Literatur, z. B. A. Werner, Elliptische Kurven in der Kryptographie, Springer 2002, oder Diekert, Kueitner, Rosenberger, Diskrete algebraische Methoden, de Gruyter 2013. Anschaulicher Hintergrund: Elliptische Kurven in R 2. Gegeben seien Koezienten A, B, die die Ungleichung 4A 3 + 27B 3 0 erfüllen. (Dies hat zur Folge, dass die Funktion x x 3 + Ax + B keine Mehrfachnullstellen hat, weder im Reellen noch im Komplexen.) Betrachte die Menge {(x, y) R 2 y 2 = x 3 + Ax + B}. Diese bildet eine Kurve in R 2. Verschiedene Formen sind möglich. Man beobachtet: Symmetrie bezüglich der x-achse, Gestalt hängt von der Lage der Nullstellen von x x 3 + Ax + B ab. Veranschaulichung für (A, B) {( 1, 1), ( 1, 0), ( 1, 1)}: 10

Diekert-Buch. Es gibt eine oder drei Nullstellen. Solche Kurven, eventuell ergänzt um einen Punkt O, nennt man Elliptische Kurven. 4 Unsere eigentliche Konstruktion benutzt endliche Körper Z p für eine Primzahl p > 3. Wir rechnen ab hier in diesem Körper; die Operationen + und sind immer als Addition und Multiplikation modulo p zu interpretieren. Denition 4.1 Sei p > 3 eine Primzahl, seien A, B Z p mit 4A 3 + 27B 3 0. Die elliptische Kurve E A,B besteht aus der Menge aller Lösungen (x, y) Z 2 p der Gleichung y 2 = x 3 + Ax + B sowie einem zusätzlichen Punkt O (genannt der unendliche Punkt). Veranschaulichung: Diekert-Buch. Wenn man für Z p die Repräsentanten p 1,..., p 1 2 2 benutzt, sieht man wiederum die Symmetrie entlang der x-achse, sonst gibt es kein erkennbares Muster. 5 Beispiel: Z 7. Setze f(x) = x 3 + 3x + 3 (in Z 7 ) und betrachte E 3,3 = {(x, y) Z 2 7 f(x) = y 2 } {O}. Damit (x, y) dazugehört, muss f(x) ein Quadrat sein. (Man weiÿ, dass es in Z p genau p 1 Quadrate gibt.) Jedes f(x), das ein Quadrat ist, führt zu 2 zwei Punkten auf der elliptischen Kurve. Man rechnet aus: x 0 1 2 3 4 5 6 f(x) 3 0 3 4 2 3 6 Quadrat? Wurzeln 0 2, 5 3, 4 Punkte (1, 0) (3, 2) (4, 3) (3, 5) (4, 4) Gruppenstruktur: Wir benötigen Geraden in Z 2 p. Dies sind Punktmengen {(x, y) y = ax + b} für a, b Z p oder {(x, y) x = b} {O} (senkrechte Geraden). 4 Der Zusammenhang mit Ellipsen ist nicht direkt ersichtlich, da man hier den Umweg über elliptische Funktionen benötigt. 5 In GF(2 k ) muss man etwas kompliziertere denierende Gleichungen benutzen: y 2 + xy = x 3 + A 2 x 2 + A 6, mit A 6 0. Das Prinzip ist aber dasselbe, auch wenn sich die Rechenregeln verändern. 11

Man stellt nun (durch Unterscheiden verschiedener Fälle) Folgendes fest: Wenn eine Gerade eine elliptische Kurve E = E A,B in mindestens einem Punkt schneidet, dann sogar in drei Punkten. (Das liegt an der Anzahl der Nullstellen von x 3 + Ax + B. Veranschaulichung im Reellen!) Es kann hier aber auch passieren, dass zwei der Schnittpunkte zusammenfallen, die Gerade also eine Tangente ist, und bei senkrechten Geraden gilt der unendliche Punkt als einer der Schnittpunkte oder gar als drei zusammenfallende Schnittpunkte.) Die Operation kann anschaulich wie folgt beschrieben werden: Gegeben seien Punkte P und Q auf der elliptischen Kurve, beide von O verschieden. Man legt eine Gerade durch P und Q (wenn sie identisch sind, eine Parallele zur Kurve in P ) und bestimmt den dritten Punkt R im Schnitt von Kurve und Gerade. Wenn R = O ist, ist P Q = O, wenn R = (x, y) O, dann ist P Q = R = (x, y) (Spiegelung an der x-achse). Weiter deniert man: P O = O P = P für alle Punkte P. Es ergeben sich (mit einigem Rechnen) die folgenden Formeln, die man dann auch für endliche Körper benutzt. O + O = O, O + (x, y) = (x, y) + O für alle (x, y) Z 2 p, { O, falls x1 = x (x 1, y 1 ) + (x 2, y 2 ) = 2 und y 1 = y 2 (x 3, y 3 ), sonst, wobei (x 3, y 3 ) folgendermaÿen berechnet werden: x 3 = λ 2 x 1 x 2, y 3 = λ(x 1 x 3 ) y 1 mit λ = { (y2 y 1 )/(x 2 x 1 ), falls (x 1, y 1 ) (x 2, y 2 ) (3x 2 1 + A)/(2y 1 ), falls (x 1, y 1 ) = (x 2, y 2 ). Satz 4.2 Mit dieser Operation bildet E A,B eine kommutative Gruppe. Man beweist dies durch Nachrechnen. Der Nachweis der Assoziativität ist etwas mühselig. Das zu (x, y) inverse Element ist (x, y), das zu O inverse Element ist O. 12

Notation: Die Gruppenoperation in Gruppen zu elliptischen Kurven wird additiv geschrieben, also mit + bezeichnet. Das Inverse von P heiÿt P. Die wiederholte Verknüpfung eines Elementes mit sich selbst ist dann eine Multiplikation mit a Z, etwa 2P, 3P,.... Beispiel: Wenn P = (x, 0), dann gilt P = P und 2P = O. Damit eine solche Gruppe ein schwieriges DL-Problem hat, muss sie natürlich groÿ sein. Wenn die Funktion f(x) = x 3 + Ax + B wie eine zufällige Funktion wirkt, wird sie für etwa die Hälfte der x einen Wert haben, der ein Quadrat ist, und alle diese Werte (auÿer der 0) führen zu zwei Punkten auf der Kurve. Wir erwarten daher, dass E A,B etwa p Elemente hat, und Folgendes sollte nicht zu sehr überraschen. Fakt 4.3 Hasse-Schranke Sei E elliptische Kurve über Z p. Dann gilt p + 1 2 p E p + 1 + 2 p. Es gibt einen ezienten Algorithmen zur Ermittlung der Gruppenordnung n = E der höchstens O((log p) 6 ) Gruppenoperationen benötigt. Wenn wir Glück haben, ist n eine Primzahl oder Produkt verschiedener Primzahlen; dann ist jedes Element von E {O} ein erzeugendes Element. 6 Ein Standardverfahren ist, die Wahl von A und B so lange wiederholen, bis E A,B eine Primzahl q ist. Dann wird ein Element G aus E {O} zufällig gewählt und (p, A, B, q, G) abgeliefert. Hiermit kann man die Gruppenoperationen implementieren und zum Beispiel das ElGamal-Kryptoschema umsetzen. Standardverfahren für das DL-Problem (Pollards ρ-algorithmus, Pohlig-Hellman) funktionieren auch für Gruppen, die zu elliptischen Kurven gehören, nicht aber die viel schnelleren Verfahren wie Indexkalkül oder Zahlkörpersieb. Dies führt dazu, dass man annimmt, dass in EC-basierten Gruppen das DL-Problem (noch) schwieriger zu lösen ist als in Z p, so dass man mit kleineren Zahlbereichen arbeiten kann, was Verschlüsselung und Entschlüsselung wieder ezienter macht. Bemerkungen zur Ezienz: Es gibt noch das Problem, dass die Elemente von E in Z 2 p eher dünn sind. Wie soll man gewöhnliche Nachrichten auf Punkte auf der Kurve abbilden? Es gibt ein reales kryptographisches Verfahren, das diese Schwierigkeit eliminiert: Elliptic Curve Integrated Encryption Scheme (ECIES). Das reale Verfahren 6 Im allgemeinen Fall gilt (komplexer Beweis), dass E eine zyklische Untergruppe hat, die mindestens Gröÿe p hat. Es gibt also Elemente mit Ordnung mindestens p, man muss sie nur nden. 13

integriert noch ein symmetrisches Verschlüsselungsverfahren und Message authentication (ein ganz anderes kryptographisches Elementarwerkzeug). Wir geben hier nur den Kern an, der ein asymmetrisches Kryptosystem darstellt. Es gibt Anklänge an das ElGamal-Kryptosystem, aber Unterschiede im Detail. Mit eingebaut ist ein Verfahren, das Elemente von E {O} kompakt darstellt: Anstelle von (x, y) Z 2 p speichern wir x und ein Bit b. Es gibt null oder zwei Punkte auf E A,B mit erster Koordinate x. Wenn f(x) = x 3 + Ax + B 0 ein Quadrat in Z p ist, gibt es zwei passende Werte y 1 und y 2 mit y 1 + y 2 = p, von denen einer gerade und einer ungerade ist. Diese beiden Werte werden durch b unterschieden. Point-Compress : E {O} Z p {0, 1}, (x, y) (x, y mod 2). Die Umkehrfunktion Point-Decompress benötigt die Funktion Quadratwurzel modulo p, die ezient berechnet werden kann, wenn p + 1 durch 4 teilbar ist, siehe 3.3.3 (Entschlüsselung beim Rabin-Kryptosystem). Simplied ECIES Gegeben: Elliptische Kurve E über Z p, zyklische Untergruppe G = P mit G = n (Primzahl). Klartexte: X = Z p. Schlüsselmenge: {(E, P, b, Q, n) b Z }{{} p, Q = bp } (Rechnung in G). K Öentlicher Schlüssel: (E, P, Q, n). Privater Schlüssel: b. (b Z p wird von Bob zufällig gewählt.) Verschlüsselung: Alice wählt zufällig a Z n und berechnet (x 0, y 0 ) = aq mit x 0 0. // (Falls x 0 = 0, neues a wählen. Notiz: k = aq = (ab)p.) Dann berechnet sie und schickt dies an Bob. e K (x, a) = (Point-Compress(aP ), x x 0 mod p)(y, y ), Entschlüsselung: Wenn Bob Kryptotext y = (y, y ) mit y y Z p erhält, berechnet er Z p {0, 1} und (x 1, y 1 ) = Point-Decompress(y ) // Nun gilt: (x 1, y 1 ) = ap 14

und dann (x 0, y 0 ) = b(x 1, y 1 ) (in G, nun gilt (x 0, y 0 ) = (ba)p = k), und schlieÿlich d K (y) = y (x 0 ) 1 mod p. Behauptung: d K (e K (x, a)) = x. (Das ist klar.) 15