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)

  1. Shift / Key(移位/密钥 k):k 就是挪几格(0–25)。
  2. Alphabet mapping(字母映射):A→0, B→1, …, Z→25(把字母当数字)。
  3. Modulo 26(模 26):超过 25 就回到 0(循环)。
  4. Key space(密钥空间)= 26:只有 26 把钥匙,太小。
  5. Brute force(暴力破解):全部试一遍就能破。
  6. 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.

两个经典攻击(考试常问)

  1. Ciphertext-only attack(只有密文):试 k=0…25,挑出可读结果。

  2. Known-plaintext attack(已知明文片段):只要知道一对明密文字母,就能立刻算出 k。

    • CN:k = “密文字母位置 − 明文字母位置”(mod 26)
    • EN: (k \equiv C - M \pmod{26})

6) 考试中的应用(怎么出题、怎么拿分)

常见题型

  1. 写出加密/解密公式(mod 26)
  2. 给密文,让你暴力找 key 并还原明文
  3. 已知第一位明文/某个词(known-plaintext),求 key
  4. 解释为什么 key space=26、为什么 brute force 可行
  5. 区分 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) 面试中的应用(怎么说显得懂行)

面试不会让你用凯撒做产品,而是看你安全思维是否正确。

  1. Key space 思维:我会先评估密钥空间和暴力成本(26 太小)。
  2. Threat model 思维:我会说明攻击者在 ciphertext-only 下就能破,安全性不足。
  3. Kerckhoffs 思维:假设攻击者知道算法,安全必须来自密钥和实现,而不是“藏起来”。
  4. 工程落地:实际系统会使用标准算法(AES/TLS)和良好的密钥管理,而非自制简单替换。

8) 企业中的应用(真实场景)

凯撒密码本身不会用于企业安全,但它的“思想”会用在:

  1. 安全教育/培训:用来讲清楚“加密 ≠ 安全”,安全要看 key space、对手模型。
  2. 快速混淆(obfuscation):有时用于非安全目的(例如隐藏日志里某些字段避免肉眼扫到),但不能当加密。
  3. 数据分析/取证直觉:理解“语言冗余”“可读性”如何帮助破解(后续频率分析也靠这个)。

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


更多推荐