24.11.2014 Aufrufe

ElGamal auf elliptischen Kurven

ElGamal auf elliptischen Kurven

ElGamal auf elliptischen Kurven

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

E lG a m a l a u f<br />

e llip t i s c h e n K u r v e n<br />

Frank Nillies<br />

frank@upb.de


Ü b e r s i c h t<br />

Motivation<br />

Definition <strong>ElGamal</strong><br />

<strong>ElGamal</strong> für elliptische <strong>Kurven</strong> [6]<br />

L<strong>auf</strong>zeit und Sicherheit<br />

MOV – Menezes Okamoto Vanstone [7]<br />

Geeignete elliptische <strong>Kurven</strong><br />

2


M o t i v a t i o n<br />

<br />

<br />

erstmalig im Jahre 1985 unabhängig von<br />

Neil Koblitz [1] und Victor Miller [2]<br />

Aufbauend <strong>auf</strong> den Ideen von Koblitz und Miller:<br />

<br />

<br />

<br />

Erzeugung digitaler Signaturen<br />

Sicherer Schlüsselaustausch<br />

Verschlüsselung<br />

ECDSA: Signaturverfahren [3, 4]<br />

ECIES: Verschlüsselungsverfahren<br />

EC-DH: als Schlüsselaustauschverfahren<br />

3


E lG a m a l C r y p t o s y s t e m<br />

Sei p prim, (G, ·) endliche, zyklische Gruppe<br />

G mit Ordnung p.<br />

K = {(p, G, m, α, β) : β = α m }<br />

α ∈ G erzeugendes Element, β ∈ G<br />

p, G, α, β öffentlich<br />

m geheim, 0 < m < p-1<br />

Klartextraum: P = G<br />

Chiffretextraum: C = G × G<br />

4


E lG a m a l V e r s c h lü s s e l u n g<br />

C = enc(x, k) = (y 1<br />

, y 2<br />

) = (α k , xβ k )<br />

k zufällig gleichverteilt, 0 < k < p-1<br />

P = dec(y, m)<br />

= (y 1m<br />

) -1 y 2<br />

= (α km ) -1 xα km<br />

= x<br />

∀ β ∃! m, 0 ≤ m ≤ p–1 : α m = β (Inj.)<br />

Die Berechnung α m ist effizient.<br />

Die Berechnung log α<br />

β ist schwer.<br />

5


E lG a m a l C r y p t o s y s t e m f ü r<br />

E K<br />

Sei p, q prim, G = (E(Z p<br />

), ⊕) mit Ordnung q.<br />

K = {(p, E, m, α, β) : β = mα mod p}<br />

p, E, α, β öffentlich, α, β ∈ G<br />

m geheim, 0 < m < q-1<br />

Klartextraum: P = G<br />

Chiffretextraum: C = G × G<br />

6


V e r s c h l ü s s e lu n g s f u n k t i o n<br />

wähle k: 0 < k < q-1 zufällig.<br />

x sei Punkt der Kurve mit x = cf(N)<br />

enc(x, k) = (y 1<br />

,y 2<br />

)<br />

y 1<br />

= kα<br />

y 2<br />

= x + kβ = x + kmα<br />

7


E n t s c h lü s s e lu n g s f u n k t i o n<br />

dec(y, m) = y 2<br />

– my 1<br />

= y 2<br />

+ (my 1<br />

) -1<br />

= x + kβ – mkα<br />

= x + mkα – mkα<br />

= x<br />

Invertierung der Codierung N = cf -1 (x)<br />

liefert den entsprechenden Klartext.<br />

8


B e i s p i e l<br />

K = {(p, E, m, α, β) : β = mα mod p}<br />

p, E, α, β öffentlich, m geheim<br />

Klartextraum: P = Z q<br />

*<br />

Chiffretextraum: C = Z q<br />

*<br />

× Z q<br />

*<br />

enc(x, k) = (kα, x + kβ )<br />

dec(y, m) = y 2<br />

– my 1<br />

= y 2 + (my 1 )-1<br />

9


L a u f z e i t<br />

2-mal Codierungsfunktion cf(x)<br />

L<strong>auf</strong>zeit:<br />

Verschlüsseln: (2x Multiplikation, 1x Addition)<br />

O(log³ p) [5]<br />

Entschlüsseln: (je 1x Addition u.<br />

Multiplikation)<br />

O(log³ p)<br />

kβ und kα „<strong>auf</strong> Vorrat“ berechnen<br />

10


I d e e f ü r C o d i e r u n g s f u n k t i o n<br />

<br />

<br />

<br />

Kein deterministischer Algorithmus bekannt<br />

Idee:<br />

Teile Z p<br />

in Blöcke der Größe #Klartexte<br />

Teste, ob das erste Blockelement ∈ E(Z p<br />

).<br />

<br />

<br />

Wähle ggf. nächstes/neues Element.<br />

http://www.certicom.com<br />

11


S i c h e r h e i t v o n E lG a m a l a u f<br />

E K s<br />

<strong>ElGamal</strong> lässt sich <strong>auf</strong> Diffie – Hellmann<br />

zurückführen.<br />

Nicht „beweisbar sicher“<br />

DL Problem gilt <strong>auf</strong> geeigneten Gruppen als<br />

nicht lösbar.<br />

(NP – vollständig aber nicht bewiesen)<br />

Auf <strong>elliptischen</strong> <strong>Kurven</strong> nur generische<br />

Algorithmen.<br />

12


A lg o r i t h m u s n a c h M e n e z e s -<br />

V a n s t o n e<br />

Die Grundidee von Menezes und Vanstone:<br />

Vereinfachung der Codierung:<br />

beliebige Elemente aus Z p<br />

*<br />

statt E(Z p<br />

)<br />

Reduzierung des Chiffretextes<br />

um den Faktor 2<br />

13


A lg o r i t h m u s n a c h M e n e z e s -<br />

V a n s t o n e<br />

Sei p, q prim, G = (E(Z p<br />

), ⊕) mit Ordnung q.<br />

K = {(p, E, m, α, β) : β = mα mod p}<br />

p, E, α, β öffentlich, α, β ∈ G<br />

m geheim, 0 < m < q-1<br />

Klartextraum: P = Z p<br />

*<br />

× Z p<br />

*<br />

Chiffretextraum: C = E(Z ) × Z * × Z *<br />

14


V e r s c h lü s s e lu n g n a c h<br />

M e n e z e s -V a n s t o n e<br />

Bob stellt N als ein Element<br />

N = (x 1<br />

, x 2<br />

) ∈ Z p<br />

*<br />

× Z p<br />

*<br />

dar.<br />

Er wählt ein zufälliges k: 0 < k < q-1<br />

(c 1<br />

, c 2<br />

) = kβ, c 1<br />

, c 2<br />

≠ 0<br />

Er berechnet:<br />

γ = kα<br />

b 1<br />

= c 1<br />

x 1<br />

mod p<br />

b 2<br />

= c 2<br />

x 2<br />

mod p.<br />

C = enc(N) = (γ, b , b )<br />

15


E n t s c h lü s s e lu n g n a c h<br />

M e n e z e s -V a n s t o n e<br />

Alice berechnet<br />

mγ = (c 1<br />

, c 2<br />

).<br />

Korrektheit: mγ = mkα = kβ = (c 1<br />

, c 2<br />

)<br />

Alice erhält den Klartext N durch<br />

dec(C) = N = (b 1<br />

c 1<br />

-1<br />

mod p, b 2<br />

c 2<br />

-1<br />

mod p).<br />

Erinnerung: b 1<br />

= c 1<br />

x 1<br />

mod p<br />

b 2<br />

= c 2<br />

x 2<br />

mod p<br />

16


S i c h e r h e i t v o n M .V .<br />

Angriffe mit bekanntem Nachrichtenteil<br />

Angriffe bei konstantem k<br />

Angriffe über Eindeutigkeit<br />

der Chiffretexte [8]<br />

Berechnen des ECDLP<br />

17


K r i t e r i e n f ü r g e e i g n e t e<br />

K u r v e n<br />

Die Kurve muss nichtsingulär sein.<br />

4a³ + 27b² ≠ 0 [5]<br />

Die von der elliptische Kurve E(Z p<br />

)<br />

erzeugte Gruppe G<br />

sollte möglichst groß sein.<br />

Berechnung zufälliger <strong>Kurven</strong> möglich.<br />

Sie werden von dem NIST oder IEEE<br />

empfohlen. <br />

18


Ü b e r s i c h t ü b e r<br />

S c h lü s s e llä n g e n<br />

Quelle: W. Rankl, W. Effing, Handbuch der Chipkarten, Hanser 1999<br />

19


G e b r o c h e n e S c h lü s s e l E C C<br />

Quelle: http://www.certicom.com<br />

20


V i e le n D a n k f ü r I h r e<br />

A u f m e r k s a m k e i t<br />

[1] N. Koblitz, ACourse in Number Theory and Cryptography, NewYork 1987<br />

[2] V.S. Miller, Use of Elliptic Curves in Cryptography, Advances in Cryptology:<br />

Crypt `85, 1986<br />

[3] D. Wätjen, Kryptographie Grundlagen, Algorithmen, Protokolle, Spectrum<br />

2004<br />

[4] D. R. Stinson, Cryptography, Theory and Practice, Chapman&Hall 2002<br />

[5] A. Werner, Elliptische <strong>Kurven</strong> in der Kryptography, Springer 2002<br />

[6] T. <strong>ElGamal</strong>, A Public Key Cryptosystem and a Signature Scheme Based on<br />

Descrete Logarithms, IEEE Transactions on Information Theory, 1985<br />

[7] A. Menesez, S.A.Vanstone, Elliptic Curve Cryptosystems and Their<br />

Implementation, Journal of Cryptography, 1993<br />

[8] K. Kiefer, A Weakness of the Menezes-Vanstone Cryptosystem, 5th international<br />

workshop, Paris 1997<br />

21


E lG a m a l b a s i e r t e s<br />

S i g n a t u r v e r f a h r e n a u f<br />

e llip t i s c h e n K u r v e n , d a s E C D S A<br />

Sei p prim und für den Raum Z p<br />

existiere eine<br />

gültige elliptische Kurve E der Ordnung q.<br />

K = {(p, q, E, m, α, β) : β = mα mod p}<br />

p, q, E, α, β öffentlich, 0 ≤ m ≤ q – 1 geheim<br />

Klartextraum: P = {0, 1} * , Nachricht n<br />

Unterschrift: A = Z q<br />

*<br />

× Z q<br />

*<br />

22


E C D S A<br />

sig(n, k) = (r, s), 0 ≤ k ≤ q – 1 :<br />

kα = (u, v)<br />

r = u mod q<br />

s = k -1 (SHA-1(n) + mr) mod q<br />

Es gilt: r, s ≠ 0 ∈ Z q<br />

*<br />

23


E C D S A<br />

ver(x, (r, s) = true u mod q = r :<br />

w = s -1 mod q<br />

i = w SHA-1(n) mod q<br />

j = wr mod q<br />

(u, v) = iα + jβ<br />

24


Ü b e r s i c h t ü b e r L a u f z e i t e n<br />

E C D S A<br />

25

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!