Zum Inhalt springen

Seeds der NIST-Kurve P-256 auf einen lrand48-Lauf von 1997 zurückgeführt

Anthropic hat den Seed der NIST-Kurve P-256 auf einen lrand48-Lauf zurückgeführt, der am 16. August 1997 startete, und eine Prämie von 36.864 $ beansprucht. Der Fund bricht die Kurven nicht.

Von Tech AI Wire Team

3 Min. Lesezeit

XLinkedIn
Anthropics Collage zur Forschung über die Kurven-Seeds: ein Sonnenblumenkern auf zerrissenem grünem und anthrazitfarbenem Papier neben einem violetten Papierstreifen auf rosa Rasterhintergrund.
Foto: Anthropic

Die Zahlen

bounty, donated to Let's Encrypt's nonprofit ISRG
$36,864
candidate number of the published P-256 seed
1,842
year the P-256 generator run started
1997

Ein Team bei Anthropic hat herausgefunden, woher die zufällig wirkenden Seeds hinter NISTs P-256 und anderen elliptischen Standardkurven stammen. Die Seeds wurden 1997 und 1998 von einem alten C-Zufallszahlengenerator namens lrand48 erzeugt, der mit der Uhrzeit des Computers gestartet wurde. Der Fund, eingereicht am 15. Oktober 2026, klärt eine Frage, über die Kryptografen seit Jahren streiten. Die Kurven schwächt er nicht.

Die Prämie und wer sie beansprucht hat

Filippo Valsorda, ein Kryptografie-Ingenieur, hat vor drei Jahren eine Prämie für jeden ausgelobt, der die Seeds erklären kann. Sein Beitrag zur Einlösung sagt, dass Forscher von Anthropic sie am 15. Oktober 2026 um 01:07:51 Uhr UTC beansprucht haben. Die Prämie wurde auf 36.864 $ verdreifacht und geht an ISRG, die gemeinnützige Organisation hinter dem Zertifikatsdienst Let's Encrypt.

Anthropic hat am 16. Oktober einen eigenen Bericht veröffentlicht. Er nennt zehn Forscher, darunter Nicholas Carlini und Steve Weis. Laut Anthropic hat sein Modell Claude das Muster in weniger als einer halben Stunde erkannt.

Warum die Seeds wichtig waren

NISTs Primzahlkurven, P-192 bis P-521, werden für ECDSA genutzt, ein verbreitetes Verfahren für digitale Signaturen. Jede Kurve wurde aus einem 20-Byte-Seed erzeugt. Nach dem Standard ANSI X9.62 wird der Seed mit SHA-1 gehasht, um die Zahlen der Kurve zu erzeugen. Ein zufällig wirkender Seed soll beweisen, dass niemand eine bequeme Kurve gezielt ausgewählt hat.

Der Haken: Niemand wusste, woher die Seeds kamen. Sie wurden 1997 von Jerry Solinas übergeben, einem NSA-Mathematiker, der 2023 starb. Jahrelang hieß es, sie seien Hashes englischer Sätze. Die Sorge war einfach: Wenn die Seeds frei gewählt waren, konnte jemand viele ausprobieren, bis einer eine schwache Kurve ergab. Valsorda schreibt nun, die Ergebnisse "schließen die von Bernstein und Lange beschriebene Technik vollständig aus". Bernstein und Lange sind zwei Forscher, die dieses Risiko untersucht haben.

Wie die Seeds erzeugt wurden

Die Methode war einfach, so beide Berichte. Ein Programm übergab den aktuellen Unix-Zeitstempel, also die Zahl der Sekunden seit 1970, an srand48(). Dann zog es 20-Byte-Kandidaten aus dem Generator und prüfte jeden einzelnen. Kandidaten, die die Regeln von ANSI X9.62 nicht erfüllten, wurden verworfen.

Claudes erster Hinweis war statistisch. Laut Anthropic hatten vier der Seeds in allen 20 ihrer Wörter ein höchstes Bit von null, bei echten Zufallsdaten eine Chance von 1 zu 5.810. Dieses Muster deutete auf einen schwachen Generator aus den 1990er-Jahren hin: lrand48. Das Team nutzte dann Gitterreduktion, eine mathematische Technik zum Wiederherstellen verborgener Zahlen, um den Zustand des Generators zu rekonstruieren.

KurveStart des Generators (UTC)Verwendeter Kandidat
P-19218. Mai 1997, 14:45:34139
P-5218. August 1997, 01:12:041.136
P-25616. August 1997, 01:52:341.842
P-38430. August 1997, 14:50:082.688
P-2243. April 1998, 12:52:077.026

Crypto Briefing berichtet dieselben Werte für P-256: Zeitstempel 871696354 und Seed C49D360886E704936A6678E1139D26B7819F7E90. Valsorda hat eine eigene Go-Version des Algorithmus geschrieben, und Anthropic hat seinen Code unter der Public-Domain-Lizenz CC0 veröffentlicht.

Was noch ungeklärt ist

Die Antwort ist nicht vollständig. Valsorda fand eine zusätzliche Regel über ANSI X9.62 hinaus: Eine Kurve wird verworfen, wenn ihre Ordnung mehr Bits hat als der Körper, auf dem sie aufbaut. Eine zweite Regel entzieht sich ihm noch, schreibt er. Die Methode lässt etwa doppelt so viele gültige Seeds übrig, wie veröffentlicht wurden.

Anthropic nennt dieselben Lücken. Kandidat 876 des P-256-Laufs ergibt ebenfalls eine gültige Kurve, doch verwendet wurde Kandidat 1.842. Die Basispunkte für P-224, P-256, P-384 und P-521 bleiben ungeklärt, ebenso der Seed der binären Kurve B-163. Sechs Basispunkte konnte Anthropic erklären, darunter den von P-192, und zwar über einen anderen Generator aus einer Bibliothek namens FreeLIP.

Was das für Entwickler bedeutet

An Ihrem Code muss sich nichts ändern. Laut Anthropic ist die Arbeit kein kryptografischer Bruch, kein neuer Angriff und keine Schwäche der Kurven. Valsorda ergänzt, dass Praktiker schon vorher keine ernsten Bedenken hatten.

Was sich ändert, ist die Argumentation. Teams, die P-256 gemieden haben, weil seine Seeds ein Rätsel waren, können diese Wahl mit besseren Belegen neu prüfen. Laut Anthropic machen die Ergebnisse eine Hintertür weniger plausibel. Die übersprungenen Kandidaten bedeuten, dass die Wahl noch nicht ganz erklärt ist. Die Debatte wird also enger, endet aber nicht.

Wer an Kryptografie arbeitet, sollte den Code zur Reproduktion lesen. Er zeigt, wie ein statistischer Test plus Gitterreduktion den Zustand eines Generators allein aus seiner Ausgabe rekonstruieren kann. Das ist eine gute Erinnerung, lrand48 nie für etwas Geheimes zu verwenden.

Die offenen Fragen sind ein faires Rätsel für alle Neugierigen. Die zweite Ablehnungsregel und die fehlenden Basispunkte sind Probleme, die noch niemand für sich beansprucht hat.

Quellen

  1. The NIST Elliptic Curves Seeds Bounty Has Been Claimed - Filippo Valsorda
  2. Claude reveals ECDSA curve origins - Anthropic
  3. Claude traces NIST P-256 seed to a 1997 random number generator run - Crypto Briefing

Ähnliche Artikel