Anthropic 每日研究 · ELI5 報告 / 2026 年 10 月 17 日號 · 第 4 篇

一粒「種子」的
25 年懸案

全球最多人用的數碼簽名,建基於幾條來歷不明的曲線。 人人問了 25 年:曲線的種子,到底從哪裏來?會不會藏着後門? Claude 用了不到半小時,找到了答案——答案普通得令人意外。

原文 Anthropic 研究文章(Frontier Red Team) 發表 2026 年 10 月 16 日 閱讀時間 約 3 分鐘

TL;DR — 先講結論

60 秒 視覺速覽:四步看懂全件事 ▾
STEP 1 · 謎

2000 年,NIST 公布 ECDSA 曲線。種子來自 NSA,出處不明。

STEP 2 · 疑

傳聞說種子是某句搞笑說話的雜湊。追查多年,無果。還有人懸賞找答案。

STEP 3 · 破

Claude 不猜句子,猜軟件。它認出舊程式 lrand48 的指紋,再用格演算法倒帶。

STEP 4 · 解

每個種子都倒帶回一個時間戳:1997 年 5 月至 1998 年 4 月。謎底:只是時間。

25 年
懸案年期(2000 年標準公布至今)
< 30 分鐘
Claude 找出種子來源所需時間
1 / 5810
關鍵位元圖案純屬巧合的機會
US$36,864
種子懸賞金額,將捐給 ISRG
1

先認識主角:一把守護全球的鎖

ECDSA 是什麼?為何一粒種子咁重要?

ECDSA 是一種數碼簽名標準。它的工作是證明:「這段訊息,真的是我發出的。」

銀行交易靠它。網站證書靠它。軟件更新也靠它。它是全球用得最廣的橢圓曲線密碼標準。

簽名建基於一條橢圓曲線。每條曲線,由一組數字定義。其中一個關鍵數字叫 b。

b 不是隨手挑的。它由一粒「種子」算出來:先把種子雜湊一次,再把結果放進曲線公式。

種子長 20 個位元組。寫出來,是一串十六進制數字。以最常用的 P-256 曲線為例,它的種子是:

P-256 的種子(NIST 標準原文)
C49D3608 86E70493 6A6678E1 139D26B7 819F7E90
種子20 位元組的原始數字,一切的源頭
→
雜湊一次把種子攪拌成另一個數字
→
曲線參數 b寫進曲線方程式 y² = x³ − 3x + b
→
每一個簽名全球系統每天都在用
為何種子咁重要:誰挑選種子,誰就握着曲線的「出生證明」。如果挑選時動了手腳,理論上可以挑到一條只有自己知道弱點的曲線。所以種子的出處,必須交代得清清楚楚。
2

25 年的懷疑:種子從哪裏來?

冇解釋、冇檔案、得一句傳聞。

2000 年,美國國家標準技術研究院(NIST)公布這批曲線,寫進數碼簽名標準 FIPS 186-2。

種子由美國國家安全局(NSA)提供。問題是:NSA 沒有解釋種子怎樣來。一個字都沒有。

密碼學界對來歷不明的數字,天生警惕。兩位學者 Koblitz 與 Menezes 甚至寫了一篇專文,標題就叫《謎中謎》(A Riddle Wrapped in an Enigma)。

流傳最廣的說法,來自 NSA 老臣 Jerry Solinas 多年後的回憶:種子可能是一句搞笑說話的雜湊。內容大概是「俾 Bob 同 Jerry 加人工」之類。實際寫程式的同事,也記不清了。

Solinas 在 2023 年去世。舊檔案找不到。這條線,斷了。

密碼學家 Filippo Valsorda 於是設立懸賞:US$36,864,獎給任何能找出種子出處的人。多年來,無人領獎。

Anthropic 內部也有員工跟過「搞笑說話」這條線。他們試了很多句子。全部落空。現在回看,原因很簡單:方向從一開始就錯了。

3

Claude 換了問法:不猜句子,猜軟件

2026 年 10 月,一次刻意不給提示的提問。

2026 年 10 月,一位 Anthropic 員工問公司內部的研究版 Claude:你能找出這些種子怎樣生成嗎?

他刻意不提「搞笑說話」的傳聞。不給任何方向。

Claude 選了完全不同的角度。它不問「種子是哪句話變成的」。它問:「1997 年的人,會用什麼軟件生成隨機數字?」

它的推理是這樣的:當年寫 C 語言的人,多半直接用 C 函式庫內置的隨機數產生器。那些舊產生器設計很弱。弱到輸出認得出。認得出產生器,就有機會倒推它的起始狀態。

✗ 舊路線:猜句子

假設種子是某句話的雜湊。句子有無限可能。猜中一句,才算數。多年來,人人卡在這裏。

✓ Claude 的路線:猜軟件

假設種子是舊產生器的輸出。產生器只有幾款常見的。逐款測試輸出特徵。認得出,就能倒推。

Claude 做了什麼:它寫了一個掃描程式,逐個位元滑過每個已公布的種子,測試相鄰的片段會不會是某款 1990 年代產生器的連續輸出。前後試了 34 種「產生器 × 切片方式」的組合。
4

破案關鍵:最高位,全部是 0

一個用肉眼都看得見的指紋。

掃描途中,Claude 留意到一個奇怪圖案。

十個種子之中,有四個種子,把內容寫成 20 個 32 位元的字之後,每一個字的最高位都是 0。

如果數字是真正隨機,最高位有一半機會是 1。20 個字全部是 0,本身已經很難。這個圖案在十個種子裏出現四次,純屬巧合的機會約為 1 / 5810。

這正是舊產生器 lrand48 的簽名。它內部有 48 位元的狀態,但每次只交出最高的 31 位元。第 32 位,永遠空着。所以它的輸出寫成 32 位元的字,最高位必定是 0。

圖解:上圖是二元曲線 B-233 的種子真身(74D59FF0 7F6B413D 0EA14B34 4B20A2DB 049B50C3)。每個字只顯示最前 4 個位元。金色那一格,就是最高位——五個字全部是 0。這不是巧合,是 lrand48 只輸出 31 位元留下的指紋。知道要找什麼之後,肉眼都看得見。

認出產生器之後,Claude 試爆隱藏的位元:它拿第一個字,逐一試齊 2¹⁷ 種隱藏位元的組合,再檢查之後的字是否接得上。四個種子,全部接得上。產生器的內部狀態,就此還原。

5

倒帶:每個種子,都是一刻時間

由指紋,倒推到 1997 年的時鐘。

質數曲線的種子比較棘手。它們保留的位元更少。要由殘缺的輸出還原完整狀態,是一道經典的格(lattice)問題。

Claude 用 LLL 演算法(Lenstra–Lenstra–Lovász 格基約化)逐個窗口去試。結果:5 個 NIST 質數曲線種子,加上 5 個 ANSI X9.62 標準的種子,全部同一個模式——都是 lrand48 的輸出,再向右移 23 位元。每個還原出的 48 位元狀態,都能重新生成種子的全部 160 位元。這不可能是巧合。

這類產生器有一個特性:可以倒行。Claude 把每個狀態一步步倒退,退到 srand48 剛啟動時的形態。

然後,謎底出現了。每一個啟動值,都是一個 Unix 時間戳——即是某一刻的日期和時間。十個質數曲線種子,全部落在 1997 年 5 月至 1998 年 4 月之間。

換句話說:當年有人寫了個程式。程式用「當下時間」啟動一個普通不過的隨機數產生器。跑出來的數字,就成了守護全球 25 年的曲線種子。

1997-05-15 15:49:03 UTC
ANSI 範例曲線 prime239v1 / v2 / v3
同一秒啟動,同一次運行抽出三粒種子(第 2185、2320、3048 個候選)。
1997-05-18 14:45:34 UTC
P-192、prime192v2、prime192v3
P-192 是這次運行的第 139 個候選。
1997-08-08 01:12:04 UTC
P-521
第 1136 個候選。
1997-08-16 01:52:34 UTC
P-256 —— 全球最常用的那條曲線
第 1842 個候選。它的種子,就是第 1 章那串 C49D3608…。
1997-08-30 14:50:08 UTC
P-384
第 2688 個候選。
1998-04-03 12:52:07 UTC
P-224
第 7026 個候選,是質數曲線中跑得最久的一次。
1998-04-17 15:24–15:32 UTC
二元曲線 B-233、B-283、B-409、B-571
這四粒種子的啟動值像是把時鐘除以二之後的值;確實日期為何如此,原文也只是推測。

自己驗證:即場重現一粒種子

以下不是模擬。按鈕會在你的瀏覽器裏真金白銀跑一次 lrand48:用左邊的時間戳啟動產生器,數到指定的候選編號,再把輸出和 NIST 公布的種子逐字比對。任何人都可以這樣驗證——這正是今次發現最令人安心的地方。

等你㩒掣。
你的瀏覽器剛剛生成的種子
—
NIST 標準公布的種子
—

由提問到找出全部質數曲線種子的來源,Claude 用了不到半小時。它事後還自我懷疑了一輪:這會不會是測試環境的陷阱?它核對了數字與自己記憶中的真值,又算過巧合的機會,最後確認:是真的。

6

額外收穫:連曲線的「起點」都找到了

基點 G 的出處,之前從未有人解釋過。

每條曲線除了參數,還有一個固定的基點 G。所有公鑰,都是 G 的倍數。種子決定不了 G。G 怎樣選,又是另一個謎。

Claude 查種子時,順手查埋 G。它找到了 1997 年 5 月生成的那批、共六條曲線的基點出處:P-192 和五條 ANSI 範例曲線。

它們來自數學家 Arjen Lenstra 的大整數運算套件 FreeLIP 裏的隨機產生器。啟動它的,只是細小的整數:P-192 用 20000,其餘各條用 20420 至 20517 之間的數字。

放入小整數例如 20000
→
丟棄頭 7 個輸出暖機,丟掉不要
→
逐個試 x 座標用 26 位元輸出對 p 取餘
→
落在曲線上為止第一個合資格的點,就是 G
意義:據 Anthropic 所知,今次是第一次有人解釋到 NIST 曲線的基點從何而來。食譜簡單、普通、完全可重現——同樣是「沒有後門」的證據。
7

咁即是安全了,還是危險了?

先講清楚:用家什麼都不用做。

結論:這是好消息,不是警報

Anthropic 在原文開宗明義:這不是密碼學破解,不是新攻擊,不是曲線弱點。這是懸案的「趣聞式完結篇」,讀者不需要採取任何行動。

道理很直接:種子的生成方法愈簡單、愈普通、愈多人能重現,背後藏後門的空間就愈小。25 年的懷疑,到此可以放下。

懸賞方面:那 US$36,864,將捐給 Internet Security Research Group(ISRG)——即是營運 Let's Encrypt 免費證書服務的非牟利組織。

今次研究由 Anthropic 約十人團隊完成,包括 John Wood、Henry de Valence、Nicholas Carlini 與 Steve Weis 等。

8

社群點睇:難得的一致讚好

這一節是把 Anthropic 的說法,拿去和外界反應對照。

~330 分
Hacker News 首頁熱度(研究快照)
~130 則
HN 討論留言數(研究快照)
頭版
發表數小時內登上 HN 首頁

共識密碼學社群的反應近乎一致:興奮、讚好、慶祝懸賞終於解開。媒體(Unite.AI 等)的報導口徑相同,集中在「半小時解開 25 年謎團」和「曲線獲得平反」兩點。

共識對「這不是漏洞」這一點,社群與 Anthropic 完全一致:原文叫大家什麼都不用做,外界也沒有相反聲音。

爭議度:低與今期其他 Anthropic 文章不同,這一項幾乎找不到實質爭議。原因很實際:發現附帶可重現的驗證方法(正如本頁第 5 章的按鈕),任何人都能自己核實——不需要「相信」任何一方。

一個要分清的保留

「種子來源解開了」不等於「所有問號都消失了」。Anthropic 自己在原文列出未解部分(下一章)。把「大部分解開」講成「全部解開」,就誇大咗——這一點,原文的寫法是誠實的。

9

仲未解開的問號

原文老實交代的部分。