1) Playfair 是什么(一句话)
- 中文 :Playfair 是一种 两字母一组(digram)的替换密码:不是一个字母一个字母加密,而是两个字母一起换。
- English : Playfair is a digraph substitution cipher : it encrypts pairs of letters instead of single letters.
✅修辞记忆:
- CN:字母不单走,必须两两牵手
- EN: Letters don't walk alone; they hold hands in pairs
2) 为什么它比单字母替换更难破(直觉)
- 中文:因为它加密单位是 "2 个字母",单字母频率不再直接对应明文(频率分析要看 digram)。
- English : Single-letter frequencies are less directly useful; you need digram statistics (n=2).
✅一句话:
- CN:单字母看不准,得看双字母口音
- EN: Single-letter stats weaken; digram stats matter
3) 核心概念清单(笔记必写)
- Digram(两字母一组)
- 5×5 Key Square(密钥方阵)
- I/J 合并(25 格)
- Preprocessing(预处理):去空格标点、转大写、拆重复、补齐偶数长度
- Padding letter:常用 X(也可能用 Q)
- 3 条加密规则:同一行、同一列、矩形规则
- Decryption:规则反方向(左移/上移)
- Why n-gram=2:分析用 digram 频率
4) Playfair 的"傻瓜步骤"(你照着就能做)
Step A:做 5×5 Key Square(密钥方阵)
规则(中文/英文)
- 中文:用关键词填方阵(去重),再按字母表补齐剩下的字母;I 和 J 合并当一个。
- English: Fill the square with the keyword (remove duplicates), then fill remaining letters A--Z (I/J merged).
Step B:预处理明文(Preprocessing)
必须会(考试爱考)
- 全部大写、去空格标点
- 把明文拆成 digrams(每 2 个字母一组)
- 如果一组里两个字母相同(比如 "LL"),在中间插一个 X:L X L
- 如果最后剩 1 个字母,末尾补 X 让长度变偶数
✅记忆:
- CN:重复要拆(插 X),单身要补(补 X)
- EN: Double letters split (insert X), odd length pad (add X)
Step C:加密 3 条规则(超重要)
假设我们有一对明文字母:A B,在方阵里找它们的位置:
Rule 1:同一行(Same row)
- 中文:都往右移一格(右边越界就回到行开头)
- English : shift each letter right (wrap around)
Rule 2:同一列(Same column)
- 中文:都往下移一格(下边越界就回到列顶)
- English : shift each letter down (wrap around)
Rule 3:矩形(Rectangle)
- 中文 :不同行不同列 → 组成矩形,交换列:每个字母换到对方那一列(行不变)
- English: form a rectangle, swap columns (row stays, column changes)
✅一条口诀(背这个就够)
- 中文:同行右、同列下、矩形换列
- English: same row → right; same column → down; rectangle → swap columns
5) 简单案例(一步步做,适合写作业/考试)
我给你一个短到能手算的例子(不冗余,但完整)。
例子:Key = "PLAY"
5×5 方阵(I/J 合并)
先放关键词(去重):P L A Y
再按字母表补齐剩下的(不含 J):
P L A Y B
C D E F G
H I K M N
O Q R S T
U V W X Z
明文:"UNBREAKABLE"
Step 1:预处理 + 分 digram
UN BR EA KA BL EX
(最后 E 单着 → 补 X)
Step 2:挑一组演示怎么加密(你就懂了)
我演示 3 种情况各一个:
(1) 矩形例子:U N
U 在 (第5行第1列),N 在 (第3行第5列)
矩形规则:交换列
- U → (第5行第5列) = Z
- N → (第3行第1列) = H
所以:UN → ZH
(2) 同一行例子:P L
P L 在第一行
同行右移:P→L,L→A
所以:PL → LA
(3) 同一列例子:A E
A 在第1行第3列,E 在第2行第3列
同列下移:A→E,E→K
所以:AE → EK
✅你看到没:Playfair 就是"查位置 → 套规则"。
6) 考试怎么考(高频)
- 定义 Playfair、说出 digram / 5×5 / I-J 合并
- 预处理规则(重复字母插 X、奇数补 X)
- 写出 3 条加密规则(同行右、同列下、矩形换列)
- 给你 key square,让你加密/解密 1--2 个 digram
- 问你为什么用 digram frequency(n=2)而不是单字母频率
7) 面试 & 企业应用(真实说法)
面试怎么说(加分但不吹)
- 中文:Playfair 是历史密码,用来训练"分组加密削弱单字母统计泄露"的直觉,但仍可用 digram 统计和语言约束破译;现代系统不会用它做安全加密,而用 AES/TLS。
- English: Playfair is a historical cipher teaching how block-based encryption reduces single-letter leakage, but it's still breakable using digram statistics; modern systems use AES/TLS, not Playfair.
企业中能迁移的能力
- 你会想到:分析单位要匹配算法单位(Playfair→n=2)
- 你会把"规则+预处理+边界情况"写清楚(工程表达能力)
8) 题库(10 选择 + 5 简答 + 2 计算)含解释
A) 选择题(10题,含为什么)
Q1 Playfair 的基本加密单位是:
A 单字母 B digram(两字母) C 单词 D 3字母
✅B
- 因为 Playfair 按两字母成对加密。
Q2 Playfair 使用 5×5 方阵的原因是:
A 只能放 25 个格 B 英文只有 25 个字母 C I 和 J 合并 D 以上都对
✅D
- 关键点是 I/J 合并,所以 26→25。
Q3 明文出现 "LL" 这种重复时通常:
A 直接删除一个 L B 插入 X 分开(LXL) C 不处理 D 变成 JJ
✅B
- 规则要求 digram 不能两个相同字母。
Q4 明文长度为奇数时:
A 丢掉最后一个字母 B 末尾补 X C 末尾补 0 D 不影响
✅B
- 为了凑成 digram。
Q5 同一行规则是:
A 左移 B 右移 C 上移 D 下移
✅B
- 加密时同行右移。
Q6 同一列规则是:
A 上移 B 下移 C 左移 D 右移
✅B
- 加密时同列下移。
Q7 矩形规则是:
A 交换行 B 交换列 C 取中点 D 反转顺序
✅B
- 每个字母换到对方列,行不变。
Q8 Playfair 为什么不适合用单字母频率分析?
A 因为没有密钥 B 因为加密单位是 digram C 因为字母表更大 D 因为 key space=26
✅B
- 统计单位变了,n=1 不对口。
Q9 CrypTool 里分析 Playfair 更合适改哪个参数?
A 把 key 变长 B 把 n-gram 改成 2 C 只看元音 D 用 Caesar 模板
✅B
- digram → n=2。
Q10 Playfair 在现代企业中:
A 用于 TLS B 可作为教学/演示统计泄露 C 比 AES 更安全 D 用于数字签名
✅B
- 真实系统不会用它做安全加密。
B) 简答题(5题,写2--3行就够)
SA1 用一句话定义 Playfair(中英各一句)。
- CN:两字母一组,用 5×5 方阵按规则替换。
- EN: A digraph cipher using a 5×5 key square and positional rules.
SA2 为什么 I/J 合并?
- 因为方阵 5×5 只有 25 格,需要把 26 个字母合并一个。
SA3 写出 3 条加密规则(关键词即可)。
- 同行右移;同列下移;矩形换列。
SA4 为什么要插 X?
- 防止 digram 两字母相同,且保证长度为偶数。
SA5 为什么 Playfair 应看 digram 频率(n=2)?
- 因为加密单位是两字母,统计要匹配单位。
C) 计算题(2题,含答案与解释)
下面用我上面构建的 Key square(PLAY):
P L A Y B
C D E F G
H I K M N
O Q R S T
U V W X Z
Calc1:加密 digram "UN"
U=(5行1列),N=(3行5列) → 矩形
U→(5行5列)=Z
N→(3行1列)=H
✅ UN → ZH
为什么:不同行不同列 → 矩形换列。
Calc2:加密 digram "PL"
P,L 同一行(第1行)
P→右移到 L
L→右移到 A
✅ PL → LA
为什么:同行规则:右移(循环)。