古典密码对比表
并排比较23种古典密码。此参考表涵盖密码类型、密钥格式、安全级别、密钥空间大小和最佳使用场景,帮助您选择适合的密码。
完整密码对比
| 密码 | 类型 | 密钥类型 | 密钥空间 | 安全性 | 年代 |
|---|---|---|---|---|---|
| 凯撒密码 | 单表替换 | 单个整数(1-25) | 25 | 极弱 | 约公元前58年 |
| ROT13 | 单表替换 | 固定位移(13) | 1 | 无(仅混淆) | 1982 |
| 埃特巴什密码 | 单表替换 | 无(固定映射) | 1 | 极弱 | 约公元前500年 |
| 仿射密码 | 单表替换 | 两个整数(a, b) | 312 | 弱 | 约1900年代 |
| 关键词密码 | 单表替换 | 关键词字符串 | ~2×10²⁶ | 弱 | 约1500年代 |
| 猪圈密码 | 符号替换 | 无(固定网格) | 1 | 极弱 | 约1700年代 |
| 波利比奥斯方阵 | 分割编码 | 5×5 网格排列 | ~2×10²⁶ | 弱 | 约公元前150年 |
| 维吉尼亚密码 | 多表替换 | 关键词字符串 | 26ⁿ(n = 密钥长度) | 中等 | 1553 |
| 博福特密码 | 多表替换 | 关键词字符串 | 26ⁿ(n = 密钥长度) | 中等 | 约1857年 |
| 自动密钥密码 | 多表替换 | 关键词 + 明文扩展 | 26ⁿ(非重复密钥) | 中等-强 | 1586 |
| 特里特米乌斯密码 | 多表替换 | 无(自动递增位移) | 1 | 弱 | 1508 |
| 格隆斯费尔德密码 | 多表替换 | 数字密钥(0-9) | 10ⁿ(n = 密钥长度) | 弱-中等 | 约1700年代 |
| 波尔塔密码 | 多表替换 | 关键词字符串(13 个字母表) | 13ⁿ(n = 密钥长度) | 中等 | 1563 |
| 连续密钥密码 | 多表替换 | 书籍/长文本片段(长度与消息相同) | 非常大(全文) | 中等-强 | 约1800年代 |
| 普莱费尔密码 | 二联替换 | 5×5 关键词矩阵 | ~2×10²⁶ | 中等 | 1854 |
| 四方密码 | 二联替换 | 两个 5×5 关键词矩阵 | (~2×10²⁶)² | 强(古典中) | 1902 |
| 希尔密码 | 多字母替换 | N×N 可逆矩阵 | 非常大(取决于矩阵) | 中等-强 | 1929 |
| 阿尔贝蒂盘密码 | 多表替换 | 盘面位置 + 位移计划 | 可变(取决于旋转频率) | 中等 | 1467 |
| 培根密码 | 二进制编码 / 隐写 | 无(固定 5 位编码) | 1 | 弱(仅隐写) | 1605 |
| 同音替换密码 | 同音替换 | 每个字母多个符号 | 非常大(取决于映射) | 中等-强 | 约1400年代 |
| 摩尔斯电码 | 编码(非加密) | 无(标准映射) | 1 | 无(编码,不是密码) | 1837 |
| 一次一密(Vernam) | 流密码 | 与消息等长的随机密钥 | 26ⁿ(真正随机) | 完美 | 1917 |
| 跨格棋盘 | 分割编码 | 字母排列 + 行头 | 非常大 | 中等 | 约1940年代 |
| 夸格迈尔密码 | 多表替换 | 1-3 个关键词字母表 + 指示器 | 非常大(多重混合字母表) | 强(古典中) | 约1900年代 |
凯撒 vs ROT13 vs Atbash:单表替换对比
凯撒、ROT13 和 Atbash 都是最基础的替换密码。它们都会把每个字母替换成一个固定对应字母,但决定替换方式的规则并不相同。下面的表格展示了同一明文在三种密码下的差异。
| 特性 | 凯撒密码 | ROT13 | 埃特巴什密码 |
|---|---|---|---|
| 替换规则 | 每个字母向前位移 k 位 | 每个字母固定向前位移 13 位 | 字母表反转(A↔Z,B↔Y,...) |
| 密钥 | 整数 1-25(可变) | 无(固定为 13) | 无(固定反转) |
| 密钥空间 | 25 | 1 | 1 |
| 是否自逆 | 否(解密需反向位移) | 是(应用两次回到原文) | 是(应用两次回到原文) |
| “HELLO” 加密 | KHOOR(位移 3) | URYYB | SVOOL |
| “ATTACK” 加密 | DWWDFN(位移 3) | NGGNPX | ZGGZXP |
| 公式 | E(x) = (x + k) mod 26 | E(x) = (x + 13) mod 26 | E(x) = (25 − x) mod 26 |
| 能否处理数字 | 可选(扩展字母表时) | 否(仅字母;数字通常用 ROT5) | 否(仅字母) |
| 来源 | 尤利乌斯·凯撒,约公元前58年 | Usenet 社区,1982 | 希伯来学者,约公元前500年 |
| 最佳用途 | 教学和理解替换密码 | 轻度混淆、隐藏剧透 | 历史研究、文字谜题 |
应该什么时候用哪一种?
- 凯撒:最适合教学。可变密钥能直观展示“秘密参数”这个概念,是学习古典密码的标准起点。
- ROT13:适合不想管理密钥、只想快速混淆内容时使用。它的自逆性质让编码和解码都非常方便。
- Atbash:适合历史、文学或谜题场景。它在希伯来文本和历史谜题里出现很多,核心概念就是字母表镜像。
维吉尼亚 vs 博福特 vs 自动密钥:多表替换对比
维吉尼亚、博福特和自动密钥都属于多表替换密码,都会利用关键词在多个字母表之间切换。它们的核心差异在于关键词如何扩展、加解密是否互反,以及是否存在重复密钥模式。
| 特性 | 维吉尼亚密码 | 博福特密码 | 自动密钥密码 |
|---|---|---|---|
| 加密公式 | C = (P + K) mod 26 | C = (K − P) mod 26 | C = (P + Kᵢ) mod 26 |
| 密钥扩展 | 关键词循环重复 | 关键词循环重复 | 关键词 + 明文附加为密钥 |
| 是否互反 | 否(解密时减去密钥) | 是(同一操作可加解密) | 否(解密需逐步恢复密钥) |
| 是否存在重复密钥模式 | 是,易受 Kasiski 检验 | 是,易受 Kasiski 检验 | 否,密钥不重复 |
| “HELLO” + KEY | RIJVS | DSJJG | RIJSS |
| “ATTACK” + KEY | KXDKEM | KVFAOQ | KXDKEK |
| 密钥推导 | KEY→KEYKE→KEYKEY... | KEY→KEYKE→KEYKEY... | KEY→KEYHE→KEYHELLO... |
| Tabula Recta | 标准表(行=密钥,列=明文) | 反向表(行=密钥,列=密文) | 标准表(与维吉尼亚相同) |
| 破解方式 | Kasiski + 频率分析 | 与维吉尼亚类似(Kasiski + Friedman) | 已知明文攻击、统计方法 |
| 安全级别 | 中等 | 中等 | 中等-强 |
| 发明者 | Giovan Battista Bellaso(1553),后常归于 Vigenère | Sir Francis Beaufort(约1857) | Blaise de Vigenère(1586) |
应该什么时候用哪一种?
- 维吉尼亚:最标准的多表密码,也是学习关键词加密的最佳起点。
- 博福特:适合需要“同一操作即可加解密”的场景,实现更直接。
- 自动密钥:比维吉尼亚更强,因为它消除了重复密钥模式,短消息下通常是三者里最难直接分析的。
古典密码的安全性如何比较?
古典密码的安全级别从“无”到“完美”不等。按现代标准看,大多数古典密码都落在“极弱”到“中等”之间,主要价值在于教学、历史研究和谜题设计。
| 安全性 | 相关密码 | 主要弱点 |
|---|---|---|
| 完美 | Vernam(一次一密) | 无;如果使用正确则不可破解 |
| 强 | 四方、夸格迈尔、同音替换 | 需要大量已知明文和深入密码分析 |
| 中等 | 维吉尼亚、博福特、自动密钥、Playfair、Hill、Porta、Running Key | Kasiski 检验、已知明文攻击、成对频率分析 |
| 弱 | 仿射、关键词、Gronsfeld、Trithemius、Polybius | 频率分析、小密钥空间、可预测模式 |
| 极弱 / 无 | 凯撒、ROT13、Atbash、猪圈、摩尔斯、培根 | 几秒内暴力破解、无密钥或已知映射 |
古典密码主要分为哪些类型?
古典密码可以根据它们如何转换明文分成几个大类。理解这些分类,有助于你选择密码,也有助于判断应当使用哪种分析方法来破解它。
| 密码类型 | 工作方式 | 示例 | 关键弱点 |
|---|---|---|---|
| 单表替换 | 每个字母始终映射到同一个密文字母 | 凯撒、Atbash、仿射、关键词 | 保留字母频率,容易被频率分析破解 |
| 多表替换 | 使用多个字母表,并按关键词轮换 | 维吉尼亚、博福特、自动密钥、Porta | 密钥重复会形成可检测模式(Kasiski) |
| 二联 / 多字母 | 一次把 2 个或更多字母作为整体加密 | Playfair、四方、Hill | 可被双字母或多字母频率分析攻击 |
| 分割编码 | 先把字母转成数字/坐标,再进一步变换 | Polybius、跨格棋盘 | 可对坐标对做频率分析 |
| 流密码 | 明文与密钥流逐字符结合 | Vernam(一次一密) | 核心难点在密钥管理,密钥必须真随机且不可复用 |
这些古典密码是什么时候发明的?
古典密码横跨 2500 多年的密码学历史,从古代学者到 20 世纪军事情报系统,反映了替换、换位和数学化加密的发展过程。
| 时代 | 时期 | 出现的密码 | 关键进展 |
|---|---|---|---|
| 古代 | 公元前500年 – 公元前100年 | Atbash、凯撒、Polybius | 最早的替换与分割思想 |
| 文艺复兴 | 1400s – 1600s | Alberti、维吉尼亚、Porta、Trithemius、自动密钥、培根 | 多表替换开始出现 |
| 工业时代 | 1700s – 1800s | Playfair、博福特、猪圈、摩尔斯 | 双字母加密与实用野战密码 |
| 现代古典时期 | 1900s – 1940s | 四方、Hill、Vernam、跨格棋盘 | 数学基础更强,出现可证明安全性 |
各密码最适合的使用场景
| 密码 | 最佳用途 | 破解方式 |
|---|---|---|
| 凯撒密码 | 教学、谜题、ROT13 | 暴力破解、频率分析 |
| ROT13 | 隐藏剧透、轻度混淆 | 再次应用 ROT13 即可 |
| 埃特巴什密码 | 圣经研究、简单编码 | 已知模式、频率分析 |
| 仿射密码 | 数学教育、模运算 | 暴力破解(312 组密钥)、频率分析 |
| 关键词密码 | 易记密钥加密 | 频率分析 |
| 猪圈密码 | 视觉编码、儿童游戏 | 已知符号网格 |
| 波利比奥斯方阵 | 坐标编码、电报 | 坐标对频率分析 |
| 维吉尼亚密码 | 历史加密、教学 | Kasiski 检验、Friedman 检验 |
| 博福特密码 | 互反加密(加密和解密同一操作) | 同维吉尼亚(Kasiski、Friedman) |
| 自动密钥密码 | 更强的维吉尼亚变体 | 已知明文攻击、统计方法 |
| 特里特米乌斯密码 | 历史研究、递进位移概念 | 已知模式(可预测位移) |
| 格隆斯费尔德密码 | 维吉尼亚的数字密钥变体 | 同维吉尼亚,但密钥空间更小 |
| 波尔塔密码 | 自反多表密码 | 半字母表频率分析 |
| 连续密钥密码 | 使用长文本密钥加密 | 统计分析、已知书本攻击 |
| 普莱费尔密码 | 军用现场、二联加密 | 二联频率分析 |
| 四方密码 | 双钥二联加密 | 大量二联频率分析 |
| 希尔密码 | 数学/矩阵加密 | 已知明文攻击与线性代数 |
| 阿尔贝蒂盘密码 | 最早的多表密码,历史研究 | 旋转点模式分析 |
| 培根密码 | 隐藏明文、隐写 | 二进制分组模式识别 |
| 同音替换密码 | 对抗频率分析 | 统计分析、爬山 |
| 摩尔斯电码 | 电报通信、SOS 信号 | 标准参考表 |
| 一次一密(Vernam) | 正确使用时可证明不可破解 | 若密钥真随机、只使用一次且保持秘密,则不可破解 |
| 跨格棋盘 | 间谍通信的紧凑编码 | 可变长度编码的频率分析 |
| 夸格迈尔密码 | 高级多表替换 | 深度密码分析、模式检测 |
常见问题
凯撒密码和维吉尼亚密码有什么区别?
凯撒密码使用一个固定的位移值替换每个字母,属于单表替换,因此只有 25 个可能密钥,容易被频率分析破解。维吉尼亚密码使用关键词为每个位置提供不同位移,属于多表替换,密钥空间为 26^n(n 为关键词长度),破解难度明显更高,但仍可通过卡西斯基检验和 Friedman 检验攻击。
哪种古典密码最安全?
Vernam 密码,也就是一次一密,是唯一在数学上被证明具有完美安全性的古典密码。前提是密钥必须真正随机、长度至少与消息相同、只使用一次并严格保密。在可实际使用的古典密码中,四方密码和夸格迈尔密码通常被认为最强,因为它们拥有更大的密钥空间和更复杂的替换结构。
单表密码和多表密码有什么区别?
单表密码如凯撒、Atbash、仿射和关键词密码,在整条消息中始终使用同一套替换字母表,因此会保留原始字母频率分布。多表密码如维吉尼亚、博福特、自动密钥和 Porta,会依据关键词轮换多套替换字母表,从而压平频率分布并提升破解难度。
为什么 ROT13 不算真正的加密?
ROT13 本质上是位移为 13 的凯撒密码,但它没有任何秘密密钥,所有人都知道其规则,因此没有实际安全性。它更适合做轻度混淆,比如隐藏剧透或谜题答案。它的特点是自逆,连续应用两次 ROT13 就会回到原文。
像 Playfair 这样的双字母密码与单字母密码有什么不同?
单字母密码一次处理一个字符,而双字母密码会把两个字母作为一个整体进行加密。这会打乱单字母频率模式,并把可分析的单位从 26 个字母扩展到 676 个双字母组合,因此通常比简单的单字母替换更难破解。
凯撒、ROT13 和 Atbash 的核心区别是什么?
三者都属于单表替换,但凯撒密码允许选择 1 到 25 的任意位移,ROT13 是固定为 13 的特殊凯撒变体,而 Atbash 则是直接将字母表反转。ROT13 和 Atbash 都是自逆的,而通用凯撒密码需要使用反向位移来解密。
维吉尼亚、博福特和自动密钥密码有什么区别?
维吉尼亚和博福特都会循环重复关键词,但一个使用加法、一个使用减法。博福特因此具有互反性,加密和解密可用同一操作完成。自动密钥密码则把明文本身接到关键词后面,消除了重复关键词模式,因此通常比前两者更难被卡西斯基检验直接攻击。