-
作者
-
發佈日期
2026-10-17
-
閱讀時間
7分鐘
-
字體大小
Anthropic 10 月 16 日公布,旗下 Claude 內部研究模型花不足半小時,成功找出困擾密碼學界逾 25 年的謎題答案。美國國家標準與技術研究院(NIST)多條標準橢圓曲線的神秘「種子」(Seed),原來由 1990 年代的舊式亂數產生器配合電腦系統時間生成。密碼學研究員已獨立重現結果,確認有關發現。不過這次研究並沒有破解加密演算法,亦未發現新的安全漏洞。
NSA 26 年前留下謎題 一直無人知道數字來源
事情要追溯至 2000 年,NIST 在 FIPS 186-2 數碼簽署標準中,公布多條用於橢圓曲線數碼簽署演算法(ECDSA)的標準曲線,包括 P-192、P-224、P-256、P-384 和 P-521。
ECDSA 是廣泛應用的數碼簽署技術,可用來驗證電子資料的簽署者,以及檢查資料有否遭到修改。
制定這些曲線時,設計者需要選擇一組起始數字,稱為「種子」,經雜湊運算後用來推導部分曲線參數。這些數字當年由美國國家安全局(NSA)提供,但沒有解釋最初如何選出。
密碼學界一直擔心,假如設計者曾經測試大量候選數字,刻意選出具有特殊數學弱點的曲線,便有可能留下外界不知道的安全風險。
2015 年,曾參與有關工作的 NSA 密碼學家 Jerry Solinas 回憶,這些種子可能來自一段幽默口令,例如「Give Bob and Jerry a raise」(給 Bob 和 Jerry 加薪)。然而他無法記起準確內容,相關歷史檔案亦未能尋回。Solinas 在 2023 年去世,謎題一直沒有答案。
▲ Anthropic 列出五條標準橢圓曲線的生成時間、候選次數及種子數值。P-256 的種子對應 1997 年 8 月 16 日的時間戳,為第 1,842 組候選數字。
Claude 找到舊式亂數產生器 追溯至 1997 年時間戳
Anthropic 表示,公司員工過去曾按照幽默口令的線索尋找答案,但未能成功。今年 10 月,一名員工將問題交給尚未公開推出的 Claude 內部研究模型,沒有提供這條舊線索。
Claude 改為研究 1990 年代程式員可能使用的軟件工具,推測當年生成曲線的程式可能採用 C 語言程式庫提供的偽隨機數產生器。
模型自行編寫掃描程式,檢查 34 種亂數產生器及輸出截取方式的組合,結果在部分公開種子中找到不尋常的數字規律。
Claude 發現,當部分種子拆成多組 32 位元數字後,每組最高位元都是零。這個特徵符合舊式亂數產生器 lrand48 的輸出方式。
模型再利用數學方法還原產生器內部狀態,並反向推算最初的設定值,最後發現這些設定值對應 1997 年 5 月至 1998 年 4 月的 Unix 時間戳。
簡單來說,當年的程式可能先讀取電腦時鐘,將當時的時間轉成數字,再交給亂數產生器,不斷產生候選種子,直到找到符合條件的橢圓曲線。
例如 P-256 曲線的種子,可以追溯至 1997 年 8 月 16 日 01:52:34(UTC)的時間戳。程式在該次運行產生第 1,842 組候選種子時,便會得到最終收錄於 NIST 標準的數字。
Anthropic 公布的程式碼能夠重現 5 條 NIST 素數曲線的種子,並找出另外 5 條 ANSI X9.62 曲線的相同生成方式。研究亦追溯到 4 條二元曲線的種子,以及部分曲線基點的來源。
密碼學研究員獨立驗證 3.68 萬美元懸賞有主
曾於 2023 年設立懸賞的密碼學研究員 Filippo Valsorda,在 10 月 16 日確認 Anthropic 團隊成功解答問題。他亦自行使用 Go 語言重新實作生成演算法,驗證研究結果。
Anthropic 團隊已於 10 月 15 日正式領取懸賞,並選擇將獎金捐予營運 Let’s Encrypt 的非牟利組織 Internet Security Research Group(ISRG)。捐贈安排令懸賞總額增至 36,864 美元(約港幣 28.8 萬元)。
這次發現令 NSA 當年刻意篩選弱點曲線的可能性進一步降低。由於研究人員現在可以重現當年的種子生成過程,可供秘密操控參數的空間亦比過去估計小。
不過研究尚未解答全部問題。例如 P-256 的第 876 組候選種子同樣可以產生符合已知部分條件的曲線,當年為何跳過這組數字仍不清楚。另一條 B-163 曲線的種子,以及 P-224、P-256、P-384 和 P-521 曲線基點的選取方式,亦有待進一步研究。
Anthropic 強調,這次成果屬於追溯密碼學標準的歷史來源,沒有發現 ECDSA 存在新漏洞。一般用戶毋須因為這項研究更改密碼、更新裝置或採取其他保安措施。
資料來源:
Anthropic、
Filippo Valsorda、
NIST