阿特巴什(镜像替换)
发布 2026 年 9 月 2 日 · · 5 分钟阅读
阿特巴什把字母表对折,让 A 贴 Z、B 贴 Y、C 贴 X。它根本没有密钥——知道这个方法本身就是全部秘密。它是“替换字母表”最干净的示例,而且自逆,这一性质是后来的密码花大力气去追求的。
- 时代
- 古典时代
- 类型
- 替换
- 密钥空间
- 1 key
- 难度
- 入门
I现象
把 26 个字母排成一行,再在下方倒着排一遍,竖向对读。
A B C D E F G H I J K L M
Z Y X W V U T S R Q P O N
LOOM 变成 OLLN,BRASS 变成 YIZHH。没有任何移位,一切都是对折。
对折有一个明显的副作用:字母表中央的字母只与近邻互换。M 与 N 互换,L 与 O 互换。字母离中央越远,走得越远——A 要走满 25 步到 Z,而 M 只走一步。
| 明文 | 密文 | 移动距离 |
|---|---|---|
| A | Z | 25 |
| G | T | 13 |
| M | N | 1 |
| N | M | 1 |
| Z | A | 25 |
II密钥空间
零。只有一种映射,任何知道方法的人都拥有它。
值得在此停一下,因为“密钥”这个概念刚刚被证明是可选的。一个密码可以定义完备、完全可逆、彻底公开,它唯一的防护就是大多数人从没听说过它。
如果一个密码的秘密是“没人读过说明书”,那它的密钥空间是用“无知”来度量的。
同类错误在现代的等价物:把后台藏在未公开的网址,或依赖一个未公开的 API 端点。阿特巴什的密钥空间和阿特巴什的威胁模型都完整地活到了今天。
III加密步骤
- 把明文写成大写。
- 写下 A-Z,再在其下写下倒序字母表。
- 对每个明文字母,在上行找到它,取正下方的字母。
- 空格与标点保持不变。
- 记录结果。由于密码自逆,同一套流程就是解密流程——不需要学第二张表。
IV解密步骤
- 做同一次对折。由构造可知 Atbash(Atbash(x)) = x。
- 在采信之前先确认结果读得通——折叠本身没有歧义,所以失败意味着你抄错了字母,而不是密钥错。
- 若文本很短且歧义大,先检查字母表中央:M/N 与 L/O 的互换肉眼即可验证。
V弱点
它只有一个替换字母表。 所有单表攻击原封不动地适用:数字母、对频率画像、读消息。
对折会泄露结构。 靠近字母表中央的字母几乎不动,所以大量含 M 和 N 的词保留了相当多的形状。MNMN 加密成 NMNM——攻击者不需要知道映射也能认出来。
自逆不是强度。 自己是自己的逆是一个优雅性质(同一把工具既锁又开),但它与安全性无关。ROT13 也有同样的性质,价值也一样。
它极容易被识别。 密文中大量成对出现的 A/Z、B/Y 是“有镜子参与”的强烈信号——这恰恰是真正的密码分析者在找的东西:不是消息,而是方法。
VI实战挑战
密文
ZMWGSVOLLNRHGSVPVB
提示: 没有密钥。把字母表首尾对折,竖向对读。
展开答案
明文
AND THE LOOM IS THE KEY
·史料
名字是希伯来字母名 Aleph、Tav、Bet、Shin 的拼合——即希伯来字母表的首、末、次、倒数第二四个字母,也就是把这次折叠直接写出来。该手法见于《希伯来圣经》(耶利米书 25:26 与 51:41)、塔木德与卡巴拉文献,以及中世纪的注释传统。它也在罗马的速记符号系统和希腊字母表中独立出现,这说明“把字母表对折”是一个会不止一次被人想到的念头。
·继续读
阿特巴什在两处留存下来。第一处是经文:《耶利米书》用 Sheshach(ששך)指巴比伦、用 Lev Kamai(לב קמי)指迦勒底,二者正是由这一次折叠产生的——名字本身来自希伯来字母 Aleph-Tav-Bet-Shin,即首字母、末字母、第二字母和倒数第二字母。
第二处是 ROT13,同一种思路的凯撒版本:一个固定、公开、诚实的变换,用来挡住“不好奇的人”,而不是挡住攻击者。
下一台织机:scytale 完全抛开替换,改为重排消息,而不是给字母改名。