信息论安全:从香农完美保密到现代无条件安全密码学
概述
现代密码学的安全性几乎完全建立在计算复杂性假设之上——RSA 假设大整数分解是困难的,ECC 假设椭圆曲线离散对数是困难的。但"困难"是一个相对概念:随着算法进步和计算能力提升,今天"困难"的问题在明天可能变得容易。
信息论安全(Information-Theoretic Security)提供了一种截然不同的安全保证方式:它不依赖任何计算复杂性假设,而是基于数学上严格证明——即使攻击者拥有无限的计算能力和时间,也无法从密文中获取关于明文的任何信息。
这种安全性概念源于克劳德·香农(Claude Shannon)在1949年发表的里程碑论文《保密系统的通信理论》(Communication Theory of Secrecy Systems)。在这篇论文中,香农严格定义了"完美保密"的概念,并证明了实现它的充要条件——这就是著名的一次一密(One-Time Pad, OTP)方案。
理解信息论安全,就是理解密码学的安全性上限和理论边界,也是理解为什么现代密码学不得不依赖于计算安全假设的根本原因。
香农的完美保密定理
保密系统的形式化模型
香农将通信系统抽象为以下要素:
| 要素 | 符号 | 说明 |
|---|---|---|
| 明文空间 | $\mathcal{M}$ | 所有可能明文消息的集合 |
| 密文空间 | $\mathcal{C}$ | 所有可能密文的集合 |
| 密钥空间 | $\mathcal{K}$ | 所有可能密钥的集合 |
| 加密函数 | $E_k: \mathcal{M} \rightarrow \mathcal{C}$ | 使用密钥 $k$ 对明文 $m$ 加密 |
| 解密函数 | $D_k: \mathcal{C} \rightarrow \mathcal{M}$ | 使用密钥 $k$ 对密文 $c$ 解密 |
完美保密的定义
定义(完美保密):一个密码系统具有完美保密性,如果对任意明文 $m \in \mathcal{M}$ 和任意密文 $c \in \mathcal{C}$,满足:
$$\Pr[M = m \mid C = c] = \Pr[M = m]$$
直观含义:即使攻击者截获了密文 $c$,他们对明文的后验概率分布与先验概率分布完全相同——密文零信息泄露。
等价表述(通过贝叶斯定理):对任意 $m_1, m_2 \in \mathcal{M}$ 和任意 $c \in \mathcal{C}$,
$$\Pr[C = c \mid M = m_1] = \Pr[C = c \mid M = m_2]$$
即:攻击者观察密文 $c$ 后,无法判断它是从 $m_1$ 还是 $m_2$ 加密而来。
香农定理(1949)
定理:设密码系统 $(\mathcal{M}, \mathcal{C}, \mathcal{K})$ 满足 $|\mathcal{M}| = |\mathcal{C}| = |\mathcal{K}|$。则该系统具有完美保密性的充要条件是:
- 每个密钥等概率选取($\Pr[K = k] = 1/|\mathcal{K}|$,对所有 $k$)
- 对每个明文 $m$ 和密文 $c$,存在唯一一个密钥 $k$ 使得 $E_k(m) = c$
*必要性*:假设完美保密成立但对某 $(m, c)$ 存在两个不同密钥 $k_1, k_2$ 使得 $E_{k_1}(m) = E_{k_2}(m) = c$,则 $\Pr[C = c \mid M = m] \geq \Pr[K = k_1] + \Pr[K = k_2] > \Pr[K = k_1] = \Pr[C = c \mid M = m']$(对某个使密钥唯一的 $m'$),导出矛盾。
*充分性*:若每个 $(m, c)$ 对应唯一密钥,则 $\Pr[C = c \mid M = m] = \Pr[K = k(m,c)] = 1/|\mathcal{K}|$,与 $m$ 无关,因此后验概率等于先验概率。∎
一次一密(One-Time Pad)
构造
一次一密由吉尔伯特· Vernam(Gilbert Vernam)在1917年提出,但在1949年之前一直缺乏严格的安全性证明。香农的贡献在于给出了完美的数学证明。
明文: m = m₁ m₂ ... mₙ (n 比特)
密钥: k = k₁ k₂ ... kₙ (n 比特,真随机)
密文: c = c₁ c₂ ... cₙ (cᵢ = mᵢ ⊕ kᵢ)
解密: mᵢ = cᵢ ⊕ kᵢ为什么 OTP 满足完美保密
对任意 $m \in \{0,1\}^n$ 和 $c \in \{0,1\}^n$,存在唯一密钥 $k = m \oplus c$ 使得 $c = m \oplus k$。由于密钥 $k$ 在所有 $2^n$ 个 $n$ 比特串上均匀分布,有:
$$\Pr[C = c \mid M = m] = \Pr[K = m \oplus c] = \frac{1}{2^n}$$
该概率与明文 $m$ 无关,因此满足完美保密的定义。
OTP 的致命约束
完美保密的三个必要条件在实际中极为苛刻:
- 密钥长度 ≥ 明文长度:每个明文比特需要一个密钥比特
- 真随机性:密钥必须来自真随机源(TRNG),不能是伪随机生成器(PRNG)
- 一次一用:密钥绝不可重复使用
工程困境
OTP 的核心问题在于密钥分发:如果发送方能够将足够长的安全密钥传递给接收方用于加密通信,那么他们同样可以安全地传递明文本身。这就是为什么 OTP 虽然在理论上"不可破解",但在实际应用中几乎完全局限于极端场景:
- 战争时期的外交热线(莫斯科-华盛顿热线的早期使用)
- 军事指挥系统中预先分发的密钥本(物理信使传递)
- 量子密钥分发(QKD)的安全基础
一次一密的安全证明
信息论度量
香农引入信息熵来量化不确定性:
$$H(M) = -\sum_{m \in \mathcal{M}} \Pr[M = m] \log_2 \Pr[M = m]$$
条件熵 $H(M \mid C)$ 表示观察到密文 $M$ 后 $C$ 的剩余不确定性。互信息 $I(M; C) = H(M) - H(M \mid C)$ 度量密文泄露的关于明文的信息量。
等价刻画:完美保密的等价条件是 $I(M; C) = 0$(互信息为零),或者说 $H(M \mid C) = H(M)$(密文不降低明文的不确定性)。
密钥下界定理
定理(Shannon, 1949):任何具有完美保密的密码系统必须满足:
$$H(K) \geq H(M)$$
即密钥的熵不小于明文的熵。在明文均匀分布的情况下,这意味着 $|\mathcal{K}| \geq |\mathcal{M}|$。
推论:对于 $n$ 比特明文,密钥至少需要 $n$ 比特。这从信息论角度证明了 OTP 的密钥长度是最优的。
计算安全 vs 无条件安全
安全性层次
| 安全级别 | 依赖假设 | 典型方案 | 安全保证 |
|---|---|---|---|
| 完美保密(无条件安全) | 无 | OTP | 数学严格,无限安全 |
| 信息论安全(统计安全) | 无 | Shamir 秘密共享、BB84 QKD | 信息论界限 |
| 计算安全 | P ≠ NP 等 | AES-256, RSA-2048 | 对多项式时间攻击者安全 |
| 实际安全 | 实现无缺陷 | 具体系统实现 | 依赖实现质量 |
为什么现代密码学依赖计算安全
OTP 的密钥分发困境迫使密码学退而求其次:用短密钥加密长明文,同时依赖计算复杂性来保证"实际上不可破解"。
例如:
- AES-256 用 256 比特密钥加密 GB 级别的数据
- RSA-2048 用约 270 字节公钥提供约 112 比特的安全强度
- 这些方案的"安全"是指:在当前可预见的计算能力下,暴力破解需要 $2^{112}$ 次运算
Wyner 窃道信道模型
模型定义
1975 年,Aaron Wyner 在论文"The Wire-Tap Channel"中提出了一个重要的扩展:即使没有预先共享的秘密密钥,通过物理信道的特性也可以实现信息论安全。
发送方(A) -----主信道(B)-----> 接收方(B)
|
窃听者(E)
|
窃道信道(E)Wyner 假设窃道信道是主信道的降级版本(例如更高噪声),则发送方可以设计编码方案,使接收方能正确解码而窃听者获得的信息量趋近于零。
保密容量
Wyner 证明存在正的保密容量 $C_s$( secrecy capacity):
$$C_s = \max_{P_X} [I(X; Y) - I(X; Z)]$$
其中 $X$ 是发送符号,$Y$ 是合法接收方收到的符号,$Z$ 是窃听者收到的符号。只要传输速率 $R < C_s$,就能实现无条件安全通信。
现代发展
- MIMO 安全:利用多天线的空间自由度,向窃听者的方向发送"人工噪声"
- 物理层安全:Wyner 模型的工程实现,5G/6G 中的安全增强
- 局限性:依赖信道条件的假设,实际中难以严格满足
量子密钥分发(QKD)
原理
量子密钥分发(Quantum Key Distribution)提供了一种基于物理原理(而非数学假设)的密钥协商方式:
- BB84 协议(Bennett & Brassard, 1984):利用量子不可克隆定理和测量塌缩原理
- E91 协议(Ekert, 1991):基于量子纠缠和 Bell 不等式
安全性基础
QKD 的安全性基于量子力学基本原理:
- 不可克隆定理:未知量子态不能被完美复制
- 测量塌缩:对量子态的测量会改变其状态
- No-signaling 原理:信息不能超光速传输
安全性结论
- 信息论安全:严格证明,不依赖计算假设
- 前提条件:需要Authenticated classical channel(认证经典信道,通常用信息论安全的 MAC,如 Wegman-Carter,本身需要短密钥)
- 实际限制:传输距离(光纤 ~100-200 km)、密钥速率(Mbps 级别)、需可信节点中继
秘密共享中的无条件安全
Shamir 门限方案的无条件安全性
Shamir 的 $(t, n)$-门限方案(1979)是信息论安全的典型例子:
$$s(x) = a_0 + a_1 x + a_2 x^2 + \cdots + a_{t-1} x^{t-1} \pmod p$$
其中 $a_0 = s$(秘密),其他系数随机选取。将 $(i, s(i))$ 分发给 $n$ 个参与方。
无条件安全性证明:对于任意 $t-1$ 个份额,存在恰好 $p$ 个不同的多项式(对应 $p$ 个不同的秘密值),每个秘密值等概率出现。因此:
$$H(S \mid S_1 = s_1, \ldots, S_{t-1} = s_{t-1}) = H(S)$$
即互信息为零——没有任何关于秘密的信息泄露。
与其他方案的对比
| 方案 | 安全级别 | 基础假设 |
|---|---|---|
| Shamir 秘密共享 | 无条件安全 | 多项式插值理论 |
| Blakley 超平面方案 | 无条件安全 | 超平面交理论 |
| RSA 加密 | 计算安全 | 大整数分解困难性 |
| OTP | 无条件安全 | 上述香农定理 |
现代无条件安全的应用场景
1. 分布式密钥管理
在加密货币托管、企业根密钥管理中,无条件安全的秘密共享是核心组件:
- Shamir 方案:将根密钥拆分为多份,分存于不同地理位置
- 可验证秘密共享(VSS):Feldman VSS、Pedersen VSS 提供可验证性
- proactive secret sharing:份额周期性刷新,防御长期攻击
2. 安全多方计算(MPC)
某些 MPC 协议可以实现无条件安全(诚实多数假设下):
- BGW 协议:基于 Shamir 秘密共享,在诚实多数下无条件安全
- MPC-in-the-Head:将 MPC 证明作为零知识证明的基础
3. QKD 网络
- 中国:"京沪干线"(2017 年开通,2000 公里)
- 欧洲:EuroQCI 计划
- 卫星:墨子号卫星(2016 年)
4. 流式密码学的理论基础
虽然流密码本身是计算安全的,但其理论模型是无条件安全的——"理想流密码"等价于 OTP。所有流密码的设计目标就是尽可能接近 OTP 的性能特征。
工程取舍:何时需要无条件安全
需要无条件安全的场景
- 军事和外交通信:信息保密期可能长达 50-100 年
- 长期存档:需要保护数据几十年
- 密钥备份:根密钥的长期保护
- 极端对抗环境:对手可能拥有未知的计算能力(包括量子计算机)
使用计算安全的场景
- 互联网通信:TLS、Signal 等(假设量子计算机可破解,但有 PQC 迁移规划)
- 商业应用:AES-256 在当前和可预见的未来已足够安全
- 短期信息:保密期在几年到几十年以内
混合设计模式
现代密码系统常采用混合设计:
- 短期用计算安全:TLS 1.3 握手后的数据传输
- 长期用无条件安全:Shamir 份额保护的根密钥
- 过渡期用双重保护:PQC 混合模式(ECDH + ML-KEM)
总结
香农在1949年证明的不仅是 OTP 的完美保密性,更是所有密码系统的安全性边界:
- 完美保密需要 $|\mathcal{K}| \geq |\mathcal{M}|$ — 密钥长度不能短于明文
- 计算安全是工程妥协 — 用"实际上不可破解"代替"数学上不可破解"
- 信息论安全无处不在 — 秘密共享、QKD、物理层安全都有无条件安全的身影
- 设计密码系统需要明确安全模型 — 知道你的安全保证基于什么假设
参考来源
- Shannon, C.E. (1949). "Communication Theory of Secrecy Systems". *Bell System Technical Journal*, 28(4), 656-715.
- Vernam, G.S. (1926). "Cipher Printing Telegraph Systems For Secret Wire and Radio Telegraphic Communications". *AIEE Transactions*, 45, 295-301.
- Wyner, A.D. (1975). "The Wire-Tap Channel". *Bell System Technical Journal*, 54(8), 1355-1387.
- Bennett, C.H. & Brassard, G. (1984). "Quantum cryptography: Public key distribution and coin tossing". *Proceedings of IEEE International Conference on Computers, Systems and Signal Processing*, 175-179.
- Shamir, A. (1979). "How to Share a Secret". *Communications of the ACM*, 22(11), 612-613.
- Ekert, A.K. (1991). "Quantum cryptography based on Bell's theorem". *Physical Review Letters*, 67(6), 661-663.
- Goldreich, O. (2004). *Foundations of Cryptography: Volume 2, Basic Applications*. Cambridge University Press.
- Nielsen, M.A. & Chuang, I.L. (2010). *Quantum Computation and Quantum Information*. Cambridge University Press.
- Cramer, R., Damgård, I., & Nielsen, J.B. (2015). *Secure Multiparty Computation and Secret Sharing*. Cambridge University Press.
- Mermin, N.D. (2007). *Quantum Computer Science: An Introduction*. Cambridge University Press.