Claude 協助追出了數位簽章演算法 ECDSA 所用曲線參數的來歷,讓一段缺少紀錄的密碼學歷史有了可重現的答案。 Anthropic 在 10 月 16 日公布研究,指出五條 NIST 質數曲線的種子,來自以時間戳啟動的舊式偽隨機數產生器。
本站另外重算其中的 P-256,結果與歷史標準吻合。我認為這則新聞最有價值的地方,是讀者可以沿著公開數值檢查發現;對台灣網站維運者,它沒有提供私鑰外洩或簽章失效的證據,不需要因為標題出現「破解懸案」就把它當成資安事故。
公開種子早已列在標準,欠缺的是來歷
ECDSA 是橢圓曲線數位簽章演算法。NIST 現行數位簽章標準說明,簽章用來檢查資料是否被未經授權地修改,並驗證簽署者身分。這與把訊息加密、讓旁人讀不到,是不同用途。
這次追查的種子,是用來產生曲線參數的公開輸入。歷史版 FIPS 186-2早已列出 P-256 的種子,也說明種子如何經過以 SHA-1 為基礎的方法,產生曲線所需的數值。讀者原本就能核對後半段計算;不知道的,是最前面的種子為何選成那一串。
這個缺口讓參數選擇是否藏有特殊意圖的疑問延續多年。種子出現在公開標準中,本來就無須保密;使用者拿來簽署資料的私鑰,則是另一回事。把兩者都叫作種子或亂數,容易誤以為研究找到了使用者的祕密。
依 Anthropic 的研究記錄,Claude 改從當年的軟體環境找線索,檢查公開數值是否帶有舊式產生器的輸出特徵,再回推初始狀態。這條路線把原本模糊的歷史問題,轉成可以拿程式逐步比對的數列問題。
懸賞發起人 Filippo Valsorda 的確認文章指出,這批數值來自 drand48 函式家族:先將當時的 Unix 時間戳交給初始化函式,再產生候選值。他另以 Go 重寫生成程序核對,並確認團隊已領取懸賞。這讓故事有了公司公告之外的實際覆核。
偽隨機數產生器的特色,是給定相同初始狀態,就會走出相同數列。Linux 函式手冊列出這個家族的運算規則、常數及初始化方式。因此,知道時間與取值方法後,可以重走數列,不必相信模型對自己答案的評語。
重算一組 P-256,能核對到哪裡?
我們依公開生成方法另寫一段 Node.js 程式,以整數運算重現產生器。輸入採 Valsorda 列出的時間:1997 年 8 月 16 日 01:52:34 UTC,也就是 Unix 時間戳 871696354。每次更新狀態後取最高八位元,每二十個位元組構成一組候選值。
走到第 1,842 組時,程式產生下列十六進位數值。為方便手機閱讀,這裡分組呈現:
C49D3608 86E70493 6A6678E1 139D26B7 819F7E90
它與歷史標準印刷頁第 31 頁的 P-256 種子逐位元相符。這次核對只涵蓋「指定時間、生成程序、公開種子」這條連結;我們沒有重新計算曲線階數、檢驗所有候選曲線,或審核 ECDSA 的完整實作。舊版標準在這裡是歷史比對材料,也不能拿來取代現行部署規範。
仍有歷史問題未解。Valsorda 的覆核記錄列出一些未被採用的可用候選值,尚未找到吻合的完整篩選解釋;Anthropic 也保留了部分基點來源與 B-163 種子未解的範圍。找回一條生成路徑,不代表所有選擇過程都已還原。
我不建議把這次發現寫成「AI 已破解 ECDSA」,也不會據此宣稱任何實作都絕對安全。它縮小了參數來源的疑問,安全性仍涉及演算法、實作與金鑰管理等不同層次。
對用 AI 協助技術研究的人,這個案例提供更具體的參考:讓模型提出可計算的假設,再拿結果去對原始資料。本站先前的數學證明報導也討論過驗證產物的重要性;這次則可用一段小程式完成有限範圍的覆核。要把同樣做法放進自己的工作,可延伸看評估與驗收方法,以及如何辨識 AI 幻覺。重點是留下能重跑的證據,並把尚未驗證的部分說清楚。
常見問題
Claude 這次有取得 ECDSA 使用者的私鑰嗎?
沒有。研究追查的是標準中早已公開、用來產生曲線參數的種子來源,沒有展示取得使用者私鑰或偽造簽章的新攻擊。
本站重算 P-256 相符,就能證明 ECDSA 絕對安全嗎?
不能。本站只重現指定時間產生第 1,842 組公開種子的結果,沒有驗證整套曲線選擇、簽章實作或金鑰管理。這是生成路徑的核對,不是完整安全性證明。
一般 Claude 使用者可以直接重現整項研究嗎?
公告使用的是內部研究模型,沒有指定可供訂閱者選用的公開型號。公開程式與參數可供重算,但不能由這次結果推論一般對話介面也能獨立完成同樣發現。
參考來源
- Anthropic:Claude reveals ECDSA curve origins(2026-10-16)
- Filippo Valsorda:The NIST Elliptic Curves Seeds Bounty Has Been Claimed(2026-10-16)
- NIST:FIPS 186-2, Digital Signature Standard(2000;歷史版本;2026-10-19 查核)
- Linux man-pages:drand48(2026-02-08;2026-10-19 查核)
- NIST:FIPS 186-5, Digital Signature Standard(2023-02-03;2026-10-19 查核)