古典密码
概述
古典密码(Classical Ciphers)是密码学历史上最早出现的加密方法,均属于对称密钥密码范畴,即加密和解密使用相同密钥或可互推的密钥。主要包括凯撒密码(固定移位 3 的替换密码)、仿射密码(线性变换替换 )、维吉尼亚密码(多表替换,使用密钥字符串)和换位密码(基于排列的字母重排)。这些密码的安全性依赖于密钥的保密性(Kerckhoffs 原则),其中除维吉尼亚密码外均可通过频率分析有效破解。
定义
凯撒密码(Caesar Cipher)
凯撒密码是最古老的加密方法之一,由 Julius Caesar 使用。将每个字母在字母表中向后移动 3 位:
其中 是字母的数值编码()。
解密函数:。
- 密钥空间大小:(移位量固定为 3)
- 安全性:极低,仅 25 种可能的移位量,穷举即可破解
移位密码(Shift Cipher)
移位密码是凯撒密码的推广,将移位量从固定的 3 推广为任意整数 :
解密函数:。
- 密钥空间大小:
- 整数 称为密钥(key)
- 本质上是 上的加法密码
仿射密码(Affine Cipher)
维吉尼亚密码(Vigenere Cipher)
维吉尼亚密码是一种分组密码,密钥是一个字母串 。对明文块 ,密文块为:
本质上是对每个位置使用不同的移位量,相当于多个移位密码的组合。
- 密钥空间大小:( 为密钥长度)
- 16 世纪由法国外交官 Blaise de Vigenere 发明
- 曾被称为 “le chiffre indéchiffrable”(不可破译的密码)
换位密码(Transposition Cipher)
换位密码是一种分组密码,使用集合 的一个排列 作为密钥。将明文分成大小为 的块,每块 加密为:
解密使用逆排列 。
- 与替换密码不同,换位密码不改变字母本身,只改变字母的位置
- 密钥空间大小:( 为块大小)
频率分析(Frequency Analysis)
频率分析是破解替换密码的主要工具,基于以下事实:英文中不同字母的出现频率有显著差异。
英文中最常见的 9 个字母及其近似频率:
字母 E T A O I N S H R 频率 13% 9% 8% 8% 7% 7% 7% 6% 6% 破解步骤:
- 统计密文中每个字母的出现频率
- 假设最常见密文字母对应明文 E(或 T、A 等)
- 推算密钥参数
- 解密并验证是否得到有意义的文本
核心性质
| 性质 | 描述 | 说明 |
|---|---|---|
| 凯撒密码密钥空间 | $ | \mathcal{K} |
| 移位密码密钥空间 | $ | \mathcal{K} |
| 仿射密码双射条件 | 必须与 26 互素,共有 12 个合法值 | |
| 仿射密码密钥空间 | $ | \mathcal{K} |
| 维吉尼亚密码密钥空间 | $ | \mathcal{K} |
| 换位密码密钥空间 | $ | \mathcal{K} |
| 频率分析有效性 | 对单表替换密码有效 | 凯撒密码、移位密码、仿射密码均可被频率分析破解 |
| 维吉尼亚密码抗频率分析 | 多表替换平滑频率分布 | 每个位置的字母频率趋于均匀分布 |
| 替换 vs 换位 | 替换改变字母,换位改变位置 | 两类密码的基本操作原理不同 |
关系网络
graph TB A["古典密码"] --> B["替换密码 Substitution"] A --> C["换位密码 Transposition"] B --> B1["凯撒密码 E(x)=(x+3) mod 26"] B --> B2["移位密码 E(x)=(x+k) mod 26"] B --> B3["仿射密码 E(x)=(ax+b) mod 26"] B --> B4["维吉尼亚密码 多表替换"] B1 --> B2 B2 --> B3 B3 --> B4 D["频率分析"] --> B1 D --> B2 D --> B3 D -.->|"较弱"| B4 B3 --> E["模逆元"] B1 --> F["模运算"] B2 --> F B3 --> F B4 --> F A --> G["密码学"] style A fill:#5cb85c,color:#fff style B fill:#4a90d9,color:#fff style C fill:#d9534f,color:#fff style D fill:#e8a838,color:#fff
- 密码学 是古典密码的上位概念:古典密码属于对称密钥密码学的历史分支
- 模运算 是所有古典密码的数学基础:凯撒密码、移位密码、仿射密码、维吉尼亚密码均基于模 26 运算
- 模逆元 是仿射密码解密的关键:需要计算 模 26 的逆元 来恢复明文
章节扩展
第4章:数论与密码学
古典密码是第 4 章 4.6 节的前半部分内容,展示了模运算在密码学中的基础应用:
- 4.6 密码学:凯撒密码(移位 3)、移位密码(推广移位量 )、仿射密码(线性变换 )、维吉尼亚密码(多表替换)、换位密码(排列重排)、频率分析破解方法
- 4.4 解同余方程:模逆元的计算是仿射密码解密的核心工具, 的存在性由 保证
- 4.2 整数表示与运算:模运算的定义和性质是所有古典密码算法的数学基础
补充
古典密码的历史与学术背景
凯撒密码(Caesar Cipher)以罗马统帅 Julius Caesar 命名,据 Suetonius 的记载,Caesar 在军事通信中使用将字母移位 3 位的加密方法。仿射密码是移位密码的推广,其数学结构对应 上的仿射变换。维吉尼亚密码由意大利密码学家 Giovan Battista Bellaso 于 1553 年首次描述,后因法国外交官 Blaise de Vigenere 的推广而得名,在长达 300 年的时间里被认为不可破译,直到 19 世纪被 Charles Babbage 和 Friedrich Kasiski 独立破解(通过 Kasiski 测试确定密钥长度)。换位密码的历史同样悠久,古希腊斯巴达人使用的 Scytale(密码棒)就是一种物理形式的换位密码。
学术来源:Rosen, K. H. (2019). Discrete Mathematics and Its Applications (8th ed.). McGraw-Hill, Section 4.6.
参考链接:Singh, S. (1999). The Code Book: The Science of Secrecy from Ancient Egypt to Quantum Cryptography. Fourth Estate.