Playground für elliptische Kurven
Jeder ECDSA-Schlüssel ist ein Skalar und eine wiederholte Punktaddition. Hier läuft dieselbe Arithmetik über einem Körper, der klein genug ist, um ihn zu zeichnen: Wähle eine Kurve, addiere Punkte, verschiebe k und sieh zu, wie kG herumspringt – und erfahre dann, warum der Rückweg der schwierige Teil ist.
100 % lokal – alles läuft in deinem Browser, nichts wird an einen Server gesendet
Groß genug, dass die Punktwolke nicht mehr wie ein Muster aussieht, klein genug, dass eine vollständige Suche ein paar Dutzend Schritte braucht. Die 100 Punkte dieser Kurve bilden keinen einzigen Zyklus – der längste Durchlauf, den ein Generator hier erzeugt, hat die Länge 50.
y² = x³ + 2x + 3 über F₉₇ – alle Punkte eingezeichnet
Klicke auf einen beliebigen Punkt, um ihn zum Generator G zu machen. Die gestrichelte Linie ist y = p/2: Jeder Punkt hat einen an ihr gespiegelten Partner, und dieser Partner ist sein Inverses −P. Punkte mit y = 0 in der untersten Reihe haben keinen Partner: Jeder von ihnen ist zu sich selbst invers.
Generator und Skalar
1G = 1 × (0, 10)
(0, 10)
Vorwärts ist billig: Double-and-Add
Niemand berechnet 1G, indem er G 0 Mal zu sich selbst addiert. Schreibe k binär, dann brauchst du nur eine Verdopplung pro Bit plus eine Addition pro 1-Bit – die Idee hinter jeder ECDSA-Implementierung, die darauf noch Fenstertechniken (Windowing) und zeitkonstante Verarbeitung aufsetzt.
Rückwärts ist der schwierige Teil
Die umgekehrte Frage – gegeben G und 1G, finde k – ist das Problem des diskreten Logarithmus auf elliptischen Kurven. Auf einer so kleinen Kurve ist es überhaupt kein Problem: Geh einfach die Folge ab.
Auf diese letzte Zahl kommt es an. Eine Maschine mit 10⁹ Kurvenoperationen pro Sekunde, 10⁹-fach parallel betrieben, bräuchte immer noch etwa 10¹³ Jahre – mehrere Hundert Mal so lange, wie das Universum heute alt ist. Ein schnellerer allgemeiner Algorithmus gegen eine gut gewählte Kurve ist öffentlich nicht bekannt; auf dieser Annahme – nicht auf irgendeiner Geheimhaltung der Formeln – beruht ein ECDSA-Schlüssel.
From the playground to a real key
Nothing changes between this page and a production key except the size of the numbers. secp256k1 — the curve behind Bitcoin and Ethereum — is y² = x³ + 7, the same equation as the mini-curve above, over a prime just under 2²⁵⁶ instead of 127. P-256, the curve in most TLS certificates and passkeys, is y² = x³ − 3x + b over a different 256-bit prime. Both have a published generator point G and a group order n of about 2²⁵⁶.
A key pair is exactly the two things the Scalar multiplication tab shows. The private key is the scalar k: a random integer in 1 … n − 1. The public key is the point kG: the generator added to itself k times, computed by the same double-and-add ladder, about 256 doublings and a couple of hundred additions. Publishing kG reveals nothing usable about k for the same reason the slider does not — the only known way back is to search, and the search space is the size of the group.
Signing adds one more scalar: a per-signature nonce, multiplied by G to produce r, with s tying the message hash and the private key together. That is why nonce handling is the sharp edge of ECDSA — the arithmetic on this page is unforgiving of a repeated random value. Generate real key pairs and signatures with the Test Vector Generator, or read how this compares with the factoring problem in ECDSA vs RSA.
How it works
The playground enumerates every solution of y² = x³ + ax + b modulo a small prime p by squaring each field element once and matching the results against the right-hand side — a few thousand operations, which is why the plot appears instantly and why the same approach is hopeless for a 256-bit prime. Point addition uses the standard chord-and-tangent formulas with a modular inverse computed by the extended Euclidean algorithm, and kG uses double-and-add, the same ladder a real signing routine walks.
Two sanity checks run on the arithmetic itself: the number of points found always lands inside the interval Hasse's theorem allows around p + 1, and the order of every point divides the group order, as Lagrange requires. The real-number tab draws the identical formulas with ordinary floating-point math, which is only ever a teaching aid — cryptography needs the exactness of integers modulo a prime. Everything is computed locally in your browser; the page makes no network requests and has no inputs worth keeping.