第九章 可证明安全性理论
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
定义2 如果一个公钥加密体制在适应性选 择密文攻击下是多项式安全的,我们就说 该体制是安全的。
引理1 一个可展(Malleability)的加密 体制在适应性选择密文攻击下是不安全 的。
证明:假设一个加密体制是可展的,当给 定一个目标密文cb时,我们可以把它修改成 一个相关的密文cb *。这种相关的关系也应 该存在于和mb和mb*。然后敌手利用解密预 言机(解密盒)来获得cb *的明文。最后敌 手根据mb*来恢复mb。
(2)语义安全性
语义安全性与完美安全性类似,只是我们 只允许敌手具有多项式有界的计算能力。 从形式上说,无论敌手在多项式时间内能 从密文中计算出关于明文的什么信息,他 也可以在没有密文的条件下计算出这些信 息。换句话说,拥有密文并不能帮助敌手 找到关于明文的任何有用信息。
(3)多项式安全性
我们很难显示一个加密体制具有语义安全 性,然而,我们却可以比较容易显示一个 加密体制具有多项式安全性。多项式安全 性也称为密文不可区分性。幸运的是,如 果一个加密体制具有多项式安全性,那么 我们可以显示该体制也具有语义安全性。 因此,为了显示一个加密体制是语义安全 的,我们只需要显示该体制是多项式安全 的。
我们假设一个敌手(一个概率算法)能够 以一个不可忽略的概率攻破RSA的某个安 全概念(比方说语义安全性)。对于一个 安全参数(安全参数用于测量密钥长度的大 小,比如在RSA中,安全参数可能是模数n 的比特数)为k的密码体制,如果敌手成功 的概率大于1/p(k),我们就说这个敌手 以一个不可忽略的概率成功,这里的p是一 个以k为变量的多项式。
因此,敌手获得了密文c对应的明文m。
ElGamal的安全性
引理4 如果DDH问题是困难的,那么ElGamal加密 体制在选择明文攻击下是多项式安全的。 证明:为了显示ElGamal是多项式安全的,我们首 先假设存在一个能够攻破ElGamal多项式安全性的 多项式时间算法A,然后我们给出一个使用算法A作 为子程序的算法B来解决DDH问题。
我们假设敌手A是一个被动攻击敌手,即对 于RSA加密,他不进行解密询问。我们现 在希望能够构造一个新算法BA,它能够在 输入一个整数n和调用多项式次敌手A的情 况下,以一个不可忽略的概率输出n的因子。 算法BA说明了如果存在敌手A,就存在一个 多项式时间因子分解算法,能够以一个不 可忽略的概率解决因子分解问题。既然我 们目前并不相信存在这样的因子分解算法, 我们也可以断定这样的敌手A是不存在的。
第8章 可证明安全 性理论
可证明安全性(Provable security)
可证明安全性是指这样一种“归约”方法:首 先确定密码体制的安全目标,例如,加密体制 的安全目标是信息的机密性,签名体制的安全 目标是签名的不可伪造性;然后根据敌手的能 力构建一个形式化的安全模型,最后指出如果 敌手能成功攻破密码体制,则存在一种算法在 多项式时间内解决一个公认的数学困难问题。
e e 1 e
RSA的安全性
引理3 RSA不是CCA2安全的。 证明:假设敌手想解密 c me mod n : 敌手首先生成一个相关的密文 c 2e c 并询问解密 预言机。敌手得到c的明文m。然后敌手计算:
m cd (2e c)d 2ed cd 2m m 2 2 2 2 2
从这个游戏可以看出,一个具有多项式安全性的 加密体制一定是一个概率性加密体制。否则,敌 手A在猜测阶段就可以计算: c1=fy(m1) 并测试是否有c1=cb成立。如果成立,敌手A就可 以成功推断b =1,否则b=0。既然敌手A总能简单 地猜测b的值,敌手A的优势定义为:
1 Adv A Pr( A(cb , y, m0 , m1 ) b) 2
可证明安全的思想来自可证明安全的思想就是给定一个算法A,我们提出一 个新算法BA,BA把A作为子程序。输入给BA的是我 们希望解决的困难问题,输入给A的是某个密码算法。 然而,如果A是一个积极攻击敌手,即A可以对输入 的公钥进行解密预言询问或签名预言询问。算法BA 要想使用A作为子程序,就需对A的询问提供回答。 算法BA需要应对以下几个问题: 它的回答应该看起来是合法的。因为加密应该能够 解密,签名应该能够被验证,否则,算法A就知道它 的预言机在撒谎。算法BA就不能再确保算法A是以一 个不可忽略的概率成功。 它的回答应该与如果预言机是真正的解密/加密预言 机时A期望的回答具有相同的概率分布。 自始至终,预言机的回答应该是一致的。 算法BA需要在不知道私钥的情况下提供这些回答。
如果没有一个敌手能以大于一半的概率赢得以下 游戏,我们就称这个加密体制具有密文不可区分 性,或具有多项式安全性。这个敌手A被告知某个 公钥y及其相应的加密函数fy。敌手A进行以下两个 阶段: 寻找阶段:敌手A选择两个明文m0和m1。 猜测阶段:敌手A被告知其中一个明文mb的加密结 果,这里的b是保密的。敌手A的目标是以大于一 半的概率猜对b的值。
8.1 可证明安全性理论的基本概念
公钥加密体制的安全性概念 数字签名体制的安全性概念 随机预言模型
1.公钥加密体制的安全性概念
(1)完美安全性(perfect security) (2)语义安全性(Semantic security) (3)多项式安全性(polynomial security)
定义3 如果一个数字签名体制在适应性选 择消息攻击下能够抵抗存在性伪造,我们 就说该体制是安全的。
3.随机预言模型
显示一个密码协议安全的现代方法是可证 明安全性。可证明安全性的目的在于证明: 如果一个敌手能够攻破一个密码体制的某 个安全概念,那么我们就可以利用该敌手 做一些认为不可能的事情。
① 选择明文攻击
在选择明文攻击中,敌手被告知各种各样 的密文。敌手可以访问一个黑盒,这个黑 盒只能执行加密,不能进行解密。既然在 公钥密码体制中任何人都可以访问加密函 数,即任何人都可自己产生一些明文密文 对,选择明文攻击模拟了一种非常弱的攻 击模型。
② 选择密文攻击
选择密文攻击也称为午餐攻击,是一种比选择 明文攻击稍强的攻击模型。在选择密文攻击中, 敌手可以访问一个黑盒,这个黑盒能进行解密。 在午餐时间,敌手可以选择多项式个密文来询 问解密盒,解密盒把解密后的明文发送给敌手。 在下午时间,敌手被告知一个目标密文,要求 敌手在没有解密盒帮助的情况下解密目标密文, 或者找到关于明文的有用信息。 在上面给出的多项式安全性的攻击游戏中,选 择密文攻击允许敌手在寻找阶段询问解密盒, 但是在猜测阶段不能询问解密盒。
下面解释为什么算法B解决了DDH问题。 当z = xy,在猜测阶段输入给算法A的将是mb的一 个合法加密。如果算法A真正能够攻破ElGamal的 语义安全性,那么输出的b将是正确的,算法B将 输出“TRUE”。 当zxy时,在猜测阶段输入给算法A的几乎不可能 是合法的密文,即不是m0或m1的加密,在猜测阶 段输出的b与b将是独立的。因此,算法B将以相 等的概率输出“TRUE”或“FALSE”。
③ 适应性选择密文攻击
适应性选择密文攻击是一种非常强的攻击 模型。除了目标密文外,敌手可以选择任 何密文对解密盒进行询问。目前普遍认为, 任何新提出的公钥加密算法都应该在适应 性选择密文攻击下达到多项式安全性。
语义安全
定义1 如果一个公钥加密体制在适应性选 择密文攻击(adaptive chosen ciphertext attacks)下是语义安全的,我们就说该体 制是安全的。
RSA的安全性
定义4 给定m1和m2的加密,如果能在不知 道m1或m2的条件下确定m1m2的加密结果, 我们就说该加密体制具有同态性质 (homomorphic property)。 根据以下方程知,RSA具有同态性质:
(m1m2 ) mod n (m mod n)(m2 mod n)mod n
8.2 可证明安全的公钥密码体制
RSA的安全性
引理2 RSA不是多项式安全的。 证明:假设敌手知道用户只加密了m1和m2中的一 个消息。敌手还知道用户的公钥,即e和n。当敌 手被告知一个密文c,要求判断c对应的明文m是 m1还是m2时,敌手只需要计算:
c m1e mod n
如果 c c ,则敌手知道m = m1。否则敌手知道m = m2。 除了以上的攻击外,RSA在适应性选择密文攻击 下也是不安全的,这主要是因为RSA具有同态性 质。
攻击模型
① 被动攻击 在被动攻击中,敌手被告知一个公钥,要求产 生一个选择性伪造或存在性伪造。这是一种比 较弱的攻击模型。 ② 积极攻击 积极攻击中最强的攻击是适应性选择消息攻击 (adaptive chosen messages attacks),即 敌手可以访问一个签名预言机,它能够产生合 法的签名。敌手的目标是产生一个消息的签名, 当然这个消息不能是已经询问过签名预言机的 消息。
如果: Adv ≤ 1 p (k ) 我们就称这个加密体制是多项式安全的,其中p(k) 是一个多项式函数,k是一个足够大的安全参数。
A
三种基本的攻击模型
选择明文攻击(Chosen Plaintext Attack, CPA), 选择密文攻击(Chosen Ciphertext Attack, CCA) 适应性选择密文攻击(Adaptive Chosen Ciphertext Attack, CCA2)。
我们首先来回忆多项式安全性的攻击游戏: 在寻找阶段,输入一个公钥,输出两个消息和一些状态信息。 在猜测阶段,输入一个挑战密文、一个公钥、两个消息和一 些状态信息,猜测挑战密文对应的明文是哪个消息。
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”。
(1)完美安全性
如果一个具有无限计算能力的敌手从给定的 密文中不能获取明文的任何有用信息,我们 就说这个加密体制具有完美安全性或信息论 安全性。根据Shannon理论知道,要达到完 美安全性,密钥必须和明文一样长并且相同 的密钥不能使用两次。然而,在公钥密码体 制中,我们假设加密密钥可以用来加密很多 消息并且通常是很短的。因此,完美安全性 对于公钥密码体制来说是不现实的。
ElGamal的安全性
引理5 ElGamal加密体制是可展的。 证明:给定密文: (c1, c2)=(gk, mhk) 敌手可以在不知道m、随机数k、私钥x的情 况下产生消息2m的合法密文: (c1, 2c2)=(gk, 2mhk)
随机预言模型
我们必须让BA在不知道私钥的情况下能够 解密或者签名,但既然我们的体制是安全 的,这一点意味着是不可能的。
随机预言模型
为了回避这个问题,我们通常使用随机预言模型。 随机预言是一个理想的Hash函数。对于每一个新 的询问,随机预言产生一个随机值作为回答,如 果进行两次相同的询问,回答一定相同。在随机 预言模型中,我们假设敌手并不使用密码算法中 定义的那个Hash函数,也就是说,即使我们将随 机预言换成真实的Hash函数时,敌手A也是成功 的。 对于A的解密预言询问和签名预言询问,算法BA 是通过欺骗随机预言的回答来适合自己的需要的。
2.数字签名体制的安全性概念
对于数字签名体制,存在以下几种伪造类 型: (1)完全攻破:敌手能够产生与私钥持有者 相同的签名,这相当于恢复出了私钥。 (2)选择性伪造:敌手能够伪造一个他选择 的消息的签名。 (3)存在性伪造:敌手能够伪造一个消息的 签名,这个消息可能仅仅是一个随机比特 串