217年无人能解的拿破仑密信,GPT-6 Astra用六小时破译

1809 年 3 月下旬,一封加密信件从意大利王国副王欧仁·德·博阿尔内的司令部发出,收件人是驻守达尔马提亚的马尔蒙元帅。信里列着法军、盟军与奥军各自的兵力和驻地,是奥地利开战前两周的战情通报。此后 217 年,没有人能完整读出这封信的内容,唯一的公开版本是 1969 年一份法国军事期刊上的低分辨率图版,上面还印着一个错误的年份。它长期挂在密码史网站 Cryptiana 的未解密信榜单上,职业密码学家 Daniel Bourdeau 尝试后宣布无法下手。

2026 年 9 月 18 日,SentinelOne 的 AI 工程师 Carter Church 公布了对这封信的完整破译方案:大约 6 小时模型执行时间,他拿到了全部符号的密钥对照表、逐行转录、明文翻译,以及一个可以重新生成全部读法的脚本包,用到的模型是 OpenAI 的 GPT-6 Astra,过程公开在自己的网站上。9 月 30 日他在 X 上复述了这项工作,帖子获得上百万浏览。

1809 年致马尔蒙元帅密码信的 1969 年杂志图版

这封信为什么 217 年读不了

先看敌人的强度。信件正文约 1300 个密码单元,使用了 155 种独立符号,密密麻麻排了 24 行。开头一句是正常法语(「马尔蒙将军,您应当已收到本月 8 日、14 日和 20 日的信件」),从第二句开始全是两位数、零散字母和手绘符号。

它用的是同音替代密码(homophonic substitution)。简单替代密码里每个字母固定对应一个符号,符号频率就是字母频率,拿法语里 e 出现约 15% 这类统计规律对号入座,几页纸就能破。同音密码的对策是给高频字母配好几个可互换的符号,把符号频率分布摊平:e 可能对应六七种写法,每种单独看都不起眼。频率分析这条两百年来最好用的武器,被这种设计直接废掉。

人类专家面对的困难还不止密码本身。图版是 1969 年杂志的黑白印刷品,尺寸 1202×1836 像素,平均每个符号只占约 19 个像素,哪些笔画属于同一个符号都要靠猜。转录和破译在密码学里通常是两个分工,前者是苦力活,后者是脑子活,前者没人愿意做,后者缺了前者做不了。Church 在复盘里点破了僵局:这套密码在数学上并不难,真有人肯花时间早就破了,问题是「转录、编目、翻译、破译」的多学科联动没有专家有空去做,这封信尘封 217 年的原因是没人觉得它值得投入这么大成本。

六小时工作流的五个环节

Church 没有密码学背景,他的输入是一张图和一句目标。按照他公开的复盘,整个过程分五步。

第一步是转录。Astra 把图版切成一行行的局部图,逐行读符号,每个看起来不同的标记起一个临时名字,笔迹变体先分开保存,最后把各段拼起来对账,得到 1320 个密码单元和 175 个临时符号标签。判断哪些是同一个符号的两次手写、哪些是不同符号,这一步没有人工参与。

第二步是锚定已知的部分。法国密码史学者 Daniel Tant 曾经发表过这封信的 33 个字母值,覆盖 435 个单元,约占全部的三分之一。另外信件第 14 行有一个用普通字母拼写的单词 CONSEQUENT(因此),是编织密码时留下的明文锚点。两下合计,搜索还没开始,信件的三分之一已经可读。

第三步是对剩下约三分之二(865 个单元)做搜索。Astra 自己写了一个模拟退火求解器:给剩余符号随机分配字母,把候选明文对照法语统计特征打分,分数不行就换一种分配,温度参数逐步降低,分配方案逐渐稳定。打分语料直接取自雨果、大仲马的作品和马尔蒙本人回忆录,从中提取 3-gram、4-gram、5-gram 统计,19 世纪军事法语的用词习惯被编进了评分函数。模拟退火解同音密码在学术界有成熟先例,HistoCrypt 2019 和 Cryptologia 2013 都发过同类方法,Astra 做的事情是把一篇方法论文变成一次可执行的运行。

第四步是发现整词符号。有 29 种符号按单字母处理时译文始终别扭,Astra 判断它们代表的整个高频词,如 de、que、les、vous、général。这是拿破仑时代密码的典型设计(两年后马尔蒙的葡萄牙军团用约 150 个条目的码本,1811 年底巴黎大码本膨胀到 1400 个条目),识别出这一层后译文才通顺。

第五步是闭环校验。初版翻译完成后,Astra 把每个符号的候选值放回图版上逐一核对每种出现场景,确认所有上下文通顺。Church 强调图版全程留在工作流里,提议值要经得起图上每一次出现的检验。

破译结果里有什么

解出的明文是一份标准的战前兵力通报:但泽公爵(勒费弗尔)率 4 万巴伐利亚军驻慕尼黑和帕绍;波尼亚托夫斯基亲王率 3 万波兰军营于维斯瓦河畔,威胁克拉科夫;蓬特科尔沃亲王(贝尔纳多特)指挥萨克森军驻德累斯顿城前;奥埃尔施泰特公爵(达武)率 8 万法军占拜罗伊特;里沃利公爵(马塞纳)6 万人驻乌尔姆与多瑙沃特;乌迪诺率 4 万精锐军驻奥格斯堡和莱希河沿线。信里还附了一句拿破仑式的判断:奥地利正在加速走向毁灭。

另一个收获是文献学层面的。1860 年代整理出版的拿破仑书信集里,这封信对应位置有半句被删节,中断了 160 余年。破译出的明文补全了它:不要被一小股敌军或一帮乌合之众吓住。历史在这里开了个玩笑,收信人马尔蒙在 1814 年倒向反法同盟,催促拿破仑退位,这封叮嘱他不要被吓住的密信,成了皇帝对未来背叛者的最后交底之一。

技术解读:这个案例的边界在哪里

把这件事放进 AI 能力的坐标系里,几个细节值得展开。

其一,瓶颈从推理转到了工作流整合。同音密码加模拟退火是学术界已经有解法的问题,纯算法层面 2013 年就能跑。真正卡住 217 年的是前置工序:低分辨率图像转录、笔迹变体归并、多学科知识(密码学、古文书学、19 世纪法语、拿破仑战史)的现场调度。这个案例展示的是模型把散装工序串成一条流水线的能力,转录和破译两个通常分属不同职业的环节在一次运行里完成。

其二,结果可复现。Church 公开了完整解法包,密钥、转录和脚本齐全,任何人可以重新生成这个读法。这和社交平台上「我用 AI 破解了」的口头宣布是两种东西,也是这项工作能被密码史社区认真对待的原因。破译结果发布后,OpenAI 的 Peter Welinder 确认了这项应用,也有密码学背景的观察者提醒:在古典密码上展示的模式识别能力,与现代加密算法的计算安全性是两个难度层级,前者是统计结构挖掘,后者要对抗的是设计上不可行的搜索空间,目前没有可比性。

其三,它标记了一类此前不存在的需求。OpenAI 在 5 月公布过 AI 对 Erdős 单位距离猜想的反证,9 月底又汇总了内部版 Astra 在十个长期悬置的数学与理论计算机科学问题上的新结果,每个论证附带 Lean 形式化证书,求解过程的总 token 开销按 Sol 系列 API 定价折合约 2000 美元。数学问题和档案问题代表了同一个能力的两端:前者要求严格性,产出能被证明检查器验证;后者要求杂食性,产出能被领域专家复核。Church 自己是网络安全工程师,破译这封信之前从未碰过密码学;启发他的 Leffen 破译 1941 年 Enigma 密电之前同样不是密码学家。悬案清单还在那里,谁来排队,答案已经不必是职业密码学家。

这封信的完整解法、密钥表和脚本在 Church 的网站上公开,Cryptiana 的未解榜单上还有几十条类似的条目。第一批按图索骥去排队的,大概率不是密码学家。

说明

  • 一手来源:Carter Church,Breaking the Marmont Cipher, 1809(carter.church/writeups/the-letter-to-marmont),含密钥、转录与可复现脚本包
  • 密码史背景:Satoshi Tomokiyo 的 Cryptiana 未解历史密码榜单;Scovill 码本史见于 Church 引注
  • 模型信息:OpenAI GPT-6 Astra 官方页面;OpenAI「Ten advances in mathematics」(2026-05)
  • 事件传播链:Church 于 9 月 30 日在 X 发布复盘,帖子浏览量超百万;36 氪经新智元授权于 10 月 1 日转载
  • 明文兵力数字与译文引自 MetaFilter 对破译文本的转录;删节句补全细节以 Church 原文口径为准
  • 配图为 1969 年杂志图版与 carter.church 站点官方图,未经修改