猪圈密码(共济会密码)
发布 2026 年 9 月 8 日 · · 5 分钟阅读
猪圈密码把字母写成网格的碎片。两个井字框加两个 X 框恰好给出 26 个格子,于是这套密码与字母表严丝合缝、不多不少——这究竟是优雅还是巧合,取决于你怎么看待这类事。它是十八世纪共济会会所的标准私下笔迹,也出现在墓碑石刻和海图标记上。
- 时代
- 中世纪
- 类型
- 替换
- 密钥空间
- 1 key (26 glyphs)
- 难度
- 入门
I现象
画四个框架。前两个是井字格,后两个是带对角交叉的方框。每个井字格有九格,交叉框只有四格。
| 框架 | 格数 | 字母 |
|---|---|---|
| 北格 | 9 | A B C D E F G H I |
| 南格 | 9 | J K L M N O P Q R |
| 东叉 | 4 | S T U V |
| 西叉 | 4 | W X Y Z |
所以字母 C 是北格的右上格,字母 T 是东叉的右上格。在格内加点可以区分第二组与第一组,这正是它如何从 26 个格子里挤出 26 个不同符号的办法。
本实验台把那些格址直接写成记号——N1 表示北格第 1 格,E3 表示东叉第 3 格——这样不用画图也能看到映射。
关键观察:这些符号不是随意涂鸦。它们有几何结构,而几何结构是可以被读出来的。
II密钥空间
没有密钥。字形集固定且公开,一百年来一直印在童子军手册上。
表面上巧妙之处在于 9 + 9 + 4 + 4 = 26 正好整除。这条算术就是全部设计,也是全部问题所在:因为每个字母是一个形状,而形状有邻居。
一个把字母表印在海报上的替换密码无法靠保密来防护,只能靠“肉眼难读”来防护——而猪圈并不难读。
加点约定值得作为一种设计模式记下:它和凯撒移位是同一招,只不过用在视觉字母表而不是字母字母表上。格子不够用,就加一个记号。
III加密步骤
- 画出四个框架,位置要与接收方一致,或事先约好标准布局。
- 对每个明文字母,找到它在所属框架里的格子。
- 画出框架轮廓并填出正确的格子。若布局要求,对第二组(标准布局中的 J-R 与 W-Z)使用加点区分。
- 把框架连成一行书写,词与词之间留一个小空隙。
- 绝不要在同一张纸上写下任何明文。
IV解密步骤
- 把字形序列拆分为一个个框架。
- 对每个字形,先由其轮廓形状判断它属于哪个框架:井字还是交叉,在上还是在下。
- 读出它在框架内的格子位置。
- 把“框架 + 格子”映射回标准字母表。
- 若某个框架画得含糊、导致两种读法都成立,就用前后文判断——这正是该密码的脆弱之处。
V弱点
形状扎堆。 占据相邻格子的字母在纸上几乎一模一样。N1 和 N2 只差一条直线。一笔墨迹晕开,字母就变了。
与任何单表替换密码共享同一套统计。 频率画像完好无损;数一数字形,消息就开了。
出错会自我暴露。 猪圈字形是画出来的,所以人们写得慢而仔细——词间空格常常被保留,而“词边界泄露”是最有害的泄露之一。
它已经公开两百年了。 任何地方的任何攻击者,要么记得映射,要么五分钟就查到。工作量为零。
VI实战挑战
密文
N3 N5 S3 S3 E1 N8 S6 S3 N4 E1 N5 N3 S9 N5 E2 E1
提示: N 为北格,S 为南格,E 为东叉,W 为西叉。格号从左到右、从上到下数。
展开答案
明文
CELLS HOLD SECRETS
·史料
猪圈密码的记载始于十八世纪初,通常被称为共济会密码,因为它遍布于会所会议记录、会员名册与通信中。它也出现在美英两国的墓碑、航海图的页边,以及十九世纪美国监狱日记里。“猪圈”这个名字来自井字格与猪栏的相似,并在十九世纪的谜题书、后来又经童子军手册以这个名字流行开来。
·继续读
猪圈的思路不断回归:用一个视觉格子系统取代字母表。本合集中稍后的 Baconian 把字母编成五个记号,ADFGVX 野战密码把它们编成六字母字母表的字母对。每一次都是同一个决定——花一点冗余,换取一套能通过你手头那条信道传输的符号集。
猪圈是为“用笔写在纸上”而设计的。那是信道约束,不是安全特性。分清哪些约束来自信道、哪些来自安全,就是实用密码学的绝大部分内容。
下一台织机:vigenere-tableau——本织机上第一个让有能力的攻击者真正感到吃力的密码。
+相关织线
阿特巴什(镜像替换)
阿特巴什把字母表对折,让 A 贴 Z、B 贴 Y、C 贴 X。它根本没有密钥——知道这个方法本身就是全部秘密。它是“替换字母表”最干净的示例,而且自逆,这一性质是后来的密码花大力气去追求的。
名册密码(密码本)
名册密码一半是密码,一半是字典。它照常替换字母,但同时为真正要紧的名字——国王、城市、将领、月份——单独分配编码,使攻击者最想找到的那些词恰恰保护得最好。三百年来它是欧洲外交的标准工具,而它的失效方式从来不是数学上的。
培根密码
弗朗西斯·培根 1605 年提出的双字母密码,是有记载以来第一次用二进制编码字母表——比任何人真正需要二进制早了三个世纪。它也是隐写术最早、最清晰的表述:秘密不在编码上(编码是公开出版的),而在于承载它的*字体选择*。