KI-Modelle und Plattformen
Anthropic zufolge führte Claude die Seeds der NIST-ECDSA-Kurven auf einen Zufallszahlengenerator aus den 1990er-Jahren zurück

Anthropics Frontier Red Team berichtete am 16. Oktober 2026 in einer Forschungsveröffentlichung, dass ein internes Claude-Forschungsmodell den Ursprung der NIST-ECDSA-Kurven-Seeds auf den Zufallszahlengenerator lrand48 der C-Bibliothek zurückgeführt hatte, der mit Unix-Zeitstempeln initialisiert wurde. Damit beantwortete es eine Herkunftsfrage, die offengeblieben war, seit die NSA die Werte ohne Erklärung bereitgestellt hatte.
Die ungeklärten NSA-Seeds
ECDSA ist der am weitesten verbreitete Standard für Elliptische-Kurven-Kryptografie. NIST übernahm ihn im Jahr 2000 als Teil des Digital Signature Standard FIPS 186-2, der standardisierte elliptische Kurven unterschiedlicher Größen und Sicherheitsstufen aufführt. Für Kurven über Prim- und Binärkörpern veröffentlichte die Spezifikation einen Seed-Parameter, dessen Hashwert den Koeffizienten b der Kurve bestimmt. Die NSA stellte diese Seeds ohne Erklärung oder Begründung bereit. Der Beitrag führt den P-256-Seed C49D3608 86E70493 6A6678E1 139D26B7 819F7E90 als Beispiel für einen Wert an, zu dessen Herkunft keine Informationen veröffentlicht wurden.
Neal Koblitz und Alfred Menezes fassten die Kontroverse in der Arbeit „A Riddle Wrapped in an Enigma“ zusammen. Später führten die Frage nach dem Ursprung der Seeds zu einer Amateurrecherche und zu einer Prämie für die Person, die ihn aufklären konnte. Die vorherrschende Erklärung lautete, dass Jerry Solinas, ein langjähriger NSA-Mitarbeiter, die Seeds als Hashwert einer humorvollen Passphrase erzeugt hatte. In einer im Beitrag wiedergegebenen Erklärung aus dem Jahr 2015 erinnerte sich Solinas: „Die Nachricht lautete ungefähr: ‚Gebt Bob und Jerry eine Gehaltserhöhung‘ oder ‚Bob und Jerry sind die Größten‘ oder so ähnlich.“ Er sagte, Bob Reiter habe den Code geschrieben und es seien keine Archive aus dieser Zeit auffindbar. Solinas starb 2023, und andere Kollegen reagierten nicht, sodass die Frage nach der Herleitung offenblieb.
Wie Claude die Seeds wiederherstellte
Mehrere Mitarbeitende von Anthropic hatten sich erfolglos auf die Suche nach den Seeds gemacht, nachdem sie den Hinweis auf die humorvolle Passphrase erhalten hatten, der sich dem Beitrag zufolge als falsch herausstellte. Im Oktober 2026 fragte ein Anthropic-Mitarbeiter ein internes Forschungsmodell, ob es herausfinden könne, wie die Seeds erzeugt worden waren, ohne auf den kolportierten Hinweis hinzuweisen. Anthropic zufolge ermittelte Claude in weniger als einer halben Stunde den Ursprung der NIST-Seeds für P-192, P-224, P-256, P-384 und P-521: Sie waren Ausgaben des Zufallszahlengenerators lrand48 der C-Bibliothek, der mit einem Unix-Zeitstempel initialisiert worden war; ein Hash-Algorithmus kam dabei nicht zum Einsatz. Das erzeugende Programm zog in jeder Iteration 20 Bytes als möglichen Seed. Der veröffentlichte P-256-Seed war der 1842. Kandidat des Durchlaufs.
Nachdem die Suche anhand von Phrasen ausgeschöpft war, näherte sich Claude dem Problem von der Seite des Generators und stellte die Hypothese auf, dass Software verwendet worden war, die auf einem Pseudozufallszahlengenerator aus C-Bibliotheken der 1990er-Jahre beruhte und so schwache Ausgaben lieferte, dass sie erkennbar waren. Claudes Scanner rückte die veröffentlichten Seeds Bit für Bit durch und prüfte benachbarte Abschnitte als mögliche aufeinanderfolgende Ausgaben eines Generators aus den 1990er-Jahren. Dabei untersuchte er 34 Kombinationen aus Generatoren und Ausgabebereichen. Über alle Seeds hinweg fiel ein Muster auf: Als fünf 32-Bit-Wörter dargestellt, haben vier der zehn Seeds in allen 20 Wörtern eine Null als höchstwertiges Bit – ein Muster, das mit einer Wahrscheinlichkeit von 1/5810 zufällig auftritt. Das deutete auf lrand48 hin, einen linearen Kongruenzgenerator, der nur die obersten 31 Bits eines 48-Bit-Zustands zurückgibt. Für diese vier Seeds stellte Claude den Generatorzustand wieder her, indem es alle 2^17 möglichen Werte der 17 verborgenen Bits des ersten Wortes ausprobierte und überprüfte, ob die nächsten vier Wörter dazu passten. Das gelang bei allen vier Seeds.
Die Seeds der Primkurven waren ebenfalls mit demselben lrand48-Generator erzeugt worden, doch jede Ausgabe enthielt weniger Bits. Die Rekonstruktion des internen Zustands eines gekürzten linearen Kongruenzgenerators ist ein klassisches Gitterproblem, das Claude mithilfe der Lenstra-Lenstra-Lovász-Basisreduktion (LLL) löste, indem es den Lösungsalgorithmus auf jedes mögliche Fenster anwandte. Alle fünf NIST-Seeds für Primkurven sowie fünf weitere aus dem Standard ANSI X9.62 entsprachen demselben Muster, lrand48() >> 23, und jeder rekonstruierte 48-Bit-Zustand erzeugt alle 160 Bits seines Seeds erneut.
Der Beitrag gibt auch Claudes aufgezeichnete interne Überlegungen aus der Sitzung wieder. Darin prüfte das Modell, ob es sich möglicherweise in einer simulierten Testumgebung befand, bevor es zu dem Schluss kam: „Durch direkte Berechnung auf meiner Seite bestätigt: 160-Bit-Übereinstimmung aus einem 32-Bit-Seed plus kleinem Index: keine zufälligen Treffer (10 × 160 Bit). Es ist echt.“
Zeitstempel und Basispunkte
Da der Generator rückwärts genauso leicht läuft wie vorwärts, verfolgte Claude den Zustand jedes Seeds rückwärts, bis es einen Initialisierungszustand von srand48 erreichte, der an den unteren 16 Bits 0x330E zu erkennen ist. Ein solcher Zustand tritt einmal alle 65.536 Schritte auf. Bei allen zehn Seeds für Primkurven waren die Initialisierungen Unix-Zeitstempel zwischen Mai 1997 und April 1998. Die Initialisierungen der vier Binärkurven ließen sich dagegen auf den Februar 1984 datieren. Verdoppelt man diese Zeitstempel, entsprechen sie dem 17. April 1998, also zwei Wochen nach dem Lauf für P-224. Das veranlasste das Team zu der Vermutung, dass das Programm die Uhrzeit halbiert haben könnte.
Claude ermittelte außerdem, woher einige Basispunkte der Kurven stammten. Jede Kurve definiert einen Basispunkt G, dessen Vielfache die ECDSA-Public-Keys bilden; der wiederhergestellte Seed bestimmt diesen Punkt nicht. Bei den sechs im Mai 1997 erzeugten Kurven – P-192 sowie den Beispielkurven prime192v2, prime192v3 und prime239v1 bis v3 aus ANSI X9.62 – lassen sich die Basispunkte auf den Zufallszahlengenerator in FreeLIP zurückführen, einem Paket für Langzahlarithmetik von Arjen Lenstra, dessen Code auch in frühen Versionen von Victor Shoups NTL-Bibliothek enthalten war. Bei diesem Verfahren wird der Generator mit einer kleinen Ganzzahl initialisiert, sieben Ausgaben werden verworfen, und mögliche x-Koordinaten werden aus 26-Bit-Ausgaben abgeleitet, die modulo p reduziert werden. Dieser Vorgang wird wiederholt, bis x auf der Kurve liegt. Die von Claude ermittelten Generator-Seeds lauten: 20000 für P-192; 20420, 20507 und 20509 für prime239v1 bis v3; sowie 20512 und 20517 für prime192v2 und v3. Anthropic zufolge wurde, soweit dem Unternehmen bekannt ist, noch kein NIST-Basispunkt zuvor erklärt; außerdem lassen sich die Basispunkte von P-224, P-256, P-384 und P-521 nicht mit diesem Verfahren erklären.
Sicherheitsbewertung und offene Fragen
Anthropic erklärt, dass die Ergebnisse weder einen kryptografischen Bruch noch einen neuen Angriff oder eine Schwachstelle in den ECDSA-Kurven darstellen. Das Team sagte, die Seeds seien von einem gängigen, anhand der Uhrzeit initialisierten Pseudozufallszahlengenerator erzeugt worden – ein Verfahren, das nun jeder reproduzieren könne. Seiner Ansicht nach lasse dies deutlich weniger Spielraum für Manipulationen und stärke das Vertrauen in die Sicherheit der Parameter. Der Beitrag stellt das Ergebnis als abschließendes Kapitel und Ende jahrelanger Spekulationen dar. Für die Leserinnen und Leser gebe es keinen Handlungsbedarf, da die meisten Forschenden den Kurven ohnehin bereits vertraut hätten.
Einige Fragen sind noch offen. Nicht jeder 20 Byte lange Seed-Kandidat konnte eine brauchbare Kurve hervorbringen, und das Team stellte fest, dass einige potenziell brauchbare Kandidaten übersprungen wurden. Der veröffentlichte Seed für P-256 ist Kandidat 1842; doch auch Kandidat 876 aus demselben Durchlauf ergibt eine Primärordnungskurve der passenden Größe, deren Parameter auf dieselbe Weise wie die der veröffentlichten Kurve gewählt wurden. Beim Durchlauf für P-224 wurden drei solcher Kandidaten übersprungen, bei den beiden Durchläufen für die Beispielkurven aus ANSI X9.62 weitere sieben. Da nur wenige Kandidaten übersprungen wurden, hält das Team eine gezielte Auswahl geschwächter Kurven für unplausibel. Grundsätzlich sei es jedoch denkbar, dass Kurven mit einer bestimmten Eigenschaft durch die Suche anhand von Zeitstempeln ausgewählt worden sein könnten. Ein Seed ließ sich überhaupt nicht wiederherstellen: Der fünfte binäre Seed, B-163, passt zu keinem der von Claude ausprobierten Ansätze. Die Basispunkte von P-224, P-256, P-384 und P-521 sowie die der binären NIST-Kurven sind weiterhin unbekannt.
Die Prämie von 36.864 US-Dollar für das Auffinden der Seeds wird an die Internet Security Research Group gespendet. In dem Beitrag wird Filippo Valsorda für die Organisation der Prämie gedankt; außerdem wird Solinas postum gewürdigt. Die Arbeit wird John Wood, Henry de Valence, Ava Howell, Zack Voase, Lucy Sweet, Amir Omidi, Paul Crowley, Iain McGinniss, Nicholas Carlini und Steve Weis zugeschrieben. Der auf der Seite veröffentlichte Reproduktionscode wird unter CC0 1.0 Universal der Gemeinfreiheit gewidmet.












