名册密码(密码本)
发布 2026 年 9 月 26 日 · · 8 分钟阅读
名册密码一半是密码,一半是字典。它照常替换字母,但同时为真正要紧的名字——国王、城市、将领、月份——单独分配编码,使攻击者最想找到的那些词恰恰保护得最好。三百年来它是欧洲外交的标准工具,而它的失效方式从来不是数学上的。
- 时代
- 中世纪
- 类型
- 替换
- 密钥空间
- codebook size
- 难度
- 野战
I现象
十六世纪威尼斯的一本名册密码分三部分:字母的两三位数字编码表、为该语言所需音节准备的音节表,以及一份包含数百个专有名词、各有编号的 nomenclatura。
本条目旁的实验台复刻了它的形状。字母获得两三位数字编码;THE、AND、KING、POPE、WAR、FRANCE 各自获得独立编码;词与词之间用斜杠分隔。
| 层次 | 示例 | 用途 |
|---|---|---|
| 字母编码 | L = 83 | 处理任何未收录内容 |
| 单词编码 | THE = 01 | 去掉最可预测的文本 |
| 空码 | 未使用的编号 | 填充与诱饵 |
| 同音码 | 同一字母多个编码 | 压平频率画像 |
最后一行才是真正的手艺。如果 E 有四个不同编码、加密者轮换使用,频率画像就被压平,古典攻击随之减弱。但攻击者其实已经不再需要字母了——因为名字本身就是消息:一份由 03 06 05 组成的电报,只要你缴获了一本密码本,就完全不需要任何密码分析。
II密钥空间
密钥空间就是密码本中的条目数,而它完全靠管理而非计算得来。一本外交名册密码可能载有 1200 个编码;教廷用的更多。
优势是真实的:密码本做到了算法做不到的事——让重要的词成为昂贵的词。频率分析假设每个明文字符给攻击者带来的成本相同,而名册密码刻意打破这个假设。
代价同样真实,而且是运行层面的:每个通信对象都要有自己的一本,每本都必须安全递送,凡是可能被缴获就必须更换,每个文书都必须在时间压力下准确使用它。
名册密码的安全参数不是熵,而是“必须保守秘密的人数”。
III加密步骤
- 编制密码本:字母编码、常用词编码,以及一份专有名词表。把条目编在密集的号段里。
- 加入同音码:给最高频的字母各分配若干编码,并加入一批毫无意义的未使用编号。
- 逐词加密:若有单词编码就用单词编码,否则逐字母加密。
- 按接收方知道的规则轮换同音码——严格按顺序是最简单、也是现存密码本中最常见的做法。
- 清楚地分隔词,通常用斜杠或重复编码。字母层与单词层之间的歧义是最常见的错误来源。
- 在句末插入空码,使消息长度不携带信息。
- 销毁消息的工作副本。密码本应当是唯一存活的实物。
IV解密步骤
- 先由分隔符确定词边界。
- 把每个编码在书中查出。两三位编码是字母;以某个特定号段开头的四位编码通常是专有名词。
- 展开同音码:若同一字母有四个编码,四个都映射到同一个字母,所以对照十分直接。
- 若某个编码查不到,要么密码本已过期,要么来自另一个通信对象——这是实践中最常见的失效情形。
- 把空码当作空白,读出电报。
- 记住你手里拿着的其实是什么:有了密码本,这就不是密码分析,而是誊录。安全性来自管理,因此破法也必须来自管理。
V弱点
密码本是一件实物。 它可以被缴获、出售、抄录、拍照。苏格兰女王玛丽败落,不是因为她的名册密码被数学攻破,而是因为她自己那些信件的明文被查获——密码撑住了,运行安全没撑住。
编码层内部仍有重复。 即使使用同音码,同一个词仍会出现同一个编码;若敌人已知一个名字,那么它每次出现敌人都知道。
密码本的维护难以扩展。 一场战役中新添一名将领,就要向所有通信对象重新发放密码本,而重新发放既慢又贵又显眼。
泄密是彻底且无声的。 算法被破会同时对所有人失效,并被人察觉。密码本被缴获只对某一个通信对象失效,可能数月无人发现,而这数月里每一条消息都被读走了。
笔误很常见。 编码是密集排列的四位数字;抄错一位会产出一个看起来很正常、却解成乱码的密文,而标准补救措施——重发——让攻击者拿到的通信量翻倍。
VI实战挑战
密文
01 / 03 / 02 / 01 / 04
提示: 单词编码排在密码本最前面;字母编码从 17 起递增。实验台工具输出的正是这套记号。
展开答案
明文
THE KING AND THE POPE
·史料
这个词来自拉丁语 nomenclator——罗马家庭中负责向主人低声报出走近公民姓名的奴隶。密码学意义上的名册密码出现于十四、十五世纪的意大利城邦,此后一直是威尼斯、教廷、西班牙与英国外交通信的支柱。1586 年牵连苏格兰女王玛丽的巴宾顿阴谋信件,用的就是一套约 200 个符号、字母编码与名册混用的密码;英方秘书处与托马斯·菲利普斯合作将其读出,并且决定性地截获了授权该阴谋的那段加了封的附言。
·继续读
名册密码在二十世纪的后代是“密码本式”通信,间接地也是一次一密:认识到你需要的不是更聪明的变换,而是用过一次即销毁的密钥材料。
另一个后代是“对选定内容采用不同保护”这一思路。现代系统也这样做:不同类别的数据用不同的密钥、不同的有效期——普通消息与签名密钥不会、也不应该按同一标准保护。
下一台织机:null-cipher 靠“看起来根本不像消息”来隐藏消息。
+相关织线
提罗速记符号
在密码开始缩写字母之前,速记已经在缩写*词*了。提罗速记是拥有数千个符号的罗马速记系统,为快速记录演说而生,也是西方第一个被广泛使用、能让多数读者一眼看不懂的书写系统。它与密码是另一种性质的保密,值得单列一条。
书本密码
书本密码用一本书取代字母表。每个字母写成一个位置——页、行、词、字——由接收方去查。这套方法不需要数学、不需要背方阵、不需要器械,因此每当人们只能依靠手边现成的东西来秘密通信时,它就会重新出现。
猪圈密码(共济会密码)
猪圈密码把字母写成网格的碎片。两个井字框加两个 X 框恰好给出 26 个格子,于是这套密码与字母表严丝合缝、不多不少——这究竟是优雅还是巧合,取决于你怎么看待这类事。它是十八世纪共济会会所的标准私下笔迹,也出现在墓碑石…