🔐 古典密码入门
从一个通信小游戏出发 · 凯撒 → 替换 → 维吉尼亚 · 配套牛津练习册
🎯学习目标
读完这一讲,你应该能回答:
- 通信小游戏揭示了密码学最核心的直觉是什么?(单向函数)
- 凯撒密码、替换密码、维吉尼亚密码各自的原理和区别?
- 为什么频率分析能破解古典密码?维吉尼亚为什么更难?
- 密码强度提升的本质是什么?(让同一明文字母在不同位置呈现不同密文行为)
1开篇:一个通信小游戏
两个人面对面时,抛一枚硬币就能公平决定输赢。可一旦改成打电话 / 网络通信,双方都犯嘀咕:
"你会不会先看结果再说?" · "你会不会事后改口?"
核心问题:两人不见面,怎样仍能公平地决定正反面?
解决思路:先"承诺",再"公开",最后"验证"
图1 · 承诺—公开—验证 协议流程
- 甲随机选一个大数
x,计算f(x)。 - 甲先把
f(x)发给乙——先承诺,但不暴露 x。 - 乙根据规则猜
x的奇偶(偶=正面,奇=反面)。 - 甲公开 x,乙再算一次
f(x)核验是否真实。
✅ 为什么公平?
甲不能事后更改(f(x) 已发出,锁定了选择);乙不能事先看穿(只看到 f(x),不知道 x)。
2最核心的直觉:单向函数 ⭐
这个小游戏告诉我们密码学最核心的思想:
💡 一句话
合法方容易算,攻击者难反推。
图2 · 单向函数:从 x 算 f(x) 容易,从 f(x) 反推 x 很难
- 从
x计算f(x)很容易(正向)。 - 给出
f(x)要反推x很难(逆向)。
这就是单向函数的直观理解。密码设计的核心就是:让"正向计算"方便,让"逆向恢复秘密"变难。
🔗 贯穿全课
这个思想贯穿整个密码学——后面的哈希函数、公钥密码都基于"正向易、逆向难"。下面三种古典密码,都在解决"如何把明文藏起来"。
3凯撒密码:固定步长的"整体平移" 🎮
原理
- 把 26 个英文字母看成一个循环表(A→0, B→1, …, Z→25)。
- 选一个固定步长
k,所有字母一起平移。
📐 公式(模 26)
加密:
C = (P + k) mod 26 · 解密:P = (C - k) mod 26
🎮 凯撒密码交互加密器(拖动滑块即时加密)
拖动滑块改变位移 k,下面会实时显示「明文字母表 → 密文字母表」的平移对照;在输入框打字即可看到密文。
位移 k = 3(密钥 D)
明文 ▶
密文 ▶
—
🧪 试一试
把 k 拖到 15(密钥 P),输入
CAESAR,输出应是 RPTHPG(与牛津课件示例一致)。
为什么它很容易被破解?
- 只需尝试 25 个有效移位(暴力穷举即可)。
- 字母频率整体只是"平移",特征并没有消失——配合频率分析更快。
4替换密码:一字一映射
原理
- 每个明文字母对应一个固定的"替身"。
- 密钥不再是一个数字,而是一整张替换表。
- 解密时用这张表的逆映射(反查)。
| 明文 | C | D | E | H | I | N | P | R | S | T | Y |
| 密文 | X | J | L | A | Z | E | V | K | H | O | M |
图3 · 替换表(牛津课件示例的一小段)
按这张表:THIS SENTENCE IS ENCRYPTED → OAZH HLEOLEXL ZH LEXKMVOLJ。只要映射固定,同一明文字母总变成同一密文字母。
🔑 比凯撒"隐蔽"在哪?
密钥空间更大——不是 1 个位移量,而是一整张映射表(26! 种可能,约 4×10²⁶),暴力穷举不可行。
⚠️ 但仍不安全
它仍保留单字母频率特征(同一明文字母总变成同一密文字母),所以仍可被频率分析破解。
5维吉尼亚密码:关键词驱动的"多表替换" ⭐
原理
- 先选一个关键词(如
KEY)。 - 把关键词重复展开到与明文等长。
- 每个位置都做一次"对应位移"的凯撒加密——可理解成多个凯撒轮流作用。
📐 按位公式(模 26)
Ci = (Pi + Ki) mod 26
| 密钥 | K | E | Y | K | E | Y | K | E | Y | K | E | Y |
| 明文 | C | R | Y | P | T | O | G | R | A | P | H | Y |
| 密文 | M | V | W | Z | X | M | Q | V | Y | Z | L | W |
图4 · 关键词 KEY 加密 CRYPTOGRAPHY → MVWZXMQVYZLW(逐位凯撒)
加密 C:用密钥 K(移 10 位)→ M;加密 H:用密钥 E(移 4 位)→ L。加密时通常去掉空格和标点。
🔑 为什么比"单表替换"更难?
同一个明文字母出现在不同位置时,可能因关键词字母不同而被加密成不同结果,因此单字母频率特征被"摊薄"。
⚠️ 关键理解
它不是随机替换,而是"有规律地、按位变化的替换"——这是理解它的核心。
6三种古典密码核心差别(一表看懂)
| 密码 | 密钥形式 | 本质操作 | 同一字母总变同一密文? | 典型破解思路 |
|---|---|---|---|---|
| 凯撒 | 一个位移量 k | 整体平移 | 是 | 穷举 25 个密钥 + 频率分析 |
| 替换 | 一整张替换表 | 单表映射 | 是 | 频率分析 + 常见单词/模式 |
| 维吉尼亚 | 一个关键词 | 按位变化的多表替换 | 不一定 | 先猜关键词长度,再分组分析 |
⭐ 难度变化的本质
不是"字母表更复杂",而是:是否让同一个明文字母在不同位置呈现出不同的密文行为(从而削弱频率特征)。
🎮 小练习:把密码和它的"本质操作"连起来
先点左边一个密码,再点右边对应的操作。连对会变绿。
📌 古典密码
凯撒密码
替换密码
维吉尼亚密码
🎯 本质操作
关键词驱动的多表替换
固定步长整体平移
单表逐字映射
7破解方法:频率分析
频率分析(Frequency Analysis):观察每个字母出现的频率(次数)。密文中最常见的字母,往往对应明文中最常见的字母;而明文中最常见的字母,通常是该语言里最常见的。
图5 · 英语中 E、T、A、O、I、N 最常见,Q、Z 最罕见
辅助技巧
- 单字母单词:英语中很可能是
A或I。 - 重复字母:如
letter中的 "tt"。 - 常见双字母单词:of、to、in、is 等。
⚠️ 维吉尼亚为何能"挡住"频率分析?
凯撒和替换都保留单字母频率,所以频率分析直接有效。维吉尼亚因为"多表"摊薄了频率,必须先猜关键词长度(卡西斯基测试),再分组做频率分析。
8本讲小结
- 通信小游戏揭示密码学核心直觉:单向函数——正向易、逆向难。
- 凯撒 = 一个位移量、整体平移,只需穷举 25 种即可破。
- 替换 = 一整张映射表,密钥空间大(26!),但仍保留单字母频率。
- 维吉尼亚 = 关键词驱动的多表替换,摊薄频率,需先猜密钥长度再分组破。
- 强度提升本质:让同一明文字母在不同位置呈现不同密文行为。
- 下一步自然延伸:现代分组密码(DES/AES)与公钥密码(RSA)——见 CH4。
📄 配套 牛津密码练习 📘 配套 哈希函数入门 🔗 关联 CH4 密码技术
🎯自测(点击展开参考要点)
通信小游戏揭示了密码学的什么核心思想?
单向函数:合法方正向计算 f(x) 容易,攻击者从 f(x) 反推 x 很难。靠"先承诺(发f(x))、再公开(发x)、后验证"保证甲不能改、乙不能偷看。
凯撒密码的加解密公式?为什么容易破解?
加密 C=(P+k) mod 26,解密 P=(C-k) mod 26。容易破解:只有 25 个有效密钥可穷举,且频率特征只是整体平移、没有消失。
替换密码比凯撒更隐蔽,为什么仍不安全?
密钥空间大到 26!(不可穷举),但同一明文字母总映射到同一密文字母,保留了单字母频率特征,所以仍能用频率分析破解。
维吉尼亚密码为什么能削弱频率分析?怎么破解?
关键词重复展开后逐位做不同的凯撒位移,同一明文字母在不同位置可能变成不同密文,单字母频率被摊薄。破解:先用卡西斯基测试猜密钥长度,再按长度分组(每组同一位移)分别频率分析。
三种密码强度提升的本质是什么?
不是字母表更复杂,而是是否让同一明文字母在不同位置呈现不同的密文行为(从单表到多表)。
✅ 都能答上来?
那就去做牛津密码练习册动手加密解密,再继续学 哈希函数入门。
📝强化题库(20 选择 + 20 填空 = 40 题)
覆盖本讲全部知识点。选择题点选即时判分;填空题输入后点"检查"或"显示答案"。
已答 0/20
答对 0
正确率 —
已检查 0/20
答对 0