ElGamal Systeme

41
Seminar Kryptographie und Datensicherheit ElGamal Systeme Michal Olejniczak Pawel Kiedrowski

description

ElGamal Systeme. Michal Olejniczak Pawel Kiedrowski. Ü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 (Z n , +). - PowerPoint PPT Presentation

Transcript of ElGamal Systeme

Page 1: ElGamal Systeme

Seminar Kryptographie und Datensicherheit

ElGamal Systeme

Michal OlejniczakPawel Kiedrowski

Page 2: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 2

Ü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, +)

Page 3: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 3

Ü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

Page 4: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 4

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.

Page 5: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 5

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.

Page 6: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 6

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).

Page 7: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 7

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 Modulo-Funktion, 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+

Page 8: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 8

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

Page 9: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 9

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.

Page 10: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 10

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 ist effizient möglich– Die Berechnung von ist schwer

Page 11: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 11

Problem der diskreten Logarithmen (II)

• Beispiel für Z11 = {0,1,2,…,10}

a = 0 => 3a mod p = 30 mod 11 = 1 mod 11 = 1a = 1 => 3a mod p = 31 mod 11 = 3 mod 11 = 3a = 2 => 3a mod p = 32 mod 11 = 9 mod 11 = 9a = 3 => 3a mod p = 33 mod 11 = 27 mod 11 = 5a = 4 => 3a mod p = 34 mod 11 = 81 mod 11 = 4a = 5 => 3a mod p = 35 mod 11 = 243 mod 11 = 1a = 6 => 3a mod p = 36 mod 11 = 729 mod 11 = 3a = 7 => 3a mod p = 37 mod 11 = 2187 mod 11 = 9a = 8 => 3a mod p = 38 mod 11 = 6561 mod 11 = 5 …

Page 12: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 12

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

Page 13: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 13

ElGamal Kryptosystem (II)

• Entschlüsselung: dK(y1, y2) = y2(y1

a)-1 mod pMan 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

Page 14: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 14

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 = 435x * βk = 1299 * 949853 mod 2579 =

2396• Entschlüsselung der Nachricht (435, 2396)

x = 2396*(435765)-1 mod 2579 = 1299

Page 15: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 15

ElGamal Kryptosystem (IV)

• β = a mod py1= k mod py2 = x β k mod p

• x’ = y2 * y1p -1 - a mod p

• x’ = y2 * y1p -1 - a = (x * βk) * (k) p -1 - a =

= x * (a)k * -ak * k(p-1) • x’ = x * k(p-1) = x

Page 16: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 16

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.

Page 17: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 17

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

Jahr Schlüssel-länge

1990 6222000 9522010 13692020 18812030 24932040 32142050 4047

Page 18: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 18

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

Page 19: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 19

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.

Page 20: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 20

Massey-Omura Verfahren (III)

Page 21: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 21

Massey-Omura, Zusammenfassung

• Nachteil: wir brauchen drei Nachrichten zum Schlüsseltausch und das macht „man-in-the-middle“-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.

Page 22: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 22

Algorithmen für das DL-Problem

• Berechne i solange, bis = a gefunden ist.

• Algorithmus braucht eine Laufzeit von O(n);

Page 23: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 23

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 Widerspruch !

Page 24: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 24

Der Shanksscher Algorithmus (I)

Page 25: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 25

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

Page 26: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 26

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

Page 27: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 27

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)

Page 28: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 28

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 gleichlog3525 = (29 * 10 + 19 ) mod 808 = 309

• Wir prüfen jetzt ob unser Ergebnis stimmt 3309 525 (mod 809)

Page 29: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 29

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

Page 30: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 30

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.

Page 31: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 31

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

Page 32: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 32

Der Pohlig-Hellman-Algorithmus (II)

• Wir gehen davon aus, dass wir die Primfaktoren von n kennen.

n = p1C1 * p2

C2 * ...* 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:

Page 33: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 33

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

Page 34: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 34

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 = aon/q

Page 35: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 35

Der Pohlig-Hellman-Algorithmus (V)

• Beweis: n/q = aon/q

Page 36: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 36

Der Pohlig-Hellman-Algorithmus (VI)

• Jetzt müssen wir aj aus aj-1 für j = 1,...,c-1 berechnen

• Wir definieren: 0 := j := -(ao+ a1q+...+ aj - 1q ) für 1 j c-

1• Man kann beweisen, dass unsere

Behauptung auch für folgende Gleichung erfüllt ist:

Page 37: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 37

Der Pohlig-Hellman-Algorithmus (VII)

Page 38: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 38

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)

Page 39: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 39

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.

Page 40: ElGamal Systeme

Seminar Kryptographie und Datensicherheit ElGamal Systeme 40

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.

Page 41: ElGamal Systeme

Seminar Kryptographie und Datensicherheit

Danke für die Aufmerksamkeit

Fragen? Fragen