A sample of the ciphered text
出典: cdn.mos.cms.futurecdn.net

1809年の軍事通信を解読

SentinelOneのAIエンジニア、カーター・チャーチ氏はGPT-6 Astraを使い、ナポレオン戦争期にフランス軍が作成した暗号文を解読しました。チャーチ氏によると、モデルの実行時間は約6時間でした。

手紙はナポレオン本人から直接送られたものではありません。義理の息子でイタリア副王のウジェーヌ・ド・ボアルネの司令部から、オーギュスト・ド・マルモン将軍に宛てた軍事報告でした。ナポレオンの命令を受け、各地のフランス軍と同盟軍の配置を伝える内容です。

チャーチ氏は、現存する暗号文は1809年3月のものだとしています。冒頭にはフランス語の平文があり、その後に数字や文字、独自の記号を使った暗号が続いていました。

一枚の画像から転記と解読を実行

チャーチ氏がGPT-6 Astraに与えたのは、暗号文が載った画像と指示でした。暗号記号を事前に人が文字起こしすることなく、画像の読み取りから解読までを一続きで進めたと説明しています。

Astraは画像を行ごとに分けて記号を読み取り、手書きの違いが同じ記号を指すかどうかを整理しました。その後、フランスの暗号史研究者ダニエル・タン氏が記録した既知の値を使い、残る記号の解読に取り組みました。

チャーチ氏によると、候補の読みを画像上で同じ記号が現れる箇所と照らし合わせ、全体に矛盾がないか確認しました。解読結果を再生成・検証するスクリプトと解読表も公開されています。

暗号表と探索アルゴリズム

当時のフランス軍司令部では、平文と対応する記号を並べた暗号表と、受信側が復号に使う逆引きの表を用いていました。担当者は文章を一文字ずつ暗号化し、同じ文字に複数の記号がある場合は、その中から選んでいました。

この方式では、平文の同じ文字が毎回同じ記号になるとは限りません。チャーチ氏によると、今回の解読では既知の値を固定したうえで、フランス語の3〜5文字の並びの統計を評価に使い、シミュレーテッド・アニーリングで記号の候補を探索しました。

シミュレーテッド・アニーリングを使う一般的な単一換字暗号の解法では、鍵の文字を入れ替え、復号文の文字列の出現傾向などから候補を評価します。局所的に改善しない場合も探索を続けるため、途中で評価が下がる候補を受け入れることがあり、その確率を徐々に下げます。これは単一換字暗号についての説明であり、今回のように同じ鍵で置き換えない暗号方式と解法の詳細が同じという意味ではありません。

解読文が補った記述

解読された手紙には、マルモンに部隊の移動を命じる際、少数の兵や「ならず者の集まり」にひるまないよう伝える記述がありました。トムズ・ハードウェアは、この文言がナポレオンの回想録で途中まで記されていた命令の続きに当たると報じています。

チャーチ氏によると、解読結果は暗号文そのものに各記号を当てはめて機械的に検証できます。公開されたスクリプトは、解読結果の再生成と照合に使えます。

トムズ・ハードウェアによると、未解読暗号を集めているクリプティアナの運営者、佐藤智紀氏は、この暗号を解読済みとして扱いました。