Google DeepMind 的兩個 AI 代理人,從設計到驗證結果,花了 3 天 22 小時重現一項 1024 位元 RSA 簽章計算;研究人員全程約傳送 20 則訊息。
Google DeepMind 在工作論文中,將這項工作描述為重現先前的 1024 位元案例。監督代理人負責設計、運算資源預算和逐步驗證;執行代理人則撰寫程式碼、進行分散式運算並修正錯誤。線性代數工作中的一個步驟,另有輔助代理人協助。
研究人員設定實驗目標與計算條件,並核准不可逆步驟的進行;他們沒有親自撰寫程式碼或執行分散式工作。
代理人共撰寫約 3 萬 3500 行新程式碼,執行 336 次分散式實驗。運算最多動用了約 30 萬個 CPU 核心和 16 張 GPU。
這項實驗並未復原 RSA 私鑰,也沒有對 RSA 模數進行質因數分解;實驗也不是在實際運作中的系統上進行。
研究團隊事先向一個會回傳簽章運算結果的程式,也就是簽章預言機(oracle),提出約 40 億筆輸入請求。之後,他們切斷與預言機的連線,繼續計算。
斷線後,代理人計算新目標值的模數根。目標值確定後,研究團隊便無法再提出請求;在特定條件下,這個模數根可用於為新訊息產生有效簽章。整項實驗是在隔離環境中進行。
一項先前研究計算同一個 1024 位元案例的第一個根時,使用了 1380 個 CPU 核心年;DeepMind 論文報告的用量則為 391 個 CPU 核心年。
CPU 核心年代表單一核心運作一年的計算量。兩項研究使用相同的演算法、模數、多項式與邊界值。論文指出,兩者相差 3.5 倍,反映的是實作和執行方式的改善,並非新演算法帶來的效能提升。
先前研究耗時約 5 個月。DeepMind 實驗從設計到驗證結果花了 3 天 22 小時;若從大規模篩選作業開始計算,則耗時 3.2 天。
論文將時間差異主要歸因於平行化。CPU 核心年衡量總計算量,實際經過時間則取決於工作能否拆分並同時執行。
報告的 391 個 CPU 核心年未計入 GPU 線性代數工作,以及前期實驗與演練所用的 7.5 個 CPU 核心年。研究團隊估算,若將 GPU 工作換算為先前研究的 CPU 成本,差距為 3.4 倍;再納入前期工作後,差距為 3.3 倍。兩項計算使用的硬體不同。
驗證過程發現,32 位元索引超出範圍,導致程式錯誤讀取已儲存的答案。代理人修正了錯誤,無須重新向預言機提出事前請求。
論文明確指出,這項結果不會威脅目前使用 RSA-2048 或更高規格的系統安全。
這項實驗並未測試比特幣(BTC)簽章。比特幣開發專案的 libsecp256k1 支援基於 secp256k1 曲線的 ECDSA 與 Schnorr 簽章。本刊先前也報導過,估算 RSA-2048 質因數分解與計算比特幣簽章是兩個不同問題。
Comment 0