中文译本 · 原作 Daniel Bourdeau《Unsolved Historical Ciphers》 以 CC BY 4.0 发布,本页由 JIC 翻译,非原作者官方版本,译文如有出入以英文原页为准 · 查看英文原页 ↗
30 c 19 g 4, 4 30 12 30 19, 2 30 f 16 0 8 a 0 2 12 20 30 90 30 80 0
a 0 u 4 19 88 30 0 20 4 a 16 0 30

法国 · 同音替换,混合字母表 · 1644

Sir Richard Forster,1644年5月13日

Archives départementales du Val-d’Oise, 68.H.8, troisième liasse · 由 Karen Britland 发表(2013年)· 由 S. Tomokiyo 转录(2021年)

在本项目之前已由 George Lasry、Norbert Biermann 和 Robert Pitt 解读;套用了 Pitt 的密钥。新增内容:一项置换对照、仅凭密文复原34个符号中的31个,以及显而易见的攻击为何失败的原因

Daniel Bourdeau · 发布于 · 更新于

方法:用已知密钥读出 · 范围:完整

摘要。Tomokiyo 至今仍把这段文字列在没有已知解读的密码中,但它其实早已被解读:Britland 的文章发表后由 Lasry 解读,Biermann 独立解读过,2026年9月 Pitt 又解读了一次,他的密钥是公开的。这里关于文本本身没有任何新东西,也不声称有任何解读。本页记录的是一次验证,以及一个关于方法的结论。追踪表原本预测这是 Ormonde 或 Boswell 那一类常规的斯图亚特密钥;实际上这段文字用的是一个34个符号的混合同音替换字母表,18个数字和16个字母,共207个码元,分为37个以逗号隔开的词。Pitt 的密钥比字母身份的20,000次置换高出8.8个标准差。随后,一个使用法语五元模型的同音替换求解器(模拟退火)仅凭密文就复原了密钥(207个码元中的202个,34个符号中的31个),但前提是训练文本像1644年的手写那样,把v写作u、把j写作i。在作此改动之前,同一个求解器能解密六个相匹配对照中的五个,却仍然在目标上失败,一个错误的密钥得分高于正确的密钥:明文的拼写落在了模型之外。程度:完整。四处单个笔误和两个只出现一次的词需要查看手稿;优先权属于 Lasry、Biermann 和 Pitt。

01 段落

Britland 2013年的文章印出了 Forster 文稿中的这段密文,连同两段法语明文和日期;Tomokiyo 于2021年9月21日在他的博客上转录了它,Pitt 的输入与之逐码元相同。这里的追踪表原本写的是“134个码组,24个符号”;真实的计数是:

码元词不同符号数字字母数只出现一次IC
20737340 2 4 5 7 8 12 14 16 19 20 30 40 50 70 80 88 90a b c d e f g l n p q s t u x y80.047

最常见的:30(×24),2 和 0(各×18),20(×13),x(×10),c 和 s(×9)。逗号是词或词对的边界,正是这一点让207个码元变得可以处理。

02 密钥(Pitt;此前有 Lasry 和 Biermann)

字母数a d · b t · c l · d i · e g · f b · g y · l r · n f · p a · q c · s o · t n · u m · x s · y p
数字0 e · 2 e · 4 a · 5 g · 7 d · 8 t · 12 c · 14 z · 16 i · 19 n · 20 r · 30 u · 40 s · 50 t · 70 f · 80 l · 88 q · 90 p

没有移位,没有分块,没有奇偶行:这是一个混合字母表,常用字母e a c d f g i l n p r s t各有第二个符号(t还有第三个),而u虽然是最常见的字母,却只有一个符号。它属于黎塞留式同音替换字母表这一族;常规的斯图亚特式不符合。未用到的值大概在完整密钥中对应h k m o x以及更多同音符。

il ny a aucun subiet descrupule de manquer a dieu | ie vous en responds et mesmes dans | les reigles de perfection prenez sdulement les uoyes de prudence piur conceruer uotre uie pour en faire a dieu un plus grand sacrifiye par la multiplication des uos seruices pour le salut de uos freres | et mesurer a cela sil est meilleur d’agir, ou de soupir · 13. de may. 1644

没有任何理由顾虑会有负于上帝;我为此担保,即便按照完美的准则也是如此。只须采取审慎之道保全您的性命,以便通过为弟兄们的救赎多多效力,将这性命作为更大的祭献奉给上帝;并以此衡量是行动更好,还是忍受更好。有四个码元(粗体)与解密结果冲突(a→d,16→i,q→c,g→y,每个都与多处一致的出现相抵触),是加密者或排印转录中的单个笔误;207个中有四个,与 Boswell 的比例相同。Britland 的通信者给出的是aucune voie de scrupule和preveu seulement,而 Pitt 作aucun subiet和prenez;有争议的码元(f、14)各只出现一次,无法从文本本身判定。

03 置换对照

在 Pitt 的同音符划分上,把二十个明文字母的身份置换20,000次,并用法语五元模型给207个字母的解码结果打分。

模型Pitt 的密钥零假设均值 / 标准差 / 最佳z零假设中至少同样好的
仅字母(650万个字母)−450.3−1327 / 117 / −9607.50 / 20,000
字母 + 词边界,v写作u,j写作i−524.9−1768 / 142 / −12308.80 / 20,000

04 仅凭密文复原及对照

一个同音替换求解器(模拟退火;34个符号对应26个字母,150,000步,重启8–12次),先不用、再用词边界,分别在目标和六个相匹配的对照上运行:对照是207个字母的留出法语文本,用一个同音符重数与 Pitt 完全相同的随机密钥加密,并像目标那样以0.2的概率合并相邻词。

段模型读出的对照(共6个)目标
1五元,仅字母,无词边界0(正确率16–49%;6个中有5个求解器的最优解得分高于真解)乱码,与 Pitt 密钥的吻合度31%
2带空格的五元,原始语料3个达到99.5–100%;3个落入由 OCR 罗马数字造成的全i吸引子吸引子
3同上,去掉罗马数字5个达到99–100%,1个为44%找到的为−591.6,Pitt 的为−602.4:错误的密钥得分高于真解,吻合度14.5%
4同上,训练文本中v→u,j→i6个中6个(98–100%)盲解得到 Pitt 密钥的97.6%:207个码元中的202个

第1次运行在这个长度上重复了 Moray 信件的结果:207个字母、34个符号,用普通的字母流模型,即使在对照上也低于求解器的门槛,所以目标上的失败本来说明不了任何问题。第3次运行更有用。对照通过而目标失败,说明是明文落在了模型的分布之外。这封信写作uotre, uie, uos, seruices, uoyes, subiet, ie,1644年的手写无不如此;一个用带v和j的19世纪版本训练的模型,给这种拼写打的分比同样长度的现代法语低约200奈特,于是乱码胜出。把训练文本规范化就解决了问题。复原的密钥与 Pitt 的只在三个罕见符号上不同(g、14、e),它们的值 n 元组无法确定,而词可以。在同一模型下运行的两个134个字母的对照(追踪表那个错误的长度)都以97–99%解密,所以长度从来不是障碍。

05 仍未解决的部分

06 方法与文件

  1. 分词器、码组、Pitt 的密钥和逐字解码(targets/forster/key.py).
  2. 仅字母的法语五元模型、置换检验、盲解退火器、六个相匹配的对照(ng5fr.py, solve.py, run1.txt).
  3. 带词边界、并作u/v、i/j规范化的模型,同样的检验(solve2.py, run2–4.txt);134个字母的重复实验(control134.py, run5_134.txt).

已核对:Pitt 的输入与博客文本;密钥与20,000次置换;在四种模型下的仅凭密文复原和六个相匹配的对照。未核对:手稿;Britland 的文章本身,除摘要和 Pitt 引用的读法之外。

07 来源

分析脚本和密文都在仓库中(targets/forster/).