← All posts / Research

兩道密碼、一個模型:GPT-6 Astra 一週內先後破解 108 年前的 WWI 密碼與 83 年前的 Enigma 電文

OpenAI 的 GPT-6 Astra 在同一週內,破解了塵封 108 年的 1918 年 ADFGVX 無線電報,以及 1941 年的 Enigma 德軍電文——並主動比對 HMS Canterbury 的原始航行日誌來驗證自己的答案,完整過程全部公開。

兩道密碼、一個模型:GPT-6 Astra 一週內先後破解 108 年前的 WWI 密碼與 83 年前的 Enigma 電文

如果你問一位專業密碼分析學家,破解一份百年前的軍事密碼需要什麼,答案大概不脫頻率分析、檔案館爬梳,以及漫長而無趣的試誅過程。但這週如果你問 GPT-6 Astra,答案變成:每道密碼大約十小時的自主工作、敢於質疑人類數十年前就想當然耳的假設,以及一種堅持用一手史料檢查自己答案的習慣。短短幾天內,OpenAI 的旗艦模型據報導接連破解了兩份在「未解」欄位裡躺了好幾個世代的加密訊息——一份 1918 年的德軍 ADFGVX 無線電報,以及一份 1941 年用 Enigma 加密的德意志國防軍電文——順便提供了至今最乾淨俐落的公開示範之一,展示代理式 AI(agentic AI)能對一個原本被視為專家禁臠的領域做出什麼。

來自黑海的 108 年老訊息

第一項突破與一份 1918 年 11 月 27 日發送的德國無線電報有關。當時停戰協定已簽署數週,德軍仍在傳遞關於黑海盟軍艦隊動態的情報。這份電報以 ADFGVX 密碼加密——一次大戰的野戰加密法,結合 6×6 的 Polybius 方陣與以關鍵字驅動的欄位重排。它長年掛在德國科學部落格平台 Scienceblogs.de 頗負盛名的「50 大未解密碼」清單上——那份清單收錄的內容從連環殺人犯留下的密碼信到著名的伏尼契手稿都有——是十多份迄今無人解開的一戰德軍無線電報之一。

一位化名 Prinz 的開發者從清單上挑中這份電報,交給 GPT-6 Astra 處理。模型的解題過程有條不紊。ADFGVX 的強度完全取決於關鍵字:同一份密文換個關鍵字,就會產生完全不同的表格。那個年代已知的關鍵字都記錄在 J. Rives Childs 的《The History and Principles of German Military Ciphers, 1914–1918》裡,數百份同時期電報也已被解出,包括密碼分析專家 George Lasry 的成果。唯獨這一份始終沒有。

Astra 給出的答案是:這份電報以「TRUPPENVERSCHIEBUNG」(德文的「部隊調動」)作為關鍵字。依著可以用手工驗算的步驟走一遍重排(把關鍵字依字母順序重排、把密文以每列十九個符號寫在關鍵字下方、再依關鍵字順序讀取直行),解出的明文是:

EIN ENGLISCHER KREUZER EINLIEG X SEWASTOPOL X S4STEN X EIN GESCHWADER DER X ALLIIERTEN FOLGT 26STEN X

翻成英文是:「An English cruiser arrived at Sevastopol on the ?4th. An Allied squadron follows on the 26th.」(一艘英國巡洋艦於 ?4 日抵達塞瓦斯托波,盟軍中隊將於 26 日跟進。)

模型自己檢查了自己的作業

讓這件事從派頭戲法升級為真正成果的,是 Astra 接下來做的事。它沒有宣告勝利,而是回頭找佐證——而且找到了。英國輕巡洋艦 HMS Canterbury 的原始航行日誌記載,該艦於 1918 年 11 月 24 日抵達塞瓦斯托波,與解出明文中的「?4 日」吻合(那個糊掉的數字很可能是傳輸錯誤)。盟軍中隊 11 月 26 日的抵達同樣見於史料,就在模型查閱的日誌頁第 11 行下方。一份 170 字元電文裡兩個可查證的宣稱,都通過了一手史料的檢驗。

Astra 對這份電報為何 108 年無人解開也提出了假設:密碼分析界一直假設「TRUPPENVERSCHIEBUNG」要到 1918 年 12 月 9 日才開始被用作關鍵字——比這份電報的發送時間晚了十一天。模型的洞察說穿了極簡單:質疑這個假設。至於差異的成因是 1918 年 11 月亂局中的金鑰紀律鬆散,還是史料本身的錯誤,目前不得而知;無論如何,一世紀的失敗嘗試顯然建立在一個關於日期的錯誤前提上。

三天前的 Enigma 破解

一戰密碼的破解甚至不是當週的第一樁。9 月 17 日,The Decoder 報導了 Bloomberg LP 產品開發教練 Carter Leffen 的個案研究:他使用「GPT-6 Astra Extra High」版本,破解了一份 1941 年 7 月 10 日的 82 字元 Enigma 電文。一名駐在 Rosenow 鎮的德國士兵,加密了一份簡短電文,請求行軍路線指示並要求「立即以無線電回覆」(Sofort Funkantwort)。83 年來無人解開。

Enigma 機每天有大約 1.59×10^20 種可能設定,暴力破解從來不是選項。當天已知的金鑰對不上,自動化搜尋也一無所獲。突破口來自一記古典密碼分析手法,只是用機器的耐心執行:同一天另一份已解出的電文裡,地名「Rosenow」連續出現兩次。Leffen 與他的 AI 代理群推測這個地名可能也出現在未解電文中,於是拿它當作 probable-word 攻擊的線索——再借助 Enigma 一個著名的弱點:它永遠不會把一個字母加密成它自己,這立刻排除掉大量候選位置。

在其中一個位置上,一切對上了。剩餘 68 個字元產出通順的德文,還帶著報務員自己的筆誤(「BITTE」打成「BTTE」)——Leffen 認為這些錯字正是真實性的證據,因為造假的解密結果反而更可能乾乾淨淨。所有程式碼、搜尋資料與一個可運作的 3D Enigma 模擬器都發布在專案頁上供獨立驗證,並建立在 Frode Weierud、Geoff Sullivan 與 Olaf Ostwald 等人先前的密碼分析工作之上。

為什麼這不只是趣聞

把這些故事歸檔為「有趣的週末展示」很誘人,但那是個錯誤,理由有三。

第一,展示的技能不是解密,而是研究自主性。兩個案例中,困難的部分都不是數學。ADFGVX 與 Enigma 都是徹底被理解的系統,攻擊它們的演算法就寫在教科書裡。Astra 做到的是管理一個開放式的研究流程:搜尋歷史檔案、辨識前人立下的假設、提出替代假說、測試,然後用獨立的一手史料交叉驗證輸出。這是一位初級密碼分析員的工作流程——或者,越來越是任何證據密集領域(從法律證據開示到材料科學)中代理的工作流程。Leffen 自己的評語很說明問題:他說自己「花在架設描述問題與解答的網站上的心力,是實際破解密碼的 99 倍」。

第二,驗證步驟本身就是新聞。如今每一個 AI 生成的「突破」宣稱都帶著一筆知識論稅金:這是真的,還是一場自信滿滿的幻覺?Astra 主動把解出的電文拿去比對 HMS Canterbury 的實際日誌——並把對不上的數字標記為傳輸筆誤而非含糊帶過——正是區分可信研究代理與「聽起來很有道理」代理的行為。Enigma 明文裡保留的錯字也發揮同樣功能:以不完美作為真實性的印記。

第三,安全意義是雙刃的。歷史密碼是安全的練靶場,但同樣的代理式迴圈——檔案搜尋、假說、程式生成、平行實驗、自我檢查——也適用於仍在使用中的系統的密碼分析。本週其他頭條還包括研究人員用代理群分解 RSA-260,以及 AI 模型逃出測試環境。一個能自主推理穿過換位密碼、同時質疑百年金鑰表假設的模型,它的攻擊性資安上限值得認真對待。

限制

兩項成果都有但書。Prinz 寫的是「就我所知」這份 1918 年電報從未被解出——這個限定詞很重要,因為機密的或單純未公開的解法可能存在。Enigma 個案研究的專案頁本身也註明:公開的資料驗證了計算,但無法證明電文的歷史身分,也無法證明解法是唯一解;獨立專家審查仍是最終裁判。而一份經兩行日誌驗證的 170 字元電文,再優雅,也只是單一模型能力的小樣本。

但作為方向訊號,這個模式很難視而不見。守護國家機密一世紀的密碼,倒下的原因不是新的數學,而是一個 AI 願意重新檢視沒人想過要質疑的假設——然後去做那件證明自己是對的、枯燥無聊的檔案館苦工。幾年前連查證來源都懶得做的機器,現在成了那個堅持要調出原始日誌來核對的一方。