Shannon 理论 是古典密码学与现代密码学的分水岭;它的反表,对密码学的 研究产生了巨大的影响
首先,评价密码体制安全性的不同途径,定义了几个有用的准则
-
计算安全性
如果使用最好的算法攻破一个密码体制需要至少N次操作,这里的N是个特别大的数字,我们定义这个密码体制是计算安全的 - 可证明安全性
-
无条件安全性
即使使用无穷的计算资源,也是无法被攻破的。
1、概率论基础
研究无条件安全的合适框架是概率论
- 联合概率密度和条件概率
P(a,b)=P(a/b)*P(b);
P(a,b)=P(b/a)*P(a);
- 贝叶斯定理
如果P(a)>0,P(a/b)=P(a)*P(b/a)/P(b)
2、完善保密性
假设(P,C,K,E,D)是一个特殊的密码体制,密钥K∈K只用于一次加密。假设明文空间P存在一个概率分布,因此当X∈P,X=xs时,其先验概率为:P[X=x]。同时假设(Alice和Bob)以固定的概率分布选取密钥(通常时随机选取的,等概率的)。定义一个密钥k,P[K=k]表示密钥K发生的概率。密钥是知道明文之前选取的,故可以视密钥和明文是独立的随机变量
P与K的概率分布到处C的概率分布:
把密文元素看出随机变量,用Y表示,则有:P[Y=y].对于K∈K定义: C(K)={ek(x):x∈P}
即C(K)代表密钥是K时的所有可能的密文。对于任意的y∈C,我们有:
同样可以观察到,对任意的y∈C和x∈P,可如下计算条件概率P[Y=y|X=x] (给定明文x,求密文y的概率):
利用贝叶斯定理可以计算出计算条件概率P[X=x|Y=y] (给密文y,求明文x,的概率)
一个例子:
假设P={a,b},满足P[a]=1/4,P[b]=3/4,设K={K1,K2,K3},P[K1]=1/2,P[K2]=P[K3]=1/4,设C={1,2,3,4},加密函数定义为eK1(a)=1,ek1(b)=2,ek2(a)=2,ek2(b)=3,ek3(a)=3,ek3(b)=4;
这个密码体制可以用以下加密矩阵表示:
加密体制 | a | b |
---|---|---|
K1 | 1 | 2 |
K2 | 2 | 3 |
K3 | 3 | 4 |
则在C(密文)上的概率分布:
P[1]=P[K1]P[a] =1/21/4=1/8 C=1
p[2]=p[k2]p[a]+p[k1]p[b]=7/16 C=2
P[3]=P[a]P[k3]+p[k2]p[b]=1/4; C=3
P[4]=...=3/16 C=4
计算出给定密文后,明文空间上的条件概率分布为:
P[a|1]=(1/41/2)/(1/8)=1 P[b|1]=(3/40)/(1/8)=0
p[a|2]=(1/4*1/4)/(7/16)=1/7 p[b|2]=6/7
p[a|3]=1/4 p[b|3]=3/4
p[a|4]=0 p[b|4]=1
定义:一个密码体制具有完整保密性,即如果对于任意的x∈P及y∈C,有P[x|y]=p[x]。即给定密文的明文的后验概率等于明文的后验概率;
定义:假设密码体制满足|k|=|C|=|P|,这个密码体制是完善保密的,当且仅当每个密钥被使用的概率为1/|K|,并且对于任意的x∈P及y∈C,存在唯一的密钥K,使得eK(x)=y
一次一密:
3、 熵
研究一个密钥加密多个消息的基本工具是熵,熵可以看作是消息或者不确定性的数学度量,是一个通过概率分布的函数进行计算的。
假设随机变量X在有限集合X上取值,则随机变量X的熵定义为:
如果|X|=n,并且对于所有的x∈X,P[X]=1/N,那么H(X)=log2n。同样的,对任意的随机变量X,H(X)>0。
一个例子
计算上个例子的熵:
H(P)=-1/4log2(1/4)-3/4log2(3/4)≈0.81;
H(K)=1.5 H(C)≈1.85
4、熵的性质
5、伪密钥和唯一解距离
条件熵H(K|C) 称为密钥含糊度,度量了给定密文下密钥的不确定性
伪密钥,可能但不正确的密钥
6、乘积密码体制
简单起见,以C=P的密码体制为例:这种类型的密码体制称为内包的密码体制。设S1={P,P,K1,E1,D},S2={P,P,K2,E2,D2}
具体两个相同明文空间(密文空间)的内包的密码体制。那么S1与S2的乘积是:{P,P,K1xK2,E,D}
乘积密码体制的密钥形式为K=(K1,K2),加密和解密的规则定义如下:
P[(K1,K2)]=P[K1]xP[K2] ,即K1和K2的概率分布,独立的选取K1和K2
则乘法密码的密码体制如下:
以上研究的密码体制都是幂等的
网友评论