[图解密码学]第4章 古典密码

第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 频率分析原理

频率分析的核心思想:自然语言中字母出现频率有规律。密文如果保留了这个规律,就能被破解。

英语字母频率排名:

  1. e (12.7%)
  2. t (9.1%)
  3. a (8.2%)
  4. o (7.5%)
  5. i (7.0%)
  6. n (6.7%)
  7. s (6.3%)
  8. h (6.1%)
  9. r (6.0%)
  10. d (4.3%)

图4-15是英语字母频率表。表格列出26个字母的频率百分比,按降序排列。e最高12.7%,z最低0.07%。


图4-15 英语字母频率表 表格列出26个字母的频率百分比,按降序排列。e最高12.7%,z最低0.07%。

4.4.2 频率分析步骤

破解单表替换的步骤:

  1. 统计密文中每个字母出现次数。
  2. 按频率降序排列密文字母。
  3. 与英语字母频率表对比。
  4. 猜测高频密文字母对应高频明文字母。
  5. 利用常见双字母、三字母组合修正猜测。
  6. 逐步还原完整替换表。

图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 加密与解密

加密步骤:

  1. 选择关键词,如KEY。
  2. 重复关键词,使其长度等于明文。
  3. 对每个明文字母,用对应密钥字母在方阵中查表。

示例:

明文: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 卡西斯基测试

卡西斯基测试利用密文中重复片段推测密钥长度。

原理:如果两个相同片段之间的距离是密钥长度的倍数,它们可能由相同密钥加密。

步骤:

  1. 寻找密文中重复出现的三字母组合。
  2. 记录它们之间的距离。
  3. 计算这些距离的最大公约数。
  4. 最大公约数可能就是密钥长度。

图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 列换位密码

列换位密码使用一个密钥词确定列顺序。

步骤:

  1. 把明文按行写入矩阵。
  2. 根据密钥词字母顺序排列各列。
  3. 按列读出密文。

示例:密钥"KEY",明文"HELLOWORLD":

K E Y

2 1 3

按列顺序1,2,3读出。

图4-32是列换位密码示意图。矩阵写入明文,密钥KEY确定列顺序。按列读出密文。


图4-32 列换位密码示意图 矩阵写入明文,密钥KEY确定列顺序。按列读出密文。

4.7.4 换位密码的破解

换位密码保留字母频率,所以频率分析仍然有效。但换位密码的密钥空间取决于列数和排列方式。

破解方法:

  1. 尝试不同列数。
  2. 对每种列数,尝试不同列排列。
  3. 检查输出是否像正常语言。

图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 概念题

  1. 解释替换密码和换位密码的区别。
  2. 说明凯撒密码的密钥空间和破解方法。
  3. 解释频率分析的原理。
  4. 说明维吉尼亚密码如何抵抗频率分析。
  5. 解释卡西斯基测试的原理。

4.11.2 图解题

  1. 画出古典密码家族树。
  2. 画出维吉尼亚方阵。
  3. 画出卡西斯基测试示意图。
  4. 画出栅栏密码示意图。
  5. 画出恩尼格玛结构简图。

4.11.3 计算题

  1. 用凯撒密码加密"HELLO",移位3。
  2. 用维吉尼亚密码加密"HELLO",密钥"KEY"。
  3. 统计一段密文的字母频率。
  4. 用卡西斯基测试猜密钥长度。
  5. 用栅栏密码加密"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章常见误区红黑榜 防误用
相关推荐
一枕槐安4871 小时前
RAG 服务扛住高并发:缓存、队列、限流三件套
java·spring·缓存·异步任务·rag·断路器
Wang's Blog1 小时前
Java 项目实战: 交友项目 - 动态查询开工:昨日回顾与今日任务
java·python·交友
云和数据.ChenGuang1 小时前
光哥说Python 异常深度解析:从异常模型到工程化实践
java·前端·人工智能·python·langchain
SL_staff1 小时前
APS动态重排实践:在多品种小批量场景下实现5分钟插单响应
java·开源·产品
瀚高PG实验室2 小时前
HGDB V9.0.5 .pgpass 免密登录提示 IsEncryptNon-base64 encoding 警告处理
数据库·postgresql·瀚高数据库
龙腾AI白云2 小时前
大模型检索增强生成(RAG)的技术原理与架构设计
数据库·python·机器学习·知识图谱
captain3762 小时前
Spring MVC(4)-响应
java·spring boot·后端
KaiwuDB2 小时前
KaiwuDB 运维实战06:数据库备份与恢复:从理论到实战
运维·数据库·时序数据库·kaiwudb
数字新视界3 小时前
空调控制器AIRC800的智能化管理与应用实践
大数据·服务器·数据库·动环监控系统·动力与环境监控系统