4. 信息论基础:熵、条件熵、互信息与完美保密性
信息论为密码学提供了衡量“信息量”与“不确定性”的数学工具。理解熵、条件熵和互信息,是掌握一次一密(One-Time Pad)完美保密性的前提。本章从信息论的核心概念出发,逐步推导出完美保密性的数学条件。
4.1 熵(Entropy)——不确定性的度量
熵是信息论中衡量随机变量不确定性的基本量。对于一个离散随机变量 \(X\),其概率分布为 \(P(X = x_i) = p_i\),熵 \(H(X)\) 定义为:
H(X) = - Σ p_i * log₂(p_i) (单位:比特)
熵越大,不确定性越高;熵为0表示结果完全确定。
| 随机变量 | 概率分布 | 熵 H(X) (比特) | 含义 |
|---|---|---|---|
| 公平硬币 | P(正)=0.5, P(反)=0.5 | 1.0 | 完全不确定,1比特信息 |
| 偏置硬币 | P(正)=0.9, P(反)=0.1 | ≈0.469 | 不确定性较低,偏向正面 |
| 确定事件 | P(正)=1.0, P(反)=0.0 | 0.0 | 完全确定,无不确定性 |
密码学视角:密钥的熵越高,攻击者猜测密钥的难度越大。一个128位均匀随机密钥的熵为128比特,意味着平均需要2^128次尝试才能猜中。
4.2 条件熵(Conditional Entropy)——已知信息后的剩余不确定性
条件熵 \(H(X|Y)\) 表示在已知随机变量 \(Y\) 的条件下,\(X\) 剩余的不确定性:
H(X|Y) = - Σ p(y) * Σ p(x|y) * log₂(p(x|y))
在密码学中,\(H(K|C)\) 表示已知密文 \(C\) 后,密钥 \(K\) 的剩余不确定性。如果 \(H(K|C) = H(K)\),说明密文没有泄露任何关于密钥的信息。
4.3 互信息(Mutual Information)——信息泄露的度量
互信息 \(I(X;Y)\) 衡量两个随机变量之间的共享信息量,即知道 \(Y\) 后 \(X\) 不确定性的减少量:
I(X;Y) = H(X) - H(X|Y) = H(Y) - H(Y|X)
互信息为0表示 \(X\) 和 \(Y\) 相互独立;互信息越大,相关性越强。
完美保密条件:对于加密方案,若明文 \(M\) 与密文 \(C\) 的互信息 \(I(M;C) = 0\),则密文不泄露任何明文信息,达到完美保密。
4.4 完美保密性与一次一密(One-Time Pad)
一次一密(OTP)是唯一被严格证明具有完美保密性的加密方案。其核心原理如下:
- 密钥要求:密钥 \(K\) 与明文 \(M\) 等长,且为均匀随机比特串。
- 加密操作:密文 \(C = M \oplus K\)(按位异或)。
- 解密操作:明文 \(M = C \oplus K\)。
- 关键约束:密钥只能使用一次,且必须安全分发。
从信息论角度证明完美保密性:
已知:H(M|C) = H(M) (已知密文后明文不确定性不变)
等价于:I(M;C) = H(M) - H(M|C) = 0
证明:对于任意密文c,P(M=m|C=c) = P(M=m) ⟹ 密文与明文统计独立
⚠ 实践警告:一次一密虽然理论上不可破解,但密钥分发与管理极其困难。密钥长度必须等于明文长度,且不能重复使用。实际系统中通常使用流密码或分组密码作为近似替代。
4.5 信息论概念关系图
下图展示了熵、条件熵、联合熵与互信息之间的数学关系:
4.6 一次一密加密与解密流程
下图展示了一次一密(OTP)的完整工作流程,强调密钥的“一次性”与“等长”特性:
4.7 信息论与密码安全对照表
| 信息论概念 | 密码学对应 | 安全含义 |
|---|---|---|
| 熵 H(K) | 密钥空间的不确定性 | 密钥熵越大,暴力破解难度越高 |
| 条件熵 H(K|C) | 已知密文后密钥的剩余不确定性 | 若 H(K|C) = H(K),密文不泄露密钥 |
| 互信息 I(M;C) | 明文与密文的相关性 | I(M;C) = 0 为完美保密 |
| 条件熵 H(M|C) | 已知密文后明文的剩余不确定性 | H(M|C) = H(M) 表示密文无信息泄露 |
核心结论:一次一密通过使密钥熵等于明文熵(H(K) ≥ H(M)),且密钥与明文统计独立,实现了 I(M;C) = 0 的完美保密条件。这是信息论安全(无条件安全)的黄金标准,也是所有现代加密方案追求的理论基准。