Devin完成RSA-260質因數分解 刷新公開紀錄

Cognition於9月9日公布,該公司研究員Eric Lu用自家的程式設計智能體Devin完成了RSA-260的質因數分解,這是RSA因式分解挑戰賽中目前公開的最大紀錄。上一個紀錄RSA-250停在2020年2月,中間相隔六年半。

RSA-260是一個260位十進位數,被拆成兩個130位的質數。使用的演算法並不新,仍是通用數體篩選法(GNFS),從上世紀九十年代起就是分解大整數的標準做法。變化發生在實作層面:整套流程從CPU叢集搬到了GPU上。

4900 GPU天是怎麼花掉的

Cognition給出的細項是:多項式選擇643 GPU天,格篩3813 GPU天,線性方程組求解467 GPU天。篩選這一步吃掉四分之三以上的算力,符合GNFS一貫的特徵。

關鍵成果是一個叫glas的GPU格篩器,用CUDA重寫,搭配改造過的CADO-NFS和一版GPU最佳化的區塊Wiedemann演算法。Cognition表示,這套實作把篩選的單位成本壓低了大約一個數量級。

CADO-NFS正是2020年那支法國團隊分解RSA-250時使用的開源軟體。同一套程式碼基礎,換了硬體後端,六年間的差距就體現在這兩組數字上。

Devin在這裡做的是工程活,不是數學發現:程式碼最佳化、參數調校、叢集管理。Cognition在文章裡把它形容為一個「足夠強的軟體工程師,能解決運算數論與GPU效能工程交界處的難題」。

人類的投入也寫進了公開數據:233個對話工作階段、82702個字的指導。換算下來平均每個工作階段三百多字,接近一次程式碼審查的批註量。這不是無人值守,而是一個人帶著一個能連續工作的工具,把過去需要一支團隊協調數月的工程壓縮到三週。

往上推是什麼景象

Cognition順帶給了兩個外推估算,都標明是按目前GPU價格粗算:RSA-1024的難度約為RSA-260的78倍,成本約3000萬美元;RSA-2048的難度是9.12兆倍,成本寫成了3.77×10的16次方美元。

第一個數字值得停下來想想。3000萬美元這個量級,國家級機構付得起,大型企業也付得起。RSA-1024在標準體系裡早已不建議使用,但嵌入式裝置、舊版韌體簽章、一些沒人再維護的憑證鏈裡仍留著這個長度。兩個數字之間約十億倍的差距,是2048位元目前還站得住腳的全部理由。

把紀錄拉長來看,1999年RSA-155被分解時的公開估算約8000 MIPS年;2009年底的RSA-768換算成單核2.2GHz Opteron約2000年;2020年RSA-250是2700核心年;這一次換成了13.5 GPU年。前三次的進步主要來自摩爾定律和演算法調校,節奏大致是每十年一個級距。這一次的跳躍裡,硬體換代和「誰來寫這些CUDA程式碼」兩件事疊在了一起。

還沒有答案的部分

論文和程式碼是否會完整公開、glas會不會開源,Cognition的公告裡沒有寫。獨立第三方尚未重現這次運算——RSA-250當年由多個團隊交叉驗證過篩選參數,這次的結果目前只有一方的數據。

分解結果本身容易驗證,兩個質數相乘即可。難驗證的是那份成本帳:4900 GPU天用的是什麼型號、什麼單價、有沒有算上失敗的嘗試,公告沒有逐項拆開。40萬美元這個數字對安全評估的意義,取決於這些細節。

參考來源:Cognition官方技術部落格、caramba.loria.fr的RSA-250分解公告、CocoLoop;GPU天與核心年口徑按各自公告原文引用,未做統一換算。