Anthropic says an internal research model recovered, in under half an hour, how the seeds of NIST P-192/224/256/384/521 were produced: lrand48 output seeded with Unix timestamps from 1997–98, not a hashed phrase. Bounty organizer Filippo Valsorda independently reproduced it in Go; the $36,864 bounty goes to ISRG. This is not a break and no action is needed.

Key Takeaways

  • ✓P-256 seed = candidate #1842 after srand48(871696354) (1997-08-16 01:52:34 UTC), per Anthropic
  • ✓Tell: 4 of 10 seeds had the top bit clear in all twenty 32-bit words (≈1/5810 by chance), the fingerprint of lrand48's 31-of-48-bit output
  • ✓Prime-curve seeds use lrand48() >> 23; truncated LCG state recovered with LLL lattice reduction; all 10 init times fall May 1997–Apr 1998
  • ✓Bounty claimed 2026-10-15 01:07:51 UTC, tripled to $36,864 and donated to ISRG; Filippo Valsorda reproduced it in Go
  • ✓Still open: the B-163 seed, base points of P-224/256/384/521, and why viable candidates (e.g. P-256 #876) were skipped
Claude traces the NIST elliptic-curve seeds to lrand48 seeded with 1997–98 timestamps, settling a 25-year backdoor question
🖼️Official Media
Click to view high-res
🧭

Turn your technical choice into a development budget

Compare 40 dev plans & simulate token costs vs $20/mo subscriptions

🔬

In-Depth Technical Analysis

In FIPS 186-2 (2000), NIST published the P-192/224/256/384/521 curves, whose coefficient b is derived by SHA-1 from a 20-byte seed supplied by the NSA without explanation, fueling 25 years of backdoor suspicion. Anthropic reports that an internal research model, asked without hints, found the answer in under half an hour: it guessed the generator was a 1990s C-library PRNG, scanned 34 generator/slice combinations, noticed four seeds had the top bit clear in every 32-bit word (about 1/5810 by chance), identified lrand48, recovered the truncated lrand48() >> 23 state with LLL lattice reduction, and stepped it back to srand48 form. Every prime-curve init value is a Unix timestamp between May 1997 and April 1998; P-256 is candidate #1842 after srand48(871696354), i.e. 1997-08-16 01:52:34 UTC. Filippo Valsorda reproduced it independently in Go, and we reproduced the P-256 seed locally from Anthropic's published Python in about 5 ms. The model also explained base points for P-192 and five ANSI X9.62 example curves (FreeLIP RNG), but B-163's seed, the P-224/256/384/521 base points, and why some viable candidates were skipped remain open. The $36,864 bounty, claimed on 2026-10-15, goes to ISRG. Anthropic stresses this is not a cryptographic break; no action is needed, and the result makes a hidden weakness less plausible.

Action HubReady to adopt this in production?

Benchmark side-by-side against alternatives, or calculate monthly token cost vs subscription break-even.

Up NextAnthropic opens Claude for Google Workspace public beta: a Docs/Sheets/Slides sidebar that edits files in place, plus new Google file connectors inside Claude
Read Now→