Source: Anthropic Frontier Red Team research disclosure 'Claude reveals ECDSA curve origins' by John Wood, Henry de Valence, Ava Howell, Zack Voase, Lucy Sweet, Amir Omidi, Paul Crowley, Iain McGinniss, Nicholas Carlini, and Steve Weis, alongside verification notes from cryptographer Filippo Valsorda, published October 16, 2026.
When NIST standardized elliptic curve digital signature algorithms in the FIPS 186-2 standard in 2000, the specification included 160-bit hexadecimal seed constants—such as P-256's SEED value C49D3608 86E70493 6A6678E1 139D26B7 819F7E90—without disclosing their mathematical provenance. For decades, the cryptographic consensus followed a recollection by former NSA mathematician Jerry Solinas suggesting the seeds were derived by hashing a humorous office phrase, leading to unsuccessful automated passphrase brute-force attempts.
Rather than testing wordlists, Claude evaluated candidate pseudorandom number generators that shipped with 1990s Unix C runtimes. A scanning tool testing 34 generator and bit-slice combinations revealed that four out of ten standardized seeds showed top-bit zeroes across all five 32-bit words, a signature that occurs by chance with probability one in 5,810 due to lrand48 returning only the high 31 bits of its 48-bit state. Claude recovered the full internal state using Lenstra-Lenstra-Lovasz (LLL) lattice basis reduction across truncated bit windows.
Running the linear congruential recurrences backward to their srand48 initialization states—marked by the lower 16 bits matching 0x330E—yielded exact chronological timestamps. The candidate iteration count for P-256 reached 1,842 steps, while P-192 required 139 iterations, P-521 required 1,136, and P-224 took 7,026 steps. Binary curves B-233, B-283, B-409, and B-571 mapped to an eight-minute burst on April 17, 1998 when adjusting for a halved clock value.
Base point investigations further recovered the origins of six curves generated in May 1997, showing their generator values were produced by Arjen Lenstra's FreeLIP package seeded with small integers including 20000 for P-192 and 20512 for prime192v2. However, the exact selection criteria that caused the NSA software to skip earlier valid prime-order candidate curves during generation—such as candidate 876 in P-256—as well as the derivation of seed B-163, remain unresolved.