Zum Inhalt springen

Elliptic Curve Diffie-Hellman

Aus Foxwiki
Die 5 zuletzt angesehenen Seiten:  Elliptic Curve Diffie-Hellman

Elliptic Curve Diffie-Hellman (ECDH)

Kryptosysteme auf Basis elliptischer Kurven (kurz ECC-Verfahren, von engl. Elliptic Curve Cryptography) sind keine eigenständige kryptographische Verfahren, sondern bekannte DL-Verfahren, die auf besondere Weise implementiert werden. Jedes Verfahren, das auf dem diskreten Logarithmus in endlichen Körpern basiert, lässt sich in einfacher Weise auf elliptische Kurven übertragen und somit zu einem Elliptic-Curve-Kryptosystem umformen. Dabei werden die beim Originalverfahren eingesetzten Operationen (Multiplikation und Exponentiation) auf dem endlichen Körper ersetzt durch Punktaddition und Skalarmultiplikation auf elliptischen Kurven. Das n-fache Addieren eines Punktes P zu sich selbst (also die Multiplikation mit dem Skalar n) wird mit nP bezeichnet und entspricht einer Exponentiation xn im ursprünglichen Verfahren. Das Prinzip wurde Mitte der 1980er Jahre von Victor S. Miller[1] und Neal Koblitz[2] unabhängig voneinander vorgeschlagen.

Körper

Ein Körper ist eine Menge K versehen mit zwei inneren zweistelligen Verknüpfungen+“ und „“, die meist „Addition“ und „Multiplikation“ genannt werden. Ein Körper ist bezüglich der Addition und der Multiplikation ohne Null eine abelsche Gruppe und es gelten die Distributivgesetze. Der bekannteste Körper ist die Menge der reellen Zahlen , auf der Addition und Multiplikation in üblicher Weise definiert sind.

Für eine Primzahl p bildet die Menge der Zahlen zwischen 0 und p1 sowohl mit der Modulo-Addition als auch mit der Modulo-Multiplikation ohne Null eine Gruppe. Die Restklassen ganzer Zahlen modulo p, geschrieben 𝔽p oder GF(p), bilden somit einen endlichen Körper (auch Galoiskörper, engl. Galois field). Außerdem gibt es für jede Primzahl p und jede natürliche Zahl n (bis auf Isomorphie) genau einen Körper mit pn Elementen, der mit 𝔽pn oder GF(pn) bezeichnet wird. In der Elliptic Curve Cryptography sind insbesondere die beiden Spezialfälle n=1 und p=2 von Bedeutung, also GF(p) und GF(2n). Mit diesen lassen sich ECC-Verfahren am besten realisieren.[3]

Elliptische Kurven

Addition von Punkten P und Q auf einer elliptischen Kurve
Verdoppelung eines Punktes P auf einer elliptischen Kurve

Eine elliptische Kurve (EC) ist eine Menge von Punkten (x,y) mit Werten aus einem Körper K, die eine kubische Gleichung der folgenden Form erfüllen:

y2=x3+ax+b. (Kurze Weierstraß-Gleichung)

Die (reellen) Koeffizienten a und b müssen dabei die Bedingung 4a3+27b20 erfüllen, um Singularitäten auszuschließen.

Eine elliptische Kurve ist eine glatte algebraische Kurve der Ordnung 3 in der projektiven Ebene. Dargestellt werden elliptische Kurven meist als Kurven in der affinen Ebene, sie besitzen aber noch einen zusätzlichen Punkt im Unendlichen, der hier als 𝒪 (sprich „O“) bezeichnet wird, jedoch nicht mit dem Nullpunkt des Koordinatensystems zu verwechseln ist. Über dem Körper K= der reellen Zahlen bilden die Punkte eine Kurve in der reellen Ebene.[4]

Eine wichtige Eigenschaft elliptischer Kurven ist folgende: Schneidet eine Gerade eine solche Kurve, dann gibt es genau drei Schnittpunkte. Dabei treten folgende Fälle auf:

  • Bei einer Geraden, die parallel zur y-Achse verläuft, ist einer der drei Schnittpunkte 𝒪.
  • Bei einer Geraden, welche die Kurve berührt, wird der Berührpunkt als doppelter Schnittpunkt gezählt.
  • Bei allen anderen Geraden sind die Schnittpunkte offensichtlich.[5]

Durch diese Eigenschaft lässt sich mit Hilfe elliptischer Kurven eine Gruppe E(K) definieren:

Sei G die Punktmenge einer elliptischen Kurve, vereinigt mit dem Punkt 𝒪 im Unendlichen. Man definiert die Gruppenoperation, die üblicherweise als Punktaddition bezeichnet wird, wie folgt:

  • Um die Summe zweier Punkte P und Q zu berechnen, zeichne eine Gerade durch P und Q (falls P=Q, zeichne die Tangente an EC durch P)
  • Finde den dritten Schnittpunkt R dieser Geraden mit der Kurve EC. (Falls die Gerade parallel zur y-Achse läuft, so ist dieser Schnittpunkt 𝒪.)
  • Die Summe P+Q ist der Punkt von EC, der durch Spiegelung von R an der x-Achse entsteht. Die Spiegelung von 𝒪 ist wiederum 𝒪.[4]

Das neutrale Element der Gruppe ist 𝒪. Es gilt P+𝒪=𝒪+P=P für alle Punkte P der elliptischen Kurve. Das Inverse eines Punktes erhält man, indem man an ihn eine Gerade anlegt, die parallel zur y-Achse verläuft. Ist diese Gerade eine Tangente, dann ist der Punkt selbst sein inverses Element.[4][5]

Der Punkt P+P wird mit 2P bezeichnet, entsprechend definiert man kP=P++P als k-fache Addition des Punktes P. Ist P nicht der 𝒪-Punkt, kann auf diese Weise jeder Punkt der Kurve E erreicht werden (d. h., zu jedem Punkt Q auf der Kurve existiert eine natürliche Zahl k mit Q=kP), wenn man die richtigen Erzeugenden P der Gruppe kennt. (Siehe auch Abschnitt Gruppenoperation im Artikel „Elliptische Kurve“)

Die Aufgabe, aus gegebenen Punkten P,Q diesen Wert k zu ermitteln, wird als Diskreter-Logarithmus-Problem der elliptischen Kurven (kurz ECDLP) bezeichnet. Es wird angenommen, dass das ECDLP (bei geeigneter Kurvenwahl) schwer ist, d. h. nicht effizient gelöst werden kann. Damit bieten sich elliptische Kurven an, um auf ihnen asymmetrische Kryptosysteme zu realisieren.

Sehr anschaulich ist die Konstruktion für K=, da die Punkte in der reellen Ebene ausgedrückt werden können. Diese Konstruktion kann jedoch auf jeden Körper übertragen werden. In der Kryptographie sind elliptische Kurven der Form E(GF(p)) und E(GF(2n)) von Bedeutung.

Beispiel:

Sei die elliptische Kurve

E:y2=x3+x+1

über dem Körper K=GF(5) gegeben.[6]

Es ist also a=1 und b=1 und es gilt 4a3+27b2=31 mod 5=10. Die Menge aller (x,y) mit x,yGF(5) und y2=x3+x+1 ist also zusammen mit 𝒪 eine elliptische Kurve über GF(5).

Daraus ergeben sich die folgenden Punkte:

x x3+x+1 mod 5 y Punkte
0 1 1 und 4(=1 mod 5) (0,1), (0,4)
1 3
2 1 1 und 4 (2,1), (2,4)
3 1 1 und 4 (3,1), (3,4)
4 4 2 und 3 (4,2), (4,3)
𝒪 𝒪 𝒪

Diffie-Hellman auf Basis elliptischer Kurven

Bei Kryptosystemen auf Basis elliptischer Kurven werden statt Rechenoperationen in GF(p) Rechenoperationen in E(GF(p)) oder E(GF(2n)) verwendet. Wiederum existieren in diesen Körpern effiziente Algorithmen zur Berechnung der Potenzfunktion, für die Berechnung des Logarithmus dagegen nicht.

Statt auf einen Modulus müssen sich Alice und Bob nun auf eine bestimmte elliptische Kurve einigen, d. h. auf einen Körper GF(p) (bzw. GF(2n)) und eine darauf aufbauende Gruppe E(GF(p)) (bzw. E(GF(2n))). Alle Parameter, die im Exponenten stehen, sind (wie bisher) natürliche Zahlen, während die Basis einer Potenz ein Element von E(GF(p)) ist.[7]

Eine Exponentiation über E(GF(p)) ist aufwendiger als eine Exponentiation über GF(p), da sie sich aus mehreren Rechenoperationen in GF(p) zusammensetzt. Dafür ist auch die Berechnung des Logarithmus in E(GF(p)) wesentlich „schwieriger“. Der zentrale Vorteil bei der Verwendung von E(GF(p)) ist daher, dass Alice und Bob bei gleicher Sicherheit eine Gruppe kleinerer Mächtigkeit verwenden können. Dies hat kürzere Schlüssellängen, kürzere Signaturen und kürzere Rechenzeiten zur Folge.[7]

Die Komplexität des Logarithmus nimmt in E(GF(p)) mit p linear zu, in GF(p) dagegen „nur“ logarithmisch. Eine Schlüssellänge von 1.024 Bit auf Basis des diskreten Logarithmus kann beispielsweise durch Verwendung elliptischer Kurven auf 200 Bit verkürzt werden, ohne dass dabei Sicherheitseinbußen entstehen. Die Einsparung an Rechenzeit wird meist um einen Faktor 10 angegeben.[7]

  1. Victor S. Miller: Use of Elliptic Curves in Cryptography. In: Advances in Cryptology – CRYPTO ’85 Proceedings (= Lecture Notes in Computer Science. 218). Springer, 1986, S. 417–426
  2. Neal Koblitz: Elliptic Curve Cryptosystems. In: Mathematics of Computation 48, Nr. 177, American Mathematical Society, 1987, S. 203–209.
  3. Schmeh: Kryptografie. 5. Aufl., 2013, S. 212.
  4. Hochspringen nach: 4,0 4,1 4,2 Beutelspacher, Schwenk, Wolfenstetter: Moderne Verfahren der Kryptographie. 8. Aufl., 2015, S. 148.
  5. Hochspringen nach: 5,0 5,1 Schmeh: Kryptografie. 5. Aufl., 2013, S. 214–215.
  6. Washington: Elliptic Curves. 2. Aufl., 2008, S. 95–97.
  7. Hochspringen nach: 7,0 7,1 7,2 Schmeh: Kryptografie. 5. Aufl., 2013, S. 215.