9月19日、Mark Tysonが「ChatGPT-6 Astra cracks 108-year-old unsolved WWI German code for the first time」と題した記事を公開した。この記事では、OpenAIのGPT-Astraが108年間解読されなかった第一次世界大戦中のドイツ軍暗号電文を初めて解読したこと、について詳しく紹介されている。以下に、その内容を紹介する。
108年間誰も解けなかった暗号を、AIが解いた
1918年11月29日に送信されたドイツ軍の無線暗号電文が、送信から108年後にして初めて解読された。解読を実施したのはPrinzと名乗る開発者で、OpenAIのGPT-Astra(GPT-6系列のモデル)を使用した。
解読された電文の内容は以下のとおりだ。
"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日に後続する」という敵艦隊の動向を伝える諜報メッセージだ。クリミア半島近海における英国巡洋艦と連合艦隊の動向を、ドイツ大本営・海軍上層部に向けて報告する内容だった。
ADFGVX暗号とは何か
この電文はADFGVXと呼ばれる暗号方式で保護されていた。第一次世界大戦中にドイツ軍が実戦投入した暗号で、A・D・F・G・V・Xの6文字だけで構成された暗号文を生成する。内部では文字の置換と転置(並び替え)を組み合わせており、当時の手作業による解読を困難にしていた。歴史的にも難解な暗号として知られ、1918年に連合国側の暗号解読者ジョルジュ・パンヴァンが解読に成功したことが知られているが、今回の電文はそれとは別に未解決のまま残っていたものだ。
PrinzはこのWWI未解決暗号をドイツのサイエンスブログポータルScienceblogs.deが管理する「未解読暗号50選」のリストから選び出した。
解読の鍵は「誤った前提」の排除
GPT-Astraが使用した解読キーは「TRUPPENVERSCHIEBUNG」(ドイツ語で「部隊移動」の意)だった。
ここで重要なのは、なぜ過去108年間の試みが失敗し続けたかという点だ。Prinzによれば、これまでの解読試みが失敗していた原因はひとつの誤った前提にあった。このキーワードが使用開始されたのは1918年12月9日以降だと考えられていたのだ。ところが今回解読された電文の送信日は11月29日であり、従来の前提とは矛盾する。GPT-Astraはこの思い込みを持たずに解を探索し、正しい答えに到達した。
歴史記録との照合で信頼性を確認
解読結果の信頼性は、歴史的記録との照合で裏付けられた。
電文に記された「英国巡洋艦の入港」は、HMS Canterburyが1918年11月24日にクリミアのセヴァストポリに到着した記録と一致する。電文の日付に含まれる「?4」の「?」は送信時の誤記と思われ、これも照合の中で補完された。また、連合艦隊の到着日として記された11月26日も歴史記録と合致した。
GPT-Astraは解読結果を出すだけでなく、軍の記録ログと突き合わせて自己検証まで実施したことになる。
AIが「柔軟な問題解決」を見せた事例として
Prinzはこの成果をSubstackで報告しており、元記事もGPT-Astraの「柔軟な問題解決能力の好例」と評している。暗号解読という高度に構造化されたパズルを、従来の人間の解読者が持っていた先入観なしにアプローチできた点が、今回の成功につながったと言える。
なお、GPT-Astraは別途「Portalを24時間で自律クリア」したことも報告されており、多様なタスクへの応用が続いている。
詳細はChatGPT-6 Astra cracks 108-year-old unsolved WWI German code for the first timeを参照していただきたい。