Anthropic 表示,研究版 Claude 協助其密碼學團隊重建了多個已公布橢圓曲線種子的來源。10 月 16 日的報告將 5 個 NIST 質數域曲線種子及 4 個 NIST 二元曲線種子,連結至 lrand48 的輸出。這是一種較早期的 C 偽隨機數產生器,以源自時鐘的數值初始化。報告也提供程式碼,可印出所述種子並重現部分基點座標。

這項成果處理的是標準化參數的歷史來源問題。Anthropic 並未報告新的攻擊或密碼學破解。其重建仍留下若干選擇未獲解釋,包括為何略過某些可行的候選曲線。

重大改變

  • 改變了什麼: Anthropic 公布了 NIST P-192、P-224、P-256、P-384、P-521,4 條 NIST 二元曲線,以及 5 條 ANSI X9.62 範例曲線之種子的具體產生方法與程式碼。另有一套基點產生方法,能符合 P-192 與 5 個 ANSI 範例。
  • 如何做到: 團隊表示,Claude 辨識出已公布種子位元中的模式,還原產生器狀態,再反向推導至具有時鐘數值特徵的初始值。對於 6 個基點,它辨識出一種曾用於早期長整數軟體的產生器。
  • 限制: 程式碼讓人得以檢查所提出的對應關係,但能符合數值的產生方法,並未記錄每一項歷史選擇決策,也不能確立曲線的安全性。BIG CHANGE 查閱了公開貼文與歷史標準;並未執行獨立重現。

曲線種子能解釋什麼

NIST 封存的 FIPS 186-2,日期為 2000 年 1 月 27 日,為其 5 條質數域曲線各列出一個 160 位元種子。指定的 SHA-1 流程會將種子轉換為曲線係數。該標準也分別列出有限體、曲線的階與基點座標。標準指出,提供種子可讓讀者檢查係數是否符合指定流程;它沒有說明種子本身是如何挑選的。種子也不決定基點,也就是用來形成公開金鑰的固定點。

這個區別界定了 Anthropic 發現的範圍。追溯種子可解釋標準化曲線的一項輸入。要解釋基點則需要另一套說明,而輸出相符並不能揭示參數選擇者作出的每個決定。

Anthropic 如何追溯種子

Anthropic 表示,Claude 起初在已公布數值中尋找早期 C 偽隨機數產生器的特徵。在部分二元曲線種子中,每個 32 位元字組的最高位元皆為 0。Anthropic 說,這個模式指向 lrand48。它會從 48 位元的內部狀態傳回 31 位元。模型接著還原可能的狀態,檢查連續輸出是否符合種子。對質數域曲線而言,每次輸出保留的位元較少,因此 Anthropic 表示 Claude 使用格方法還原隱藏狀態。

Anthropic 貼文中的程式碼從 srand48 形式的狀態開始,推進 lrand48 遞迴關係,並印出 20 位元組的候選種子。表格指定了 P-192、P-224、P-256、P-384、P-521,以及 ANSI 範例 prime192v2、prime192v3、prime239v1 至 prime239v3 的時間戳記與候選編號。對於 P-256,指定的執行會在第 1,842 個候選值到達已公布種子。Anthropic 範例印出的 P-256 數值,與 FIPS 186-2 中的種子相符。

Anthropic 報告了 B-233、B-283、B-409 與 B-571 的相關對應。其程式碼在初始化產生器之前,先將時鐘數值除以 2。Anthropic 將這種時鐘值減半的解讀視為一種可能性:反向推導還原狀態時,得到了 1984 年 2 月的日期;把數值加倍則對應到 1998 年 4 月 17 日。已公布的對應支持這套產生器方法,但並未確立原作者當時選擇了哪種時鐘處理方式。

Anthropic 將這項工作描述為一名員工的提問、內部研究模型的搜尋與程式碼,以及團隊檢查之間的合作。報告提供了其他人可以檢查的程式碼與範例輸出。我們未找到可在本文引用的獨立重現,BIG CHANGE 也未執行程式碼。因此,來源支持將此描述為 Anthropic 所報告的重建,而歷史 NIST 數值則是目標參數的外部紀錄。

6 個基點與尚存的缺口

Anthropic 表示,另一種來自 Arjen Lenstra 的 FreeLIP 長整數套件,以及 Victor Shoup 的早期 NTL 版本的舊產生器,能符合 P-192 與 5 個 ANSI 範例的基點 x 座標。其第二份程式碼以小整數為該產生器設定種子,捨棄 7 次輸出,接著抽取候選 x 座標,直到某個座標落在曲線上。這 6 個範例是 P-192、prime192v2、prime192v3,以及 prime239v1 至 prime239v3。Anthropic 為每個已公布的 x 座標印出相符結果。NIST 的歷史 P-192 清單提供了此次比較使用的數值。

Anthropic 自身的說明仍有多項限制。它未能還原 B-163 種子,也未解釋 P-224、P-256、P-384、P-521 或 NIST 二元曲線的基點。執行過程也略過了 Anthropic 認為符合所述大小與質數階條件的候選值。P-256 的第 876 個候選值就是一例,早於已公布的第 1,842 個候選值;Anthropic 報告,P-224 執行中略過了 3 個可行候選值,另有 2 次 ANSI 範例執行合計略過了 7 個。團隊不知道選擇準則,也不確定這些略過是否只是某種技術性假象。

對安全工程師而言,這項有用的新成果,是一份可檢查的說明,交代多個參數值看來是如何產生的。它縮小了一個有關不透明種子的長期疑問,但未回答曲線選擇的所有問題。Anthropic 自己也表示,這項發現並不是使用者改變密碼學實務的理由。

來源與延伸閱讀