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(cq)
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
Herunterladen

Seminar Kryptographie und Datensicherheit