1. 密码学研究什么

古典密码学主要研究保密通信:双方事先共享秘密信息,使窃听者无法读懂通信内容。早期方案多依赖经验设计,经历“提出方案、被攻破、再修改”的过程。

现代密码学研究用数学方法保护信息、系统和分布式计算,使其抵抗攻击者。除保密通信、文件加密外,还涉及身份认证、匿名支付和保护隐私的计算等,并强调精确的模型与严格的分析。

2. 私钥加密的基本框架

先考虑最基本的通信场景:Alice 和 Bob 共享密钥 。Alice 将明文 加密成密文 ,Bob 用同一密钥解密;窃听者 Eve 可以看到密文。

定义:私钥加密方案(Private-key Encryption)

一个私钥加密方案记为 ,并指定明文空间 、密钥空间 和密文空间 。

  • 密钥生成:,输出密钥 。
  • 加密:,输入密钥 与明文 ,输出密文 。
  • 解密:,输入密钥 与密文 ,输出明文或错误符号 。

正确性要求:对所有可能生成的密钥 和所有合法明文 ,加密再解密一定恢复原文:

若加密使用随机性,该等式要求对其产生的所有可能密文都成立。安全性则关心 Eve 从密文中能获得什么信息;正确性本身不保证安全,“无法读懂”还需要进一步定义。

3. Kerckhoffs 原则

要分析 Eve 能否破解,必须先明确哪些信息可以公开、哪些信息必须保密。

原则:Kerckhoffs 原则

分析方案时,假定攻击者知道 及方案的其他公开信息。安全性应依赖随机生成并妥善保管的秘密密钥,不应要求算法本身保密。

密钥比整套算法更容易保管和更换;公开算法也便于标准化、部署和接受公开分析。知道算法与知道密钥是两回事。

4. 古典密码及其攻击

下面逐步增加方案的复杂程度,观察攻击者如何利用小密钥空间和自然语言的统计结构。字母统一编码为 ,运算对 26 取模。

4.1 凯撒密码(Caesar’s Cipher)

将每个字母固定向后移 3 位,例如 、,到字母表末尾后绕回开头。大小写只用于区分明文和密文。

由于移位量固定为 3,没有秘密密钥;任何知道规则的人都能反向移位。

4.2 移位密码(Shift Cipher)

将固定的移位量换成秘密密钥 :

密钥均匀随机选取,但总共只有 26 种可能,攻击者可以逐个尝试并识别有意义的明文。若排除不改变原文的 ,则有 25 种;两种约定下穷举都很容易。

4.3 单表替换密码(Mono-alphabetic Substitution Cipher)

为了增大密钥空间,可以用字母表的任意置换 作密钥,而不局限于整体移位:

密钥空间大小为 ,但同一个明文字母始终替换成同一个密文字母,因此仍保留字母频率和重复模式。对于足够长的英语文本,可结合高频字母、常见字母组合与单词模式进行频率分析。

密钥空间大只能阻碍直接穷举,不能排除利用结构的攻击。

4.4 按字节异或的移位密码(Byte-wise Shift Cipher)

为了处理任意二进制数据,将字母改成字节,并用异或 代替模加法。明文、密文为字节串,所有位置共用同一个字节密钥:

由异或的性质可得正确性:

密钥只有 256 种,仍可穷举,并利用文本或文件格式识别候选明文。对于只含 ASCII 字母的明文,高四位通常在 到 之间,也能帮助筛选。

此处只有一个字节的密钥,重复作用于整条消息;改变数据表示和运算方式没有消除小密钥空间的问题。

4.5 维吉尼亚密码(Vigenère Cipher)

前面的方案总是对所有位置使用同一种变换。维吉尼亚密码改用一串移位量,并周期性重复这串密钥。

定义:维吉尼亚密码

设密钥为长度 的字母串 ,各字母编码为 。对从 0 开始编号的位置 ,

长度固定为 时,密钥空间大小为 。

当 时,,直接穷举全部密钥的代价很高。但密钥的周期性提供了另一种攻击途径。

5. 维吉尼亚密码的频率分析

攻击的关键是:每隔 个位置使用同一个移位量。只要把这些位置抽出来,就重新得到一个移位密码。

5.1 已知密钥长度

已知周期为 时,按位置模 分组。第 组为 ,每个字符都使用 加密。

设 是正常英语中第 个字母的频率, 是某组密文中第 个字母的观测频率。若该组的真实移位量为 ,在文本足够长、该组明文统计接近英语分布时,有

因此可以枚举 ,计算相关得分

正确移位使两组频率对齐,其得分通常较高,并接近

对每组分别筛选移位量,再用完整解密结果验证,就能恢复密钥。于是攻击无需穷举 个完整密钥,只需对每组尝试 26 个移位量;可靠性取决于每组是否有足够的文本。

5.2 未知密钥长度

还需要判断怎样分组,才能让每组尽量只含一个移位密码。可枚举合理范围内的候选长度,用每组字母频率的平方和检查分组结果。

对候选长度 的第 组,记频率为 ,计算

并比较各组的平均值。平方和可理解为:按这一字母分布独立抽取两个字母,它们相同的概率。分布越不均匀,这个概率越大。

  • 分组正确时,移位只重排频率,不改变平方和,因此通常接近英语的 。
  • 分组不正确时,多个移位混合可能使分布更均匀;若接近均匀分布,则平方和接近 。

选取有明显较高得分的候选周期,再按已知长度的方法恢复各位密钥并验证。

Remark:频率分析的适用条件

这些数值是长英语文本下的统计近似,不是每条密文必须满足的判据。真实周期的倍数也可能得到高分,错误分组也未必接近均匀;分组过多、每组过短会使估计不可靠,极端情况下单字符组的平方和为 1。因此不能在任意长度范围内机械地取最大值,应保证足够样本,并结合周期的倍数关系和解密结果判断。

6. 为什么需要形式化的安全定义

这些例子说明:增加密钥空间、变换种类或密钥长度,都可能仍然保留可被利用的结构。对重复密钥的维吉尼亚密码而言,通常密钥越长,每组可用的统计样本越少;固定密钥长度时,密文越长,频率分析越容易。

要进一步证明一个方案安全,必须先精确说明“攻击者能做什么”以及“哪些信息不应泄露”。这也是后续研究现代密码学的起点。