完善保密性
评价密码体制的安全性分为三种:计算安全性、可证明安全性(完善保密性)和无条件安全
不得不提的就是大神香农对密码学的贡献:
密码体制的安全性
计算安全性
从计算量上衡量密码体系的安全性
可证明安全性
常用规约的方法证明多定义的安全性
无条件安全
即使提供无限的计算资源,也无法被攻破
完善保密性(Perfect Secrecy)
提出
- 在完善的密码体制下,分析者不能通过观察密文得到明文(必要条件)
- 单表代换密码不完善的原因是在于使用同一个密钥得到的密文和明文具有相同的概率分布特征(重合指数)
假设
- 在一个密码体制(P,C,K,E,D)中,一个特定的密钥\(k\in K\)只用于一次加密
- 明文空间存在一个概率分布,明文元素定一个随机变量,对于\(x\in P\),\(Pr[x]\)表示明文\(x\)发生的先验概率
- 以某种固定的概率分布选择密钥,通常随机等概选取,对\(k\in K\),\(Pr[k]\)表示密钥\(k\)发生的概率
- 密钥和明文是统计独立的随机变量
定义
一个密码体制具有完善保密性,如果对于任意的\(x\in P\)和\(y\in C\),都有\(Pr[x|y]=Pr[x]\),即明文\(x\)的后验概率等于明文\(x\)的先验概率
含义
- 明文\(x\)对应的密文\(y\)具有统计独立关系
- 明密文之间的互信息为0,即\(I(x;y)=0\)
互信息:指变量间相互依赖性的量度,度量两个事件集合之间的相关性(mutual dependence),\(I(X; Y) = 0\),表示两个变量独立
- 攻击者分析\(y\)的统计规律无法推导出\(x\)
具体操作
- 获取到明文分布,就能得到每个明文的元素的先验概率\(Pr[X=x]\)
- 计算所有的\(Pr[X=x|Y=y]\)的条件概率
- 如果两者相等则可证明具有完善保密性
问题是:如何计算\(Pr[X=x|Y=y]\)?
利用Bayes公式:
Pr[Y=y]的计算
- 密文的值由明文和密钥决定,因此\(Pr[Y=y]\)由\(Pr[X=x]\)和\(Pr[K=k]\)推导
- 要分析所有导致\(Y=y\)的明文和密钥组合情况,并根据概率关系计算出\(Pr[Y=y]\)
- 以移位密码为例,若密文为\(E\),则会导致密文为\(E\)的\(X\)和\(K\)取值如下表:
- \(Pr[Y=E]=Pr[X=a]Pr[K=4]+Pr[X=b]Pr[K=3]+...+Pr[X=z]Pr[K=5]\)
- 若密钥的取值是等概的,即\(Pr[k]=1/26\),则有\(Pr[Y=E]=(Pr[X=a]+Pr[X=b]+...+Pr[X=z])/26=1/26\)
- 推广到一般:
其中,\(C(k)\)表示密钥为\(k\)时所有可能的密文。
Pr[Y=y|X=x]的计算
-
当明文为\(x\)时,密文为\(y\)的概率
-
若给定\(x\)和\(y\)只能确定唯一的\(k\),则有\(Pr[Y=y|X=x]=Pr[K=k]\)
如移位密码,若\(X=a,Y=D\),则可确定唯一的\(K=3\),即\(Pr[Y=D|X=a]=Pr[K=3]=1/26\) -
\(d_{k1}(y)=x\)且\(d_{k2}(y)=x\)能否确定\(k1=k2\)?
放射密码
Playfair密码
例如:Playfair密码
所有能满足\(X=x\)且\(Y=y\)的密钥\(k\)的概率之和,即为:
Pr[X=x|Y=y]的计算
举例
计算Pr[Y=y]
计算Pr[Y=y|X=x]和Pr[X=x|Y=y]
结果
定理
定理1
若移位密码的26个密钥以相同的概率随机使用,则对于任意的明文概率分布,移位密码具有完善的保密性
- 完善保密性的条件为\(Pr[x|y]=Pr[x]\),等价于\(Pr[y|x]=Pr[y]\)
- 可限定,对于任意的\(y\in C\) ,\(Pr[y]>0\)
- \(|K|>|C|>|P|\)
定理2
对于密码体制(P,C,K,E,D),满足\(|K|=|C|=|P|\),这个密码体制是完善保密的,当且仅当每个密钥被使用的概率都是\(1/|K|\),并且对于任意的\(x\in P\)和\(y\in C\),存在唯一的密钥\(k\),使得\(E_k(x)=y\)
一次一密的密码体制
1912年由GV提出,一直被认为是无法破解的(无法证明),直到用"完善保密性"可以证明该算法的安全性。
其中e表示加密,d表示解密