第九章可证明安全性理论ppt课件.ppt

上传人:牧羊曲112 文档编号:1432498 上传时间:2022-11-23 格式:PPT 页数:74 大小:453KB
返回 下载 相关 举报
第九章可证明安全性理论ppt课件.ppt_第1页
第1页 / 共74页
第九章可证明安全性理论ppt课件.ppt_第2页
第2页 / 共74页
第九章可证明安全性理论ppt课件.ppt_第3页
第3页 / 共74页
第九章可证明安全性理论ppt课件.ppt_第4页
第4页 / 共74页
第九章可证明安全性理论ppt课件.ppt_第5页
第5页 / 共74页
点击查看更多>>
资源描述

《第九章可证明安全性理论ppt课件.ppt》由会员分享,可在线阅读,更多相关《第九章可证明安全性理论ppt课件.ppt(74页珍藏版)》请在三一办公上搜索。

1、第8章 可证明安全性理论,可证明安全性(Provable security),可证明安全性是指这样一种“归约”方法:首先确定密码体制的安全目标,例如,加密体制的安全目标是信息的机密性,签名体制的安全目标是签名的不可伪造性;然后根据敌手的能力构建一个形式化的安全模型,最后指出如果敌手能成功攻破密码体制,则存在一种算法在多项式时间内解决一个公认的数学困难问题。,8.1 可证明安全性理论的基本概念,公钥加密体制的安全性概念数字签名体制的安全性概念 随机预言模型,1.公钥加密体制的安全性概念,(1)完美安全性(perfect security)(2)语义安全性(Semantic security)(3

2、)多项式安全性(polynomial security),(1)完美安全性,如果一个具有无限计算能力的敌手从给定的密文中不能获取明文的任何有用信息,我们就说这个加密体制具有完美安全性或信息论安全性。根据Shannon理论知道,要达到完美安全性,密钥必须和明文一样长并且相同的密钥不能使用两次。然而,在公钥密码体制中,我们假设加密密钥可以用来加密很多消息并且通常是很短的。因此,完美安全性对于公钥密码体制来说是不现实的。,(2)语义安全性,语义安全性与完美安全性类似,只是我们只允许敌手具有多项式有界的计算能力。从形式上说,无论敌手在多项式时间内能从密文中计算出关于明文的什么信息,他也可以在没有密文的

3、条件下计算出这些信息。换句话说,拥有密文并不能帮助敌手找到关于明文的任何有用信息。,(3)多项式安全性,我们很难显示一个加密体制具有语义安全性,然而,我们却可以比较容易显示一个加密体制具有多项式安全性。多项式安全性也称为密文不可区分性。幸运的是,如果一个加密体制具有多项式安全性,那么我们可以显示该体制也具有语义安全性。因此,为了显示一个加密体制是语义安全的,我们只需要显示该体制是多项式安全的。,如果没有一个敌手能以大于一半的概率赢得以下游戏,我们就称这个加密体制具有密文不可区分性,或具有多项式安全性。这个敌手A被告知某个公钥y及其相应的加密函数fy。敌手A进行以下两个阶段:寻找阶段:敌手A选择

4、两个明文m0和m1。猜测阶段:敌手A被告知其中一个明文mb的加密结果,这里的b是保密的。敌手A的目标是以大于一半的概率猜对b的值。,从这个游戏可以看出,一个具有多项式安全性的加密体制一定是一个概率性加密体制。否则,敌手A在猜测阶段就可以计算: c1=fy(m1)并测试是否有c1=cb成立。如果成立,敌手A就可以成功推断b =1,否则b=0。既然敌手A总能简单地猜测b的值,敌手A的优势定义为:如果:我们就称这个加密体制是多项式安全的,其中p(k)是一个多项式函数,k是一个足够大的安全参数。,三种基本的攻击模型,选择明文攻击(Chosen Plaintext Attack, CPA),选择密文攻击

5、(Chosen Ciphertext Attack, CCA)适应性选择密文攻击(Adaptive Chosen Ciphertext Attack, CCA2)。, 选择明文攻击,在选择明文攻击中,敌手被告知各种各样的密文。敌手可以访问一个黑盒,这个黑盒只能执行加密,不能进行解密。既然在公钥密码体制中任何人都可以访问加密函数,即任何人都可自己产生一些明文密文对,选择明文攻击模拟了一种非常弱的攻击模型。, 选择密文攻击,选择密文攻击也称为午餐攻击,是一种比选择明文攻击稍强的攻击模型。在选择密文攻击中,敌手可以访问一个黑盒,这个黑盒能进行解密。在午餐时间,敌手可以选择多项式个密文来询问解密盒,解

6、密盒把解密后的明文发送给敌手。在下午时间,敌手被告知一个目标密文,要求敌手在没有解密盒帮助的情况下解密目标密文,或者找到关于明文的有用信息。在上面给出的多项式安全性的攻击游戏中,选择密文攻击允许敌手在寻找阶段询问解密盒,但是在猜测阶段不能询问解密盒。, 适应性选择密文攻击,适应性选择密文攻击是一种非常强的攻击模型。除了目标密文外,敌手可以选择任何密文对解密盒进行询问。目前普遍认为,任何新提出的公钥加密算法都应该在适应性选择密文攻击下达到多项式安全性。,语义安全,定义1 如果一个公钥加密体制在适应性选择密文攻击(adaptive chosen ciphertext attacks)下是语义安全的

7、,我们就说该体制是安全的。,定义2 如果一个公钥加密体制在适应性选择密文攻击下是多项式安全的,我们就说该体制是安全的。,引理1 一个可展(Malleability)的加密体制在适应性选择密文攻击下是不安全的。,证明:假设一个加密体制是可展的,当给定一个目标密文cb时,我们可以把它修改成一个相关的密文cb *。这种相关的关系也应该存在于和mb和mb*。然后敌手利用解密预言机(解密盒)来获得cb *的明文。最后敌手根据mb*来恢复mb。,2数字签名体制的安全性概念,对于数字签名体制,存在以下几种伪造类型:(1)完全攻破:敌手能够产生与私钥持有者相同的签名,这相当于恢复出了私钥。(2)选择性伪造:敌

8、手能够伪造一个他选择的消息的签名。(3)存在性伪造:敌手能够伪造一个消息的签名,这个消息可能仅仅是一个随机比特串,攻击模型, 被动攻击 在被动攻击中,敌手被告知一个公钥,要求产生一个选择性伪造或存在性伪造。这是一种比较弱的攻击模型。 积极攻击 积极攻击中最强的攻击是适应性选择消息攻击(adaptive chosen messages attacks),即敌手可以访问一个签名预言机,它能够产生合法的签名。敌手的目标是产生一个消息的签名,当然这个消息不能是已经询问过签名预言机的消息。,定义3 如果一个数字签名体制在适应性选择消息攻击下能够抵抗存在性伪造,我们就说该体制是安全的。,3随机预言模型,显

9、示一个密码协议安全的现代方法是可证明安全性。可证明安全性的目的在于证明:如果一个敌手能够攻破一个密码体制的某个安全概念,那么我们就可以利用该敌手做一些认为不可能的事情。,我们假设一个敌手(一个概率算法)能够以一个不可忽略的概率攻破RSA的某个安全概念(比方说语义安全性)。对于一个安全参数(安全参数用于测量密钥长度的大小,比如在RSA中,安全参数可能是模数n的比特数)为k的密码体制,如果敌手成功的概率大于1/p(k),我们就说这个敌手以一个不可忽略的概率成功,这里的p是一个以k为变量的多项式。,我们假设敌手A是一个被动攻击敌手,即对于RSA加密,他不进行解密询问。我们现在希望能够构造一个新算法B

10、A,它能够在输入一个整数n和调用多项式次敌手A的情况下,以一个不可忽略的概率输出n的因子。算法BA说明了如果存在敌手A,就存在一个多项式时间因子分解算法,能够以一个不可忽略的概率解决因子分解问题。既然我们目前并不相信存在这样的因子分解算法,我们也可以断定这样的敌手A是不存在的。,可证明安全的思想,可证明安全的思想就是给定一个算法A,我们提出一个新算法BA,BA把A作为子程序。输入给BA的是我们希望解决的困难问题,输入给A的是某个密码算法。然而,如果A是一个积极攻击敌手,即A可以对输入的公钥进行解密预言询问或签名预言询问。算法BA要想使用A作为子程序,就需对A的询问提供回答。算法BA需要应对以下

11、几个问题:它的回答应该看起来是合法的。因为加密应该能够解密,签名应该能够被验证,否则,算法A就知道它的预言机在撒谎。算法BA就不能再确保算法A是以一个不可忽略的概率成功。它的回答应该与如果预言机是真正的解密/加密预言机时A期望的回答具有相同的概率分布。自始至终,预言机的回答应该是一致的。算法BA需要在不知道私钥的情况下提供这些回答。,随机预言模型,我们必须让BA在不知道私钥的情况下能够解密或者签名,但既然我们的体制是安全的,这一点意味着是不可能的。,随机预言模型,为了回避这个问题,我们通常使用随机预言模型。随机预言是一个理想的Hash函数。对于每一个新的询问,随机预言产生一个随机值作为回答,如

12、果进行两次相同的询问,回答一定相同。在随机预言模型中,我们假设敌手并不使用密码算法中定义的那个Hash函数,也就是说,即使我们将随机预言换成真实的Hash函数时,敌手A也是成功的。对于A的解密预言询问和签名预言询问,算法BA是通过欺骗随机预言的回答来适合自己的需要的。,8.2 可证明安全的公钥密码体制,RSA的安全性,引理2 RSA不是多项式安全的。证明:假设敌手知道用户只加密了m1和m2中的一个消息。敌手还知道用户的公钥,即e和n。当敌手被告知一个密文c,要求判断c对应的明文m是m1还是m2时,敌手只需要计算:如果 ,则敌手知道m = m1。否则敌手知道m = m2。除了以上的攻击外,RSA

13、在适应性选择密文攻击下也是不安全的,这主要是因为RSA具有同态性质。,RSA的安全性,定义4 给定m1和m2的加密,如果能在不知道m1或m2的条件下确定m1m2的加密结果,我们就说该加密体制具有同态性质(homomorphic property)。根据以下方程知,RSA具有同态性质:,RSA的安全性,引理3 RSA不是CCA2安全的。证明:假设敌手想解密 :敌手首先生成一个相关的密文 并询问解密预言机。敌手得到c的明文m。然后敌手计算:因此,敌手获得了密文c对应的明文m。,ElGamal的安全性,引理4 如果DDH问题是困难的,那么ElGamal加密体制在选择明文攻击下是多项式安全的。 证明:

14、为了显示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,

15、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的安全性,引理5 ElGamal加

16、密体制是可展的。证明:给定密文:(c1, c2)=(gk, mhk)敌手可以在不知道m、随机数k、私钥x的情况下产生消息2m的合法密文:(c1, 2c2)=(gk, 2mhk),ElGamal的安全性,引理6 ElGamal加密体制不是CCA2安全的。证明:假设敌手想解密:c=(c1, c2)=(gk, mhk)敌手首先生成一个相关的密文c=(c1, 2c2)并询问解密预言机。敌手得到c的明文m。然后敌手计算:,RSA-OAEP,即使对于被动攻击敌手,RSA也不能提供一个语义安全的加密体制。为了使一个系统安全,我们需要在加密前对明文增加冗余信息,或者是对密文增加冗余信息。这里的填充应该是随机性

17、的,以便产生一个非确定性加密算法。,RSA-OAEP,目前使用最多的填充方法是由Bellare和Rogaway提出的最优非对称加密填充(Optimized Asymmetric Encryption Padding,OAEP)方法。OAEP可以用于任何陷门单向置换函数,尤其是RSA函数。OAEP用于RSA时称为RSA-OAEP。在随机预言模型中,我们可以显示RSA-OAEP在适应性选择密文攻击下是语义安全的。,OAEP,设f是任何k比特到k比特的陷门单向置换函数。比如说,k =1024时,f可以是RSA函数c=me。设k0和k1表示两个数(比如k0, k1128)。设n =k k0 k1和两个

18、Hash函数为设m是n比特的消息,我们使用下面的函数来加密消息m。其中表示k1个0跟随着m,R是长度为k0的随机比特串,|表示连接。我们可以把OAEP看成是两轮Feistel网络,,为了解密E(m),我们可以计算,RSA-OAEP,定理1 在随机预言模型中,我们将G和H模拟成随机预言机。假设RSA问题是一个困难问题,RSA-OAEP加密方案在适应性选择密文攻击下是语义安全的。,证明:我们首先将RSA函数f写成:然后将RSA-OAEP定义为:,我们可以证明RSA问题与函数f的单向性是等价的,且从f(s, t)恢复出s与从f(s, t)恢复出(s, t)是同样困难的。接下来的任务就是如何利用攻破R

19、SA-OAEP的敌手A来构造一个能够解决RSA函数单向性的算法BA,即对于固定的RSA模数N,给定c*=f(s*, t*),要求算法BA计算出s*。,在寻找阶段,A产生两个消息m0和m1,BA选择b0,1并假设c*是mb的加密密文。在猜测阶段,BA将c*发送给A,要求A猜测c*是m0的密文还是m1的密文,即b=0还是b=1。同时,算法BA必须回答A的询问,包括Hash函数G的询问,Hash函数H的询问和解密预言询问。为了保持一致性,BA维护两个列表L1和L2。这两个列表开始都为空,L1用于跟踪A对预言机G的询问,L2用于跟踪A对预言机H的询问。下面详细解释BA是如何回答这些询问的。,G()询问

20、:对于列表L2中的任何询问,BA检查是否有下式成立:如果上式成立,我们就已经完成了对f在c*求逆的任务,我们仍然可以继续模拟G并设置:如果对于任何的上式都不成立,BA在G的值域上随机选择一个数来回答A并将该数记录到列表L1中。,H()询问:BA在H的值域上随机选择一个数来回答A并将该数记录到列表L2中。对于列表L1中的任何询问,BA检查是否有下式成立:如果上式成立,我们同样完成了对f在c*求逆的任务。,解密询问:给定一个密文c,BA查找列表L1和L2使其满足:对于一对和,如果设:那么c = f (, )且的尾部至少有k1个比特为0。如果上述情况成立,BA返回的首部的n个比特,否则BA返回该密文

21、是不合法的。如果一个按照正确方式产生的密文能够通过上述的解密预言机,我们肯定能够获得原始的明文,们需要显示上述的解密预言机能够“欺骗”敌手A。如果敌手A能够以一个不可忽略的优势攻破RSA-OAEP的语义安全性,算法BA就能够以一个不可忽略的概率对f求逆。,我们知道,BA已经假设了c*= f (s*, t*)是mb的加密密文。因此,这里应该存在一个r*满足:我们首先要显示模拟解密预言失败的概率是可以忽略的,然后显示只要敌手A能够以一个不可忽略的概率猜对b,那么s*被提交给H预言机进行询问的概率就是不可忽略的。只要s*被提交给H预言机进行了询问,我们就可以攻破f的单向性。,将CPA体制变成CCA2

22、体制,假设我们有一个在选择明文攻击下是语义安全的公钥加密体制,如ElGamal。这样的体制应该是非确定性的。我们可以将加密函数写为:E(m, r)其中,m是需要加密的消息,r是输入的随机数。解密函数用D(c)表示。对于ElGamal加密体制来说,我们有:E(m, r)=(gr, myr),将CPA体制变成CCA2体制,Fujisaki和Okamoto显示了如何将在选择明文攻击下是语义安全的体制转变成在适应性选择密文攻击下是语义安全的体制。他们的结论只适用于随机预言模型。将上述的加密函数变为:其中H是Hash函数解密函数变为:我们需要检查是否有下式成立:如果上式成立,我们恢复消息 ,否则,我们返

23、回该密文是不合法的。,于ElGamal体制来说,加密算法变为这个算法的效率比原始算法要稍低一些。,BF方案加密,对于明文m0,1n,首先随机选取一个整数r Zq*,然后计算 U=rP, V=m H2(gIDr)这里gID= (QID,Ppub),则密文C =(U, V)。随机选择一个R 0,1n, r=H3(R, m)U=rP, V=R H2(gIDr),W=m H4(R)密文C =(U, V, W),BF方案解密,为了解密一个密文C =(U, V),计算: m=V H2(SID,U)为了解密一个密文C=(U,V,W),计算R=V H2(SID,U),m = W H4(R),设r=H3(R,

24、m),测试时候有U=rP,如果成立,输出m,否则拒绝这个密文,E. Fujisaki and T. Okamoto, Secure integration of asymmetric and symmetric encryption schemes, Proc. Crypto 1999, pp. 537-554, 1999.,8.3 可证明安全的数字签名体制,分叉引理,我们首先来介绍一下分叉引理,它适用于下面类型的数字签名算法:为了对消息m签名,签名者执行如下步骤:签名者产生一个承诺 。签名者计算 。签名者计算 ,它是关于 和u的“签名”。签名算法的输出为 。在DSA中, , , ,这里,r

25、= (gk mod p) mod q。,在Schnorr签名方案中,在随机预言模型中,假设敌手A能以一个不可忽略的概率产生一个存在性伪造,即敌手A输出 。我们假设敌手A进行了 这个关键的Hash询问,否则,我们可以替敌手A进行这个询问。,算法BA使用相同的随机磁带和稍微不同的随机预言运行敌手A两次。敌手A运行多项式时间并且进行多项式次Hash询问。如果前后两次对所有的Hash询问都给予相同的回答,敌手A将输出相同的签名。然而,算法BA在前后两次对随机预言都给予相同的回答,只是对一个随机的Hash询问给予不同的回答。这个Hash询问将以一个不可忽略的概率等于这个关键的Hash询问,即算法BA将以

26、一个不可忽略的概率获得一个消息m的两个签名,这个消息m具有不同的Hash询问回答。换句话说,我们获得:,我们试图利用敌手A的两个输出解决困难问题,这就是算法BA目标。,定理2 在随机预言模型中,假设离散对数问题是一个困难问题,Schnorr签名方案在被动攻击下是安全的。,证明:设输入给算法BA的是一个我们希望解决的离散对数问题y=gx,输入给敌手A的是一个公钥y。根据分叉引理,我们可以以一个不可忽略的概率获得两个签名:其中 是第一次运行敌手A时的预言询问, 是第二次运行敌手A时的预言询问。,算法BA的目标是恢复出x。既然我们有 ,我们一定有 。所以我们有:既然 ,则A0。算法BA就能够通过下式

27、求解要求的离散对数问题。,下面显示Schnorr签名方案在积极攻击下也是安全的。,为了能够在积极攻击下提供证明,我们需要显示算法BA是如何回答算法A的签名询问的。为了做到这一点,我们利用随机预言模型。我们利用算法BA能够选择Hash函数输出的能力。,在没有私钥的情况下,算法BA给出签名的过程称为签名询问的模拟。签名询问的模拟说明了在随机预言模型中积极攻击并不比被动攻击更具有威力。任何积极攻击都可以通过模拟签名询问来转变为被动攻击。,下面给出在Schnorr签名方案中签名询问的模拟过程。我们假设模拟器保存一个列表L,该列表记录以前的随机预言询问,当输入一个消息m时,模拟器执行以下步骤:选择随机数

28、s和u计算r=gsyu。如果 ,模拟器返回到步骤。设置L=L(r|m, u),即当输入(r|m)时,Hash预言总是回答u。输出签名(u, s)。,以上过程确实生成了一个合法签名。也就是说,假设h是一个随机预言,对于算法A来说,上述的模拟与一个真实的签名算法是不可区分的。因此,我们有下面的定理。定理3 在随机预言模型中,假设离散对数问题是一个困难问题,Schnorr签名方案在积极攻击下是安全的。,RSA-PSS,RSA数字签名方案是不安全的,一个解决办法是使用称为RSA-PSS (probabilistic signature scheme)的系统。在RSA问题是困难的假设下,RSA-PSS在

29、随机预言模型中被证明是安全的。,RSA数字签名方案一样,我们生成一个模数n,一个公钥e和一个私钥d。假设安全参数为k(n是k比特的数),我们定义两个整数k0和k1并且满足:k0+k1k1然后我们定义两个Hash函数:一个扩展数据,一个压缩数据。,我们设 表示返回G(w)( )的前k0个比特的函数,设: 表示返回G(w) 的后kk0k11个比特的函数。,为了对一个消息m进行签名,签名者执行以下步骤:生成一个随机数 。计算w=H(m|r)。设置y=0|w|(G1(w)r)|G2(w)。计算s=yd mod n。消息m的签名为s。,为了验证一个签名(m, s),验证者执行以下步骤:计算y=se mod n。将y分解成:其中b的长度为1比特,w的长度为k1比特, 的长度为k0比特, 的长度为kk0k11比特。,计算r =G1(w)。当且仅当下列等式成立时,接受该签名:如果我们把G和H看成是随机预言,我们可以显示上述的签名算法是安全的。如果有一个算法能够存在性伪造一个消息的签名,我们就能构造一个新算法来解决RSA问题。,Efficient and Provably-Secure Identity-Based Signatures and Signcryption from Bilinear Maps下载地址:,密码uestc12,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号