业余爱好者用人工智能破译历史上的古老密码
作者: aeks | 发布时间: 2026-10-30 20:06 | 更新时间: 2026-10-30 20:06
恩尼格玛机曾在二战期间被德军用于加密通信。
卡特·莱芬看到人工智能模型GPT-6 Astra解出一条已加密85年的德军绝密消息时,几乎不敢相信。他没有密码学经验,只要求模型破译这条消息,几次催促它继续思考,晚上睡觉时也鼓励它继续工作;第二天早上模型果然给出了答案。现在许多非专业人士正在用大语言模型破解历史密码。他们利用了这类模型快速部署解密算法、同时上网查找可能有帮助的历史文献和资料的能力。密码学专家对破译兴趣上升感到高兴,但也对大量要求验证AI方案的信息感到应接不暇,因为这些方案常常是错误的。已退役游戏开发者、写过密码学书籍的埃隆卡·杜宁表示,很多不懂密码分析的人带来的误报太多了。
九月,在纽约金融数据与媒体公司彭博担任产品开发教练的莱芬,要求GPT-6 Astra浏览由挪威奥斯陆独立密码学家弗罗德·维鲁德维护的网站Crypto Cellar Research,该网站列出许多历史未解密码。他让模型选择一个并解码由恩尼格玛机加密的消息;恩尼格玛是德军在二战中用来向敌方隐藏军事通信的机器,其转子和插头会重新连接电信号,从而加密字母,理论上可产生多达103个sextillion(约1.03×10^23)种可能设置,也就是天文数字。由加州旧金山OpenAI开发的GPT-6 Astra选择了1941年7月10日发送的一条消息,可能是因为这条消息较短,只有82个字符,并且可能与同一天发送、已在2017年破译的另一条恩尼格玛消息有关。如果已破译消息包含未解消息中的相同词汇,就能提供密码学家所称的“crib”(已知明文片段),帮助破译;例如两条消息都可能写给高级纳粹官员“Obergruppenführer”。GPT-6 Astra编写代码模拟恩尼格玛机,寻找既能复现已破译消息中的已知明文片段、又能让未解消息变得通顺的设置。在十小时里,模型测试了超过四十亿种设置。莱芬对模型给出的答案非常惊讶,把它发送给维鲁德确认。结果显示,这条消息使用的恩尼格玛设置与同一天已破译的那条不同;这种情况并不常见,也许解释了为什么它85年未被破译。
几天后,受莱芬成功启发,加州山景城网络安全公司SentinelOne的职员工程师卡特·丘奇决定挑战一条1809年由意大利官员发给拿破仑一名将军的未解密码。这张图片展示的是丘奇用GPT-6 Astra破译的1809年信件,它写给法皇拿破仑军队中的一名将军。丘奇把这张图片给了GPT-6 Astra;该消息列在由日本专利工程师兼业余密码学家Satoshi Tomokiyo整理的网站Cryptiana上。模型在法国一个密码学网站的记录里找到部分密钥,并用逐步尝试的方法处理未解消息。它采用一种叫模拟退火的常见解码策略:每次根据输出是否比前一次更通顺来调整破解密钥。大约六小时后,GPT-6 Astra找到了正确密钥,丘奇把破译后的消息——内容是部队位置——发送给在东京的Satoshi Tomokiyo验证。丘奇表示,这条消息即使不用AI也可能被解决,但模型能转录图片中的符号、找到部分密钥并确定如何应用这些密钥,大幅减少了所需时间和工作量。