ElGamal Systeme Michal Olejniczak Pawel Kiedrowski Seminar Kryptographie und Datensicherheit Übersicht • • • • • • • • • Über Taher Elgamal Einführung in die Gruppentheorie Problem der diskreten Logarithmen ElGamal Kryptosystem Massey-Omura Verfahren Der Shanksche Algorithmus Pohlig-Hellman Algorithmus Index Calculus Methode DLP in (Zn, +) Seminar Kryptographie und Datensicherheit ElGamal Systeme 2 Über Taher Elgamal • Amerikanischer Wissenschaftler – Doktor an der Stanford-Universität – Spezialgebiete: Kryptologie und Datensicherheit • Erfinder des ElGamal Kryptosystems („A Public Key Cryptosystem and a Signature Scheme based on Diskrete Logarithms “ aus 1985) • Zahlreiche Beiträge zur Kryptologie: – Digital Signature Standard – SSL-Protokoll Seminar Kryptographie und Datensicherheit ElGamal Systeme 3 Einführung in die Gruppentheorie (I) • Verknüpfung: Abbildung f, die ein Paar (a, b) auf einen Wert f(a, b) abbildet. Falls a, b M und f(a, b) M gilt (also f : M x M -> M), dann spricht man von einer Verknüpfung in M. • Die Menge M zusammen mit der Verknüpfung heißt Verknüpfungsgebilde. Seminar Kryptographie und Datensicherheit ElGamal Systeme 4 Einführung in die Gruppentheorie (II) • Das Verknüpfungsgebilde (G, *), wobei G eine Menge und * eine zweistellige Verknüpfung auf G ist, heißt Gruppe, wenn folgende Axiome erfüllt sind: – Abgeschlossenheit: Sind a und b Elemente aus M, so ist auch a × b aus G. – Assoziativität: a × (b × c) = (a × b) × c – Neutrales Element: Es existiert ein Element e (auch 1 genannt) in G, so dass für alle Elemente gilt a × e = e × a = a. – Inverses Element: Zu jedem Element a in G existiert ein Element, nenne es a-1, so dass a × a-1 = a-1 × a = e. Seminar Kryptographie und Datensicherheit ElGamal Systeme 5 Einführung in die Gruppentheorie (III) • Anzahl der Elemente wird als Ordnung der Gruppe bezeichnet, geschrieben |G| • Ein Gruppenelement g G hat die Ordnung k, wenn k die kleinste natürliche Zahl ist, so dass gk = e gilt. • Endliche Gruppen haben folgende Eigenschaft: g|G| = e (dies kann auch für Untergruppen gelten). Seminar Kryptographie und Datensicherheit ElGamal Systeme 6 • • • • Einführung in die Gruppentheorie (IV) Betrachtet werden natürliche Zahlen bis Obergrenze n => Erzwingung der Endlichkeit. Ergebnisse werden modular reduziert. Wenn a und b ganze Zahlen sind mit a > b > 0 und es gilt: a = q * b + r, dann ist r der Rest bei der Division a/b, 0 ≤ r < b. Eine Funktion mod: Z x N -> N heiße ModuloFunktion, wenn gilt: • Der größte gemeinsame Teiler von a und b, ggT(a,b), ist diejenige größte natürliche Zahl g, für die gilt: a = q * g ^ b = p * g, wobei p, q N+ Seminar Kryptographie und Datensicherheit ElGamal Systeme 7 Einführung in die Gruppentheorie (V) • Es soll die Gruppe (Zn, ) definiert werden. Es sei Zn ={0,1,2, … , n-1} • Für a, b Zn ist die Verknüpfung dann folgendermaßen definiert: a b := (a + b) mod n • Alle Axiome für diese Gruppe sind erfüllt • Die Ordnung der Gruppe beträgt |Zn|=n Seminar Kryptographie und Datensicherheit ElGamal Systeme 8 • • • • Einführung in die Gruppentheorie (VI) Betrachtet wird die Verknüpfung (Zn, ). Null ist kein Element der Gruppe Zn. Problem: das inverse Element existiert im allgemeinen nicht. * Lösung: man definiert eine Gruppe Zn , man nimmt nur die Elemente a < n, die teilerfremd zu n sind: Zn* = {a Zn | ggT(a, n) = 1} Die Ordnung der Gruppe wird über die * Eulersche Ф-Funktion berechnet: |Zn | = Ф(n) – Ф(p) = p – 1 falls p prim ist – Ф(p*q) = (p – 1)*(q – 1) falls p und q prim sind • Zyklische Gruppe: {i : 0 ≤ i ≤ p - 2} * • |Zn | ist zyklisch, wenn n prim ist. Seminar Kryptographie und Datensicherheit ElGamal Systeme 9 Problem der diskreten Logarithmen (I) • Damit die Gruppe G für ein Kryptosystem geeignet ist, muss die Exponentation in G die Eigenschaften einer Einwegfunktion erfüllen. – Die Berechnung von – Die Berechnung von Seminar Kryptographie und Datensicherheit ist effizient möglich ist schwer ElGamal Systeme 10 Problem der diskreten Logarithmen (II) • Beispiel für Z11 = {0,1,2,…,10} a= a= a= a= a= a= a= a= a= … 0 1 2 3 4 5 6 7 8 => => => => => => => => => 3a mod 3a mod 3a mod 3a mod 3a mod 3a mod 3a mod 3a mod 3a mod Seminar Kryptographie und Datensicherheit p p p p p p p p p = = = = = = = = = 30 mod 31 mod 32 mod 33 mod 34 mod 35 mod 36 mod 37 mod 38 mod 11 11 11 11 11 11 11 11 11 = = = = = = = = = 1 mod 11 = 1 3 mod 11 = 3 9 mod 11 = 9 27 mod 11 = 5 81 mod 11 = 4 243 mod 11 = 1 729 mod 11 = 3 2187 mod 11 = 9 6561 mod 11 = 5 ElGamal Systeme 11 ElGamal Kryptosystem (I) • Schlüsselerzeugung: man wählt eine Primzahl p (für die das DL Problem in Zp* unlösbar ist) * und zwei andere Zahlen (Primitivelement Zp ) und a die kleiner als p sind. Man berechnet β: β = a mod p – Öffentlicher Schlüssel (p, , β) wird publiziert – Privater Schlüssel (p, , β, a) • Verschlüsselung: Um eine Nachricht x zu verschlüsseln, wählt man eine Zahl k und berechnet: eK(x,k)=(y1,y2), wo y1= k mod p, y2 = x β k mod p Seminar Kryptographie und Datensicherheit ElGamal Systeme 12 ElGamal Kryptosystem (II) • Entschlüsselung: dK(y1, y2) = y2(y1a)-1 mod p Man berechnet das erhaltene k zur Potenz a: (k)a= ka = (a)k = βk Man findet eine Inverse ξ zur βk (modulo p) mit Hilfe des erweiterten Euklidschen Algorithmus. • Schließlich dividiert man mit βx: (x* βk)* ξ ≡ x * (βk * ξ) ≡ x * 1 ≡ x mod p Seminar Kryptographie und Datensicherheit ElGamal Systeme 13 ElGamal Kryptosystem (III) • Wir nehmen p = 2579, = 2 und a = 765 an. • Berechnung von β: β = 2765 mod 2579 = 949 • Nachricht x = 1299 wird gesendet. Die zufällige Zahl ist k = 853. Man berechnet: k = 2853 mod 2579 = 435 x * βk = 1299 * 949853 mod 2579 = 2396 • Entschlüsselung der Nachricht (435, 2396) x = 2396*(435765)-1 mod 2579 = 1299 Seminar Kryptographie und Datensicherheit ElGamal Systeme 14 ElGamal Kryptosystem (IV) • β = a mod p y1= k mod p y2 = x β k mod p • x’ = y2 * y1p -1 - a mod p • x’ = y2 * y1p -1 - a = (x * βk) * (k) = x * (a)k * -ak * k(p-1) • x’ = x * k(p-1) = x Seminar Kryptographie und Datensicherheit ElGamal Systeme p -1 - a = 15 ElGamal Kryptosystem (V) • Momentan kann ElGamal als ein effektives Kryptosystem angesehen werden. • Derzeit keine effizienten Algorithmen zur Berechnung diskreter Logarithmen. • Zur Verschlüsselung sind zwei modulare Exponentationen nötig. • Zur Entschlüsselung ist eine modulare Exponentation erforderlich. Seminar Kryptographie und Datensicherheit ElGamal Systeme 16 ElGamal Kryptosystem (VI) * • Für Gruppe Zp und p > 500 Bit – 512 Bits (geringe Sicherheit) bis 1024 Bits (hohe Sicherheit) • DL-Problem hängt von der Wahl der Gruppe ab. – Momentan so schwer wie Faktorisierung angesehen Seminar Kryptographie und Datensicherheit ElGamal Systeme Jahr Schlüssellänge 1990 622 2000 952 2010 1369 2020 1881 2030 2493 2040 3214 2050 4047 17 Massey-Omura Verfahren (I) • Kryptosystem das ebenfalls auf dem Problem des diskreten Logarithmus basiert. • Hat keine öffentliche Schlüssel • Keine gemeinsame geheime Schlüssel • Dient hauptsächlich zum Austausch von Schlüsseln Seminar Kryptographie und Datensicherheit ElGamal Systeme 18 Massey-Omura Verfahren (II) * • Wir betrachten Gruppe Zp , p ist Primzahl. * • Beobachtung: sei e Zp und d=e-1 mod (p-1) * das heißt ed 1(mod p-1). Dann gilt für x Zp xed xs(p-1)+1 für ein s N x(p-1)s x x (mod p) weil x(p-1) 1 • Kommunikation - alle Teilnehmer kennen eine * Primzahl p. A möchte an B Nachricht m Zp senden. Seminar Kryptographie und Datensicherheit ElGamal Systeme 19 Massey-Omura Verfahren (III) Seminar Kryptographie und Datensicherheit ElGamal Systeme 20 Massey-Omura, Zusammenfassung • Nachteil: wir brauchen drei Nachrichten zum Schlüsseltausch und das macht „man-in-themiddle“-Angriffe möglich. • Vorteil: Jeder Teilnehmer hat einen Schlüssel zum Verschlüsseln und einen zum Entschlüsseln. • Keiner der Teilnehmer kennt die Schlüsseln des anderen. Es seiden jemand wird eine DL-Instanz brechen. Seminar Kryptographie und Datensicherheit ElGamal Systeme 21 Algorithmen für das DL-Problem • Berechne i solange, bis = a gefunden ist. • Algorithmus braucht eine Laufzeit von O(n); Seminar Kryptographie und Datensicherheit ElGamal Systeme 22 Algorithmen für das DL-Problem Der Shanksscher Algorithmus • Wir suchen a, 0 a n-1 : a = bzw. a = log • Beobachtung: Sei m :=n. Wir können schreiben: log = mj + i mit i,j 0 und i m-1 • Wir möchten jetzt zeigen, dass auch j m-1 darum nehmen wir an, dass j m => dann log = mj + i m2 n aber: a = log n-1 Seminar Kryptographie und Datensicherheit Widerspruch ! ElGamal Systeme 23 Der Shanksscher Algorithmus (I) Seminar Kryptographie und Datensicherheit ElGamal Systeme 24 Der Shanksscher Algorithmus (II) • Warum funktioniert das? Wenn unsere Suche in Schritt 6 erfolgreich ist, dann gilt für i und j : mj = -i mj+i = mj + i = log Seminar Kryptographie und Datensicherheit ElGamal Systeme 25 Der Shanksscher Algorithmus (III) • Beispiel * • Wir wollen log3525 in (Z809 ,*) finden. 809 ist Primzahl. Wir haben =3, n=808, =525 und m=808 29 • Jetzt haben wir 29mod 809 = 99 • Zuerst rechnen wir Paaren (j, 99j mod809) ´ für 0 j 28 • Dann rechnen wir Paaren (i, 525*(3i)-1 mod809) für 0 i 28 Seminar Kryptographie und Datensicherheit ElGamal Systeme 26 Der Shanksscher Algorithmus (IV) • für 0 j 28 • (0,1) (1,99) (2,93) (3,308) (4,559) (5,329) (6,211) (7,664) (8,207) (9,268) (10,644) (11,654) (12,26) (13,147) (14,800) (15,727) (16,781) (17,464) (18,632) (19,275) (20,528) (21,496) (22,564) (23,15) (24,676) (25,586) (26,575) (27,295) (28,81) • 0 i 28 • (0,525) (1,175) (2,328) (3,379) (4,396) (5,132) (6,44) (7,554) (8,724) (9,511) (10,440) (11,686) (12,768) (13,256) (14,355) (15,388) (16,399) (17,133) (18,314) (19,644) (20,754) (21,521) (22,713) (23,777) (24,259) (25,356) (26,658) (27,489) (28,163) Seminar Kryptographie und Datensicherheit ElGamal Systeme 27 Der Shanksscher Algorithmus (V) • Jetzt müssen wir diese zwei Listen miteinander vergleichen und wir finden heraus dass (10,644) in L1 und (19,644) in L2 den selben wert haben. • In unseren Beispiel a ist gleich log3525 = (29 * 10 + 19 ) mod 808 = 309 • Wir prüfen jetzt ob unser Ergebnis stimmt 3309 525 (mod 809) Seminar Kryptographie und Datensicherheit ElGamal Systeme 28 Der Shanksscher Algorithmus (VI) • Komplexität • Algorithmus braucht eine Laufzeit von O(m log m); bei Vernachlässigung logarithmischer Faktoren auf O(m) reduzierbar • Dise Methode braucht auch vielen Speicherplatz für die beiden Listen Seminar Kryptographie und Datensicherheit ElGamal Systeme 29 Algorithmen für das DL-Problem Der Pohlig-Hellman-Algorithmus • Zuerst betrachten wir ein System von linearen Kongruenzen mit a1,..., ar N, m1,...,mr N+, ggT(mi, mj)= 1 für i j und 1 i,j r. Wir suchen solche x, die alle Kongruenzen gleichzeitig erfüllen. Seminar Kryptographie und Datensicherheit ElGamal Systeme 30 Der Pohlig-Hellman-Algorithmus (I) • Zur Lösung von solchen Systeme brauchen wir den Chinesischen Restsatz: Gegeben sei ein System von linearen Kongruenzen. Alle Lösungen eines solchen Systems sind kongruent modulo M:= m1 m2... mr, und die Lösung modulo M ist Seminar Kryptographie und Datensicherheit ElGamal Systeme 31 Der Pohlig-Hellman-Algorithmus (II) • Wir gehen davon aus, dass wir die Primfaktoren von n kennen. n = p1C1 * p2C2 * ...* pkCk Wo p1,..., pk verschiedene Primzahlen sind. • Wir suchen a = log (mod n). Nehmen wir an, dass wir a mod piCi für alle Primfaktoren pi, 1 i k, kennen, also Zahlen x1,..., xk mit: Seminar Kryptographie und Datensicherheit ElGamal Systeme 32 Der Pohlig-Hellman-Algorithmus (III) • Wie finden wir a mod piCi ? • Wir suchen x = a mod qc für gegebene Primzahl q und ein c, für die gilt: n =0 (mod qc) n 0 (mod qc+1) • Wir können auch schreiben daß: a = x + sqC Seminar Kryptographie und Datensicherheit ElGamal Systeme 33 Der Pohlig-Hellman-Algorithmus (IV) • Für s N. dann folgende Formel für x stimmt. x = a0q0+ a1q1+....+ aC-1qC-1 für 0 a q-1 • Wir berechnen a0. • Dann berechnen wir aj aus aj-1 für j = 1,...,c-1 • Um a0 zu berechnen benutzen wir folgende Behauptung : n/q = a n/q o Seminar Kryptographie und Datensicherheit ElGamal Systeme 34 Der Pohlig-Hellman-Algorithmus (V) • Beweis: n/q = Seminar Kryptographie und Datensicherheit a n/q o ElGamal Systeme 35 Der Pohlig-Hellman-Algorithmus (VI) • Jetzt müssen wir aj aus aj-1 für j = 1,...,c-1 berechnen • Wir definieren: 0 := j := -(a + a q+...+ a für 1 j c-1 • Man kann beweisen, dass unsere Behauptung auch für folgende Gleichung erfüllt ist: o Seminar Kryptographie und Datensicherheit 1 j - 1q ) ElGamal Systeme 36 Der Pohlig-Hellman-Algorithmus (VII) Seminar Kryptographie und Datensicherheit ElGamal Systeme 37 Der Pohlig-Hellman-Algorithmus (VIII) • Komplexität • Algorithmus braucht eine Laufzeit von O(cq); • Wenn wir in Zeile 4 Shanksschen Algorithmus benutzen um das a zu finden dann erhalten wir Gesamtlaufzeit von O(cq) Seminar Kryptographie und Datensicherheit ElGamal Systeme 38 Die Index Calculus Methode • Die Index Calculus Methode lässt sich nur in Zp* mit p Primzahl und primitives Element modulo p anwenden. • Sie benutz eine Menge B={p1, p2,..., pB} „kleiner“ Primzahlen. • Funktionsweise: 1. Die Logarithmen der B Primzahlen in B werden bestimmt. 2. Mit Hilfe der nur bekannten diskreten Logarithmen der B Primzahlen wird dann log berechnet. Seminar Kryptographie und Datensicherheit ElGamal Systeme 39 Diskreter Logarithmus Problem in (Zn,+) • Reduktion des Problems auf die additive Gruppe (Zn,+) mit Hilfe eines Isomorphismus Ф: (Zn,.) (Zn,+). Das Diskreter Logarithmus Problem lässt sich wie folgt übertrage: Finde a Zn mit a = (mod n). Schnell zu berechnen, da a= -1 mod n. Es existiert keine effiziente Methode zur Bestimmung des Isomorphismus. Seminar Kryptographie und Datensicherheit ElGamal Systeme 40 Danke für die Aufmerksamkeit Fragen? Fragen Seminar Kryptographie und Datensicherheit