【密码学】什么是凯撒密码?(Caesar Cipher)
1) 什么是凯撒密码(Caesar Cipher)
中文(人话):凯撒密码就是把每个字母在字母表里统一往后挪 k 格(超过 Z 就从 A 继续),像把整条字母表“平移”。
English: A Caesar cipher shifts every letter by a fixed number (k) positions in the alphabet (wrap around after Z).
核心概念(Core concepts)
- Shift / Key(移位/密钥 k):k 就是挪几格(0–25)。
- Alphabet mapping(字母映射):A→0, B→1, …, Z→25(把字母当数字)。
- Modulo 26(模 26):超过 25 就回到 0(循环)。
- Key space(密钥空间)= 26:只有 26 把钥匙,太小。
- Brute force(暴力破解):全部试一遍就能破。
- Ciphertext-only / Known-plaintext(攻击模型):只拿密文也能暴力;知道一对字母就能直接求 k。
2) 数学表达(考试好写)
把字母映射为数字:A=0,…,Z=25。
- 加密 Encryption
[
C \equiv M + k \pmod{26}
] - 解密 Decryption
[
M \equiv C - k \pmod{26}
]
一句话记忆:
- CN:加密 = +k;解密 = −k;都在 26 的圈里转。
- EN: Encrypt adds k; decrypt subtracts k; everything is modulo 26.
3) 通俗比喻(方便记忆)
- 平移比喻:把字母表当尺子,整体向右挪 k 格。
- 表盘比喻:像时钟,超过 12 又回到 1;这里超过 Z 回到 A。
- 锁轮比喻:你转动一个固定刻度 k,所有字母一起跟着转。
4) 简单案例(Simple example)
例子 1:k = 3(经典)
明文:HELLO
每个字母往后 3 格:H→K, E→H, L→O, L→O, O→R
密文:KHOOR
English: With k=3, HELLO → KHOOR.
例子 2:解密
密文:KHOOR,k=3
每个字母往回 3 格 → HELLO
5) 为什么凯撒密码很弱(Weakness)
中文:它弱不是因为“算法蠢”,而是因为 key space 太小(只有 26),攻击者试 26 次就能找到看起来像英文的那条。
English: It’s weak mainly because the key space is tiny (26), so brute force is trivial.
两个经典攻击(考试常问)
-
Ciphertext-only attack(只有密文):试 k=0…25,挑出可读结果。
-
Known-plaintext attack(已知明文片段):只要知道一对明密文字母,就能立刻算出 k。
- CN:k = “密文字母位置 − 明文字母位置”(mod 26)
- EN: (k \equiv C - M \pmod{26})
6) 考试中的应用(怎么出题、怎么拿分)
常见题型
- 写出加密/解密公式(mod 26)
- 给密文,让你暴力找 key 并还原明文
- 已知第一位明文/某个词(known-plaintext),求 key
- 解释为什么 key space=26、为什么 brute force 可行
- 区分 ciphertext-only vs known-plaintext
拿分句(英文可直接写)
- “Caesar is insecure because the key space is only 26, making brute-force feasible.”
- “With a known plaintext-ciphertext pair, the key is (k \equiv C-M \pmod{26}).”
7) 面试中的应用(怎么说显得懂行)
面试不会让你用凯撒做产品,而是看你安全思维是否正确。
- Key space 思维:我会先评估密钥空间和暴力成本(26 太小)。
- Threat model 思维:我会说明攻击者在 ciphertext-only 下就能破,安全性不足。
- Kerckhoffs 思维:假设攻击者知道算法,安全必须来自密钥和实现,而不是“藏起来”。
- 工程落地:实际系统会使用标准算法(AES/TLS)和良好的密钥管理,而非自制简单替换。
8) 企业中的应用(真实场景)
凯撒密码本身不会用于企业安全,但它的“思想”会用在:
- 安全教育/培训:用来讲清楚“加密 ≠ 安全”,安全要看 key space、对手模型。
- 快速混淆(obfuscation):有时用于非安全目的(例如隐藏日志里某些字段避免肉眼扫到),但不能当加密。
- 数据分析/取证直觉:理解“语言冗余”“可读性”如何帮助破解(后续频率分析也靠这个)。
9) 10 个选择题(MCQ)+ 答案简析(不冗余)
Q1 Caesar cipher 的 key 是什么?
A 明文长度 B 移位数 k C 哈希值 D 私钥
✅B(key=shift)
Q2 Caesar cipher 的 key space 大小是?
A 12 B 26 C 312 D 26!
✅B(0–25 共 26)
Q3 Caesar 加密公式正确的是?
A (C=M\times k) B (C=M+k\pmod{26}) C (C=H(M)) D (C=M-k)
✅B
Q4 Caesar 解密公式正确的是?
A (M=C+k) B (M=C-k\pmod{26}) C (M=H©) D (M=C\times k)
✅B
Q5 ciphertext-only attack 对 Caesar 为什么容易?
A 因为 hash 可逆 B 因为 key space 只有 26 C 因为 k 很大 D 因为需要 2 对字符
✅B
Q6 known-plaintext attack 对 Caesar 最少需要几对字母?
A 0 B 1 C 2 D 26
✅B(一对就够)
Q7 “mod 26” 的含义是?
A 只能用 26 位密钥 B 超过 25 就回到 0 C 不允许加法 D 不允许解密
✅B
Q8 下面哪个说法正确?
A Caesar 适合企业加密数据库
B Caesar 是对称加密的一种(同一 k 加解密)
C Caesar 必须用公钥
D Caesar 是不可破解的
✅B
Q9 ROT13 指的是什么?
A k=0 B k=13 C k=26 D k=7
✅B
Q10 如果明文字符 H(7) 加密后变成 L(11),k 是?
A 3 B 4 C 5 D 11
✅B(11−7=4)
10) 5 个简答题(SA)+ 参考要点(每题 2–3 行可写)
SA1 用一句话定义 Caesar cipher。
要点:固定移位 k;字母表循环;每个字母一致偏移。
SA2 为什么 Caesar cipher 不安全?
要点:key space=26;brute force 很容易;语言可读性帮助识别正确解。
SA3 ciphertext-only attack 和 known-plaintext attack 区别?
要点:COA 只有密文只能全试;KPA 有一对明密字母可直接求 k。
SA4 写出 Caesar 的加密与解密公式。
要点:(C\equiv M+k\pmod{26}),(M\equiv C-k\pmod{26})。
SA5 Caesar 在企业里能用在哪些“非安全”场景?
要点:教学/演示;简单混淆(非安全);让新人理解 key space 与 threat model。
11) 计算题(2题)— 含答案(考试最像)
计算题 1:加密
明文:SECURITY,k=5(只考虑大写字母)
求密文。
解法:每个字母往后移 5。
S→X, E→J, C→H, U→Z, R→W, I→N, T→Y, Y→D
✅ 密文:XJHZWNYD
计算题 2:已知一对字母求 key + 解密
密文:WTAAD
已知明文是 HELLO(同长度),求 k,并验证解密结果。
解法:看第一位:H→W
H(7), W(22)
(k \equiv 22-7 = 15 \pmod{26})
用 k=15 解密 WTAAD:
W→H, T→E, A→L, A→L, D→O
✅ k = 15,明文 = HELLO
更多推荐



所有评论(0)