1 / 35

第 8 章 可证明安全性理论

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

dee
Download Presentation

第 8 章 可证明安全性理论

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第8章 可证明安全性理论

  2. 可证明安全性 • 可证明安全性是指这样一种“归约”方法:首先确定密码体制的安全目标,例如,加密体制的安全目标是信息的机密性,签名体制的安全目标是签名的不可伪造性;然后根据敌手的能力构建一个形式化的安全模型,最后指出如果敌手能成功攻破密码体制,则存在一种算法在多项式时间内解决一个公认的数学困难问题。

  3. 8.1 可证明安全性理论的基本概念 • 公钥加密体制的安全性概念 • 数字签名体制的安全性概念 • 随机预言模型

  4. 1.公钥加密体制的安全性概念 • (1)完美安全性 • (2)语义安全性 • (3)多项式安全性

  5. (1)完美安全性 • 如果一个具有无限计算能力的敌手从给定的密文中不能获取明文的任何有用信息,我们就说这个加密体制具有完美安全性或信息论安全性。根据Shannon理论知道,要达到完美安全性,密钥必须和明文一样长并且相同的密钥不能使用两次。然而,在公钥密码体制中,我们假设加密密钥可以用来加密很多消息并且通常是很短的。因此,完美安全性对于公钥密码体制来说是不现实的。

  6. (2)语义安全性 • 语义安全性与完美安全性类似,只是我们只允许敌手具有多项式有界的计算能力。从形式上说,无论敌手在多项式时间内能从密文中计算出关于明文的什么信息,他也可以在没有密文的条件下计算出这些信息。换句话说,拥有密文并不能帮助敌手找到关于明文的任何有用信息。

  7. (3)多项式安全性 • 我们很难显示一个加密体制具有语义安全性,然而,我们却可以比较容易显示一个加密体制具有多项式安全性。多项式安全性也称为密文不可区分性。幸运的是,如果一个加密体制具有多项式安全性,那么我们可以显示该体制也具有语义安全性。因此,为了显示一个加密体制是语义安全的,我们只需要显示该体制是多项式安全的。

  8. 如果没有一个敌手能以大于一半的概率赢得以下游戏,我们就称这个加密体制具有密文不可区分性,或具有多项式安全性。这个敌手A被告知某个公钥y及其相应的加密函数fy。敌手A进行以下两个阶段:如果没有一个敌手能以大于一半的概率赢得以下游戏,我们就称这个加密体制具有密文不可区分性,或具有多项式安全性。这个敌手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是一个足够大的安全参数。

  9. 三种基本的攻击模型 • 选择明文攻击(Chosen Plaintext Attack, CPA), • 选择密文攻击(Chosen Ciphertext Attack, CCA) • 适应性选择密文攻击(Adaptive Chosen Ciphertext Attack, CCA2)。

  10. ① 选择明文攻击 • 在选择明文攻击中,敌手被告知各种各样的密文。敌手可以访问一个黑盒,这个黑盒只能执行加密,不能进行解密。既然在公钥密码体制中任何人都可以访问加密函数,即任何人都可自己产生一些明文密文对,选择明文攻击模拟了一种非常弱的攻击模型。

  11. ② 选择密文攻击 • 选择密文攻击也称为午餐攻击,是一种比选择明文攻击稍强的攻击模型。在选择密文攻击中,敌手可以访问一个黑盒,这个黑盒能进行解密。在午餐时间,敌手可以选择多项式个密文来询问解密盒,解密盒把解密后的明文发送给敌手。在下午时间,敌手被告知一个目标密文,要求敌手在没有解密盒帮助的情况下解密目标密文,或者找到关于明文的有用信息。 • 在上面给出的多项式安全性的攻击游戏中,选择密文攻击允许敌手在寻找阶段询问解密盒,但是在猜测阶段不能询问解密盒。

  12. ③ 适应性选择密文攻击 • 适应性选择密文攻击是一种非常强的攻击模型。除了目标密文外,敌手可以选择任何密文对解密盒进行询问。目前普遍认为,任何新提出的公钥加密算法都应该在适应性选择密文攻击下达到多项式安全性。

  13. 语义安全 • 定义1如果一个公钥加密体制在适应性选择密文攻击下是语义安全的,我们就说该体制是安全的。

  14. 定义2如果一个公钥加密体制在适应性选择密文攻击下是多项式安全的,我们就说该体制是安全的。定义2如果一个公钥加密体制在适应性选择密文攻击下是多项式安全的,我们就说该体制是安全的。

  15. 引理1 一个可展的加密体制在适应性选择密文攻击下是不安全的。 • 证明:假设一个加密体制是可展的,当给定一个目标密文cb时,我们可以把它修改成一个相关的密文。这种相关的关系也应该存在于和mb。然后敌手利用解密预言机(解密盒)来获得的明文。最后敌手根据来恢复mb。

  16. 2.数字签名体制的安全性概念 • 对于数字签名体制,存在以下几种伪造类型: • (1)完全攻破 • 敌手能够产生与私钥持有者相同的签名,这相当于恢复出了私钥。 • (2)选择性伪造 • 敌手能够伪造一个他选择的消息的签名。 • (3)存在性伪造

  17. 攻击模型 • ① 被动攻击 在被动攻击中,敌手被告知一个公钥,要求产生一个选择性伪造或存在性伪造。这是一种比较弱的攻击模型。 • ② 积极攻击 积极攻击中最强的攻击是适应性选择消息攻击,即敌手可以访问一个签名预言机,它能够产生合法的签名。敌手的目标是产生一个消息的签名,当然这个消息不能是已经询问过签名预言机的消息。

  18. 定义3如果一个数字签名体制在适应性选择消息攻击下能够抵抗存在性伪造,我们就说该体制是安全的。定义3如果一个数字签名体制在适应性选择消息攻击下能够抵抗存在性伪造,我们就说该体制是安全的。

  19. 3.随机预言模型 • 显示一个密码协议安全的现代方法是可证明安全性。可证明安全性的目的在于证明:如果一个敌手能够攻破一个密码体制的某个安全概念,那么我们就可以利用该敌手做一些认为不可能的事情。

  20. 我们假设一个敌手(一个概率算法)能够以一个不可忽略的概率攻破RSA的某个安全概念(比方说语义安全性)。对于一个安全参数(安全参数用于测量密钥长度的大小,比如在RSA中,安全参数可能是模数n的比特数)为k的密码体制,如果敌手成功的概率大于1/p(k),我们就说这个敌手以一个不可忽略的概率成功,这里的p是一个以k为变量的多项式。我们假设一个敌手(一个概率算法)能够以一个不可忽略的概率攻破RSA的某个安全概念(比方说语义安全性)。对于一个安全参数(安全参数用于测量密钥长度的大小,比如在RSA中,安全参数可能是模数n的比特数)为k的密码体制,如果敌手成功的概率大于1/p(k),我们就说这个敌手以一个不可忽略的概率成功,这里的p是一个以k为变量的多项式。 • 我们假设敌手A是一个被动攻击敌手,即对于RSA加密,他不进行解密询问。我们现在希望能够构造一个新算法BA,它能够在输入一个整数n和调用多项式次敌手A的情况下,以一个不可忽略的概率输出n的因子。算法BA说明了如果存在敌手A,就存在一个多项式时间因子分解算法,能够以一个不可忽略的概率解决因子分解问题。既然我们目前并不相信存在这样的因子分解算法,我们也可以断定这样的敌手A是不存在的。

  21. 可证明安全的思想 • 可证明安全的思想就是给定一个算法A,我们提出一个新算法BA,BA把A作为子程序。输入给BA的是我们希望解决的困难问题,输入给A的是某个密码算法。然而,如果A是一个积极攻击敌手,即A可以对输入的公钥进行解密预言询问或签名预言询问。算法BA要想使用A作为子程序,就需对A的询问提供回答。算法BA需要应对以下几个问题: • 它的回答应该看起来是合法的。因为加密应该能够解密,签名应该能够被验证,否则,算法A就知道它的预言机在撒谎。算法BA就不能再确保算法A是以一个不可忽略的概率成功。 • 它的回答应该与如果预言机是真正的解密/加密预言机时A期望的回答具有相同的概率分布。 • 自始至终,预言机的回答应该是一致的。 • 算法BA需要在不知道私钥的情况下提供这些回答。

  22. 8.2 可证明安全的公钥密码体制

  23. RSA的安全性 • 引理2 RSA不是多项式安全的。 • 证明:假设敌手知道用户只加密了m1和m2中的一个消息。敌手还知道用户的公钥,即e和n。当敌手被告知一个密文c,要求判断c对应的明文m是m1还是m2时,敌手只需要计算: • 如果,则敌手知道m = m1。如果,则敌手知道m = m2。 • 除了以上的攻击外,RSA在适应性选择密文攻击下也是不安全的,这主要是因为RSA具有同态性质。

  24. RSA的安全性 • 定义4给定m1和m2的加密,如果能在不知道m1或m2的条件下确定m1m2的加密结果,我们就说该加密体制具有同态性质(homomorphic property)。 • 根据以下方程知,RSA具有同态性质:

  25. RSA的安全性 • 引理3 RSA不是CCA2安全的。 • 证明:假设敌手想解密: • 敌手首先生成一个相关的密文并询问解密预言机。敌手得到c的明文m。然后敌手计算: • 因此,敌手获得了密文c对应的明文m。

  26. ElGamal的安全性 • 引理4 如果DDH问题是困难的,那么ElGamal加密体制在选择明文攻击下是多项式安全的。 证明:为了显示ElGamal是多项式安全的,我们首先假设存在一个能够攻破ElGamal多项式安全性的多项式时间算法A,然后我们给出一个使用算法A作为子程序的算法B来解决DDH问题。 我们首先来回忆多项式安全性的攻击游戏: 在寻找阶段,输入一个公钥,输出两个消息和一些状态信息。 在猜测阶段,输入一个挑战密文、一个公钥、两个消息和一些状态信息,猜测挑战密文对应的明文是哪个消息。 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”。

  27. ElGamal的安全性 • 引理5 ElGamal加密体制是可展的。 • 证明:给定密文: • (c1, c2)=(gk, mhk) • 敌手可以在不知道m、随机数k、私钥x的情况下产生消息2m的合法密文: • (c1, 2c2)=(gk, 2mhk)

  28. ElGamal的安全性 • 引理6 ElGamal加密体制不是CCA2安全的。 • 证明:假设敌手想解密: • c=(c1, c2)=(gk, mhk) • 敌手首先生成一个相关的密文c=(c1, 2c2)并询问解密预言机。敌手得到c的明文m。然后敌手计算:

  29. RSA-OAEP • 定理1 在随机预言模型中,我们将G和H模拟成随机预言机。假设RSA问题是一个困难问题,RSA-OAEP加密方案在适应性选择密文攻击下是语义安全的。

  30. 将CPA体制变成CCA2体制 • 假设我们有一个在选择明文攻击下是语义安全的公钥加密体制,如ElGamal。这样的体制应该是非确定性的。我们可以将加密函数写为: • E(m, r) • 其中,m是需要加密的消息,r是输入的随机数。解密函数用D(c)表示。对于ElGamal加密体制来说,我们有: • E(m, r)=(gr, myr) • Fujisaki和Okamoto显示了如何将在选择明文攻击下是语义安全的体制转变成在适应性选择密文攻击下是语义安全的体制。他们的结论只适用于随机预言模型。我们在这里只给出转变方法,详细的证明请参考相关文献。 • 我们将上述的加密函数变为: • 其中H是Hash函数,解密函数变为: • 我们需要检查是否有下式成立: • 如果上式成立,我们恢复消息,否则,我们返回该密文是不合法的。 • 对于ElGamal体制来说,加密算法变为 • 这个算法的效率比原始算法要稍低一些。

  31. 8.3 可证明安全的数字签名体制

  32. 分叉引理 • 我们首先来介绍一下分叉引理,它适用于下面类型的数字签名算法: • 为了对消息m签名,签名者执行如下步骤: • ①签名者产生一个承诺 。 • ②签名者计算 。 • ③签名者计算 ,它是关于 和u的“签名”。 • 签名算法的输出为 。 • 在DSA中, , , ,这里,r = (gk mod p) mod q。

  33. 在随机预言模型中,假设敌手A能以一个不可忽略的概率产生一个存在性伪造,即敌手A输出。我们假设敌手A进行了这个关键的Hash询问,否则,我们可以替敌手A进行这个询问。在随机预言模型中,假设敌手A能以一个不可忽略的概率产生一个存在性伪造,即敌手A输出。我们假设敌手A进行了这个关键的Hash询问,否则,我们可以替敌手A进行这个询问。 • 算法BA使用相同的随机磁带和稍微不同的随机预言运行敌手A两次。敌手A运行多项式时间并且进行多项式次Hash询问。如果前后两次对所有的Hash询问都给予相同的回答,敌手A将输出相同的签名。然而,算法BA在前后两次对随机预言都给予相同的回答,只是对一个随机的Hash询问给予不同的回答。这个Hash询问将以一个不可忽略的概率等于这个关键的Hash询问,即算法BA将以一个不可忽略的概率获得一个消息m的两个签名,这个消息m具有不同的Hash询问回答。换句话说,我们获得:

  34. 定理2 在随机预言模型中,假设离散对数问题是一个困难问题,Schnorr签名方案在被动攻击下是安全的。

More Related