ECDH auf einer kleinen Kurve
Berechne den gemeinsamen Kurvenpunkt getrennt für Alice und Bob und erkunde die Ordnung des Basispunkts.
About this tool
Dieses Werkzeug zeigt elliptisches Diffie–Hellman auf der festen Kurve y² = x³ + 2x + 3 über dem endlichen Körper F₉₇. Die Koordinaten sind Reste von 0 bis 96; gerechnet wird modulo 97. Im Diagramm stehen 99 endliche, diskrete Punkte, keine Abtastpunkte einer stetigen reellen Kurve. Zusammen mit dem Punkt im Unendlichen O hat die Kurve 100 Punkte. O ist das neutrale Gruppenelement und besitzt keine endlichen x/y-Koordinaten: Es ist nicht (0,0) und wird niemals an einer Pixelposition gezeichnet.
Der feste Basispunkt ist G = (3,6). Sein Zyklus lautet 0G = O, G = (3,6), 2G = (80,10), 3G = (80,87), 4G = (3,91) und 5G = O. Daher ist ord(G) = 5, während die gesamte Kurve die Ordnung #E = 100 hat. Der Cofaktor ist #E/ord(G) = 20. Diese drei Größen beschreiben Verschiedenes. Private Skalare a und b müssen ganze Zahlen von 1 bis 4 sein: die von null verschiedenen Skalare unterhalb der Basispunktordnung. Sie werden weder still modulo 97 reduziert noch gerundet.
Alice berechnet ihren öffentlichen Punkt A = aG, Bob berechnet B = bG. Beide tauschen A und B aus. Anschließend berechnet Alice S_A = aB und Bob unabhängig S_B = bA; beide sind gleich abG. Die Tabelle zeigt alle vier Skalarmultiplikationen mit den tatsächlichen Eingaben und beiden Endpunkten. Multiplikation bedeutet hier wiederholte elliptische Gruppenaddition, keine Multiplikation jeder einzelnen Koordinate. Die privaten Eingaben und Ergebnisse sind auf dieser Lehrseite sichtbar, damit die Rechnungen nachvollziehbar bleiben.
Berechnen erstellt Diagramm und Austausch. Die drei Beispiele verwenden a/b = 2/3, 1/4 und 2/2; das zweite liefert inverse öffentliche Punkte, das dritte gleiche öffentliche Punkte. Ändern eines privaten Skalars oder Auswählen eines anderen Beispiels entfernt das alte Ergebnis. Ergebnis leeren behält die Eingaben. Grün markiert G; Alices A, Bobs B und der gemeinsame Punkt besitzen verschieden große Ringe. Auch überlagerte Ringe behalten ihre Rollen, ergänzt durch Textlegende und Zahlenkoordinaten.
Öffne Vielfache von G und bewege den ganzzahligen Regler von 0 bis 5. Der orange Probenring markiert kG, die zugehörige Tabellenzeile wird hervorgehoben. Bei k = 0 oder 5 fehlt der Ring; O steht als Text außerhalb des Diagramms. Nur die Probe ändert sich, der endliche Punktsatz und der Austausch bleiben fest. Gültige Einstellungen können lokal gespeichert werden. Beim Zurückkehren innerhalb der App können Ergebnis, gewähltes Vielfaches und geöffnete Details erhalten bleiben. Neuladen stellt die Einstellungen wieder her und wartet auf Berechnen.
Diese sehr kleine Kurve ist absichtlich unsicher und keine Empfehlung sicherer ECDH-Parameter. Das Werkzeug zeigt einen gemeinsamen Punkt; es implementiert keine Authentifizierung, sichere Zufallserzeugung privater Skalare, Schlüsselableitung oder produktive Verschlüsselung. Die Beispiel-Skalare können in den lokalen App-Einstellungen gespeichert werden. Beim echten ECDH-Primitiv muss O als gemeinsames Ergebnis abgelehnt werden; der Standard leitet danach ein Körperelement aus der x-Koordinate des Punkts ab. Verwende die Beispiele nicht als Schlüssel.
Quelle: SEC 1: Elliptic Curve Cryptography, Version 2.0, §2.2.1 zu Kurvengruppe und neutralem Element; §3.1.1 zu Domänenparametern, Ordnung und Cofaktor; §3.2.1 zu privaten Skalaren und öffentlichen Punkten; §3.3.1 zum ECDH-Primitiv und zur Ablehnung von O.