信息安全
📌 学习目标
- 掌握保密系统的随机变量模型 $M, K, E$
- 掌握完善保密性的三个等价定义,并会证明其等价性
- 理解完善保密性的必要条件 $H(K) \ge H(M)$
- 会分析 One-Time Pad 为何达到完美安全
- 理解 equivocation $H(M|E)$ 的含义及其随密文长度变化的规律
- 掌握唯一解距离的直觉与公式 $n_0 \approx H(K) / (r \log |\mathcal{X}|)$
- 了解信息论安全与计算安全的本质区别
前面的章节关心两件事:
- 如何把信息压得更短(信源编码)
- 如何把信息传得更准(信道编码)
但通信里还有第三件事同样根本:如何让不该知道的人什么都得不到。这就把问题从"可靠传输"推进到"可靠且保密的传输"。
Shannon 在 1949 年的经典论文 Communication Theory of Secrecy Systems 中,用信息论语言刻画了什么叫"完全安全":即使攻击者拥有无限计算资源,只要他只看到密文,也得不到任何关于明文的信息。
这类安全叫无条件安全或信息论安全。它和现代密码学常说的"计算安全"不同,后者依赖于攻击者算不动某些数学问题。
最基本的私钥保密系统包含四个随机对象:
- $M$:明文(message),来自明文空间 $\mathcal{M}$
- $K$:密钥(key),来自密钥空间 $\mathcal{K}$,通常与 $M$ 独立
- $E$:密文(encrypted text 或 cryptogram),来自密文空间 $\mathcal{C}$
- 加解密规则:$E=T_K(M)$,$M=T_K^{-1}(E)$,$T_K$ 为双射
一般默认:
- 攻击者知道加密算法结构(Kerckhoffs 原则)
- 攻击者不知道当前使用的具体密钥 $K$
- 密钥 $K$ 在理想模型下与明文 $M$ 独立
从信息论角度看,加密像是在让外部观察者眼里的不确定性变大,解密则是在合法接收者处利用密钥把不确定性消除。
所以安全性问题可以自然转化成熵、条件熵、互信息问题:看到密文以后,攻击者对明文还剩多少不确定性?
完善保密性(perfect secrecy)的定义有三种等价表述:
定义(三种等价形式)
条件一(概率形式):观察到密文后,明文分布完全不变
条件二(互信息形式):密文不携带任何关于明文的信息
条件三(熵形式):看到密文后,对明文的不确定性没有减少
这是一个极强的要求。它不是"很难破解",而是"即使无限聪明也推不出来"。
这三个条件之间的等价关系在考试中常考,但不应该死记——要能自己推导。
定理:完善保密性的三个条件等价
证明:$(1) \iff (2)$
由互信息定义:
因此 $I(M;E)=0$ 当且仅当 $H(M\mid E)=H(M)$。
证明:$(2) \iff (3)$
互信息为零等价于 $M$ 与 $E$ 统计独立,即 $P(M=m,E=e)=P(M=m)P(E=e)$。
只要 $P(E=e)>0$,两边除以 $P(E=e)$ 得:
反之,若条件概率恒等于边缘分布,则 $P(M=m,E=e)=P(M=m)P(E=e)$,即 $M$ 与 $E$ 独立,从而 $I(M;E)=0$。
实质含义:三种写法从不同角度刻画同一件事——密文对明文没有统计辨识力。密文的存在不改变攻击者对明文的认知分布。
Shannon 必要条件
若系统要达到完善保密性,则密钥熵至少不能小于明文熵:
在有限等概情形下,这常被理解成:
为什么?直觉上很简单:如果明文可能性比密钥还多,那么同一个密文背后不可能对所有明文都提供足够均匀的遮掩。换句话说,伪装手段不够多,就不可能把所有明文都"洗匀"。
这也解释了为什么真正的信息论安全很贵:你想无条件保护多少信息,就得准备差不多同量级的新鲜随机密钥。
例题:简单替代密码的密钥空间
题目:英文 26 个字母的简单替换密码,密钥空间大小是多少?是否满足完善保密性条件?
分析:
- 明文空间 $|\mathcal{M}| = 26$(单个字母)
- 密钥空间为字母表的一个排列,$|\mathcal{K}| = 26! \approx 4\times10^{26}$
- 密钥熵 $H(K) \approx \log_2(26!) \approx 88$ bits
- 明文熵 $H(M)$ 远小于此值(英文单字母熵约 4.2 bits)
虽然密钥空间很大,但问题是:简单替代不能达到完善保密性。因为密文的统计结构(字母频率)会暴露明文信息,$I(M;E)\neq 0$。密钥空间大只是必要条件,不是充分条件。
One-Time Pad(一次一密)是信息论安全里最经典的方案。设明文和密钥都是长度为 $n$ 的二进制串,且密钥均匀随机、只使用一次。加密定义为
解密则是 $M=E\oplus K$。
命题:One-Time Pad 是完善保密的
证明:固定任意明文 $m$ 和密文 $e$,总存在唯一密钥 $k=m\oplus e$,使得 $e=m\oplus k$。因为密钥 $K$ 均匀分布,这个密钥出现的概率对所有 $m$ 都一样:
此值与 $m$ 无关,因此 $M$ 与 $E$ 独立,得到 $I(M;E)=0$,即完善保密性。
它之所以强,也正因为它代价极高:
- 密钥必须和明文一样长:需要 $H(K)=n$ bits 的新鲜随机数
- 密钥必须真正均匀随机:伪随机数不够安全
- 密钥绝对不能复用:一旦复用,同一密钥加密两段消息会泄露它们的异或关系,$E_1\oplus E_2 = M_1\oplus M_2$,安全性立即崩掉
Equivocation 通常指条件熵,常见有两种:
- $H(M\mid E)$:看到密文后,明文还剩多少不确定性
- $H(K\mid E)$:看到密文后,密钥还剩多少不确定性
它们是衡量"密文到底遮住了多少内容"的直接指标。
若 $H(M\mid E)=H(M)$,就是完善保密;若 $H(M\mid E)$ 很小,则说明密文已把明文基本暴露出来。
在可逆加密模型下,可推出恒等式:
恒等式
这说明看到密文后,密钥还剩多少不确定性,取决于明文熵、密钥熵和密文本身的熵。
特别要注意,equivocation 往往随密文长度增加而下降。密文越长,统计暴露越多,攻击者越可能把候选明文或候选密钥缩小到很少。
自然语言、格式化文本、协议报文都不是随机均匀串,它们含有大量结构和冗余。例如英文里某些字母更常见,词法和语法也强烈限制了可能序列。
明文冗余度定义
更精确到每个符号时:
其中:
- $H$:实际每符号熵
- $\log|\mathcal{X}|$:同字母表下的最大可能熵
冗余度越大,说明明文越有规律,攻击者越容易利用统计结构排除错误候选。也就是说,安全性不仅取决于密钥,还取决于明文本身是否"好猜"。
这也是为什么真实密码分析经常结合语言模型、格式规则、协议头、固定字段等先验知识。信息论里,所有这些"可猜性"最终都在熵不足和冗余度过高上体现出来。
唯一解距离(unicity distance)描述的是:平均需要观察多长的密文,攻击者才能把密钥唯一确定。
唯一解距离公式
其中:
- $H(K)$:密钥熵(bits)
- $r$:明文冗余度($0\le r\le 1$)
- $|\mathcal{X}|$:明文字母表大小
推导思路:
每观察一个新的密文字符,攻击者大致会从明文冗余中提取出大约 $r\log|\mathcal{X}|$ bits 的信息(因为明文每符号的实际熵只有 $(1-r)\log|\mathcal{X}|$ bits,其余 $r\log|\mathcal{X}|$ bits 来自冗余结构)。
设攻击者观察到 $n$ 个密文字符后,对密钥的不确定性(即剩余候选密钥数的对数)大约为:
当 $H(K\mid E) \approx 0$ 时,密钥基本唯一确定,此时:
含义:
- 密钥熵越大,唯一解距离越长,越安全
- 明文冗余度越高,唯一解距离越短,越容易破译
- 若 $r=0$(完美随机明文),则 $n_0\to\infty$,即使短密文也无法唯一确定密钥
对简单字母替代加密,攻击者随密文长度增加,统计线索越来越多,equivocation 持续下降。
直观来看:
- 密文很短时(如 $N=1$),字母频率统计不可靠,$H(M\mid E)$ 仍接近 $H(M)$,保密性较好
- 密文中等长度(如 $N=8$),部分高频字母已可识别,$H(M\mid E)$ 开始下降
- 密文较长(如 $N=15$),双字母搭配和常见词结构显露,$H(M\mid E)$ 显著降低
- 密文很长(如 $N=50$),统计结构基本完全暴露,$H(M\mid E)\approx 0$,明文基本唯一确定
下图示意了 equivocation $H(M\mid E)$ 随密文长度 $N$ 下降的趋势(以英文单字母替代为例,参数作示意性取值):
这一章的核心不是要替代现代密码学,而是提供一个"最强安全标准"的参照系。
| 维度 | 信息论安全(无条件安全) | 计算安全(密码学安全) |
|---|---|---|
| 攻击者能力 | 默认无限算力 | 默认算力有限(PPT) |
| 安全依据 | 熵、互信息、统计独立 | 计算困难性假设(如 RSA 假设) |
| 代表方案 | One-Time Pad | AES、RSA、ECC 等 |
| 安全标准 | $I(M;E)=0$,不可破译 | 破译代价超出攻击者收益 |
| 代价 | 需要超长新鲜密钥 | 可实用,但依赖假设 |
| 可操作性 | 理论上优美,实际部署困难 | 工业级实用 |
所以信息论安全像一把标尺:它告诉我们"绝对安全"意味着什么,也告诉我们为什么现实系统往往在安全性和可部署性之间做折中。
实际部署中,常见的做法是:用计算上安全的对称加密(AES 等)加密数据,同时用信息论安全的密钥交换机制(基于椭圆曲线的 ECDH)分发密钥,兼顾实用性与安全性。
📝 本章复习速查
- 模型:保密系统三随机变量 $M, K, E$,加解密为双射变换
- 完善保密性:$P(M=m\mid E=e)=P(M=m)$ $\iff$ $I(M;E)=0$ $\iff$ $H(M\mid E)=H(M)$
- 必要条件:$H(K)\ge H(M)$(密钥熵不能小于明文熵)
- One-Time Pad:$E=M\oplus K$,密钥均匀随机、只使用一次,达到完善保密
- OTP 密钥复用:$E_1\oplus E_2 = M_1\oplus M_2$,泄露明文异或关系,安全性崩溃
- Equivocation:$H(M\mid E)$ 衡量看到密文后明文剩余不确定性;随密文增长下降
- 明文冗余度:$r=1-H/\log|\mathcal{X}|$,冗余度越高,越容易通过统计破译
- 唯一解距离:$n_0\approx H(K)/(r\log|\mathcal{X}|)$,密钥熵越大越安全,明文冗余度越高越危险
参考来源
- PDF课程课件:末章 信息安全p.1正在渲染 PDF 第 1 页…
课程课件:末章 信息安全(PDF 第 1 页) · 打开原文 - Claude E. Shannon, Communication Theory of Secrecy Systems, Bell System Technical Journal, Vol. 28, No. 4, 1949
- Thomas M. Cover & Joy A. Thomas, Elements of Information Theory, 2nd Edition, Wiley, 2006 — Chapter 12: Information Theory and Cryptography