$直到20世纪70年代$
$密码学才真正形成一门科学$
$1949年香农发表了<保密系统的通信原理>$
$香农给出的安全性定义是针对对称加密方案的$
$加密属于机密性技术$
$以后介绍完整性技术时,安全性定义则是另外一种形式$
$首先,介绍一下什么是对称加密方案,所谓对称指的是通信双方需要使用相同的密钥.$
$与之相对的是公钥密码,通信双方需要使用不同的密钥$
$因此,公钥密码也称为非对称密码$
$假设(E,D)是一个对称加密方案,其中E是加密算法,D是解密算法$
$Alice和Bob共享相同的密钥,记为k\in K,Alice用密钥k加密消息m\in M,此时m也称为明文,得到密文c\in C$
$记为c=E(k,m)$
$也就是说加密算法有两个输入,一个是要加密的明文m,另一个则是密钥k$
$Bob收到密文c后,使用密钥k解密出明文m,记为m=D(k,c)$
$K,M,C分别称为密钥空间,明文空间和密文空间.$
$(E,D)称为定义在(K,M,C)上的对称加密方案$
$为了保证解密的正确性,对于任意一个对称加密方案(E,D)都要求满足以下条件$
$即给定任意明文m\in M和任意密钥k\in K,都有m=D(k,E(k,m))$
$加解密为什么需要一个叫密钥的东西呢?注意,密钥是安全性的关键$
$举个例子,假设军队通过保密,不让敌人知道加解密算法是如何运作的,来保护军事情报$
$但是如果出了内鬼,敌人就知道加解密算法的运作方法了,这样就不安全了$
$所以引入了密钥这个概念$
$我们希望,即使攻击者知道了密码系统的全部运作细节,只要密钥没有泄露,整个系统仍是安全的$
$因此,我们在分析密码系统时,总是假设攻击者已经知道了密码系统的全部运作细节$
$但通信者选定了哪个密钥,他是不知道的$
$香农给对称加密方案下的定义称作完善保密性$
$如果\forall m_{0},m_{1}$
$这个定义说的是,对于任意两个明文m_{0}和m_{1},以及任意密文c$
$c是从m_{0}和m_{1}加密而来的概率是相等的,换句话说,给定任意一个密文c$
$每个明文被加密成c的概率都是相等的,攻击者窃听到任意一个密文后,该密文到底是加密哪个明文得来的呢?$
$既然每个明文加密后得到该密文的概率都是一样的$
$也即一丁点儿信息都没有从密文中泄露出来,那么攻击者自然不可能知道密文对应哪个明文$
$这个定义告诉我们,如果一个对称加密方案满足完善保密性$
$那么密文不会泄露明文的任何信息$
$所以,一个对称加密方案是完善保密的,它自然就是安全的$
$关于完善保密性,有几个注意事项$
$完善保密性考虑的是唯密文攻击,也即攻击者手里只有窃听到的密文$
$既然密文没有泄漏明文的任何信息,那么,即使攻击者拥有无限计算资源,他也一筹莫展$
$所以,如果一个对称加密方案满足完善保密性,唯密文攻击对它是无效的,也就是说,即使攻击者拥有无限计算资源$
$想从窃听到的一大堆密文中分析出点什么,那是白费心机$
$需要注意的是,对称加密方案满足完善保密性,只说明它在唯密文攻击下是安全的,$
$在其他类型的攻击下未必安全$
$任何信息指的是明文内容的信息,明文长度,明文是什么时候发送的等信息不包含在内$
$这些信息即使不破译密码,也可以通过其他手段获知$
$所以不在密码安全性的考虑范畴之内$
$因此,定义中附加了一个限制条件,这个类似绝对值的符号表示消息长度$
$也即m_{0}和m_{1}的长度要相等$
$有些加密方案明文长度和密文长度是相等的,如果允许密文c对应长度不相等的明文$
$那么攻击者通过观察明文长度就可以知道对应的是哪个明文$
$那样就没法体现加密方案本身的安全性了$
$上一次提到,一个加密方案具有完善保密性,即使拥有无限计算资源也拿它没办法$
$真是360度全方位无死角,牛逼地不要不要的$
$那么问题来了,这个牛逼的加密方案真的存在吗$
$香农告诉我们,这种牛逼的加密方案还真的存在,有个叫一次一密的玩意儿就满足完善保密性$
$而且超级简单,加解密只需要异或操作$
$1917年,Vernam发明了一次一密,并为此申请了专利$
$一次一密有很多种形式,这里只介绍比特串形式,明文,密文和密钥都是长度相等的比特串$
$因为,任何消息和数字都可以表示成比特串形式$
$注意,密钥必须是随机的,加密时,明文和密钥逐比特异或即得密文$
$解密时,密文和密钥逐比特异或即得明文$
$就这么简单$
$把一次一密正式地写出来是这样的,假设M明文空间,C密文空间,K密钥空间都是长度为n的比特串$
$对于空间中的任意明文m和密钥k,加密就是m和k逐比特异或,所得即为密文c$
$解密就是k和c逐比特异或,所得即为恢复出的明文m$
$要想知道为什么一次一密具有完善保密性,首先让我们回顾一下完善保密性的定义$
$该定义告诉我们,如果一次一密是完善保密的,对于任何一个密文,明文空间中所有明文被加密成该密文的概率都是一样的$