第4章 古典密码
本章知识地图:一张"古典密码家族树"。树根是"替换"和"换位"两大基本思想。替换分支下分"单表替换"(凯撒、单表替换)和"多表替换"(维吉尼亚)。换位分支下分"栅栏密码""列换位""转轮密码"。每个分支旁标注"破译方法"和"现代继承者":频率分析、卡西斯基测试、现代分组密码中的S盒和P盒。

本章知识地图
本章目标:
- 理解古典密码的两大基本思想:替换与换位。
- 掌握凯撒密码、单表替换、维吉尼亚密码的加密解密。
- 理解频率分析的原理与操作步骤。
- 掌握卡西斯基测试和弗里德曼测试破解维吉尼亚。
- 理解换位密码与替换密码的区别。
- 认识古典密码的局限,以及它们对现代密码学的启示。
4.1 古典密码总览
4.1.1 什么是古典密码
古典密码是指计算机出现之前,以手工或简单机械方式实现的密码。它们主要处理字母文本,算法相对简单,密钥空间有限。
但古典密码不是"过时的老古董"。它们蕴含的两大基本思想------替换和换位------至今仍是现代分组密码的核心。AES的S盒是替换,行移位是换位。DES的P盒是换位,S盒是替换。如果你理解了古典密码的替换和换位,你就理解了现代分组密码的骨架。
图4-1是古典密码家族树。树根是"古典密码",两大分支是"替换"和"换位"。替换分支下分"移位密码""单表替换""多表替换(维吉尼亚)"。换位分支下分"栅栏密码""列换位""转轮密码"。每个分支旁标注破译方法和现代继承者。

图4-1 古典密码家族树 树根:古典密码。两大分支:替换、换位。替换下:移位密码、单表替换、多表替换(维吉尼亚)。换位下:栅栏密码、列换位、转轮密码。每个分支旁标注破译方法和现代继承者。
4.1.2 替换与换位
替换密码:把每个字母替换成另一个字母。明文"HELLO",密钥是"每个字母后移3位",密文"KHOOR"。
换位密码:不改变字母本身,只改变字母顺序。明文"HELLO",按某种规则重排,密文可能是"LOHEL"。
替换打乱字母身份,换位打乱字母位置。两者可以结合,形成更强密码。
图4-2用拼图类比:替换是把每块拼图换成不同颜色,换位是把拼图块重新排列。左边拼图颜色变了但位置没变,右边拼图颜色没变但位置变了。

图4-2 替换与换位拼图类比图 左:替换------每块拼图颜色改变,位置不变。右:换位------拼图块颜色不变,位置重排。 ### 4.1.3 古典密码的密钥空间
密钥空间是攻击者需要尝试的所有可能密钥数量。这是衡量密码安全性的重要指标,但不是唯一指标。
- 凯撒密码:25种(移位1到25)。
- 单表替换:26!≈4×10^26种。
- 维吉尼亚:取决于密钥长度和字母表大小。
密钥空间大不代表安全。单表替换密钥空间巨大,但频率分析绕过了密钥空间,直接攻击语言规律。这是本章最重要的教训之一。
图4-3对比了三种密码的密钥空间和实际安全性。柱状图显示凯撒25,单表替换26!,维吉尼亚26^L。旁边标注实际安全性:凯撒瞬间破解,单表替换频率分析,维吉尼亚卡西斯基测试。

图4-3 密钥空间与安全性对比图 柱状图:凯撒25,单表替换26!,维吉尼亚26^L。旁边标注实际安全性:凯撒瞬间破解,单表替换频率分析,维吉尼亚卡西斯基测试。
4.1.4 本章学习路径
先学移位密码,理解替换的基本概念。再学单表替换,理解密钥空间。然后用频率分析破解单表替换。接着学维吉尼亚,理解多表替换如何对抗频率分析。最后学维吉尼亚破解、换位密码和转轮密码。
图4-4是本章学习路径图。

图4-4 本章学习路径图 路径:移位密码→单表替换→频率分析→维吉尼亚→维吉尼亚破解→换位密码→转轮密码→局限与教训。
4.2 移位密码
4.2.1 凯撒密码
凯撒密码是最古老的移位密码。传说古罗马统帅凯撒用移位3加密军事信件:每个字母向后移动3位。
加密规则:
C = (P + 3) mod 26
解密规则:
P = (C - 3) mod 26
其中A=0,B=1,...,Z=25。
例如:
明文:HELLO
密文:KHOOR
H(7)+3=10→K
E(4)+3=7→H
L(11)+3=14→O
L(11)+3=14→O
O(14)+3=17→R
图4-5是凯撒圆盘。外圈是明文字母,内圈是密文字母。转动内圈就改变移位量。图中内圈相对外圈旋转3格,表示移位3。

图4-5 凯撒圆盘与移位表 外圈A-Z,内圈A-Z。内圈相对外圈旋转3格。
4.2.2 一般移位密码
凯撒密码可以推广到任意移位k:
加密:C = (P + k) mod 26
解密:P = (C - k) mod 26
密钥就是k,范围1到25。
图4-6展示了不同移位量下的密文。明文HELLO,移位1得到IFMMP,移位3得到KHOOR,移位13得到URYYB,移位25得到GDKKN。

图4-6 不同移位量密文对照表 明文HELLO。移位1:IFMMP。移位3:KHOOR。移位13:URYYB。移位25:GDKKN。
4.2.3 暴力破解
移位密码的密钥空间只有25种。攻击者只需要尝试所有25种移位,看哪个输出像正常语言。
例如,密文"KHOOR":
- 移位1:JGNNQ
- 移位2:IFMMP
- 移位3:HELLO ← 正确
- 移位4:GDKKN
- ...
图4-7是暴力破解表。表格列出移位1到25的解密结果,移位3处高亮"HELLO",标注"正确明文"。

图4-7 凯撒密码暴力破解表 表格列出移位1到25的解密结果。移位3处高亮"HELLO",标注"正确明文"。
4.2.4 移位密码的局限
移位密码有三个致命弱点。
第一,密钥空间太小。25种可能,瞬间破解。即使手工尝试,几分钟就能完成。
第二,频率特征完全保留。e还是最高频,t还是第二高频。频率分析可以直接确定移位量。图4-8展示了移位密码的频率特征:密文频率图和明文频率图形状完全一样,只是横轴平移了。
第三,算法太简单。即使不知道密钥,暴力破解也毫无压力。

图4-8 移位密码频率特征图 上:明文频率柱状图,e最高。下:密文频率柱状图,形状相同,整体右移3格。
4.2.5 在密码学史上的意义
移位密码虽然脆弱,但它是第一个把加密变成可计算规则的密码。明文、密文、密钥、算法四要素齐全。它也是模运算的最早应用之一。
图4-9展示了移位密码的数学结构:字母表是一个循环群,移位是群上的加法。加密C=P+k mod 26,解密P=C-k mod 26。

图4-9 移位密码数学结构图 字母表Z_{26},移位是加法。加密C=P+k mod 26,解密P=C-k mod 26。
4.3 单表替换密码
4.3.1 单表替换思想
移位密码只改变字母的偏移量,字母顺序不变。单表替换更进一步:打乱整个字母表。
例如,替换表:
明文:ABCDEFGHIJKLMNOPQRSTUVWXYZ
密文:QWERTYUIOPASDFGHJKLZXCVBNM
加密时查表:A→Q,B→W,C→E,D→R,...
明文:HELLO
密文:ITSSG
H→I,E→T,L→S,L→S,O→G
图4-10是单表替换加密解密图。上方是明文字母表,下方是打乱的密文字母表。箭头表示一一映射。加密时查表向右,解密时查表向左。

图4-10 单表替换加密解密图 上方明文字母表,下方打乱的密文字母表。箭头表示一一映射。加密查表向右,解密查表向左。
4.3.2 密钥与密钥空间
单表替换的密钥是整张替换表。26个字母的全排列有:
26! = 403,291,461,126,605,635,584,000,000
约4×10^26种。
这个数字非常大。如果每秒尝试10亿个密钥,需要约10^10年才能穷举完。暴力破解完全不可行。
图4-11对比了移位密码和单表替换的密钥空间。移位密码25,单表替换26!≈4×10^26。柱状图用对数坐标,单表替换高得无法显示。

图4-11 密钥空间对比图 移位密码:25。单表替换:26!≈4×10^26。柱状图用对数坐标,单表替换高得无法显示。
4.3.3 加密与解密
加密:对每个明文字母,在替换表中查找对应密文字母。
解密:反向查找,或使用逆替换表。
图4-12是加密解密流程图。加密:明文→查替换表→密文。解密:密文→查逆替换表→明文。

图4-12 单表替换加解密流程图 加密:明文→查替换表→密文。解密:密文→查逆替换表→明文。
4.3.4 频率分析简介
单表替换的密钥空间巨大,但它有一个致命弱点:字母频率不变。
英语中e出现最多,t、a、o、i、n紧随其后。如果明文中e很多,密文中对应e的字母也会很多。攻击者只要统计密文字母频率,再和语言频率表对比,就能逐步还原替换表。
图4-13是英文字母频率柱状图。横轴A-Z,纵轴出现频率。e最高,t、a、o、i、n次之。标注"频率分析的基础"。

图4-13 英文字母频率柱状图 横轴A-Z,纵轴出现频率。e最高,t、a、o、i、n次之。标注:"频率分析的基础"。
4.3.5 常见误区
很多人认为单表替换密钥空间巨大,所以很安全。这是一个典型误区。
密钥空间大只意味着暴力破解困难,不意味着其他攻击方法无效。频率分析完全绕过了密钥空间,直接攻击语言统计规律。这就像一扇门有10^26把钥匙,但墙是纸糊的------攻击者根本不走门。
图4-14是常见误区红黑榜。红榜(错误):密钥空间大=安全。黑榜(正确):频率分析绕过密钥空间,直接攻击语言规律。

图4-14 单表替换误区红黑榜 红榜:密钥空间大=安全。黑榜:频率分析绕过密钥空间,直接攻击语言规律。
4.4 频率分析
4.4.1 频率分析原理
频率分析的核心思想:自然语言中字母出现频率有规律。密文如果保留了这个规律,就能被破解。
英语字母频率排名:
- e (12.7%)
- t (9.1%)
- a (8.2%)
- o (7.5%)
- i (7.0%)
- n (6.7%)
- s (6.3%)
- h (6.1%)
- r (6.0%)
- d (4.3%)
图4-15是英语字母频率表。表格列出26个字母的频率百分比,按降序排列。e最高12.7%,z最低0.07%。

图4-15 英语字母频率表 表格列出26个字母的频率百分比,按降序排列。e最高12.7%,z最低0.07%。
4.4.2 频率分析步骤
破解单表替换的步骤:
- 统计密文中每个字母出现次数。
- 按频率降序排列密文字母。
- 与英语字母频率表对比。
- 猜测高频密文字母对应高频明文字母。
- 利用常见双字母、三字母组合修正猜测。
- 逐步还原完整替换表。
图4-16是频率分析破解流程图。密文→字母频率统计→频率排序→对照语言频率表→猜测映射→利用常见单词修正→恢复明文。

图4-16 频率分析破解流程图 密文→字母频率统计→频率排序→对照语言频率表→猜测映射→利用常见单词修正→恢复明文。
4.4.3 常见字母组合
除了单字母频率,双字母和三字母组合也很重要。
常见双字母组合:th, he, in, er, an, re, on, at, en, nd
常见三字母组合:the, and, ing, ion, tio, ent, for, her, tha
常见单词:the, of, and, to, in, a, is, that, it, for
图4-17是常见字母组合频率表。左:双字母组合th, he, in, er... 右:三字母组合the, and, ing, ion...

图4-17 常见字母组合频率表 左:双字母组合th, he, in, er... 右:三字母组合the, and, ing, ion...
4.4.4 破解示例
密文:
WKH TXLFN EURZQ IRA MXPSV RYHU WKH ODCB GRJ
第一步:统计频率。W、K、H出现最多。
第二步:猜测W→t,K→h,H→e。
得到:
the t??e? ...
第三步:识别常见单词。TXLFN可能是quick,EURZQ可能是brown。
第四步:逐步修正,最终恢复:
THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
图4-18展示了逐步破解过程。密文→统计→猜测→修正→明文。每一步显示中间结果。

图4-18 频率分析破解示例图 密文→统计→猜测→修正→明文。每一步显示中间结果。
4.4.5 频率分析的局限与对抗
频率分析对单表替换有效,但对多表替换效果下降。如果同一个明文字母在不同位置对应不同密文字母,频率就被抹平了。
维吉尼亚密码就是针对频率分析设计的。但维吉尼亚也有弱点:密钥循环导致周期规律。
图4-19展示了单表替换和多表替换的频率特征对比。左:单表替换密文频率,形状与明文相似。右:多表替换密文频率,趋于平坦。

图4-19 单表替换vs多表替换频率特征图 左:单表替换密文频率,形状与明文相似。右:多表替换密文频率,趋于平坦。
4.5 维吉尼亚密码
4.5.1 多表替换思想
单表替换的问题是:同一个明文字母永远对应同一个密文字母。
如果让同一个明文字母在不同位置对应不同密文字母,频率就被"抹平"了。这就是多表替换。
维吉尼亚密码是多表替换的经典代表。它使用一个关键词,循环移位。
图4-20是多表替换思想图。明文字母e在不同位置对应不同密文字母:有时是H,有时是K,有时是Z。频率被分散。

图4-20 多表替换思想图 明文字母e在不同位置对应不同密文字母:有时是H,有时是K,有时是Z。频率被分散。
4.5.2 维吉尼亚方阵
维吉尼亚方阵是一个26×26的字母表:
- 第一行:A到Z
- 第二行:B到Z,A
- 第三行:C到Z,A,B
- ...
- 第26行:Z到A
加密时,用明文字母行、密钥字母列查表。
图4-21是维吉尼亚方阵图。26×26字母表。行是明文字母,列是密钥字母。交叉点是密文字母。示例:明文H,密钥K,查表得R。

图4-21 维吉尼亚方阵图 26×26字母表。行是明文字母,列是密钥字母。交叉点是密文字母。示例:明文H,密钥K,查表得R。
4.5.3 加密与解密
加密步骤:
- 选择关键词,如KEY。
- 重复关键词,使其长度等于明文。
- 对每个明文字母,用对应密钥字母在方阵中查表。
示例:
明文:HELLO
密钥:KEYKE
密文:RIJVS
H+K=R
E+E=I
L+Y=J
L+K=V
O+E=S
解密时反向查表:明文 = 密文 - 密钥。
图4-22是维吉尼亚加密解密流程图。加密:明文+密钥→查方阵→密文。解密:密文-密钥→查方阵→明文。

图4-22 维吉尼亚加解密流程图 加密:明文+密钥→查方阵→密文。解密:密文-密钥→查方阵→明文。
4.5.4 密钥流循环
关键词循环使用,形成周期密钥流。
KEY重复:K-E-Y-K-E-Y-K-E-Y...
对应移位:10-4-24-10-4-24...
图4-23是密钥流循环图。关键词KEY重复:K-E-Y-K-E-Y...对应移位10-4-24-10-4-24...形成周期。

图4-23 密钥流循环图 关键词KEY重复:K-E-Y-K-E-Y...对应移位10-4-24-10-4-24...形成周期。
4.5.5 维吉尼亚的兴衰
维吉尼亚密码曾被称为"不可破译的密码"。它抵抗了频率分析,因为同一个明文字母可以对应不同密文字母。
但它有一个致命弱点:密钥循环使用。如果密文足够长,重复片段会出现,暴露密钥长度。一旦密钥长度被猜出,维吉尼亚就可以被拆成多个凯撒密码,逐个破解。
图4-24是维吉尼亚兴衰时间线。16世纪:提出,被称为不可破。19世纪:卡西斯基测试。20世纪:完全破解。

图4-24 维吉尼亚兴衰时间线 16世纪:提出,被称为不可破。19世纪:卡西斯基测试。20世纪:完全破解。
4.6 维吉尼亚密码的破解
4.6.1 卡西斯基测试
卡西斯基测试利用密文中重复片段推测密钥长度。
原理:如果两个相同片段之间的距离是密钥长度的倍数,它们可能由相同密钥加密。
步骤:
- 寻找密文中重复出现的三字母组合。
- 记录它们之间的距离。
- 计算这些距离的最大公约数。
- 最大公约数可能就是密钥长度。
图4-25是卡西斯基测试示意图。密文中标出重复片段"QWE",两次出现距离18。18的因子:1,2,3,6,9,18。密钥长度可能是3,6,9。

图4-25 卡西斯基测试示意图 密文中标出重复片段"QWE",两次出现距离18。18的因子:1,2,3,6,9,18。密钥长度可能是3,6,9。
4.6.2 弗里德曼测试
弗里德曼测试用重合指数IC估计密钥长度。
重合指数:随机选两个字母,它们相同的概率。
英语的重合指数约0.065。随机文本约0.038。
如果密钥长度为L,密文的重合指数会随L变化。通过计算不同L下的IC,可以估计正确密钥长度。
图4-26是重合指数曲线。横轴密钥长度L,纵轴IC。曲线在正确L处接近0.065。

图4-26 重合指数曲线 横轴密钥长度L,纵轴IC。曲线在正确L处接近0.065。
4.6.3 拆分与逐个破解
一旦猜出密钥长度L,把密文分成L组:
- 第1组:位置1, L+1, 2L+1, ...
- 第2组:位置2, L+2, 2L+2, ...
- ...
- 第L组:位置L, 2L, 3L, ...
每组都是用同一个密钥字母加密的凯撒密码。对每组做频率分析,就能恢复密钥。
图4-27是维吉尼亚破解流程图。密文→卡西斯基测试→猜密钥长度→拆分→每组频率分析→恢复密钥→解密。

图4-27 维吉尼亚破解流程图 密文→卡西斯基测试→猜密钥长度→拆分→每组频率分析→恢复密钥→解密。
4.6.4 完整破解示例
密文:
LXFOPVEFRNHR
第一步:寻找重复片段。没有明显重复,假设密钥长度较短。
第二步:尝试L=3。
分组:
组1:L,F,P,E,R,H
组2:X,O,V,F,N,R
组3:F,P,E,R,H
对每组频率分析,猜测移位量。
第三步:恢复密钥"KEY",解密得到"HELLO"。
图4-28是完整破解示例图。密文→分组→频率分析→密钥KEY→明文HELLO。

图4-28 维吉尼亚完整破解示例图 密文→分组→频率分析→密钥KEY→明文HELLO。
4.6.5 维吉尼亚的教训
维吉尼亚的失败告诉我们:
- 多表替换能抵抗简单频率分析,但不能抵抗周期分析。
- 密钥循环使用会留下统计痕迹。
- 没有经过公开检验的"安全"不可靠。
- 现代密码学中的流密码和分组密码都吸取了这些教训。
图4-29是维吉尼亚教训总结图。四个要点:多表替换有周期弱点、密钥循环留痕迹、公开检验重要、现代密码吸取教训。

图4-29 维吉尼亚教训总结图 四个要点:多表替换有周期弱点、密钥循环留痕迹、公开检验重要、现代密码吸取教训。
4.7 换位密码
4.7.1 换位思想
换位密码不改变字母本身,只改变字母顺序。
替换密码打乱字母身份,换位密码打乱字母位置。两者可以结合。
图4-30是替换与换位对比图。左:替换------字母改变,位置不变。右:换位------字母不变,位置改变。

图4-30 替换与换位对比图 左:替换------字母改变,位置不变。右:换位------字母不变,位置改变。
4.7.2 栅栏密码
栅栏密码是最简单的换位密码。
加密:把明文按行写入,按列读出。
示例:明文"HELLOWORLD",栅栏数2:
H L O O L
E L W R D
按行读:HLOOLELWRD
解密:按相反方向操作。
图4-31是栅栏密码示意图。明文HELLOWORLD,分2行:HLOOL和ELWRD。按行读出得到密文HLOOLELWRD。

图4-31 栅栏密码示意图 明文HELLOWORLD,分2行:HLOOL和ELWRD。按行读出得到密文HLOOLELWRD。
4.7.3 列换位密码
列换位密码使用一个密钥词确定列顺序。
步骤:
- 把明文按行写入矩阵。
- 根据密钥词字母顺序排列各列。
- 按列读出密文。
示例:密钥"KEY",明文"HELLOWORLD":
K E Y
2 1 3
按列顺序1,2,3读出。
图4-32是列换位密码示意图。矩阵写入明文,密钥KEY确定列顺序。按列读出密文。

图4-32 列换位密码示意图 矩阵写入明文,密钥KEY确定列顺序。按列读出密文。
4.7.4 换位密码的破解
换位密码保留字母频率,所以频率分析仍然有效。但换位密码的密钥空间取决于列数和排列方式。
破解方法:
- 尝试不同列数。
- 对每种列数,尝试不同列排列。
- 检查输出是否像正常语言。
图4-33是换位密码破解流程图。密文→尝试列数→尝试列排列→检查可读性→恢复明文。

图4-33 换位密码破解流程图 密文→尝试列数→尝试列排列→检查可读性→恢复明文。
4.7.5 换位在现代密码学中的继承
现代分组密码中的P盒(置换盒)就是换位。DES的P盒、AES的行移位都是换位操作。
替换和换位结合,形成混淆与扩散,是现代密码设计的核心原则。香农在1949年提出这两个概念,至今仍是分组密码设计的基石。
图4-34是替换换位在现代密码中的继承图。替换→S盒(AES SubBytes,DES S盒)。换位→P盒(DES P盒,AES ShiftRows)。

图4-34 替换换位在现代密码中的继承图 替换→S盒(AES SubBytes,DES S盒)。换位→P盒(DES P盒,AES ShiftRows)。
4.8 转轮密码
4.8.1 从手工到机械
转轮密码是古典密码到现代密码的过渡。它用机械转轮实现多表替换。
每个转轮有26个触点,每次按键后转轮转动,改变映射关系。多个转轮组合,周期极长。
图4-35是转轮密码机结构图。多个转轮串联,每个转轮有26个触点。按键后转轮转动,映射改变。

图4-35 转轮密码机结构图 多个转轮串联,每个转轮有26个触点。按键后转轮转动,映射改变。
4.8.2 恩尼格玛前身
恩尼格玛是转轮密码的巅峰。它有三个转轮、一个反射器和一个插线板。
转轮选择、初始位置、插线板连接组合起来,密钥空间达到10^23以上。
图4-36是恩尼格玛结构简图。插线板→转轮1→转轮2→转轮3→反射器→转轮3→转轮2→转轮1→插线板→灯板。

图4-36 恩尼格玛结构简图 插线板→转轮1→转轮2→转轮3→反射器→转轮3→转轮2→转轮1→插线板→灯板。
4.8.3 转轮密码的破解
转轮密码虽然复杂,但操作漏洞和已知明文攻击使其被破。
波兰数学家雷耶夫斯基重建了恩尼格玛内部接线。图灵设计了炸弹机,利用crib搜索密钥。
图4-37是恩尼格玛破译流程图。截获密文→寻找crib→炸弹机搜索→验证密钥→解密。

图4-37 恩尼格玛破译流程图 截获密文→寻找crib→炸弹机搜索→验证密钥→解密。
4.8.4 转轮密码的历史意义
转轮密码推动了计算机的诞生。图灵的工作不仅是密码学的胜利,也是计算理论的里程碑。
图4-38是转轮密码到计算机的时间线。恩尼格玛→炸弹机→Colossus→现代计算机。

图4-38 转轮密码到计算机时间线 恩尼格玛→炸弹机→Colossus→现代计算机。
4.9 古典密码的局限与教训
4.9.1 古典密码的共同局限
古典密码有五个共同局限:
- 依赖算法保密:一旦算法泄露,系统崩溃。
- 密钥空间有限:暴力破解或统计分析可行。
- 手工加密效率低:容易出错。
- 无法抵抗已知明文攻击。
- 密钥分发困难。
图4-39是古典密码局限总结图。五个要点:算法保密、密钥空间、效率低、已知明文、密钥分发。

图4-39 古典密码局限总结图 五个要点:算法保密、密钥空间、效率低、已知明文、密钥分发。
4.9.2 频率分析的启示
频率分析告诉我们:加密不仅要隐藏内容,还要隐藏统计规律。
现代密码学中的混淆与扩散、雪崩效应,都是对频率分析的终极回应。AES的一比特输入变化会导致约一半输出比特变化,这就是雪崩效应。
图4-40是频率分析启示图。频率分析→混淆与扩散→雪崩效应→现代分组密码。

图4-40 频率分析启示图 频率分析→混淆与扩散→雪崩效应→现代分组密码。
4.9.3 柯克霍夫原则
古典密码依赖算法保密。现代密码学接受柯克霍夫原则:算法公开,只有密钥保密。
这个原则不是凭空出现的,而是无数次失败换来的。如果算法保密是安全的必要条件,那么一旦算法泄露,所有通信都暴露。公开算法让全球密码学家共同检验,反而更安全。
图4-41是柯克霍夫原则图。左:古典密码------算法保密。右:现代密码------算法公开,密钥保密。

图4-41 柯克霍夫原则图 左:古典密码------算法保密。右:现代密码------算法公开,密钥保密。
4.9.4 对现代密码学的启示
古典密码给现代密码学留下五条启示:
- 算法必须公开接受检验。
- 密钥空间必须足够大。
- 加密必须隐藏统计规律。
- 密钥管理是核心问题。
- 安全不是绝对的,而是成本、时间与风险的平衡。
图4-42是古典密码对现代密码学的启示图。五个要点:公开检验、密钥空间、隐藏统计、密钥管理、安全平衡。

图4-42 古典密码对现代密码学的启示图 五个要点:公开检验、密钥空间、隐藏统计、密钥管理、安全平衡。
4.10 本章小结
4.10.1 一页复习图
图4-43是本章一页复习图。替换:移位密码、单表替换、维吉尼亚。换位:栅栏、列换位、转轮。破译:频率分析、卡西斯基测试、弗里德曼测试。教训:柯克霍夫原则、混淆与扩散。

图4-43 第4章一页复习图
替换:移位密码、单表替换、维吉尼亚。换位:栅栏、列换位、转轮。破译:频率分析、卡西斯基测试、弗里德曼测试。教训:柯克霍夫原则、混淆与扩散。
4.10.2 关键公式速查
-
凯撒加密:C=(P+3) mod 26
-
一般移位:C=(P+k) mod 26
-
维吉尼亚:C=(P+K) mod 26
-
重合指数
IC=∑fi(fi−1)N(N−1) IC = \frac{\sum f_i(f_i - 1)}{N(N - 1)}\ IC=N(N−1)∑fi(fi−1)
图4-44是公式速查卡。

图4-44 第4章公式速查卡 凯撒、移位、维吉尼亚、重合指数公式。
4.10.3 常见误区
- 密钥空间大=安全。
- 多表替换=绝对安全。
- 换位密码比替换密码安全。
- 古典密码没有现代价值。
- 频率分析只对英语有效。
图4-45是常见误区红黑榜。

图4-45 第4章常见误区红黑榜 红榜:密钥空间大=安全、多表替换绝对安全、换位更安全。黑榜:频率分析绕过密钥空间、维吉尼亚有周期弱点、替换换位可结合。
4.10.4 常见问题
为什么凯撒密码危险?
密钥空间只有25种,暴力破解瞬间完成。
为什么单表替换密钥空间大却不安全?
频率分析绕过密钥空间,直接攻击语言统计规律。
维吉尼亚为什么曾被误认为不可破?
多表替换打乱了频率,但密钥循环留下了周期规律。
换位密码和替换密码有什么区别?
替换改变字母身份,换位改变字母位置。
古典密码对现代密码学有什么启示?
算法公开、密钥空间足够大、隐藏统计规律、密钥管理核心、安全是平衡。
4.11 习题与实验
4.11.1 概念题
- 解释替换密码和换位密码的区别。
- 说明凯撒密码的密钥空间和破解方法。
- 解释频率分析的原理。
- 说明维吉尼亚密码如何抵抗频率分析。
- 解释卡西斯基测试的原理。
4.11.2 图解题
- 画出古典密码家族树。
- 画出维吉尼亚方阵。
- 画出卡西斯基测试示意图。
- 画出栅栏密码示意图。
- 画出恩尼格玛结构简图。
4.11.3 计算题
- 用凯撒密码加密"HELLO",移位3。
- 用维吉尼亚密码加密"HELLO",密钥"KEY"。
- 统计一段密文的字母频率。
- 用卡西斯基测试猜密钥长度。
- 用栅栏密码加密"HELLOWORLD",栅栏数2。
4.11.4 实验一:凯撒密码暴力破解
用Python实现凯撒加密,暴力尝试25种移位,自动识别可读明文。

4.11.5 实验二:频率分析破解单表替换
用Python统计密文字母频率,与英语频率表对比,逐步还原替换表。

4.11.6 实验三:维吉尼亚破解
实现维吉尼亚加密,用卡西斯基测试猜密钥长度,再用频率分析逐段破解。

4.11.7 实验四:栅栏密码与列换位
实现栅栏密码和列换位密码,观察换位密码的频率特征。

4.11.8 延伸阅读
- 古典密码历史书籍。
- 频率分析与密码分析入门。
- 图灵传记与布莱切利园。
- 现代分组密码中的替换与换位。
第4章配图总清单
| 编号 | 配图名称 | 用途 |
|---|---|---|
| 图4-1 | 古典密码家族树 | 章首大图 |
| 图4-2 | 替换与换位拼图类比图 | 建立直觉 |
| 图4-3 | 密钥空间与安全性对比图 | 破除误区 |
| 图4-4 | 本章学习路径图 | 阅读导航 |
| 图4-5 | 凯撒圆盘与移位表 | 移位密码 |
| 图4-6 | 不同移位量密文对照表 | 移位密码 |
| 图4-7 | 凯撒密码暴力破解表 | 破解 |
| 图4-8 | 移位密码频率特征图 | 频率分析 |
| 图4-9 | 移位密码数学结构图 | 数学基础 |
| 图4-10 | 单表替换加密解密图 | 单表替换 |
| 图4-11 | 密钥空间对比图 | 密钥空间 |
| 图4-12 | 单表替换加解密流程图 | 算法流程 |
| 图4-13 | 英文字母频率柱状图 | 频率分析 |
| 图4-14 | 单表替换误区红黑榜 | 常见误区 |
| 图4-15 | 英语字母频率表 | 频率分析 |
| 图4-16 | 频率分析破解流程图 | 破解方法 |
| 图4-17 | 常见字母组合频率表 | 频率分析 |
| 图4-18 | 频率分析破解示例图 | 实战 |
| 图4-19 | 单表替换vs多表替换频率特征图 | 对比 |
| 图4-20 | 多表替换思想图 | 维吉尼亚 |
| 图4-21 | 维吉尼亚方阵图 | 维吉尼亚 |
| 图4-22 | 维吉尼亚加解密流程图 | 算法流程 |
| 图4-23 | 密钥流循环图 | 维吉尼亚 |
| 图4-24 | 维吉尼亚兴衰时间线 | 历史 |
| 图4-25 | 卡西斯基测试示意图 | 破解 |
| 图4-26 | 重合指数曲线 | 破解 |
| 图4-27 | 维吉尼亚破解流程图 | 破解 |
| 图4-28 | 维吉尼亚完整破解示例图 | 实战 |
| 图4-29 | 维吉尼亚教训总结图 | 小结 |
| 图4-30 | 替换与换位对比图 | 换位 |
| 图4-31 | 栅栏密码示意图 | 换位 |
| 图4-32 | 列换位密码示意图 | 换位 |
| 图4-33 | 换位密码破解流程图 | 破解 |
| 图4-34 | 替换换位在现代密码中的继承图 | 现代继承 |
| 图4-35 | 转轮密码机结构图 | 转轮 |
| 图4-36 | 恩尼格玛结构简图 | 转轮 |
| 图4-37 | 恩尼格玛破译流程图 | 破解 |
| 图4-38 | 转轮密码到计算机时间线 | 历史 |
| 图4-39 | 古典密码局限总结图 | 局限 |
| 图4-40 | 频率分析启示图 | 启示 |
| 图4-41 | 柯克霍夫原则图 | 原则 |
| 图4-42 | 古典密码对现代密码学的启示图 | 启示 |
| 图4-43 | 第4章一页复习图 | 小结 |
| 图4-44 | 第4章公式速查卡 | 速查 |
| 图4-45 | 第4章常见误区红黑榜 | 防误用 |