公元前1世纪,罗马共和国的凯撒大帝率领大军远征高卢。战事瞬息万变,他需要向分散在各地的军团传递军令。然而,信使常常穿越敌占区,一旦被敌人截获,整个作战计划就会暴露。凯撒急需一种方法,让信件即使落入敌手,对方也看不懂。
他的办法简单而巧妙:将每个字母都向后移动固定的位数,比如3位。于是,A 变成了 D,B 变成了 E,C 变成了 F……以此类推,字母表末尾的 X、Y、Z 则绕回开头,分别变成 A、B、C。当信使把这样一封信送到己方将领手中时,对方只需将每个字母向前移动相同的位数,就能还原出原文。
让我们用一句凯撒的名言来演示一下:
- 明文:
VENI VIDI VICI(我来,我见,我征服) - 每个字母向后移3位:
- V → Y
- E → H
- N → Q
- I → L
- 空格保持不变
- V → Y
- I → L
- D → G
- I → L
- 空格
- V → Y
- I → L
- C → F
- I → L
- 密文:
YHQL YLGL YLFL
看到密文的人只会觉得是一串毫无意义的字母,而知道“后退3位”这个规则的将领,却能轻松还原出凯撒的豪言壮语。
这种加密方式后来被历史学家称为“凯撒密码”。它可能是人类历史上第一个有明确记载的军事密码。古罗马历史学家苏埃托尼乌斯在《罗马十二帝王传》中写道,凯撒“为了需要保密,使用了一种密码:他把字母表中字母的顺序改变,使得任何单词都无法读出。如果有人想要破解它,必须用第四位的字母替换当前的字母。”这里的“第四位”可能指的是向后移4位,而凯撒本人常用的是向后移3位。这说明凯撒密码在当时已经有了不同的变体。
当然,站在今天的角度看,凯撒密码脆弱得不堪一击。因为只有25种可能的移位数(如果把不移位也算上,但没人会那样做),敌人大可以一个一个尝试,几分钟就能穷举所有可能。更重要的是,一旦发现规律,任何一条密文都会永久暴露——毕竟同一个字母总是被替换成同一个密文字母(比如A总是变成D),这种特性叫“单表替换”,给后世的频率分析留下了可乘之机。
但在两千多年前,凯撒密码已经足够有效。当时能读懂拉丁文的人本就不多,更不用说精通密码分析的敌人了。凯撒用这个简单的工具,保护了无数次军令的传递,为罗马帝国的扩张立下了汗马功劳。
凯撒密码不仅是一个加密方法,更是一种思想的开端:它让人们意识到,信息可以通过变换隐藏起来,而变换的规则(即算法)和参数(即密钥)可以分开掌握。算法公开,密钥保密——这一现代密码学的基本原则,在凯撒的密信中已初见雏形。
从此,密码学的种子被埋下,它将随着人类文明的演进而不断生长,从手工时代的简单替换,演变为机械时代的复杂密码机,最终走向今天数字时代牢不可破的数学堡垒。而这一切的起点,就是那封穿越古战场的密信。