Pimp My IDE / cryptography dispatch
Back to garage
Cryptographic provenance / 17 Oct 2026

A recipe is not the whole verdict.

A model found a reproducible link between five NIST curve seeds and a 1990s C random-number generator. The replay is strong. The remaining selection questions still matter.

Generation explains where candidate bytes came from. It does not reveal every rejection rule or turn one reproduction into a general security proof.
srand48 timestamp feed / five prime curves
1997–98reported initialization window
P-1923045AE6F…E12196D5match
P-224BD713447…6A948BC5match
P-256C49D3608…819F7E90match
P-384A335926A…7ACDAC73match
P-521D09E8800…A0DA64BAmatch

The missing provenance became executable

FIPS 186-2 published recommended elliptic curves in 2000. Its Appendix 6 calls the listed prime-field curves "pseudo-random" and prints a 160-bit input seed for each curve. It explains how a seed feeds a SHA-1-based parameter-generation method. It does not explain how those five seed values were chosen.[1]

On October 16, Anthropic reported that a research model connected the seeds to lrand48 output from a generator initialized with Unix timestamps. The team says the model tested old generators, recovered hidden state, and walked the generator backward to states consistent with srand48. The resulting timestamps fall in 1997 and 1998.[2]

The useful part is not that a model had a hunch. It is that the hunch became a short replay against published constants.

Five outputs matched here

We ran the article's compact Python recipe for P-192, P-224, P-256, P-384, and P-521. Each computed 40-hex-digit value matched the seed printed by Anthropic. The same values appear in FIPS 186-2. This was a narrow reproduction of seed bytes. We did not rerun the state-recovery search, curve-generation tests, or base-point work.

P-192  3045AE6FC8422F64ED579528D38120EAE12196D5  MATCH
P-224  BD71344799D5C7FCDC45B59FA3B9AB8F6A948BC5  MATCH
P-256  C49D360886E704936A6678E1139D26B7819F7E90  MATCH
P-384  A335926AA319A27A1D00896A6773A4827ACDAC73  MATCH
P-521  D09E8800291CB85396CC6717393284AAA0DA64BA  MATCH

Local replay on 17 October 2026 with Python 3. The input timestamps and iteration counts came from Anthropic's published code.

An independent implementation matters

Filippo Valsorda, who organized the seed bounty, says he reimplemented the algorithm in Go and verified the claim. His account also preserves the awkward part. The reconstructed runs contain valid candidate curves that were not published. He describes one additional rejection condition and says another selection rule remains unknown.[3]

That independent replay is stronger than repeating the publisher's output. It still does not recover the original program or a complete decision log. Anthropic also leaves B-163 unexplained and does not explain the base points for P-224, P-256, P-384, and P-521.

Keep three claims separate

The generation claim is concrete. A simple timestamp-seeded generator reproduces published seed bytes. The selection claim is incomplete because some viable candidates were skipped. The security judgment needs cryptographic analysis that is wider than byte equality.

Anthropic says the result makes deliberate weakening less plausible and says users need not change anything. Valsorda argues that the recovered search freedom is too small for a described hypothetical targeting technique. Those are reasoned security judgments. They are not outputs of the five-seed replay.

The garage rule is reusable. Let a model search wide. Save the exact hypothesis. Reduce the result to an executable check. Compare it with the primary artifact. Then write the unknowns beside the pass result.

Interactive makeover / evidence selector plus claim receipt

Curve-origin witness bench

A static summary can blur source, replay, and interpretation. This bench routes four named signals into one briefing while leaving missing evidence visible.

Choose evidence signals for the briefing

Signal housings

Select the evidence sections that belong in a review brief.

Standard witnessRecords what the historical standard actually published.
Discovery witnessRecords the recovered generator recipe and its source.
Replay witnessRecords code, runtime, inputs, and exact output comparison.
Boundary witnessRecords what the replay does not settle.

Selecting a signal includes its section in the template. It does not attach a standard, run code, review cryptography, or close an unknown.

Briefing coupler0 SIGNALS SELECTED

Evidence sections waiting

Select the source, recipe, replay, and limits sections you want the briefing to request.

Sources read / 17 Oct 2026

Evidence locker

Primary historical standard

NIST FIPS 186-2

Appendix 6 defines the recommended curves, names the SHA-1-based generation method, and prints the seed values used in this replay. The archived copy notes that the standard was superseded.

Read the archived standard
Publisher's research report and code

Anthropic's ECDSA curve-origins report

Supplies the reported search process, recovered timestamps, iteration counts, reproduction code, base-point work, security interpretation, and unresolved questions.

Read the report
Independent implementation and bounty record

Filippo Valsorda's verification

Records the bounty claim, a separate Go implementation, skipped viable candidates, remaining selection uncertainty, and the author's security analysis.

Read the verification
Discussion route

Hacker News item 50122800

Provides discovery and competing readings of what generation provenance does and does not settle. Comments are treated as discussion, not primary evidence.

Read the discussion