AI-modeller og platforme
Anthropic siger, at Claude sporede NIST ECDSA-kurvernes seedværdier tilbage til en tilfældighedsgenerator fra 1990’erne

Anthropics Frontier Red Team rapporterede i en forskningspublikation den 16. oktober 2026, at en intern Claude-forskningsmodel havde sporet NIST ECDSA-kurvernes seedværdier tilbage til C-bibliotekets tilfældighedsgenerator lrand48, der var initialiseret med Unix-tidsstempler. Dermed besvarede modellen et spørgsmål om værdiernes oprindelse, som havde stået åbent, siden NSA leverede dem uden forklaring.
De uforklarede seedværdier fra NSA
ECDSA er den mest udbredte standard for elliptisk kurvekryptografi. NIST tog standarden i brug i 2000 som en del af FIPS 186-2-standarden for digitale signaturer, der opregner standardiserede elliptiske kurver af forskellig størrelse og med forskellige sikkerhedsniveauer. For kurver over primtalsfelter og binære felter offentliggjorde specifikationen en seedparameter, hvis hashværdi definerer kurvens koefficient b. NSA leverede seedværdierne uden forklaring eller begrundelse, og indlægget gengiver P-256-seedværdien C49D3608 86E70493 6A6678E1 139D26B7 819F7E90 som et eksempel på en værdi, der blev offentliggjort uden oplysninger om dens oprindelse.
Neal Koblitz og Alfred Menezes sammenfattede kontroversen i artiklen “A Riddle Wrapped in an Enigma”, og spørgsmålet førte senere til en amatørundersøgelse af seedværdiernes oprindelse og en dusør til den, der kunne finde svaret. Den mest udbredte forklaring gik ud på, at den mangeårige NSA-medarbejder Jerry Solinas havde genereret seedværdierne som hashværdier af en humoristisk adgangssætning. I en udtalelse fra 2015, som gengives i indlægget, fortalte Solinas: “Beskeden lød nogenlunde sådan her: ‘Giv Bob og Jerry en lønforhøjelse’ eller ‘Bob og Jerry bestemmer’ eller noget i den stil.” Han sagde, at Bob Reiter skrev koden, og at man ikke kunne finde arkiver fra den pågældende periode. Solinas døde i 2023, og andre kolleger svarede ikke, så spørgsmålet om, hvordan seedværdierne blev udledt, forblev åbent.
Sådan genskabte Claude seedværdierne
Flere Anthropic-medarbejdere havde forgæves forsøgt at finde frem til seedværdierne efter tipset om den humoristiske adgangssætning, som ifølge indlægget viste sig at være forkert. I oktober 2026 spurgte en Anthropic-medarbejder en intern forskningsmodel, om den kunne finde ud af, hvordan seedværdierne var blevet genereret, uden at pege på det rygteomspundne spor. Anthropic oplyser, at Claude på under en halv time identificerede oprindelsen til seedværdierne for NIST P-192, P-224, P-256, P-384 og P-521: output fra C-bibliotekets tilfældighedsgenerator lrand48, der var initialiseret med et Unix-tidsstempel, uden brug af nogen hashfunktion. Programmet, der genererede værdierne, trak 20 byte for hver iteration som en kandidat til en seedværdi, og den offentliggjorte P-256-seedværdi var kandidat nummer 1842 i kørslen.
Da søgninger baseret på sætninger var udtømt, greb Claude problemet an fra generatorens side og fremsatte den hypotese, at det drejede sig om software baseret på en pseudotilfældighedsgenerator, der fulgte med C-biblioteker fra 1990’erne, og hvis output var så svagt, at det kunne genkendes. Scanneren gennemgik hver offentliggjort seedværdi bit for bit og testede tilstødende sekvenser som mulige fortløbende output fra en generator af 1990’er-årgang på tværs af 34 kombinationer af generatorer og outputudsnit. Et mønster skilte sig ud på tværs af seedværdierne: Når de skrives som fem 32-bit-ord, har fire af de ti et nul i den øverste bit i samtlige 20 ord, en struktur, der opstår tilfældigt med sandsynligheden 1/5810. Det pegede på lrand48, en lineær kongruensgenerator, der kun returnerer de øverste 31 bit af en tilstand på 48 bit. For disse fire seedværdier genskabte Claude generatorens tilstand ved at afprøve alle 2^17 mulige værdier for det første ords 17 skjulte bit og kontrollere, om de næste fire ord fulgte efter. Det lykkedes for alle fire.
Seedværdierne for primtalskurverne var blevet produceret af den samme lrand48-generator, men hvert output indeholdt færre bit. At rekonstruere den interne tilstand i en trunkeret lineær kongruensgenerator er et klassisk gitterproblem, som Claude løste med Lenstra–Lenstra–Lovász-basisreduktion (LLL) ved at anvende løseren på hvert muligt vindue. Alle fem NIST-seedværdier for primtalskurverne samt fem andre fra ANSI X9.62-standarden fulgte det samme mønster, lrand48() >> 23, og hver af de genskabte 48-bit-tilstande genskaber alle 160 bit i den tilsvarende seedværdi.
Indlægget gengiver også Claudes registrerede interne ræsonnement fra sessionen, hvor modellen undersøgte, om den kunne befinde sig i et simuleret testmiljø, før den konkluderede: “Det er bekræftet ved direkte beregning hos mig: et match på 160 bit ud fra et seed på 32 bit + et lille indeks: ingen risiko for tilfældige sammenfald (10 × 160 bit). Det er virkeligt.”
Tidsstempler og basispunkter
Da generatoren er lige så let at køre baglæns som forlæns, fulgte Claude tilstanden for hver seedværdi baglæns, indtil den nåede en srand48-initialiseringstilstand, som kan genkendes på, at de nederste 16 bit er lig med 0x330E. En sådan tilstand opstår én gang for hver 65.536 trin. For alle ti seedværdier for primtalskurverne var initialiseringerne Unix-tidsstempler fra perioden mellem maj 1997 og april 1998. Initialiseringerne for de fire binære kurver pegede derimod på februar 1984; hvis man fordobler disse tidsstempler, svarer de til den 17. april 1998, to uger efter kørslen for P-224. Det fik holdet til at foreslå, at programmet muligvis havde halveret klokkeslættet.
Claude identificerede også, hvor nogle af kurvernes basispunkter stammer fra. Hver kurve angiver et basispunkt G, som alle ECDSA-offentlige nøgler er et multiplum af, og det gendannede frø fastlægger ikke dette punkt. For de seks kurver, der blev genereret i maj 1997 — P-192 samt ANSI X9.62-eksempelkurverne prime192v2, prime192v3 og prime239v1 til v3 — kan basispunkterne spores tilbage til tilfældighedsgeneratoren i FreeLIP, Arjen Lenstras pakke til aritmetik med store heltal, hvis kode også blev leveret i tidlige versioner af Victor Shoups NTL-bibliotek. Ifølge denne fremgangsmåde initialiseres generatoren med et lille heltal, syv outputværdier kasseres, og kandidatværdier for x-koordinater trækkes fra 26-bit-outputværdier, der reduceres modulo p. Trækningen gentages, indtil x ligger på kurven. De generatorfrø, Claude identificerede, er 20000 for P-192; 20420, 20507 og 20509 for prime239v1 til v3; og 20512 og 20517 for prime192v2 og v3. Anthropic oplyser, at der, så vidt virksomheden ved, ikke tidligere er blevet redegjort for noget NIST-basispunkt, og at basispunkterne for P-224, P-256, P-384 og P-521 ikke passer til denne fremgangsmåde.
Sikkerhedsvurdering og åbne spørgsmål
Anthropic oplyser, at resultaterne ikke udgør et kryptografisk brud, et nyt angreb eller nogen svaghed ved ECDSA-kurverne. Holdet sagde, at frøene var blevet genereret af en almindelig pseudotilfældighedsgenerator, der var initialiseret ud fra klokkeslættet. Det er en metode, som alle nu kan gentage, og som efter holdets opfattelse giver langt mindre spillerum for manipulation og øger tilliden til, at parametrene er sikre. Indlægget fremstiller resultatet som et afsluttende kapitel og afslutningen på årelange spekulationer og fortæller læserne, at de ikke behøver at foretage sig noget, fordi de fleste forskere allerede havde tillid til kurverne.
Nogle spørgsmål står stadig åbne. Ikke alle kandidatfrø på 20 byte kunne give en brugbar kurve, og holdet bemærkede, at nogle potentielt brugbare kandidater blev sprunget over. P-256’s offentliggjorte frø er kandidat 1842, men kandidat 876 fra samme kørsel giver også en kurve af den rette størrelse med primtalorden og parametre, der er valgt på samme måde som for den offentliggjorte kurve. Kørslen for P-224 sprang tre sådanne kandidater over, og de to kørsler bag ANSI X9.62-eksempelkurverne sprang yderligere syv over. Da antallet af oversprungne kandidater er lille, sagde holdet, at det ikke anser det for sandsynligt, at svækkede kurver blev udvalgt, selv om det principielt er tænkeligt, at kurver med en bestemt egenskab kunne være blevet valgt ved at søge blandt tidsstempler. Ét frø lod sig slet ikke gendanne: Det femte binære frø, B-163, svarer ikke til noget af det, Claude prøvede. Basis punkterne for P-224, P-256, P-384 og P-521 samt basispunkterne for NIST’s binære kurver er stadig ukendte.
Dusøren på $36,864 for at finde frøene bliver doneret til Internet Security Research Group, og indlægget takker Filippo Valsorda for at have organiseret dusøren, samtidig med at Solinas anerkendes posthumt. Arbejdet tilskrives John Wood, Henry de Valence, Ava Howell, Zack Voase, Lucy Sweet, Amir Omidi, Paul Crowley, Iain McGinniss, Nicholas Carlini og Steve Weis. Reproduktionskoden på siden er overdraget til public domain under CC0 1.0 Universal.












