卡丹栅格
发布 2026 年 10 月 11 日 · · 7 分钟阅读
吉罗拉莫·卡丹的栅格是一张挖了孔的硬纸片。把它压在空白页上,透过孔写下消息,再把页面其余部分填满无关文字。接收方把一张完全相同的栅格压在同一页上,只读露出来的部分。它是一件以实物为密钥的置换密码,至今仍是对“密钥到底在做什么”最直观的演示之一。
- 时代
- 文艺复兴
- 类型
- 置换
- 密钥空间
- grille patterns
- 难度
- 野战
I现象
本实验台把栅格写成一张带六个孔的 5 × 5 方格,每次都使用同一套布局,以便例子可复现:
| 孔 | 行 | 列 |
|---|---|---|
| 1 | 1 | 2 |
| 2 | 1 | 5 |
| 3 | 2 | 3 |
| 4 | 3 | 1 |
| 5 | 4 | 4 |
| 6 | 5 | 3 |
透过孔写 SECRET,会填入 (1,2)、(1,5)、(2,3)、(3,1)、(4,4)、(5,3) 六格。其余全是填充。缴获到这张纸的拦截者看到的是一块 5 × 5 的字母,看不出明显顺序。
栅格真正的微妙之处在于:设计良好的遮罩会让旋转覆盖整页。一张 4 × 4 方格在四个朝向下会把每一格恰好访问一次,这意味着制作精良的栅格可以在完全没有填充的情况下填满整页。卡丹本人的设计较简单、确实用了填充;旋转这一改良出现得更晚。
注意哪些东西没有改变:频率。这一页包含的正是明文的字母加上填充,而填充可以被选成像普通散文的样子。对可见页面做频率分析几乎什么都告诉不了分析者,因为他们能看到的大部分都是诱饵。
II密钥空间
密钥就是孔的图样。对 n × n 方格,不同遮罩的数量组合式增长,而 6 × 6 方格已达到数百万量级——按当时的标准,这是一个真正庞大的空间。
有两个细节让它在实践中可用。第一,遮罩与其旋转是等价密钥,这按对称因子削减了数量。第二,不能均匀覆盖页面的遮罩会浪费容量,因此可用遮罩只占全部遮罩的一小部分。
卡丹栅格对本合集的贡献在于:密钥可以既不是数字、不是字母表、也不是一本书,而是一个形状。
它在现代的后代是置换表:在分组密码中,比特被重新排列的次序就是一面栅格,只不过用算术而不是纸片来表达。
III加密步骤
- 裁出栅格。在与书写页同样大小的硬纸片上标出孔的位置。
- 把栅格压在空白页上并固定,使其不会移位。
- 按阅读顺序透过孔书写明文,每孔一个字母。
- 移开栅格。消息字母此时散落在页面上。
- 把所有剩下的位置填满无关文字,使整体读起来自然。
- 誊抄成品页或直接寄出。接收方只需要一面完全相同的栅格。
- 若遮罩采用旋转设计,就转四分之一圈再重复一遍,以用满整页。
IV解密步骤
- 取得匹配的栅格。这一步无法跳过、也无法替代;没有遮罩,这一页就只是偶尔夹杂怪字母的散文。
- 用双方约定的定位标记把栅格对准页面——通常是书写区域的四角。
- 按阅读顺序透过孔读取。这就是明文。
- 若采用旋转设计,每读完一遍就把栅格转四分之一圈再读,直到消息完整。
- 忽略孔外一切可见内容,无论它看起来多奇怪。填充本就允许奇怪,那正是它的用途。
V弱点
实物遮罩就是全部秘密。 丢失、被窃或被人拍照,通信立刻敞开。不做一面新的栅格就无法更换密钥。
栅格难以藏匿。 一张挖了孔的纸片既不便携带,也很容易被搜到。历史上带着栅格的特工常把它藏在书封里——直到那本书被仔细检查为止。
填充文本写得不好就是破绽。 重复的填充、词长异常的填充,或读起来不像散文的填充,都是响亮的信号。在实践中,把填充写得可信是运用栅格最难的部分。
行会泄露。 若书写者把每行填成固定长度,消息字母的位置就可以从这种规律性推断出来。良好的做法要求填充真正地有变化。
它是置换,所有字母都在。 缴获足够多的页面后,分析者可以尝试易位构词;遮罩只是拖慢速度,并不改变底层的统计。
VI实战挑战
密文
· S · · E · · C · · R · · · · · · · E · · · T · ·
提示: 按先行后列的顺序读六个孔;每个点都是填充。
展开答案
明文
SECRET
·史料
吉罗拉莫·卡丹是米兰的医生与数学家,更以三次方程的研究和《论精微》(1550 年)闻名;他把栅格描述为一种把消息藏进一封无关紧要的信里的方法。这门技术在欧洲外交通信中被使用,后来也被革命组织与情报机构采用;1950 年代从苏联间谍网中起获的一面栅格至今保存于博物馆藏品中。用一面遮罩旋转四次以覆盖整页的旋转版本是后世的改良,至今仍是密码学入门课程讲授的版本。
·继续读
卡丹在 1550 年的《论精微》中描述了栅格,它属于“秘密是一件实物而不是一条规则”这一族密码——与前面出现过的书本密码同族。
它最著名的现代露面与密码学无关:栅格是间谍小说的标准道具,理由很充分——它是唯一一种读者能凭一张插图就完全理解的密码。
下一台织机:columnar-transposition 接过置换的思路,改用单词而不是遮罩作密钥。