章节摘要:本章跟着一条线走——人类为了保密发明密码,对手为了窃密发明分析,古典密码就在这一攻一防之间从幼稚走向精巧,又从精巧走向全面崩塌。我们从凯撒的军令出发,经过单表替换、换位栅栏、维吉尼亚方阵,最终停在频率分析的解剖台前,看清楚古典密码"败给数学"的全过程。
这一章的主线只有一句话:密码的强弱从来不取决于花样多寡,而取决于敌手掌握的统计规律有多少。
起点设在公元前一世纪的罗马军营。凯撒把自己的军令中每个字母沿字母表后移固定位数,敌人即便截获竹简看到的也是乱码——这就是凯撒密码,简单到可以用一句话说完,却在当时够用,因为多数对手根本不识字,更不会想到"乱码"背后还有规律。随着识字率上升与文书通信普及,这种"移三位"的小把戏很快不够用了:偷信的人只要把每种移位都试一遍,总能试出可读的明文。于是替换表变得毫无规律可言,字母两两乱配,密钥空间暴涨到 26 的阶乘量级,暴力穷举彻底失去意义——看起来天衣无缝。
破局出现在九世纪的巴格达。语言学家肯迪在整理经文时注意到一个朴素的事实:任何一种语言里,各个字母出现的频率是稳定的,英语文本里 E 和 T 总是最常见,汉语里"的、是、了"总是最常见。只要数一数密文里哪个符号出现得最多,它多半就是 E 的化身。这个如今被称为频率分析的方法,一刀捅穿了整个单表替换家族:替换表再乱,也改变不了"同一个明文字母永远对应同一个密文字母"这个死穴。单表替换的密钥空间再大,统计规律却原封不动地泄露在密文表面。
为对抗频率分析,十六世纪的维吉尼亚把单表叠成多表:密钥的每个字母指定不同的凯撒移位,同一个明文字母在不同位置会产生不同密文字母,频率的尖峰被磨平了。它被称作"不可破译的密码"近三百年,直到十九世纪卡西斯基与巴贝奇各自独立找到密钥长度的破绽——本章的终点,就停在这场"不可破译"神话破产的现场。
本章最关键的认知转折在 1.6:当破译者不再盯着"算法多复杂",而是盯着"明文里自带的信息"时,古典密码的全部努力瞬间归零。字母频率、重复片段、首尾格式,这些明文自带的统计指纹是藏不掉的——除非让每个明文字母在不同位置披上不同的伪装,且伪装的节奏本身不被察觉。维吉尼亚朝这个方向迈出了一步,又倒在了"密钥周期性"上。
最终落点是一条被之后每一章反复引用的定律:**安全性必须建立在密钥的保密上,而不是算法的保密上;且只要明文存在统计结构,密文就会泄露它,除非设计刻意抹平这种结构。**前者是柯克霍夫原则的延伸,后者正是香农在下一章登场的理论先声。
古典密码倒下之后,真正的杀招来自工业化的机械:转子机把替换规则变成了每天可以换一副面孔的机电装置,恩尼格玛把多表替换推到了人力无法企及的复杂度。第 2 章将跟着这台机器走进战争,看图灵如何用数学打败机械,再看香农如何从这场攻防中提炼出整门学科的理论地基。