Angenommen, die Lauscherin Eve erfährt an der unsicheren Leitung die Zahlen <math>p</math>, <math>g</math>, <math>A</math> und <math>B</math>, aber nicht die diskreten Logarithmen <math>a</math> von <math>A</math> und <math>b</math> von <math>B</math> zur Basis <math>g</math>. Mit der Kenntnis von <math>a</math> und <math>b</math> wäre es für sie eine leichte Aufgabe, den Schlüssel <math>K=g^{ab}\ \bmod\ p</math> zu bestimmen. Die Zahlen <math>a</math> und <math>b</math> herauszufinden ist jedoch sehr schwer, wenn die Zahlen <math>p</math>, <math>a</math> und <math>b</math> sehr groß sind, beispielsweise Zahlen mit mehreren hundert [[Stellenwertsystem|Stellen]] im [[Dezimalsystem]].<ref name="Freiermuth-S200" /> Aus dieser Problemstellung ergibt sich das Computational-Diffie-Hellman-Problem:
: ''Wenn ein Element <math>g</math> einer Gruppe und die Werte <math>A=g^a</math> und <math>B=g^b</math> gegeben sind, welchen Wert hat dann <math>K=g^{ab}</math>, mit <math>a,b</math> unbekannt ?''
Da dieses Problem in bestimmten Gruppen nur mit enormem Rechenaufwand zu lösen ist, kann ein Angreifer aus den beiden beim Diffie-Hellman-Merkle-Schlüsselaustausch übertragenen Nachrichten nicht den erzeugten Schlüssel berechnen.
Das Diffie-Hellman-Problem ist eng verwandt mit dem [[Diskreter-Logarithmus-Problem]]. Diskrete Logarithmen zu berechnen ist die einzige bekannte Methode, um das DHM-Verfahren zu brechen. Solange dies nicht in vertretbarer Zeit lösbar ist, ist es für einen Angreifer unmöglich, den geheimen Schlüssel zu bestimmen. Es ist allerdings nicht bewiesen, dass dies tatsächlich die einzige Methode ist, ob also jemand, der das Diffie-Hellman-Problem lösen könnte, auch diskrete Logarithmen effizient berechnen könnte.<ref name="Buchmann-S190">Buchmann: ''Einführung in die Kryptographie.'' 6. Aufl., 2016, S. 190.</ref> [[Ueli Maurer (Kryptologe)|Ueli Maurer]] hat gezeigt, dass beide Probleme zumindest unter bestimmten Voraussetzungen äquivalent sind.<ref name="MAURER">[[Ueli Maurer (Kryptologe)|Ueli Maurer]]: ''Towards the equivalence of breaking the Diffie-Hellman protocol and computing discrete logarithms.'' In: ''Advances in Cryptology – Crypto '94.'' Springer-Verlag, 1994, S. 271–281.</ref>
==== Decisional-Diffie-Hellman-Problem (DDH) ====
Soll es für einen Angreifer unmöglich sein, aus den öffentlich verfügbaren Informationen irgendwelche Informationen über den transportierten Schlüssel zu gewinnen, muss das Decisional-Diffie-Hellman-Problem (DDH) unangreifbar sein. Dieses Problem lässt sich folgendermaßen beschreiben:
: Ein Angreifer erhält drei Zahlen: <math>A=g^a\ \bmod\ p</math>, <math>B=g^b\ \bmod\ p</math> und <math>C=g^c\ \bmod\ p</math>. Dabei wurden entweder <math>a</math>, <math>b</math> und <math>c</math> zufällig und gleichverteilt in <math>\{0,...,p-2 \}</math> gewählt oder <math>c=ab\ \bmod\ p</math> gesetzt. Im zweiten Fall heißt <math>(A,B,C)</math> Diffie-Hellman-Tripel. Der Angreifer muss entscheiden, ob ein solches Tripel vorliegt oder nicht. Kann er das nicht, ist es ihm unmöglich, aus <math>g^a</math> und <math>g^b</math> Rückschlüsse auf <math>g^{ab}</math> zu ziehen.<ref>Buchmann: ''Einführung in die Kryptographie.'' 6. Aufl., 2016, S. 190. Siehe ferner: Dan Boneh: ''The Decision Diffie–Hellman Problem.'' In: ''Proceedings of the Third Algorithmic Number Theory Symposium'' (Lecture Notes in Computer Science, Vol. 1423) Springer-Verlag, 1998, S. 48–63.</ref>
Das Problem besteht also darin, bei gegebenem <math>g^a\ \bmod\ p</math>, <math>g^b\ \bmod\ p</math> und <math>g^c\ \bmod\ p</math> zu entscheiden, ob <math>g^c = g^{ab}</math> ist.
Wer das Computational-Diffie-Hellman-Problem lösen kann, ist offensichtlich auch dazu in der Lage, das Decisional-Diffie-Hellman-Problem zu lösen. Für den umgekehrten Fall ist das nicht klar.
Bei einer Auswahl von <math>g</math> als [[Primitivwurzel]] kann das Decisional-Diffie-Hellman-Problem angegriffen werden. Dies liegt in folgendem Theorem begründet:
: Sei <math>p</math> eine Primzahl, sei <math>g</math> eine Primitivwurzel modulo <math>p</math> und seien <math>a, b \in \{0,...,p-2 \}</math>. Dann ist <math>g^{ab}</math> genau dann ein quadratischer Rest modulo <math>p</math>, wenn <math>g^a</math> oder <math>g^b</math> ein quadratischer Rest ist modulo <math>p</math>.
Das Theorem folgt daraus, dass eine Potenz von <math>g</math> genau dann ein quadratischer Rest modulo <math>p</math> ist, wenn der Exponent gerade ist.<ref name="Buchmann-S190" />
Ein Angreifer kann also prüfen, ob das Kriterium aus diesem Theorem erfüllt ist. Er kann zwar nicht immer entscheiden, ob ein Diffie-Hellman-Tripel vorliegt, er antwortet aber zu 75 % richtig. Sein Vorteil gegenüber reinem Raten beträgt also 50 %.<ref>Für einen Beweis siehe Buchmann: ''Einführung in die Kryptographie.'' 6. Aufl., 2016, S. 191–192.</ref>
=== Wahl der öffentlichen Zahlen ===
==== DHM-Primzahl p ====
Die Sicherheit des Verfahrens basiert nicht zuletzt auf der Länge der gewählten Zahlen. So muss die Primzahl <math>p</math> dermaßen gewählt werden, dass diskrete Logarithmen modulo <math>p</math> mit derzeit bekannten Methoden nicht (effizient genug) berechnet werden können. Je größer die verwendete Primzahl, desto sicherer das Verfahren, aber auch desto aufwendiger.<ref>Buchmann: ''Einführung in die Kryptographie.'' 6. Aufl., 2016, S. 192–193.</ref> Das [[Bundesamt für Sicherheit in der Informationstechnik]] empfiehlt im Fall eines ''Einsatzzeitraum[s] über das Jahr 2022 hinaus'' für <math>p</math> eine Schlüssellänge von mindestens 3000 Bit (Stand 2017).<ref>Bundesamt für Sicherheit in der Informationstechnik: [https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR02102/BSI-TR-02102.pdf?__blob=publicationFile#table.3.1 BSI – Technische Richtlinien: Kryptographische Verfahren: Empfehlungen und Schlüssellängen] Version 2016-01, Stand 15. Februar 2016.</ref>
Die DHM-Primzahl <math>p</math> muss zudem so gewählt werden, dass Algorithmen zur Berechnung des diskreten Logarithmus kein leichtes Spiel haben. So muss beispielsweise vermieden werden, dass <math>p-1</math> nur kleine Primfaktoren hat. Ansonsten kann nämlich der [[Pohlig-Hellman-Algorithmus]] angewendet werden, der nicht von der Gruppenordnung, sondern vom größten Faktor der Gruppenordnung abhängt. Außerdem sollte <math>p</math> für das [[Zahlkörpersieb]] möglichst ungeeignet sein. Dies ist der Fall, wenn es ein irreduzibles Polynom vom Grad 5 gibt, das sehr kleine Koeffizienten und eine Nullstelle <math>\bmod\ p</math> hat.<ref name="Buchmann-S193">Buchmann: ''Einführung in die Kryptographie.'' 6. Aufl., 2016, S. 193.</ref>
==== „Generator“ g ====
Die Zahl <math>g</math> sollte so gewählt werden, dass alle Zahlen zwischen <math>1</math> und <math>p-1</math> als Resultat der modularen Potenz <math>g^a\ \bmod\ p</math> in Frage kommen. Erst dann ist es zu aufwändig, alle Zahlen durchzuprobieren (wenn darüber hinaus die Primzahl <math>p</math> groß genug gewählt worden ist). Diese Eigenschaft erfüllt die Zahl <math>g</math>, wenn sie ein Primitivwurzel zum Modul <math>p</math> ist, d. h. ein Erzeuger der Gruppe <math>\Z_p^{*}</math>.<ref name="Freiermuth-S202" /> Wenn Alice und Bob beispielsweise <math>g=1</math> wählen, so funktioniert das Verfahren zwar noch immer, doch der Schlüssel <math>K</math> ist auf jeden Fall <math>1</math>, denn <math>1</math> ist genau der Generator der Untergruppe von <math>\Z_p^{*}</math> mit einem Element. Ähnlich unsicher ist das Verfahren, wenn Alice und Bob für <math>g</math> einen Generator einer anderen kleinen Untergruppe wählen. Bei einem Generator einer großen Untergruppe ist das Verfahren sicherer, am besten wird ein Generator der ganzen Gruppe gewählt.<ref name="Schmeh-S187" />
Wie im Abschnitt „Prime Restklassengruppe und Primitivwurzel“ gezeigt, lässt sich eine Primitivwurzel relativ leicht finden, wenn man die DHM-Primzahl als <math>p = 2 \times q + 1</math> mit einer Primzahl <math>q</math> wählt. Wie jedoch im vorherigen Abschnitt gezeigt, kann das Decisional-Diffie-Hellman-Problem angegriffen werden, wenn man <math>g</math> als Primitivwurzel wählt.
{{Zitat|Wählt man statt dessen <math>g</math> so, dass die Restklasse von <math>g</math> modulo <math>p</math> Primzahlordnung <math>q</math> hat mit einer hinreichend großen Primzahl <math>q</math>, dann gilt DDH nach heutiger Auffassung als schwierig.|Johannes Buchmann, 2016<ref name="Buchmann-S193" />}}
==== Verwendung fester Gruppen und Primzahlen ====
Da die Erzeugung sicherer Primzahlen rechenaufwendig ist, verwenden viele Implementierungen eine feste Primzahl <math>p</math>.<ref name="Adrian2015">Adrian u. a.: ''Imperfect Forward Secrecy: How Diffie-Hellman Fails in Practice.'' In: ''Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security.'' 2015, S. 5–15.</ref> Einige Netzwerkprotokolle wie etwa [[Internet Key Exchange]] geben eine Liste von möglichen Gruppen und deren Primzahl vor.
Die Verwendung fester Gruppen und Primzahlen kann ein Angreifer ausnutzen, um einen Großteil der Berechnung zum Brechen des diskreten Logarithmus vorab durchzuführen und um mehrere Ziele gleichzeitig anzugreifen. Der Zahlkörpersieb-Algorithmus besteht aus vier Schritten, wobei die ersten drei Schritte lediglich die Primzahl <math>p</math> benötigen. Ist <math>p</math> bekannt, kann ein Angreifer somit den Großteil vorberechnen und die Ergebnisse für jeden auf <math>p</math> basierenden Schlüsselaustausch wiederverwenden. Dadurch kann zum Beispiel der [[Transport Layer Security#Downgrade auf Exportverschlüsselung|Logjam-Angriff]] in TLS, nach einer einwöchigen Vorberechnung, einen 512-Bit-DHM-Schlüsselaustausch in rund 70 Sekunden brechen.<ref name="Adrian2015" />
Nach Schätzungen eines Forscherteams kann ein Angreifer mit Vorberechnung der 10 häufigsten 1024-Bit-Primzahlen den Netzwerkverkehr von 66 % der [[Virtual Private Network|VPNs]], 26 % der [[Secure Shell|SSH]]-Server, 16 % der [[Simple Mail Transfer Protocol|SMTP]]-Server und 24 % der [[Hypertext Transfer Protocol Secure|HTTPS]]-Websites im Internet entschlüsseln. Die Forscher schätzen, dass der Rechenaufwand zum Brechen von 1024-Bit-Diffie-Hellman von einem staatlichen Angreifer wie der [[National Security Agency]] aufgebracht werden kann.<ref name="Adrian2015" />
=== Man-in-the-Middle-Angriff ===
{{Hauptartikel|Man-in-the-Middle-Angriff}}
Der Diffie-Hellman-Merkle-Schlüsselaustausch ist nicht mehr sicher, wenn der Angreifer bei einem [[Man-in-the-Middle-Angriff]] Datenpakete verändern kann. Im Alice-und-Bob-Modell heißt ein solcher Angreifer, der aktiv in das Geschehen eingreifen kann, [[Alice und Bob#Rollenverteilung|Mallory]] (von engl. ''malicious'', dt. i. e. hinterhältig, heimtückisch). Mallory fängt bei einem Man-in-the-Middle-Angriff die von Alice und Bob gesendeten Nachrichten ab und sendet stattdessen jeweils seine eigene Nachricht
:<math>Z = g^z \mod p</math>
weiter, die er aus einer beliebigen Zahl <math>z</math> und den öffentlich bekannten Zahlen <math>g</math> und <math>p</math> berechnet.
[[Datei:Man-in-the-middle attack of Diffie-Hellman key agreement.svg|Man-in-the-Middle-Angriff]]
Nach dem Schlüsselaustausch besitzen die beiden Kommunikationspartner Alice und Bob unterschiedliche Schlüssel <math>K_A</math> und <math>K_B</math>. Im Prinzip wurde zweimal ein DHM-Schlüsselaustausch durchgeführt: einmal zwischen Alice und Angreifer Mallory und einmal zwischen Mallory und Bob. Dabei erlangt Mallory Kenntnis der beiden Schlüssel <math>K_A</math> und <math>K_B</math>.
:<math>K_A = Z^a \bmod p = (g^z)^a \bmod p = (g^a)^z \bmod p = A^z \bmod p</math>
:<math>K_B = Z^b \bmod p = (g^z)^b \bmod p = (g^b)^z \bmod p = B^z \bmod p</math>
Da Alice und Bob im weiteren Verlauf davon ausgehen, mit dem jeweils Anderen zu kommunizieren, kann Mallory die folgende [[Symmetrische Kryptografie|symmetrisch verschlüsselte]] Kommunikation abhören. Diese leitet er dazu weiterhin über sich selbst um. Daten von Alice entschlüsselt Mallory mit <math>K_A</math> und verschlüsselt sie wieder mit <math>K_B</math>, bevor er sie an Bob weiterschickt. Dabei kann Mallory den Nachrichteninhalt sowohl lesen als auch unbemerkt verändern. Die gleiche Vorgehensweise wendet er auch für die Gegenrichtung an.
Um einen solchen Man-in-the-Middle-Angriff auszuschließen, müssen die ausgetauschten Nachrichten [[Authentizität|authentifiziert]] werden. Dazu wird ein Informationsvorsprung benötigt, der über einen authentifizierten Kanal erreicht wird.<ref name="GOLDBELL">[[Shafi Goldwasser]], [[Mihir Bellare]]: ''[https://cseweb.ucsd.edu/~mihir/papers/gb Lecture Notes on Cryptography.]'' 2008, Abschnitt 11.1.5 und 11.2.</ref>
=== Seitenkanalangriffe ===
Ein [[Seitenkanalangriff]] bezeichnet eine kryptoanalytische Methode, die die physische Implementierung eines Kryptosystems in einem Gerät (z. B. einer [[Chipkarte]], eines [[Security-Token]]s oder eines [[Hardware-Sicherheitsmodul]]s) oder in einer [[Software]] ausnutzt. Dabei wird nicht das kryptographische Verfahren selbst, sondern nur eine bestimmte Implementierung angegriffen. Das Prinzip beruht darauf, ein kryptographisches Gerät bei der Ausführung der kryptologischen Algorithmen zu beobachten und Korrelationen zwischen den beobachteten Daten und dem verwendeten Schlüssel zu finden.
==== Zeitangriff ====
Im Jahr 1995 veröffentlichte [[Paul C. Kocher|Paul Kocher]] eine neuartige Methode, mit der es ihm gelang, Implementierungen von Diffie-Hellman, RSA und DSA zu brechen: der Zeitangriff (''timing attack'').<ref>Paul C. Kocher: ''Cryptanalysis of Diffie-Hellman, RSA, DSS, and Other Systems Using Timing Attacks.'' In: ''Advances in Cryptology, Crypto '95'' (15th Annual International Cryptology Conference), Springer-Verlag, 1995, S. 27–31. ([https://citeseerx.ist.psu.edu/doc_view/pid/11e3daf8f3548b6599751235c8c188f89fae1ca6 Online])</ref>
Ziel des Zeitangriffs ist die diskrete Exponentialfunktion. Wenn eine Krypto-Implementierung <math>g^a\ \bmod\ p</math> für irgendwelche größeren Zahlen <math>g</math>, <math>a</math> und <math>p</math> berechnet, dann geschieht dies fast immer mit dem Square-and-Multiply-Algorithmus. Bei diesem ist für jedes Bit von <math>a</math> eine Aktion festgesetzt: Hat das gerade bearbeitete Bit den Wert <math>1</math>, dann ist diese Aktion eine Multiplikation, ansonsten eine Quadrierung. Da die Rechenzeiten für die Multiplikationen länger dauern als für die Quadrierungen, kann Eve aus Zeitmessungen Rückschlüsse auf die Zahl der Einsen in <math>a</math> ziehen. Variiert er die Zahl <math>g</math>, reichen irgendwann die Informationen aus, um <math>a</math> zu berechnen. Schon mit einigen Tausend Zeitmessungen lassen sich entsprechende Implementierungen mit 1024-Bit-Schlüsseln brechen.<ref>Schmeh: ''Kryptografie.'' 5. Aufl., 2013, S. 320–321.</ref>
Um solche Zeitangriffe zu verhindern, müssen jedoch bei der Implementierung lediglich Verzögerungen in den Ver- bzw. Entschlüsselungsprozess eingebaut werden. Mit dem als Blinding genannten Verfahren wird zum Beispiel an einer Stelle des Verfahrens eine Zufallszahl eingerechnet, die an anderer Stelle wieder herausgerechnet wird. Eine andere Möglichkeit besteht darin, den Prozess so zu gestalten, dass er unabhängig vom Eingabewert immer gleich lange dauert.<ref>Schmeh: ''Kryptografie.'' 5. Aufl., 2013, S. 321.</ref>
==== Stromangriff ====
[[Datei:Oscilloscope diagram.png|mini|Bei einem Stromangriff misst ein [[Oszilloskop]] den Stromverbrauch eines Verfahrens.]]
Im Jahr 1998 stellten Paul Kocher, Joshua Jaffe und Benjamin Jun erstmals das Konzept des Stromangriffs vor.<ref>Paul Kocher, Joshua Jaffe, Benjamin Jun: ''Introduction to Differential Power Analysis and Related Attacks.'' In: ''Advances in Cryptology—CRYPTO ’99, 19th Annual International Cryptology Conference.'' (Lecture Notes in Computer Science, Vol. 1666) Springer-Verlang: Berlin, 1999, S. 388–397.</ref> Bei Stromangriffen wird nicht nur die Verarbeitungszeit gemessen, sondern mit einem [[Oszilloskop]] auch der Stromverbrauch. Besonders [[Smartcard]]s sind gegenüber Stromangriffen anfällig, da diese auf eine externe Stromversorgung angewiesen sind. Ein Angreifer misst die Ver- und Entschlüsselungsvorgänge und versucht bestimmte Stellen der Stromverbrauchskurve einzelnen Bestandteilen des Verfahrens zuzuordnen. Auch hier ist der Square-and-Multiply-Algorithmus ein geeignetes Ziel, da sich bei diesem Multiplikationen und Quadrierungen am Stromverbrauch oft gut unterscheiden lassen. Stromangriffe sind etwas aufwendiger in der Durchführung als Zeitangriffe, gelten jedoch als wirkungsvoller.<ref>Schmeh: ''Kryptografie.'' 5. Aufl., 2013, S. 321–322.</ref>
Als Gegenmaßnahme gegen Stromangriffe kann der Hersteller von Krypto-Modulen den Stromverbrauch verschleiern, indem er Dummy-Operationen in einen Ver- bzw. Entschlüsselungsvorgang einbaut. Eine weitere Möglichkeit besteht darin, ein künstliches [[Stromrauschen]] zu erzeugen, das den eigentlichen Stromverbrauch überlagert.<ref>Schmeh: ''Kryptografie.'' 5. Aufl., 2013, S. 323–324.</ref>
== Elliptic Curve Diffie-Hellman (ECDH) ==
== Elliptic Curve Diffie-Hellman (ECDH) ==
Version vom 2. März 2023, 11:03 Uhr
Beschreibung
Der Diffie-Hellman-Schlüsselaustausch oder Diffie-Hellman-Merkle-Schlüsselaustausch bzw. -Schlüsselvereinbarung (auch kurz DHM-Schlüsselaustausch oder DHM-Protokoll[1]) ist ein Protokoll zur Schlüsselvereinbarung.
Es ermöglicht, dass zwei Kommunikationspartner über eine öffentliche, abhörbare Leitung einen gemeinsamen geheimen Schlüssel in Form einer Zahl vereinbaren können, den nur diese kennen und ein potenzieller Lauscher nicht berechnen kann.
Unterschiedliche Varianten des Diffie-Hellman-Merkle-Verfahrens werden heute für die Schlüsselverteilung in den Kommunikations- und Sicherheitsprotokollen des Internets eingesetzt, beispielsweise in den Bereichen des elektronischen Handels.
Dieses Prinzip hat damit eine wichtige praktische Bedeutung.
Das Verfahren wurde von Whitfield Diffie und Martin Hellman entwickelt und im Jahr 1976 unter der Bezeichnung ax1x2 veröffentlicht.
Es handelt sich um das erste der sogenannten asymmetrischen Kryptoverfahren (auch Public-Key-Kryptoverfahren), das veröffentlicht wurde.
Wie erst 1997 bekannt wurde, entwickelten bereits in den frühen 1970er-Jahren Mitarbeiter des britischen Government Communications Headquarters (GCHQ) als Erste asymmetrische Kryptosysteme.
Das GCHQ hat allerdings wegen der Geheimhaltung und wegen des für die Briten aus Sicht der frühen 1970er Jahre fraglichen Nutzens nie ein Patent beantragt.
Der DHM-Schlüsselaustausch zählt zu den Krypto-Systemen auf Basis des diskreten Logarithmus (kurz: DL-Verfahren).
Es existiert bis heute kein „schneller“ Algorithmus zur Berechnung des Exponenten , bei gegebener Basis , Modul und gewünschtem Ergebnis.
Damit prägten die Forscher mit dem Verfahren auch einen neuen Sicherheitsbegriff in der Kryptographie, der darauf basiert, dass kein effizienter Algorithmus für die Kryptoanalyse existiert: Ein Kommunikationsprotokoll ist sicher, wenn dessen Kryptoanalyse so viel Zeit und Arbeit bedeutet, dass diese in der Praxis nicht ausgeführt werden kann.
Das Problem, aus den beiden Nachrichten der Kommunikationspartner den geheimen Schlüssel zu berechnen, wird als Diffie-Hellman-Problem bezeichnet.
Der DHM-Schlüsselaustausch ist allerdings nicht mehr sicher, wenn sich ein Angreifer zwischen die beiden Kommunikationspartner schaltet und Nachrichten verändern kann.
Dabei werden die beim Originalverfahren eingesetzten Operationen (Multiplikation und Exponentiation) auf dem endlichen Körper ersetzt durch Punktaddition und Skalarmultiplikation auf elliptischen Kurven.
Das -fache Addieren eines Punktes zu sich selbst (also die Multiplikation mit dem Skalar ) wird mit bezeichnet und entspricht einer Exponentiation im ursprünglichen Verfahren.
Das Prinzip wurde Mitte der 1980er Jahre von Victor S. Miller und Neal Koblitz unabhängig voneinander vorgeschlagen.
Schlüsseltauschproblem
Kryptografiesverfahren, bei denen zwei Teilnehmer denselben geheimen Schlüssel verwenden, nennt man symmetrische Verfahren. Seien Alice und BobSender und Empfänger von Nachrichten über einen abhörbaren Kanal und sei Eve (von engl. eavesdropper, zu deutsch Lauscher/Lauscherin) ein Lauscher, der versucht, Nachrichten mitzulesen. Bei einem guten Kryptografiesverfahren ist es für Eve unmöglich, eine Nachricht ohne Kenntnis des Schlüssels zu entschlüsseln, selbst bei Kenntnis des Kryptografiesverfahrens. So besagt Kerckhoffs’ Prinzip, dass die Sicherheit eines Verfahrens allein auf der Geheimhaltung eines Schlüssels beruhen muss (und nicht auf der Geheimhaltung des Kryptografiesalgorithmus). Eine Nachricht, die verschlüsselt wird, heißt Klartext, der verschlüsselte Text Geheimtext.[2]
Wichtige Voraussetzung für eine sichere symmetrische Kommunikation ist also, dass der Schlüssel zwischen Alice und Bob bereits über einen sicheren Weg ausgetauscht wurde, beispielsweise durch einen vertrauenswürdigen Kurier oder bei einem direkten Treffen. Beim Schlüsseltauschproblem stellt sich nun folgendes Problem: Alice will mit Bob, der sich beispielsweise in Übersee befindet, mit einem symmetrischen Kryptografiesverfahren kommunizieren. Die beiden sind über eine unsichere Leitung verbunden und haben keinen Schlüssel ausgetauscht. Wie vereinbaren nun Alice und Bob über einen unsicheren Kanal einen gemeinsamen geheimen Schlüssel?[3]
Ein manueller Schlüsselaustausch hat den Nachteil, dass er recht unübersichtlich wird, wenn eine größere Anwendergruppe untereinander verschlüsselt kommunizieren will. Bei Kommunikationspartnern sind Schlüssel erforderlich, wenn jeder mit jedem kommunizieren will. Bei 50 Kommunikationspartnern wären somit insgesamt 1.225 Schlüssel nötig.[4]
Das Diffie-Hellman-Verfahren liefert eine elegante Lösung für diese Probleme: Es erlaubt Alice und Bob, einen geheimen Schlüssel über die öffentliche, nicht gesicherte Leitung zu vereinbaren, ohne dass Eve den Schlüssel erfährt.[3]
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 -fache Addieren eines Punktes zu sich selbst (also die Multiplikation mit dem Skalar ) wird mit bezeichnet und entspricht einer Exponentiation im ursprünglichen Verfahren. Das Prinzip wurde Mitte der 1980er Jahre von Victor S. Miller[5] und Neal Koblitz[6] unabhängig voneinander vorgeschlagen.
Körper
Ein Körper ist eine Menge 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 bildet die Menge der Zahlen zwischen und sowohl mit der Modulo-Addition als auch mit der Modulo-Multiplikation ohne Null eine Gruppe. Die Restklassen ganzer Zahlen modulo , geschrieben oder , bilden somit einen endlichen Körper (auch Galoiskörper, engl. Galois field). Außerdem gibt es für jede Primzahl und jede natürliche Zahl (bis auf Isomorphie) genau einen Körper mit Elementen, der mit oder bezeichnet wird. In der Elliptic Curve Cryptography sind insbesondere die beiden Spezialfälle und von Bedeutung, also und . Mit diesen lassen sich ECC-Verfahren am besten realisieren.[7]
Elliptische Kurven
Eine elliptische Kurve (EC) ist eine Menge von Punkten mit Werten aus einem Körper , die eine kubische Gleichung der folgenden Form erfüllen:
Die (reellen) Koeffizienten und müssen dabei die Bedingung 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 der reellen Zahlen bilden die Punkte eine Kurve in der reellen Ebene.[8]
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 -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.[9]
Durch diese Eigenschaft lässt sich mit Hilfe elliptischer Kurven eine Gruppe definieren:
Sei 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 und zu berechnen, zeichne eine Gerade durch und (falls , zeichne die Tangente an EC durch )
Finde den dritten Schnittpunkt dieser Geraden mit der Kurve EC. (Falls die Gerade parallel zur -Achse läuft, so ist dieser Schnittpunkt .)
Die Summe ist der Punkt von EC, der durch Spiegelung von an der -Achse entsteht. Die Spiegelung von ist wiederum .[8]
Das neutrale Element der Gruppe ist . Es gilt für alle Punkte der elliptischen Kurve. Das Inverse eines Punktes erhält man, indem man an ihn eine Gerade anlegt, die parallel zur -Achse verläuft. Ist diese Gerade eine Tangente, dann ist der Punkt selbst sein inverses Element.[8][9]
Der Punkt wird mit bezeichnet, entsprechend definiert man als -fache Addition des Punktes . Ist nicht der -Punkt, kann auf diese Weise jeder Punkt der Kurve E erreicht werden (d. h., zu jedem Punkt auf der Kurve existiert eine natürliche Zahl mit ), wenn man die richtigen Erzeugenden der Gruppe kennt. (Siehe auch Abschnitt Gruppenoperation im Artikel „Elliptische Kurve“)
Die Aufgabe, aus gegebenen Punkten diesen Wert 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 , 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 und von Bedeutung.
Es ist also und und es gilt . Die Menge aller mit und ist also zusammen mit eine elliptische Kurve über .
Daraus ergeben sich die folgenden Punkte:
Punkte
und
,
–
–
und
,
und
,
und
,
–
Diffie-Hellman auf Basis elliptischer Kurven
Bei Kryptosystemen auf Basis elliptischer Kurven werden statt Rechenoperationen in Rechenoperationen in oder 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 (bzw. ) und eine darauf aufbauende Gruppe (bzw. ). Alle Parameter, die im Exponenten stehen, sind (wie bisher) natürliche Zahlen, während die Basis einer Potenz ein Element von ist.[11]
Eine Exponentiation über ist aufwendiger als eine Exponentiation über , da sie sich aus mehreren Rechenoperationen in zusammensetzt. Dafür ist auch die Berechnung des Logarithmus in wesentlich „schwieriger“. Der zentrale Vorteil bei der Verwendung von 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.[11]
Die Komplexität des Logarithmus nimmt in mit linear zu, in 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.[11]
Ephemeral Diffie-Hellman
Im Zusammenhang des KryptografiesprotokollsTransport Layer Security (TLS) bezeichnet Ephemeral Diffie-Hellman (: kurzlebig, flüchtig) die Verwendung von Diffie-Hellman mit jeweils neuen Parametern für jede neue TLS-Sitzung. Bei statischem Diffie-Hellman werden für jede TLS-Sitzung dieselben Parameter wiederverwendet, die sich aus einem Public-Key-Zertifikat herleiten. In beiden Fällen wird derselbe Algorithmus verwendet und lediglich die Parameter unterscheiden sich.
Die Verwendung von Ephemeral Diffie-Hellman zur Aushandlung eines symmetrischen Sitzungsschlüssels bietet Forward Secrecy, im Gegensatz zur verschlüsselten Übertragung eines Sitzungsschlüssels mit einem Public-Key-Kryptografiesverfahren, zum Beispiel RSA.
Steven Levy: The Open Secret – Public key cryptography – the breakthrough that revolutionized email and ecommerce – was first discovered by American geeks. Right? Wrong. In: WIRED (veröffentlicht: 4. Januar 1999; abgerufen: 9. Mai 2016)
Einzelnachweise
↑So u. a. Yiu Shing Terry Tin u. a.: Provably Secure Mobile Key Exchange: Applying the Canetti-Krawczyk Approach. In: Rei Safavi-Naini, Jennifer Seberry: Information Security and Privacy. 8th Australasian Conference, ACISP 2003, Springer: Berlin, Heidelberg, 2003, S. 166–179.
↑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
↑Neal Koblitz: Elliptic Curve Cryptosystems. In: Mathematics of Computation 48, Nr. 177, American Mathematical Society, 1987, S. 203–209.