8
(G, ,e) g G = {g 0 = e, g 1 = g,g 2 ,...,g |G|-1 }. g : {0, 1,..., |G|- 1}→ G a 7g a g : G →{0, 1,..., |G|- 1} g a 7a g G Z * p {1,...,p - 1} p p - 1 g G = Z * p r = |G| x r = x |G| = e x -1 = x r-1 G Z * p {1,...,p - 1} p

4 Diskrete Logarithmen und Anwendungen - tu- · PDF fileStand: 05.11.2013 orVlesung Grundlagen und Methoden der Kryptographie Dietzfelbinger 4 Diskrete Logarithmen und Anwendungen

Embed Size (px)

Citation preview

Page 1: 4 Diskrete Logarithmen und Anwendungen - tu- · PDF fileStand: 05.11.2013 orVlesung Grundlagen und Methoden der Kryptographie Dietzfelbinger 4 Diskrete Logarithmen und Anwendungen

Stand: 05.11.2013 � 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 1):

G = {g0 = e, g1 = g, g2, . . . , g|G|−1}.

Die Exponentiationsabbildung expg : {0, 1, . . . , |G| − 1} → G, a 7→ ga, ist also eineBijektion.

Die Umkehrfunktion logg : G → {0, 1, . . . , |G| − 1}, ga 7→ a, heiÿt der diskrete Loga-

rithmus zur Basis g.

Als Gruppen G kommen in Frage:

• Die (wohlbekannte) 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 p− 1.

• Die multiplikative Gruppe eines beliebigen endlichen Körpers.

• Zyklische Untergruppen von �elliptischen Kurven�.

• . . .

Für alle Verfahren benötigt man eine Möglichkeit, die Gruppenelemente darzu-

stellen, einen e�zienten Algorithmus für die Gruppenoperation ◦ und ein erzeu-gendes Element g. Zudem muss man e�zient Inverse bestimmen können. Wennnicht der Sonderfall G = Z∗p vorliegt, wo man hierfür den erweiterten EuklidischenAlgorithmus benutzen kann, funktioniert immer folgendes Verfahren, für das man nurr = |G| kennen muss. Weil xr = x|G| = e gilt (Satz von Euler), haben wir immerx−1 = xr−1. Das heiÿt, dass man das Inverse mit einer �schnellen Exponentiation� inG und damit e�zient berechnen kann.

Wir diskutieren am Beispiel Z∗p, wie dies konkret aussieht. Gruppenelemente sind{1, . . . , p − 1}, die Gruppenoperation ist die Multiplikation modulo p. Diese stellen

1

Page 2: 4 Diskrete Logarithmen und Anwendungen - tu- · PDF fileStand: 05.11.2013 orVlesung Grundlagen und Methoden der Kryptographie Dietzfelbinger 4 Diskrete Logarithmen und Anwendungen

kein Problem dar. Inverse berechnet man mit Hilfe des erweiterten Euklidischen Algo-rithmus. Wenn die Gruppenoperation e�zient ist, ist auch die schnelle Exponentiationxa mit O(log a) Gruppenoperationen berechenbar, also e�zient.

Bei gegebener Gruppe G bleibt das Problem, ein erzeugendes Element zu �nden.Unter der (realistischen) Annahme, dass es genügend viele solche gibt, benötigt mannoch ein Verfahren, erzeugende Elemente zu erkennen. Ohne Kenntnis der Primfak-toren von |G| ist dies nicht allgemein möglich. Für groÿe zufällige Primzahlen p (512,1024 oder 2048 Bits) ist die Primfaktorzerlegung von p−1 normalerweise nicht leichtzu ermitteln. Ein Ausweg ist, gezielt nach Primzahlen p zu suchen, für die p − 1eine ü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. Zwischen1 und 10 000 gibt es 190 solche Primzahlen; es besteht die Vermutung, dass es imBereich {1, . . . , x} asymptotisch Θ(x/(log x)2) viele solche Primzahlen gibt. In derÜbung wurde besprochen, dass es in dieser Situation genau q = (p− 1)/2 erzeugendeElemente gibt und dass man ein x ∈ G durch schnelle Exponentiation darauf te-sten kann, ob es ein erzeugendes Element ist. Man erhält direkt ein randomisiertesVerfahren, das nach durchschnittlich zwei Tests ein erzeugendes Element gefundenhat.

Für jeden Typ von Gruppe benötigt man ein eigenes Verfahren zur Ermittlung eineserzeugenden Elements.

Alle im Folgenden beschriebenen kryptographischen Verfahren werden unsicher, wennman in der verwendeten Gruppe das �Diskrete-Logarithmen-Problem (DL-Problem)�e�zient lösen kann, das ist das Problem, zu gegebenenem x ∈ G (und Basis g) denWert a = logg(x) zu berechnen.

Bei der Verwendung solcher Verfahren muss man also unbedingt darauf achten, keineGruppen zu benutzen, bei denen praktikable Verfahren für das DL-Problem bekanntsind. Insbesondere sind solche Verfahren bekannt, wenn |G| nur relativ kleine Prim-faktoren hat. (Dann lassen sich diese Fakktoren auch mit vertretbarem Aufwandermitteln.) Zum Beispiel kann man mit dem �Pohlig-Hellman-Verfahren� diskreteLogarithmen in Zeit

O

(∑1≤i≤k

ei(log |G|+√pi) + (log |G|)2)

Gruppenoperationen berechnen, wenn |G| die Primfaktorzerlegung pe11 · · · pekk hat.

Details hierzu und andere Verfahren �ndet man in Johannes Buchmann, Kryptogra-

2

Page 3: 4 Diskrete Logarithmen und Anwendungen - tu- · PDF fileStand: 05.11.2013 orVlesung Grundlagen und Methoden der Kryptographie Dietzfelbinger 4 Diskrete Logarithmen und Anwendungen

phie, Kap. 9.

Für das Folgende nehmen wir an, dass die verwendete Gruppe diesen Mindestanfor-derungen genügt.

4.2 Di�e-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üsselk ∈ G für ein symmetrisches Verfahren festlegen. Wie kann das gehen?

Die Idee ist, dass k = gab ist, wo nur Alice a kennt und nur Bob b. Über den ö�enlichenKanal laufen die Gruppenelemente ga und gb. Eve hat also das Problem, aus ga undgb den Wert gab zu berechnen. (Das ist das sogenannte DH-Problem, benannt nachDi�e und Hellman, die das Schlüsselaustauschverfahren vorgeschlagen haben.) Wennsie das DL-Problem lösen könnte, wäre dies leicht. Andere Möglichkeiten, das DH-Problem zu lösen, ohne einen Algorithmus für DL, sind prinzipiell denkbar, aber nichtbekannt.

Protokoll �Di�e-Hellman-Schlüsselaustausch�

• Alice wählt a ∈ {2, . . . , |G| − 2} zufällig, und sendet s = ga an Bob.

• Bob wählt b ∈ {2, . . . , |G| − 2} zufällig, und sendet t = gb an Alice.

• Alice berechnet ta = (gb)a = gab = k.

• Bob berechnet sb = (ga)b = gab = k.

(Es wird benutzt, dass die Multiplikation der Exponenten a und b kommutativ ist.)

Alice und Bob kennen nun k; Eve kennt nur s und t, wie gewünscht.

Achtung! Das Verfahren in der hier vorgestellten Form wird völlig unsicher, wennEve den Kommunikationskanal nicht nur abhört, sondern aktiv eingreifen kann (�man-

in-the-middle-attack �). Um es gegen solche Angri�e abzusichern, muss man andereProtokolle benutzen, die es ermöglichen herauszu�nden, ob der Absender einer Nach-richt 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üssel-austausch. Wie RSA ist auch dieses System ist ein Public-Key-Verschlüsselungssystem.

3

Page 4: 4 Diskrete Logarithmen und Anwendungen - tu- · PDF fileStand: 05.11.2013 orVlesung Grundlagen und Methoden der Kryptographie Dietzfelbinger 4 Diskrete Logarithmen und Anwendungen

Seine Sicherheit beruht nicht auf der (vermuteten) Schwierigkeit des Faktorisierungs-problems 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. (Diese Gruppe kann wiederverwendetwerden. Es lohnt sich also, in die Ermittlung einer solchen Gruppe eine Menge Zeitzu investieren.)

Dann wird ein Element a zufällig aus {2, . . . , |G| − 2} gewählt, und es wird mittelsschneller Exponentiation A = ga berechnet.

Der ö�entliche Schlüssel ist (G, g,A), der geheime Entschlüsselungs-Schlüssel ist a.

Verschlüsselung:

Wir nehmen an, dass die Menge der möglichen Botschaften (Binärstrings) eine Teil-menge von G ist. Um eine Botschaft m ∈ G zu verschlüsseln, wählt Alice eine Zufalls-zahl b aus {2, . . . , |G| − 2} und berechnet B = gb. Weiter berechnet sie y := Ab ◦m.

Der zu versendende Chi�retext ist (B, y).

Kommentar: Der Rechenaufwand liegt im Wesentlichen in den zwei schnellen Ex-ponentiationen. RSA benötigt eine schnelle Exponentiation. Man erkennt die Kom-ponenten A und B aus dem Di�e-Hellman-Schlüsselaustausch wieder. Der Wert Ab

ist k = gab, der Wert y ist k ◦m.

Entschlüsselung:

Bob kennt B, y (von Alice) und seinen geheimen Schlüssel a.

Er berechnet Ba = (gb)a = k. Dann berechnet er das Gruppenelement z = k−1 ◦ y,mit Hilfe der e�zienten Invertierung und Gruppenoperation in G.

Beobachtung: z = m.

(Das ist klar: z = k−1 ◦ y = k−1 ◦ (k ◦m) = m.)

Kommentar: Der Rechenaufwand der Entschlüsselung liegt im Wesentlichen in derschnellen Exponentiation und der Invertierung von k.

Sicherheit:

Man kann sich überlegen, dass für eine Angreiferin Eve und eine Gruppe G miterzeugendem Element g folgende Situationen äquivalent sind:

(i) Eve kann alle mit ElGamal verschlüsselten Nachrichten e�zient entschlüsseln,also aus A, B, y die Nachricht m berechnen, die zum Chi�retext (B, y) geführt

4

Page 5: 4 Diskrete Logarithmen und Anwendungen - tu- · PDF fileStand: 05.11.2013 orVlesung Grundlagen und Methoden der Kryptographie Dietzfelbinger 4 Diskrete Logarithmen und Anwendungen

hat.

(ii) Eve kann das DH-Problem für G lösen.

(Beides folgt, wenn Eve diskrete Logarithmen berechnen kann.) Wir beweisen dieÄquivalenz.�(i) ⇒ (ii)�: Eve hat r = ga und s = gb vorliegen und möchte k = gab bestimmen. Siewendet ihr Entschlüsselungsverfahren auf A = r, B = s, y = 1 an. Es ergibt sich einWert m mit k ◦m = 1. Daraus folgt m = k−1, und Eve kann k durch Invertierungvon m berechnen.�(ii) ⇒ (i)�: Eve hat A = ga, B = gb, y = gab ◦m vorliegen. Weil sie das DH-Problemlösen kann, kann sie k = gab berechnen und damit natürlich m = k−1 ◦ y bestimmen.

Unterschiede zwischen RSA und ElGamal:

• RSA in der puren Form benötigt einen Chi�retext y = me mod n, der diegleiche Bitlänge hat wie der Klartext m. ElGamal hat einen doppelt so langenChi�retext (B, y).

• ElGamal ist erzwungenermaÿen randomisiert. Das hat die angenehme Konse-quenz, dass die wiederholte Verschlüsselung desselben Klartextes m zu völligunterschiedlichen Chi�retexten führt, weil der Schlüssel k mehr oder wenigerzufällig ist.

Allerdings gibt es die Empfehlung, beim Arbeiten mit RSA den Klartext m durchdas Anhängen eines nicht ganz kurzen Zufallsstrings zu randomisieren. Wenn dieserangehängte Zufallsstring die gleiche Länge wie m hat, sind wir fast in derselbenSituation wie bei ElGamal, nur dass die Gruppe, in der gerechnet wird, viel gröÿerist.

5 Endliche Körper

Nicht prüfungsrelevant!

5.1 Endliche Körper GF(qk)

Wir geben hier eine Kurzfassung der Konstruktion von endlichen Körpern mit 2k

Elementen an. Dies ist eine Spezialisierung einer allgemeinen Konstruktion, die eserlaubt, aus einem Körper mit q Elementen einen mit qk Elementen zu konstruieren.

5

Page 6: 4 Diskrete Logarithmen und Anwendungen - tu- · PDF fileStand: 05.11.2013 orVlesung Grundlagen und Methoden der Kryptographie Dietzfelbinger 4 Diskrete Logarithmen und Anwendungen

Zu einem endlichen Körper F (man stelle sich konkret Zp vor) bildet man den Poly-

nomring F[X]. Vorstellen sollte man sich diesen als die Menge aller �formalen Aus-drücke�

a0 + a1 ·X + a2 ·X2 + · · · an ·Xn,

für n ≥ 0 und a0, a1, . . . , an ∈ F. Ein solcher Ausdruck wird mit seiner Koe�zienten-folge (a0, a1, . . . , an, 0, 0, . . .) (künstlich als unendliche Folge geschrieben) identi�ziert.Der Grad eines solches Polynoms ist n, wenn n maximal mit an 6= 0 ist. Falls alle Ko-e�zienten gleich 0 sind (f ist das �Nullpolynom�), ist der Grad −∞. Man addiert undsubtrahiert solche Polynome wie üblich (d. h. komponentenweise) und multipliziert siewie üblich (ausmultiplizieren, Koe�zienten bei derselben X-Potenz aufsammeln). Esergibt sich die Struktur eines Rings. Das Nullpoynom ist die 0 bezüglich der Addition,das Polynom 1 = (1, 0, 0, . . .) die 1 bezüglich der Multiplikation.

Beispiel : In Z2[X] liegen die Polynome g = (1, 1, 0, 1, 0, . . .) = 1 + X + X3 undh = (0, 1, 1, 0, . . .) = X + X2. Ihre Summe ist (1, 0, 1, 1, 0, . . .), ihr Produkt ist(0, 1, 0, 1, 1, 1, 0, . . .) = X + X3 + X4 + X5. (Man beachte, dass in Z2 die Gleichung1 + 1 mod 2 = 0 gilt.)

Als Grundmenge des zu konstruierenden Körpers verwenden wir Fk, die Menge allerk-Tupel über F. Dies entspricht der Menge aller Polynome vom Grad bis zu k − 1.Diese Menge hat genau |F|k Elemente.

Als Addition benutzen wir die gewöhnliche Addition von Polynomen (also die kom-ponentenweise Addition der Tupel). Die Multiplikation ist etwas komplizierter.

Es wird ein irreduzibles Polynom f = a0 +a1 ·X + · · ·+an−1 ·Xn−1 +Xn vom Grad n(mit �Leitkoe�zient� an = 1) benötigt, also ein Koe�ziententupel (a0, a1, . . . , an−1, 1)mit der Eigenschaft, dass man nicht f = f1 · f2 schreiben kann, für Polynome f1 undf2, die Grad gröÿer als 1 haben.

Die Multiplikation funktioniert nun wie folgt: Wenn g und h gegeben sind, berechnetman das Produkt g ·h (Grad maximal 2n− 2) und bestimmt den Rest r von g ·h beider Division durch f . Dieser Rest (genannt �g ·h mod f �) ist das eindeutig bestimmtePolynom vom Grad höchstens k − 1, das

g · h = q · f + r

erfüllt, für ein �Quotientenpolynom� q.

Beispiel: Sei k = 4 und f = (1, 1, 0, 0, 1). Die Faktoren seien g = (1, 1, 0, 1) undh = (0, 1, 1, 0). Das Produkt g · h = (0, 1, 0, 1, 1, 1). Wenn wir hiervon f · (1 + X) =(1, 0, 1, 0, 1, 1) subtrahieren, erhalten wir das Produkt (1, 1, 1, 1) im Körper.

6

Page 7: 4 Diskrete Logarithmen und Anwendungen - tu- · PDF fileStand: 05.11.2013 orVlesung Grundlagen und Methoden der Kryptographie Dietzfelbinger 4 Diskrete Logarithmen und Anwendungen

Allgemein kann man für ein festes Polynom f den Rest der Division durch f stets alsMultiplikation des Zeilenvektors, der g · h darstellt, mit einer festen ((2n − 2) × n)-Matrix Mf darstellen. Damit ist die Komplexität der Multiplikation in einem sol-chen Körper de�niert: Es muss das Produkt g · h berechnet werden (�Konvolution�)und dann eine Vektor-Matrix-Multiplikation ausgeführt werden. Bei Verwendung desKörpers Z2 kann die Vektor-Matrix-Multiplikation mit Hilfe der wortweisen XOR-Operation sehr e�zient durchgeführt werden. Für die Konvolution ist dies schwie-riger; es gibt moderne Prozessoren, die diese Operation für konstante Wortlängenbereitstellen, was diese Operation auch für beliebige Wortlängen beschleunigt.

Das neutrale Element der Multiplikation ist das Polynom 1 = (1, 0, . . . , 0). Man kannsich die Frage stellen, ob die Elemente der Menge Fk − {0} ein Inverses haben.

Fakt:Wenn man die Multiplikation wie beschrieben de�niert, mit einem irreduziblenPolynom f mit Leitkoe�zient ak = 1, dann gibt es für jedes Polynom g 6= (0, . . . , 0)vom Grad < k (genau) ein Polynom h mit g · h mod f = (1, 0, . . . , 0) = 1.

Weil die üblichen Rechenregeln in der Struktur Fk mit den angegebenen Operationenleicht nachzuweisen sind, bedeutet dies, dass wir einen Körper mit |F|k Elementenerhalten haben. Wenn |F| = q ist, nennen wir diesen Körper GF(qk). Im Fall q = 2erhalten wir so Körper GF(2k), deren zugrundeliegende Menge einfach {0, 1}k ist, dieMenge der Bitstrings der Länge k.

Bemerkung: In der Algebra zeigt man folgende Fakten über endliche Körper:

• Es gibt einen endlichen Körper GF(q) mit q Elementen genau dann wenn q = pr

für eine Primzahl p und einen Exponenten r ≥ 1.

• Es ist gleichgültig, auf welchem Konstruktionsweg man zu einem Körper mit qElementen gelangt: alle diese Körper sind isomorph, also strukturell identisch.Das heiÿt, dass die Konstruktion mit Polynomen vom Grad < k über Zp stetszu dem eindeutig bestimmten Körper GF(pk) führt.1

Fakt: Die multiplikative Gruppe jedes endlichen Körpers GF(q) ist zyklisch. Dasheiÿt: Es gibt ein �primitives Element� g ∈ GF(q)− {0} mit

GF(q)− {0} = {1, g, g2, . . . , gq−2}.

(Dies ist die Verallgemeinerung der entsprechenden Tatsache für die endlichen Prim-zahlkörper Zp, die bereits früher notiert wurde.)

1�GF� steht fürGalois �eld, nach Évariste Galois (1811�1832), einem französischen Mathematiker.�Körper� heiÿt auf englisch ��eld �.

7

Page 8: 4 Diskrete Logarithmen und Anwendungen - tu- · PDF fileStand: 05.11.2013 orVlesung Grundlagen und Methoden der Kryptographie Dietzfelbinger 4 Diskrete Logarithmen und Anwendungen

Da wir für Di�e-Hellman-Schlüsselaustausch und das ElGamal-Kryptosystem nurzyklische Gruppen benötigen, für die wir ein erzeugendes Element angeben können,lassen sich beliebige endliche Körper für diese Systeme benutzen � wenn wir einprimitives Element �nden können.

5.2 AES

Der �Advanced Encryption Standard (AES)� ist ein symmetrisches Verschlüsselungs-verfahren (d. h., beide Kommunikationspartner benutzen denselben Schlüssel), mitdem Klartexte der Länge 128, 160, 192, 224 oder 256 Bit ver- und entschlüsselt wer-den können. Die Schlüssellänge ist 128, 192 oder 256-Bit.

In AES wird Arithmetik im Körper GF(28) benutzt, dessen Elemente 8-Bit-Vektoren,also Bytes, entsprechen.

Details : Zum Beispiel im Buch von Wilke/Küsters.

AES wird in vielen Standardverfahren benutzt, zum Beispiel bei Secure Socket Layer

(SSL)/Transport Layer Security (TLS) und Secure Shell (SSH).

8