En fråga som stått öppen sedan 2000

Anthropic meddelade den 16 oktober att en intern forskningsmodell av Claude på under en halvtimme rekonstruerade metoden bakom fröna till fem av NIST:s elliptiska kurvor: P-192, P-224, P-256, P-384 och P-521. Fröna är inte hashvärden, vilket den mest spridda förklaringen hävdade. Enligt Anthropics text är de utdata från lrand48, slumptalsgeneratorn i C-standardbiblioteket, startad med en Unix-tidsstämpel.

Fröna spelar roll eftersom kurvorna som byggs av dem bär upp ECDSA, det signaturschema som används i TLS, vid kodsignering och i kryptoplånböcker. NIST antog ECDSA år 2000 genom FIPS 186-2 och publicerade för varje kurva ett frö vars hashvärde låser en av kurvans koefficienter. NSA lämnade fröna utan att förklara varifrån de kom, vilket lämnade utrymme för misstanken att någon letat tills de hittade en kurva med en svaghet bara de kände till.

Vad modellen gjorde

Anthropic beskriver att modellen började med att testa om fröna såg ut som utdata från generatorer som fanns på 1990-talet. Några av dem hade nollor i alla de övre bitarna, vilket är ett kännetecken för lrand48. Därefter återskapade den generatorns inre tillstånd för primkurvornas frön med hjälp av gitterreduktion.

En handskriven ekvation på en gul lapp fäst på en svart tavla
Anthropic uppger att modellen återskapade generatorns tillstånd med gitterreduktion. Illustrerande arkivbild. MART PRODUCTION · pexels · Pexels License

De återskapade starttillstånden är klockavläsningar. P-192 och två närliggande kurvor leder till 1997-05-18 14:45:34, P-521 till 1997-08-08 01:12:04, P-256 till 1997-08-16 01:52:34 och kandidat nummer 1 842 i den körningen, P-384 till 1997-08-30 14:50:08 och P-224 till 1998-04-03 12:52:07. NIST:s fyra binära kurvor landar den 17 april 1998, men först när tidsstämpeln halveras, vilket antyder att programmet som tog fram dem delade klockvärdet.

Modellen hittade också källan till sex baspunkter, för P-192 och fem närliggande kurvor, i slumptalsgeneratorn i FreeLIP, Arjen Lenstras paket för aritmetik med långa heltal, med fröna 20000, 20420, 20507, 20509, 20512 och 20517.

Vad den gamla förklaringen sa

Den ledande teorin kom från Jerry Solinas, NSA-matematikern som arbetade med kurvorna. År 2015 sa han att fröna var hashvärden av en skämtsam fras, något i stil med “ge Bob och Jerry en löneförhöjning”, och att en kollega skrivit koden. Inga arkiv från tiden gick att hitta, och Solinas dog 2023. Anthropic uppger att den egna personalen följde spåret utan resultat innan de lade problemet framför en modell.

Vad som fortfarande är öppet

Anthropics text räknar upp det modellen inte löste: baspunkterna för P-224, P-256, P-384, P-521 och NIST:s binära kurvor, det femte binära fröet B-163, och varför vissa giltiga kandidater hoppades över, bland dem kandidat 876 för P-256.

En stapel tryckta tekniska dokument på ett bord
NIST publicerade fröna år 2000 utan att förklara deras ursprung. Illustrerande arkivbild. Tima Miroshnichenko · pexels · Pexels License

Företaget är tydligt med att detta “inte är ett kryptografiskt genombrott, en ny attack eller en svaghet i ECDSA-kurvorna”, och skriver att läsare inte behöver göra något. Resultatet gör enligt bolaget en avsiktlig bakdörr betydligt mindre trolig, eftersom fröna togs fram på ett mycket enkelt sätt och få kandidater hoppades över. Samtidigt tillägger det att det inte kan uteslutas att enskilda tidsstamplar valdes för någon egenskap hos den resulterande kurvan.

Vad man ska följa

Anthropic publicerade Python-kod som återskapar fröna och de sex baspunkterna, under CC0, så påståendet går att kontrollera för den som vill köra det. Texten beskriver ingen egen oberoende granskning. Belöningen på 36 864 dollar för svaret, organiserad av Filippo Valsorda, går till Internet Security Research Group. De återstående baspunkterna och fröet B-163 är nästa sak som faller, eller inte.