密码学:香农一次一密是绝对安全的证明过程

admin 2025-12-22 04:27:42 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文介绍了香农的完善保密性(PerfectSecrecy)理论及其数学证明。核心公式为Pr(M=m|C=c)=Pr(M=m),表明密文不提供任何关于明文的信息。文章证明了实现完善保密性的两个必要且充分条件:1)密钥空间大小≥明文空间大小(|K|≥|M|);2)对任意明文和密文,存在唯一密钥使得加密成立。通过贝叶斯公式和全概率公式,文章严谨地推导了这些条件的必要性和充分性,为一次一密密码系统提供了理论基础。 综合评分: 86 文章分类: 应用安全,网络安全,其他


cover_image

密码学:香农一次一密是绝对安全的证明过程

豆豆

豆豆咨询

2025年12月15日 15:52 浙江

香农将“绝对安全” 正式命名为完善保密性(Perfect Secrecy),并通过数学推导明确了其唯一实现方案与边界条件。

a.关键公式:完善保密性的核心公式是

Pr(M=m | C=c) = Pr(M=m)                           (1)

其中:Pr (M=m):“没看到密文时,明文是 m” 的概率(先验概率);

Pr (M=m | C=c):“看到密文 c 后,明文是 m” 的概率(条件概率)。

该公式的含义:无论是否看到密文,猜中明文的概率都不变—密文没透露任何有用信息。

b. 证明的几个概念

l明文相关的几个概念:

明文空间M:所有可能明文的集合;

概率分布Pr (M=m):每个明文出现的概率;

l密钥相关的几个概念:

密钥空间K:所有可能密钥的集合;

概率分布Pr (K=k):完美加密要求 “均匀随机”,即每个密钥的概率相等,Pr (K=k)=1/|K|;

关键约束:密钥需与明文独立(密钥的选择不依赖于明文内容)。

l密文相关的几个概念:

密文空间C:所有可能密文的集合(由加密函数生成,空间大小 | C | 通常与 | K | 一致);

加密函数:C=E (K,M),即密文由密钥和明文共同决定;

概率分布Pr (C=c):密文 c 的概率是 “所有明文 + 密钥生成 c” 的概率之和(通过全概率公式计算)。

c. 定义:香农对完善保密性的严格定义为:对任意明文m∈M、任意密文 c∈C(且 Pr (C=c)>0),均有 Pr (M=m | C=c) = Pr (M=m)。

说明:若公式成立,说明“密文 c 与明文 m 相互独立”—— 密文无法提供任何关于明文的信息,敌人看到 c 后,对 m 的认知没有变化;

d. 定理:香农证明:密码系统满足完善保密性,当且仅当以下两个条件同时成立:

条件1:密钥空间大小≥明文空间大小,即 | K|≥|M|;

条件2:对任意明文 m∈M、任意密文 c∈C,存在唯一密钥 k∈K,使得 E (k,m)=c(加密函数对固定 m 是 “双射”)。

l条件2的必要性证明:

根据完善保密性定义得公式(1),即Pr (M=m | C=c)=Pr (M=m),

结合贝叶斯公式:

Pr(M=m | C=c) = [Pr(C=c | M=m)·Pr(M=m)] / Pr(C=c)        (2)

将定义代入公式(2),化简可得:

Pr(C=c | M=m) = Pr(C=c)                         (3)

该等式说明:“给定明文 m 时生成密文 c 的概率”,与 “密文 c 本身的概率” 完全一致,与明文 m 无关—这是后续推导的核心基础。

“双射性”指:对固定明文m,每个密文 c∈C 都对应唯一密钥 k∈K(即 “一个 c→一个 k”,无重复对应)。采用反证法:

假设存在两个不同密钥k₁≠k₂,使得 E (k₁,m)=E (k₂,m)=c(一个 c 对应两个不同的k)。由于密钥均匀随机,得

Pr (K=k₁)=Pr (K=k₂)=1/|K|                       (4)

则:

Pr (C=c | M=m) = Pr (E (K,m)=c | M=m) = Pr (K=k₁ 或 K=k₂) = 2/|K|    (5)

根据公式(3) 的结论Pr (C=c|M=m)=Pr (C=c),得:

Pr (C=c)=2/|K|                                    (6)

但通过全概率公式计算Pr (C=c):Pr (C=c) = Σ(对所有 m’∈M)Pr (M=m’)・Pr (C=c | M=m’)

由于Pr (C=c | M=m’)=Pr (C=c)=2/|K|(根据公式3,对任意m’ 成立),则:

Pr (C=c) = (2/|K|)・Σ(对所有 m’∈M)Pr (M=m’) = 2/|K|(因 ΣPr (M=m’)=1)

看似成立,但当| M|>1 时会出现矛盾:

若| M|=2(m₁和 m₂)、|K|=2(k₁和 k₂),则 “生成 c 的密钥仅有 k₁和 k₂”。当加密 m₁时用 k₁,加密 m₂时只能用 k₂(k₁已被 m₁占用),此时 Pr (C=c | M=m₁)=1/|K|=1/2≠2/|K|,与 “Pr (C=c|M=m’)=2/|K|” 矛盾。

因此,“一个 c 对应多个 k” 的假设不成立,加密函数对固定 m 必为双射 —— 条件 2 得证。

l条件1的必要性证明:

由条件2(双射性)可知:对固定明文 m,加密函数 E (k,m) 是 “从 K 到 C 的双射”,因此 | K|=|C|(双射的两个集合大小相等)。

同时,对任意密文c∈C,由条件 2(双射性):每个明文 m∈M 都对应唯一密钥 k∈K 生成 c—— 这意味着 c 至少对应 | M | 个不同的 k(每个 m 对应一个 k)。由于 k∈K,故 | K|≥|M|—— 条件 1 得证。

l充分性证明:

对固定明文m 和密文 c,由条件 2(双射性):存在唯一密钥 k₀∈K,使得 E (k₀,m)=c。因此:

Pr (C=c | M=m) = Pr (E (K,m)=c | M=m) = Pr (K=k₀) = 1/|K|  (7)

(密钥均匀随机,Pr (K=k₀)=1/|K|)。

由全概率公式,结合公式7(对任意m’∈M,Pr (C=c | M=m’)=1/|K|):

Pr (C=c) = Σ(对所有 m’∈M)Pr (M=m’)・Pr (C=c | M=m’) = Σ(对所有 m’∈M)Pr (M=m’)・(1/|K|)

由于Σ(对所有 m’∈M)Pr (M=m’)=1(所有明文的概率和为 1),因此:

Pr(C=c) = (1/|K|)·1 = 1/|K|                             (8)

根据公式7-8,将Pr (C=c|M=m)=1/|K | 和 Pr (C=c)=1/|K | 代入贝叶斯公式:

Pr(M=m | C=c) = [Pr(C=c | M=m)·Pr(M=m)] / Pr(C=c) = [(1/|K|)·Pr(M=m)] / (1/|K|) = Pr(M=m) (9)

完全满足完善保密性的严格定义—— 条件 1 和条件 2 成立时,密码系统必为完美安全。

参考文献

[1] https://blog.csdn.net/openHiTLS/article/details/151817233

[2] Shannon, C. E. (1949). Communication Theory of Secrecy Systems. Bell System Technical Journal, 28(4), 656-715.


查看原文:《密码学:香农一次一密是绝对安全的证明过程》

评论:0   参与:  3