Claude Found the NIST Curve Seeds. The Backdoor Question Is Still Open.

BenTiger
Bitcoin

The loop is three lines long.

for candidate in dictionary:
    if sha1(candidate) == seed:
        return candidate

That is the whole method. Anthropic says Claude ran it against the seeds behind nine NIST elliptic curves and came back with human-readable strings — date stamps from the mid-1990s. No cryptanalysis. No lattice reduction. No side channel. A dictionary lookup against a one-way function, executed at machine speed.

The headline writes itself, and that is precisely the problem. Within hours of the announcement the framing had split into two camps: "AI just cracked NIST curves" and "the NSA backdoor is confirmed." Both are wrong. Both are wrong in ways that matter, because the actual finding is narrower than the first and considerably more uncomfortable than the second.

Context

Start with what a seed is.

FIPS 186 defines a family of elliptic curves. Two classes matter here. Prime curves — P-192, P-224, P-256, P-384, P-521 — over a prime field. Binary curves — B-163, B-233, B-283, B-409, B-571 — over GF(2^m). To fully specify a curve you need the field, the coefficients a and b, the base point, and the order. NIST did not simply publish those numbers.

For the prime curves, NIST published a seed: an arbitrary-looking 160-bit value. The coefficients are derived by hashing that seed with SHA-1 and using the digest to derive a and b. Anyone can re-run the derivation. Anyone can confirm the coefficients follow from the seed. What nobody could confirm, for roughly thirty years, was where the seed itself came from.

This is the "nothing up my sleeve" principle. If a designer picks curve parameters by hand, they can pick them with a hidden property — a small embedding degree, a low class number, an algebraic relation to some other object they control. If the parameters fall out of a hash of a public string, the designer has no room to maneuver. The transparency is the entire point.

The principle has a scar. Dual_EC_DRBG, the elliptic curve random number generator standardized in 2006, shipped with two constants that turned out to have a secret relationship to each other. Whoever knew the relationship could predict the output. It was withdrawn in 2013. That is the case everyone reaches for when NIST curves come up, and it is not the same case. Dual_EC_DRBG hid a trapdoor inside a random number generator. The prime curves hide nothing in their derivation — the coefficients are checkable by anyone with a SHA-1 implementation.

Which is why the question was never "are the coefficients right." The question was always "was the seed neutral."

Core

The seed could never be resolved by inspection. SHA-1 is one-way. You cannot invert a digest. The only path from a digest back to its input is to guess inputs and hash forward until something matches. The seed is a fixed 160-bit value; if the input was an arbitrary 160-bit number, the search space is 2^160 and the problem is unsolvable forever.

But humans are lazy. If the input was a short string — a date, a phrase, a timestamp — the search space collapses into something a dictionary can cover. A modern GPU pushes tens of billions of SHA-1 hashes per second. A dictionary of every plausible date string between 1990 and 2005, in a dozen formats, with a few thousand phrase variants layered on top, is a rounding error against that throughput.

That is what Claude did, per Anthropic's account. Not magic. Pattern generation — the one thing large language models are genuinely good at — feeding a deterministic verifier.

The verification path is the interesting part. Any third party can take the reported string, run sha1(string), and compare the output to the published seed. If it matches, the claim is true. If it does not, the claim is false. There is no middle ground and no need to trust Anthropic. My default posture, after six months of tracing Uniswap's swap path by hand to verify invariant preservation under edge cases, is that any published parameter is a claim until I have re-derived it myself. I have spent enough time on the wrong end of unauditable claims — my 2025 review of a ZK-verified AI training protocol ended in a benchmark table and an 80% drawdown, because the gap between the proof system's stated guarantees and its actual execution time was three orders of magnitude — to appreciate a claim that fails cheaply.

Two technical details sharpen this.

First, the provenance argument does not depend on SHA-1 being collision-resistant. SHA-1 is broken for collisions. SHAttered, 2017, two different PDFs sharing a digest. None of that helps an attacker here. The binding that matters is preimage resistance: given a digest, find an input that produces it. That property is intact. The provenance chain rests on a weaker assumption than the one the industry spent a decade panicking about, and it holds.

Second, there is a numeric discrepancy worth flagging. The reported coverage is five prime curve seeds and four binary curve seeds. The standard binary set is five — B-163, B-233, B-283, B-409, B-571. Either one seed is unreported, one curve is out of scope, or the reporting collapsed a row. It is a small thing. Small things are where audits live. When a finding arrives with a count that does not match the published standard, check the count before you check anything else.

Where this lands on the stack

Nothing in Bitcoin or Ethereum changes. secp256k1 is not a NIST curve. Its coefficients are a=0, b=7 — the most aggressively nothing-up-my-sleeve parameters in the industry. There is no seed to trace. There is nothing to trace. Every headline that connects this finding to the security of your BTC or ETH is wrong at the level of the parameter file.

P-256 is different. P-256 is in TLS. It is in WebAuthn and every Passkey implementation shipping on a phone. It is in HSMs. It is in enterprise chains and, more often than the marketing suggests, in the proving systems underneath some L2s. If your threat model includes "the curve beneath my signature scheme was chosen adversarially in 1997," this news is directly about you.

Contrarian

Now the part nobody wants to say out loud.

Seed provenance is not generation integrity. The hash binds the seed to the coefficients. It does not bind the designer to the first seed they tried.

Read the construction again. Pick a seed. Hash it. Derive a and b. Now check whether the resulting curve is secure — whether the order is prime or near-prime, whether the embedding degree is large, whether the twist is safe. If it fails, pick another seed. NIST's process is documented, and the documentation says they iterated. That is normal engineering. It is also, structurally, a search over seeds.

The question the industry has never answered is how large that search was. A thousand candidates? A million? A hundred million, run on 1997 hardware with a filter that rejects everything the designers could detect and quietly keeps the one curve carrying a property they could not? The hash proves the coefficients came from the seed. It proves nothing about how many seeds were discarded first.

The math doesn't distinguish. A curve that survived a search is indistinguishable, by parameter inspection alone, from a curve that fell out of the first hash. The only real defense is that the properties an adversary would want are exactly the properties cryptanalysts have been hunting since 1997 — and none of them have turned up in P-256. That is a legitimate argument. It is not the same argument as "the seed was neutral," and the two are being conflated in every write-up I have read this week.

There is a second blind spot, and it concerns the tool rather than the target. A model that hallucinates a plausible date string and a model that recovers the correct date string produce identical output until you hash it. The verifier is the entire security model. Anthropic's claim is cheap to check and cheap to falsify, which is good — but only if someone actually checks it. As of this writing, the claim is a single institution's unreproduced output. I watched a $500k bridge exploit land because a challenge period was too short to matter. The inverse failure is just as expensive: a claim that sits unreproduced for six months, gets cited in a hundred threads, and is treated as settled by the time anyone runs the script.

Complexity hides the truth; simplicity reveals it. This finding is simple. Run the hash. Publish the string. Let the community break it. Until that happens, the provenance claim is a press release with a reproducible appendix, and the difference between those two things is a single afternoon of someone else's compute.

Takeaway

What I want to see next is not a NIST statement. It is a shell script.

If the reported strings hash to the published seeds, the timeline anchors to the mid-1990s and cross-checks cleanly against FIPS 186's drafting window — a genuine, durable improvement in the transparency of a trust anchor that half the internet's TLS handshakes rest on. If they do not, we learn something more valuable: that AI-assisted provenance claims need the same adversarial review as any other security disclosure, and that "the model found it" is not evidence.

The larger question is the one that should keep infrastructure people awake. How many other trust anchors in your stack have never had their provenance checked at all? The constants in your hash function. The parameters in your trusted setup. The derivation path in your wallet's key generation. Each one rests on an assumption that somebody, at some point, generated it honestly. We audit contracts down to the opcode and take the primitives underneath them on faith.

Security is not a feature; it is the foundation. And foundations are the one thing nobody photographs.

Trust the code, verify the trust.

Market Prices

BTC Bitcoin
$81,053.2 -0.82%
ETH Ethereum
$2,381 -1.53%
SOL Solana
$102 -2.22%
BNB BNB Chain
$712.8 -1.33%
XRP XRP Ledger
$1.28 -2.16%
DOGE Dogecoin
$0.0784 -2.79%
ADA Cardano
$0.2170 -3.81%
AVAX Avalanche
$9.64 -3.34%
DOT Polkadot
$1.1 -4.69%
LINK Chainlink
$11.87 -3.69%

Fear & Greed

55

Greed

Market Sentiment

7x24h Flash News

More >
{{快讯列表(10)}} {{loop}}
{{快讯时间}}

{{快讯内容}}

{{快讯标签}}
{{/loop}} {{/快讯列表}}

Event Calendar

{{年份}}
28
03
unlock Arbitrum Token Unlock

92 million ARB released

08
04
upgrade Solana Firedancer

Independent validator client goes live on mainnet

22
03
unlock Optimism Unlock

Circulating supply increases by about 2%

10
05
upgrade Ethereum Pectra Upgrade

Raises validator limit and account abstraction

18
03
unlock Sui Token Unlock

Team and early investor shares released

12
05
halving BCH Halving

Block reward halving event

30
04
upgrade Celestia Mainnet Upgrade

Improves data availability sampling efficiency

15
04
halving Bitcoin Halving

Block reward reduced to 3.125 BTC

Tools

All →

Altseason Index

41

Bitcoin Season

BTC Dominance Altseason

Gas Tracker

Ethereum 28 Gwei
BNB Chain 3 Gwei
Polygon 42 Gwei
Arbitrum 0.5 Gwei
Optimism 0.3 Gwei

Market Cap

All →
1
Bitcoin
BTC
$81,053.2
1
Ethereum
ETH
$2,381
1
Solana
SOL
$102
1
BNB Chain
BNB
$712.8
1
XRP Ledger
XRP
$1.28
1
Dogecoin
DOGE
$0.0784
1
Cardano
ADA
$0.2170
1
Avalanche
AVAX
$9.64
1
Polkadot
DOT
$1.1
1
Chainlink
LINK
$11.87

🐋 Whale Tracker

🔴
0xd480...8689
30m ago
Out
3,899 ETH
🟢
0xcf65...a5da
30m ago
In
4,949,495 USDC
🟢
0x6dfd...2e37
3h ago
In
3,502,746 USDC

💡 Smart Money

0x2dc8...7145
Institutional Custody
+$1.1M
94%
0xc32a...6d0c
Institutional Custody
+$0.3M
72%
0xac1e...d68d
Experienced On-chain Trader
-$0.4M
75%