您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 市场营销 > 第九章--可证明安全性理论
第8章可证明安全性理论可证明安全性(Provablesecurity)可证明安全性是指这样一种“归约”方法:首先确定密码体制的安全目标,例如,加密体制的安全目标是信息的机密性,签名体制的安全目标是签名的不可伪造性;然后根据敌手的能力构建一个形式化的安全模型,最后指出如果敌手能成功攻破密码体制,则存在一种算法在多项式时间内解决一个公认的数学困难问题。8.1可证明安全性理论的基本概念公钥加密体制的安全性概念数字签名体制的安全性概念随机预言模型1.公钥加密体制的安全性概念(1)完美安全性(perfectsecurity)(2)语义安全性(Semanticsecurity)(3)多项式安全性(polynomialsecurity)(1)完美安全性如果一个具有无限计算能力的敌手从给定的密文中不能获取明文的任何有用信息,我们就说这个加密体制具有完美安全性或信息论安全性。根据Shannon理论知道,要达到完美安全性,密钥必须和明文一样长并且相同的密钥不能使用两次。然而,在公钥密码体制中,我们假设加密密钥可以用来加密很多消息并且通常是很短的。因此,完美安全性对于公钥密码体制来说是不现实的。(2)语义安全性语义安全性与完美安全性类似,只是我们只允许敌手具有多项式有界的计算能力。从形式上说,无论敌手在多项式时间内能从密文中计算出关于明文的什么信息,他也可以在没有密文的条件下计算出这些信息。换句话说,拥有密文并不能帮助敌手找到关于明文的任何有用信息。(3)多项式安全性我们很难显示一个加密体制具有语义安全性,然而,我们却可以比较容易显示一个加密体制具有多项式安全性。多项式安全性也称为密文不可区分性。幸运的是,如果一个加密体制具有多项式安全性,那么我们可以显示该体制也具有语义安全性。因此,为了显示一个加密体制是语义安全的,我们只需要显示该体制是多项式安全的。如果没有一个敌手能以大于一半的概率赢得以下游戏,我们就称这个加密体制具有密文不可区分性,或具有多项式安全性。这个敌手A被告知某个公钥y及其相应的加密函数fy。敌手A进行以下两个阶段:寻找阶段:敌手A选择两个明文m0和m1。猜测阶段:敌手A被告知其中一个明文mb的加密结果,这里的b是保密的。敌手A的目标是以大于一半的概率猜对b的值。从这个游戏可以看出,一个具有多项式安全性的加密体制一定是一个概率性加密体制。否则,敌手A在猜测阶段就可以计算:c1=fy(m1)并测试是否有c1=cb成立。如果成立,敌手A就可以成功推断b=1,否则b=0。既然敌手A总能简单地猜测b的值,敌手A的优势定义为:如果:我们就称这个加密体制是多项式安全的,其中p(k)是一个多项式函数,k是一个足够大的安全参数。011Pr((,,,))2AbAdvAcymmb1()AAdvpk≤三种基本的攻击模型选择明文攻击(ChosenPlaintextAttack,CPA),选择密文攻击(ChosenCiphertextAttack,CCA)适应性选择密文攻击(AdaptiveChosenCiphertextAttack,CCA2)。①选择明文攻击在选择明文攻击中,敌手被告知各种各样的密文。敌手可以访问一个黑盒,这个黑盒只能执行加密,不能进行解密。既然在公钥密码体制中任何人都可以访问加密函数,即任何人都可自己产生一些明文密文对,选择明文攻击模拟了一种非常弱的攻击模型。②选择密文攻击选择密文攻击也称为午餐攻击,是一种比选择明文攻击稍强的攻击模型。在选择密文攻击中,敌手可以访问一个黑盒,这个黑盒能进行解密。在午餐时间,敌手可以选择多项式个密文来询问解密盒,解密盒把解密后的明文发送给敌手。在下午时间,敌手被告知一个目标密文,要求敌手在没有解密盒帮助的情况下解密目标密文,或者找到关于明文的有用信息。在上面给出的多项式安全性的攻击游戏中,选择密文攻击允许敌手在寻找阶段询问解密盒,但是在猜测阶段不能询问解密盒。③适应性选择密文攻击适应性选择密文攻击是一种非常强的攻击模型。除了目标密文外,敌手可以选择任何密文对解密盒进行询问。目前普遍认为,任何新提出的公钥加密算法都应该在适应性选择密文攻击下达到多项式安全性。语义安全定义1如果一个公钥加密体制在适应性选择密文攻击(adaptivechosenciphertextattacks)下是语义安全的,我们就说该体制是安全的。定义2如果一个公钥加密体制在适应性选择密文攻击下是多项式安全的,我们就说该体制是安全的。引理1一个可展(Malleability)的加密体制在适应性选择密文攻击下是不安全的。证明:假设一个加密体制是可展的,当给定一个目标密文cb时,我们可以把它修改成一个相关的密文cb*。这种相关的关系也应该存在于和mb和mb*。然后敌手利用解密预言机(解密盒)来获得cb*的明文。最后敌手根据mb*来恢复mb。2.数字签名体制的安全性概念对于数字签名体制,存在以下几种伪造类型:(1)完全攻破:敌手能够产生与私钥持有者相同的签名,这相当于恢复出了私钥。(2)选择性伪造:敌手能够伪造一个他选择的消息的签名。(3)存在性伪造:敌手能够伪造一个消息的签名,这个消息可能仅仅是一个随机比特串攻击模型①被动攻击在被动攻击中,敌手被告知一个公钥,要求产生一个选择性伪造或存在性伪造。这是一种比较弱的攻击模型。②积极攻击积极攻击中最强的攻击是适应性选择消息攻击(adaptivechosenmessagesattacks),即敌手可以访问一个签名预言机,它能够产生合法的签名。敌手的目标是产生一个消息的签名,当然这个消息不能是已经询问过签名预言机的消息。定义3如果一个数字签名体制在适应性选择消息攻击下能够抵抗存在性伪造,我们就说该体制是安全的。3.随机预言模型显示一个密码协议安全的现代方法是可证明安全性。可证明安全性的目的在于证明:如果一个敌手能够攻破一个密码体制的某个安全概念,那么我们就可以利用该敌手做一些认为不可能的事情。我们假设一个敌手(一个概率算法)能够以一个不可忽略的概率攻破RSA的某个安全概念(比方说语义安全性)。对于一个安全参数(安全参数用于测量密钥长度的大小,比如在RSA中,安全参数可能是模数n的比特数)为k的密码体制,如果敌手成功的概率大于1/p(k),我们就说这个敌手以一个不可忽略的概率成功,这里的p是一个以k为变量的多项式。我们假设敌手A是一个被动攻击敌手,即对于RSA加密,他不进行解密询问。我们现在希望能够构造一个新算法BA,它能够在输入一个整数n和调用多项式次敌手A的情况下,以一个不可忽略的概率输出n的因子。算法BA说明了如果存在敌手A,就存在一个多项式时间因子分解算法,能够以一个不可忽略的概率解决因子分解问题。既然我们目前并不相信存在这样的因子分解算法,我们也可以断定这样的敌手A是不存在的。可证明安全的思想可证明安全的思想就是给定一个算法A,我们提出一个新算法BA,BA把A作为子程序。输入给BA的是我们希望解决的困难问题,输入给A的是某个密码算法。然而,如果A是一个积极攻击敌手,即A可以对输入的公钥进行解密预言询问或签名预言询问。算法BA要想使用A作为子程序,就需对A的询问提供回答。算法BA需要应对以下几个问题:它的回答应该看起来是合法的。因为加密应该能够解密,签名应该能够被验证,否则,算法A就知道它的预言机在撒谎。算法BA就不能再确保算法A是以一个不可忽略的概率成功。它的回答应该与如果预言机是真正的解密/加密预言机时A期望的回答具有相同的概率分布。自始至终,预言机的回答应该是一致的。算法BA需要在不知道私钥的情况下提供这些回答。随机预言模型我们必须让BA在不知道私钥的情况下能够解密或者签名,但既然我们的体制是安全的,这一点意味着是不可能的。随机预言模型为了回避这个问题,我们通常使用随机预言模型。随机预言是一个理想的Hash函数。对于每一个新的询问,随机预言产生一个随机值作为回答,如果进行两次相同的询问,回答一定相同。在随机预言模型中,我们假设敌手并不使用密码算法中定义的那个Hash函数,也就是说,即使我们将随机预言换成真实的Hash函数时,敌手A也是成功的。对于A的解密预言询问和签名预言询问,算法BA是通过欺骗随机预言的回答来适合自己的需要的。8.2可证明安全的公钥密码体制RSA的安全性引理2RSA不是多项式安全的。证明:假设敌手知道用户只加密了m1和m2中的一个消息。敌手还知道用户的公钥,即e和n。当敌手被告知一个密文c,要求判断c对应的明文m是m1还是m2时,敌手只需要计算:如果,则敌手知道m=m1。否则敌手知道m=m2。除了以上的攻击外,RSA在适应性选择密文攻击下也是不安全的,这主要是因为RSA具有同态性质。1modecmnccRSA的安全性定义4给定m1和m2的加密,如果能在不知道m1或m2的条件下确定m1m2的加密结果,我们就说该加密体制具有同态性质(homomorphicproperty)。根据以下方程知,RSA具有同态性质:1212()mod(mod)(mod)modeeemmnmnmnnRSA的安全性引理3RSA不是CCA2安全的。证明:假设敌手想解密:敌手首先生成一个相关的密文并询问解密预言机。敌手得到c的明文m。然后敌手计算:因此,敌手获得了密文c对应的明文m。modecmn2ecc(2)2222222dededdmcccmmElGamal的安全性引理4如果DDH问题是困难的,那么ElGamal加密体制在选择明文攻击下是多项式安全的。证明:为了显示ElGamal是多项式安全的,我们首先假设存在一个能够攻破ElGamal多项式安全性的多项式时间算法A,然后我们给出一个使用算法A作为子程序的算法B来解决DDH问题。我们首先来回忆多项式安全性的攻击游戏:在寻找阶段,输入一个公钥,输出两个消息和一些状态信息。在猜测阶段,输入一个挑战密文、一个公钥、两个消息和一些状态信息,猜测挑战密文对应的明文是哪个消息。ElGamal的安全性ElGamal密文为:(gk,mhk)其中k是一个随机整数,h是公钥。给定gx、gy和gz,解决DDH问题的算法B执行如下步骤:①令h=gx。②(m0,m1,s)=A(寻找阶段,h)。③设置c1=gy。④从{0,1}中随机选择一个数b。⑤设置c2=mbgz。⑥b=A(猜测阶段,(c1,c2),h,m0,m1,s)。⑦如果b=b,输出“TRUE”,否则输出“FALSE”。下面解释为什么算法B解决了DDH问题。当z=xy,在猜测阶段输入给算法A的将是mb的一个合法加密。如果算法A真正能够攻破ElGamal的语义安全性,那么输出的b将是正确的,算法B将输出“TRUE”。当zxy时,在猜测阶段输入给算法A的几乎不可能是合法的密文,即不是m0或m1的加密,在猜测阶段输出的b与b将是独立的。因此,算法B将以相等的概率输出“TRUE”或“FALSE”。ElGamal的安全性引理5ElGamal加密体制是可展的。证明:给定密文:(c1,c2)=(gk,mhk)敌手可以在不知道m、随机数k、私钥x的情况下产生消息2m的合法密文:(c1,2c2)=(gk,2mhk)ElGamal的安全性引理6ElGamal加密体制不是CCA2安全的。证明:假设敌手想解密:c=(c1,c2)=(gk,mhk)敌手首先生成一个相关的密文c=(c1,2c2)并询问解密预言机。敌手得到c的明文m。然后敌手计算:21222222222xkxkxkxkccmmhgmggmmRSA-OAEP即使对于被动攻击敌手,RSA也不能提供一个语义安全的加密体制。为了使一个系统安全,我们需要在加密前对明文增加冗余信息,或者是对密文增加冗余信息。这里的填充应该是随机性的,以便产生一个非确定性加密算法。RSA-OAEP目前使用最多的填充方法是由Bellare和Rogaway提出的最优非对称加密填充(Optimi
本文标题:第九章--可证明安全性理论
链接地址:https://www.777doc.com/doc-2156798 .html