熵的概念在信息理论中的应用
在上一篇中已经引出了熵的概念及其公式,在进一步介绍密码学的密码理论之前,先由熵的概念以数学的方式表达密码系统中的定义。
以下所提到的“未知信息量”,“不确定性”,“熵值”指的是同一值,即熵。
信息熵
设M = { mi , m2 ,… , mn }为明文空间,mi 出现的概率为 P(mi) ,由此定义信息熵: H ( M ) = − ∑ m i ∈ M P ( m i ) × log 2 P ( m i ) H(M)=-\sum _{m_i ∈M}P(m_i)×\log _2P(m_i) H(M)=−mi∈M∑P(mi)×log2P(mi) 表示为从明文空间M中取一份发送给接收者的不确定性的度量
密钥熵
设K = { ki , k2 ,… , kn }为明文空间,ki 出现的概率为 P(ki) ,由此定义信息熵:
H ( K ) = − ∑ k i ∈ K P ( k i ) × log 2 P ( k i ) H(K)=-\sum _{k_i ∈K}P(k_i)×\log _2P(k_i) H(K)=−ki∈K∑P(ki)×log2P(ki) 表示对密钥的不确定性的度量
条件熵(暧昧度)
密文用 C 表示,条件熵是密码学中最符合实际情况的,即在已获得某些密文的情况下,明文和密钥的不确定性的度量,明文不确定性数学表达为:
H ( M ∣ c ) = − ∑ m i ∈ M P ( m i ∣ c ) × log 2 P ( m i ∣ c ) H(M|c)=-\sum _{m_i∈M}P(m_i|c)×\log_2P(m_i|c) H(M∣c)=−mi∈M∑P(mi∣c)×log2P(mi∣c) P ( m i ∣ c ) P(m_i|c) P(mi∣c) 表示在知道密文c的情况下,是mi的概率。
密文不确定性数学表达式:
H ( K ∣ c ) = − ∑ k i ∈ K P ( k i ∣ c ) × log 2 P ( k i ∣ c ) H(K|c)=-\sum _{k_i∈K}P(k_i|c)×\log_2P(k_i|c) H(K∣c)=−ki∈K∑P(ki∣c)×log2P(ki∣c) P ( k i ∣ c ) P(k_i|c) P(ki∣c) 表示在知道密文c的情况下,是ki的概率。
理论上的完全保密性
考察的是唯密文攻击方法平均所能获得的最大信息量。
I ( M ; C ) = 0 I(M;C)=0 I(M;C)=0 则称该密码是完全保密的
M是明文空间
C是密文空间
现实意义为,在知道密文的情况下,关于M的信息量。
可参见上一篇的这张图:详细信息
与完全保密的等价的条件:
- 一个密码体制是完全保密的
- I ( M ∣ C ) = 0 ; ( 意 思 是 明 文 和 密 文 不 互 相 提 供 信 息 ) I(M|C)=0;\color {blue}(意思是明文和密文不互相提供信息) I(M∣C)=0;(意思是明文和密文不互相提供信息)
- H ( M ∣ C ) = H ( M ) ; ( 知 道 密 文 的 情 况 下 , 不 能 降 低 原 明 文 的 熵 ) H(M|C)=H(M);\color {blue}(知道密文的情况下,不能降低原明文的熵) H(M∣C)=H(M);(知道密文的情况下,不能降低原明文的熵)
- H ( C ∣ M ) = H ( C ) ; ( 知 道 明 文 的 情 况 下 , 不 能 降 低 原 密 文 的 熵 ) H(C|M)=H(C);\color {blue}(知道明文的情况下,不能降低原密文的熵) H(C∣M)=H(C);(知道明文的情况下,不能降低原密文的熵)
- ∀ a ∈ M , ∀ b ∈ C 有 P ( m = a ∣ c = b ) = P ( m = a ) ; ( 当 P ( c = b ) ≠ 0 时 ) \forall_a\in M,\forall_b\in C\;有P(m=a|c=b)=P(m=a);\color{red}(当P(c=b)\neq0时) ∀a∈M,∀b∈C有P(m=a∣c=b)=P(m=a);(当P(c=b)=0时) 意思是在已知密文b的情况下m=a的概率,与不知道的情况下 m=a的概率相同
定理:(M是明文空间,C是密文空间,K是密钥空间)
H
(
K
∣
C
)
=
H
(
M
∣
C
)
+
H
(
K
∣
M
,
C
)
;
已
知
密
文
C
的
的
条
件
下
,
密
钥
K
的
未
知
信
息
量
=
已
知
密
文
的
情
况
下
,
明
文
的
未
知
信
息
量
+
已
知
明
文
M
和
密
文
C
的
条
件
下
,
密
钥
K
的
未
知
信
息
量
H(K|C)=H(M|C)+H(K|M,C);\\ \color{blue} 已知密文C的的条件下,密钥K 的未知信息量=\\ 已知密文的情况下,明文的未知信息量+\\ 已知明文M和密文C的条件下,密钥K的未知信息量
H(K∣C)=H(M∣C)+H(K∣M,C);已知密文C的的条件下,密钥K的未知信息量=已知密文的情况下,明文的未知信息量+已知明文M和密文C的条件下,密钥K的未知信息量
根
据
实
际
要
有
,
H
(
M
∣
C
,
K
)
=
0
;
即
已
知
密
文
和
密
钥
的
条
件
下
,
其
明
文
的
不
确
定
性
必
须
为
0
;
根据实际要有,H(M|C,K)=0;\\即已知密文和密钥的条件下,其明文的不确定性必须为0;
根据实际要有,H(M∣C,K)=0;即已知密文和密钥的条件下,其明文的不确定性必须为0;
推论:
- H ( K ∣ C ) ≥ H ( M ∣ C ) H(K|C)\geq H(M|C) H(K∣C)≥H(M∣C)
- I ( M ; C ) ≥ H ( M ) − H ( K ) I(M;C)\geq H(M)-H(K) I(M;C)≥H(M)−H(K)
此式很重要,说明 H ( K ) H(K) H(K)越大, I ( M ∣ C ) I(M|C) I(M∣C)就越小,表明密文C中含有明文M的信息量也就越小。当满足了 I ( M ∣ C ) = 0 ; 的 时 候 , 称 为 该 密 码 系 统 是 完 全 保 密 的 。 I(M|C)=0;的时候,称为该密码系统是完全保密的。 I(M∣C)=0;的时候,称为该密码系统是完全保密的。也称无条件保密的。即无论截获多少密文,对明文的信息量总是0;
要使得本式成立, H ( M ) − H ( K ) 的 值 必 须 小 于 I ( M ; C ) H(M)-H(K)的值必须小于I(M;C) H(M)−H(K)的值必须小于I(M;C)的最小值0,
故而,( H ( M ) − H ( K ) H(M)-H(K) H(M)−H(K))的值只能是负数。
- 完全保密的必要条件是: H ( K ) ≥ H ( M ) ; H(K)\geq H(M); H(K)≥H(M);(密钥的不确定性(熵值)要大于明文的不确定性(熵值),即破译密钥的难度要大于破解明文的难度)
- 完全保密的充要条件:
- 将每一个明文加密成每一个密文的密钥只有一个
mi+ki=ci 知 道 明 文 m i 和 密 钥 k i 仅 能 得 到 一 个 密 文 c i \;\;\color{red}知道明文m_i和密钥k_i仅能得到一个密文c_i 知道明文mi和密钥ki仅能得到一个密文ci- 所有密钥都是等概率的
由密文C求不出密钥K的任何信息的充要条件:
形
式
化
表
达
式
:
H
(
K
∣
C
)
=
H
(
K
)
+
H
(
M
)
−
H
(
C
)
形式化表达式:H(K|C)=H(K)+H(M)-H(C)
形式化表达式:H(K∣C)=H(K)+H(M)−H(C)
直
观
涵
义
:
获
取
密
文
C
后
密
钥
K
的
未
知
信
息
量
等
于
明
文
M
与
密
文
C
的
未
知
信
息
量
减
去
从
已
知
密
文
C
中
获
得
的
信
息
量
\color{blue}直观涵义:\\获取密文C后密钥K的未知信息量等于\\明文M与密文C的未知信息量减去从已知密文C中获得的信息量
直观涵义:获取密文C后密钥K的未知信息量等于明文M与密文C的未知信息量减去从已知密文C中获得的信息量
证明:
H ( K ∣ C ) = H ( K , C ) − H ( C ) = H ( K , M ) − H ( C ) = H ( K ) + H ( M ) − H ( C ) ( 依 据 : H ( X , Y ) = H ( X ) + H ( Y ) ) H ( K , C ) = H ( K , M ) 因 为 密 钥 和 明 文 密 文 都 是 相 互 独 立 的 H(K|C)\\ =H(K,C)-H(C)\\ =H(K,M)-H(C)\\ =H(K)+H(M)-H(C)\;(依据:H(X,Y)=H(X)+H(Y))\\ H(K,C)=H(K,M) 因为密钥和明文密文都是相互独立的 H(K∣C)=H(K,C)−H(C)=H(K,M)−H(C)=H(K)+H(M)−H(C)(依据:H(X,Y)=H(X)+H(Y))H(K,C)=H(K,M)因为密钥和明文密文都是相互独立的
推
论
:
H
(
K
∣
C
)
=
H
(
K
)
等
价
于
H
(
M
)
=
H
(
C
)
推论:H(K|C)=H(K)等价于H(M)=H(C)
推论:H(K∣C)=H(K)等价于H(M)=H(C)
直
观
涵
义
:
截
获
密
文
对
求
解
密
钥
没
有
任
何
帮
助
等
价
于
明
文
包
含
的
未
知
信
息
量
=
密
文
包
含
的
未
知
信
息
量
\color{blue}直观涵义:\\截获密文对求解密钥没有任何帮助\;等价于\\明文包含的未知信息量=密文包含的未知信息量
直观涵义:截获密文对求解密钥没有任何帮助等价于明文包含的未知信息量=密文包含的未知信息量
由密文C唯一确定密钥K的充要条件:(唯一解码量,唯一解距离)
表
达
为
:
H
(
K
∣
C
)
=
0
因
此
:
H
(
K
)
+
H
(
M
)
−
H
(
C
)
=
0
表达为:H(K|C)=0\\因此:H(K)+H(M)-H(C)=0
表达为:H(K∣C)=0因此:H(K)+H(M)−H(C)=0
直
观
涵
义
:
密
文
C
的
信
息
量
达
到
了
一
定
的
数
量
,
使
得
H
(
K
)
+
H
(
M
)
=
H
(
C
)
(
密
钥
K
的
未
知
信
息
量
和
明
文
M
的
未
知
信
息
量
之
和
同
密
文
C
的
未
知
信
息
量
相
同
时
)
就
可
以
确
定
对
应
的
明
文
和
密
文
。
这
样
,
我
们
将
密
钥
唯
一
确
定
所
需
要
的
最
少
的
密
文
字
符
数
,
称
唯
一
解
码
量
或
唯
一
解
距
离
\color{blue}直观涵义:\\密文C的信息量达到了一定的数量,使得H(K)+H(M)=H(C)\\(密钥K的未知信息量和明文M的未知信息量之和同密文C的未知信息量相同时)\\就可以确定对应的明文和密文。\\这样,我们将密钥唯一确定所需要的最少的密文字符数,称\color{red}唯一解码量\;或唯一解距离
直观涵义:密文C的信息量达到了一定的数量,使得H(K)+H(M)=H(C)(密钥K的未知信息量和明文M的未知信息量之和同密文C的未知信息量相同时)就可以确定对应的明文和密文。这样,我们将密钥唯一确定所需要的最少的密文字符数,称唯一解码量或唯一解距离
理论上,当截获的密文数量大于唯一解码量的时候,原则上就可以对该密码系统进行破解。
但实际上,唯一解码量仅是一个理论值,一般破译密码系统所需要的密文量都远大于唯一解码量。