跳到正文
Cipherloom密码织机

CIPHER/SUBSTITUTION/PIGPEN CIPHER

猪圈密码(共济会密码)

发布 2026 年 9 月 8 日 · · 5 分钟阅读

猪圈密码把字母写成网格的碎片。两个井字框加两个 X 框恰好给出 26 个格子,于是这套密码与字母表严丝合缝、不多不少——这究竟是优雅还是巧合,取决于你怎么看待这类事。它是十八世纪共济会会所的标准私下笔迹,也出现在墓碑石刻和海图标记上。

时代
中世纪
类型
替换
密钥空间
1 key (26 glyphs)
难度
入门
密文栅格图版:猪圈密码(共济会密码)
图版 pigpen-cipher · 替换

I现象

画四个框架。前两个是井字格,后两个是带对角交叉的方框。每个井字格有九格,交叉框只有四格。

框架格数字母
北格9A B C D E F G H I
南格9J K L M N O P Q R
东叉4S T U V
西叉4W 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——本织机上第一个让有能力的攻击者真正感到吃力的密码。

+相关织线