Et spørgsmål, der har stået åbent siden 2000

Anthropic meddelte den 16. oktober, at en intern forskningsmodel af Claude på under en halv time rekonstruerede metoden bag frøene til fem af NISTs elliptiske kurver: P-192, P-224, P-256, P-384 og P-521. Frøene er ikke hashværdier, som den mest udbredte forklaring hævdede. Ifølge Anthropics tekst er de output fra lrand48, tilfældighedsgeneratoren i C-standardbiblioteket, startet med et Unix-tidsstempel.

Frøene betyder noget, fordi kurverne, der bygges af dem, bærer ECDSA, den signaturordning, der bruges i TLS, ved kodesignering og i kryptopengepunge. NIST vedtog ECDSA i 2000 med FIPS 186-2 og offentliggjorde for hver kurve et frø, hvis hashværdi låser en af kurvens koefficienter. NSA leverede frøene uden at forklare, hvor de kom fra, og det gav plads til mistanken om, at nogen havde søgt, indtil de fandt en kurve med en svaghed, kun de kendte.

Hvad modellen gjorde

Anthropic beskriver, at modellen begyndte med at prøve, om frøene lignede output fra generatorer, der fandtes i 1990’erne. Nogle af dem havde nuller i alle de øverste bit, et kendetegn for lrand48. Derefter genskabte den generatorens indre tilstand for primkurvernes frø ved hjælp af gitterreduktion.

En håndskrevet ligning på en gul seddel sat fast på en tavle
Anthropic oplyser, at modellen genskabte generatorens tilstand med gitterreduktion. Illustrerende arkivbillede. MART PRODUCTION · pexels · Pexels License

De genskabte starttilstande er urvisninger. P-192 og to nærliggende kurver fører til 1997-05-18 14:45:34, P-521 til 1997-08-08 01:12:04, P-256 til 1997-08-16 01:52:34 og kandidat nummer 1.842 i den kørsel, P-384 til 1997-08-30 14:50:08 og P-224 til 1998-04-03 12:52:07. NISTs fire binære kurver lander den 17. april 1998, men først når tidsstemplet halveres, hvilket tyder på, at programmet, der lavede dem, delte urværdien.

Modellen fandt også kilden til seks basispunkter, for P-192 og fem nærliggende kurver, i tilfældighedsgeneratoren i FreeLIP, Arjen Lenstras pakke til aritmetik med lange heltal, med frøene 20000, 20420, 20507, 20509, 20512 og 20517.

Hvad den gamle forklaring sagde

Den førende teori kom fra Jerry Solinas, NSA-matematikeren, der arbejdede med kurverne. I 2015 sagde han, at frøene var hashværdier af en spøgefuld sætning, noget i retning af “giv Bob og Jerry en lønforhøjelse”, og at en kollega havde skrevet koden. Ingen arkiver fra perioden kunne findes, og Solinas døde i 2023. Anthropic oplyser, at virksomhedens egne medarbejdere fulgte sporet uden held, før de lagde problemet frem for en model.

Hvad der stadig er åbent

Anthropics tekst opregner det, modellen ikke løste: basispunkterne for P-224, P-256, P-384, P-521 og NISTs binære kurver, det femte binære frø B-163, og hvorfor nogle gyldige kandidater blev sprunget over, blandt dem kandidat 876 til P-256.

En stak trykte tekniske dokumenter på et bord
NIST offentliggjorde frøene i 2000 uden at forklare deres oprindelse. Illustrerende arkivbillede. Tima Miroshnichenko · pexels · Pexels License

Virksomheden er klar i sin melding: dette “er ikke et kryptografisk brud, et nyt angreb eller en svaghed i ECDSA-kurverne”, og læserne behøver ikke gøre noget. Resultatet gør efter virksomhedens vurdering en bevidst bagdør væsentligt mindre sandsynlig, fordi frøene blev lavet på en meget simpel måde, og få kandidater blev sprunget over. Samtidig tilføjer den, at det ikke kan udelukkes, at enkelte tidsstempler blev valgt for en egenskab ved den kurve, der kom ud.

Hvad man skal følge

Anthropic offentliggjorde Python-kode, der genskaber frøene og de seks basispunkter, under CC0, så påstanden kan kontrolleres af enhver, der vil køre den. Teksten beskriver ingen egen uafhængig gennemgang. Dusøren på 36.864 dollar for svaret, organiseret af Filippo Valsorda, går til Internet Security Research Group. De resterende basispunkter og frøet B-163 er det næste, der falder, eller ikke falder.