第 8 章 可证明安全性理论

35
第8第 第第第第第第第第

Upload: dee

Post on 13-Jan-2016

127 views

Category:

Documents


0 download

DESCRIPTION

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

TRANSCRIPT

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

第 8 章 可证明安全性理论

Page 2: 第 8 章   可证明安全性理论

可证明安全性 可证明安全性是指这样一种“归约”方法:

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

Page 3: 第 8 章   可证明安全性理论

8.1 可证明安全性理论的基本概念

公钥加密体制的安全性概念 数字签名体制的安全性概念 随机预言模型

Page 4: 第 8 章   可证明安全性理论

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

Page 5: 第 8 章   可证明安全性理论

( 1 )完美安全性

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

Page 6: 第 8 章   可证明安全性理论

( 2 )语义安全性

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

Page 7: 第 8 章   可证明安全性理论

( 3 )多项式安全性

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

Page 8: 第 8 章   可证明安全性理论

如果没有一个敌手能以大于一半的概率赢得以下游戏,我们就称这个加密体制具有密文不可区分性,或具有多项式安全性。这个敌手 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 是一个足够大的安全参数。

0 1

1Pr( ( , , , ) )

2A bAdv A c y m m b

1

( )AAdvp k

Page 9: 第 8 章   可证明安全性理论

三种基本的攻击模型 选择明文攻击( Chosen Plaintext Attack,

CPA ), 选择密文攻击( Chosen Ciphertext Attack,

CCA ) 适应性选择密文攻击( Adaptive Chosen C

iphertext Attack, CCA2 )。

Page 10: 第 8 章   可证明安全性理论

① 选择明文攻击

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

Page 11: 第 8 章   可证明安全性理论

② 选择密文攻击

选择密文攻击也称为午餐攻击,是一种比选择明文攻击稍强的攻击模型。在选择密文攻击中,敌手可以访问一个黑盒,这个黑盒能进行解密。在午餐时间,敌手可以选择多项式个密文来询问解密盒,解密盒把解密后的明文发送给敌手。在下午时间,敌手被告知一个目标密文,要求敌手在没有解密盒帮助的情况下解密目标密文,或者找到关于明文的有用信息。

在上面给出的多项式安全性的攻击游戏中,选择密文攻击允许敌手在寻找阶段询问解密盒,但是在猜测阶段不能询问解密盒。

Page 12: 第 8 章   可证明安全性理论

③ 适应性选择密文攻击

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

Page 13: 第 8 章   可证明安全性理论

语义安全 定义 1 如果一个公钥加密体制在适应性选

择密文攻击下是语义安全的,我们就说该体制是安全的。

Page 14: 第 8 章   可证明安全性理论

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

Page 15: 第 8 章   可证明安全性理论

引理 1 一个可展的加密体制在适应性选择密文攻击下是不安全的。 证明:假设一个加密体制是可展的,当给

定一个目标密文 cb 时,我们可以把它修改成一个相关的密文。这种相关的关系也应该存在于和 mb 。然后敌手利用解密预言机(解密盒)来获得的明文。最后敌手根据来恢复mb 。

Page 16: 第 8 章   可证明安全性理论

2.数字签名体制的安全性概念 对于数字签名体制,存在以下几种伪造类型: ( 1 )完全攻破 敌手能够产生与私钥持有者相同的签名,这

相当于恢复出了私钥。 ( 2 )选择性伪造 敌手能够伪造一个他选择的消息的签名。 ( 3 )存在性伪造

Page 17: 第 8 章   可证明安全性理论

攻击模型 ① 被动攻击 在被动攻击中,敌手被告知一个公钥,要求产生一

个选择性伪造或存在性伪造。这是一种比较弱的攻击模型。

② 积极攻击 积极攻击中最强的攻击是适应性选择消息攻击,即

敌手可以访问一个签名预言机,它能够产生合法的签名。敌手的目标是产生一个消息的签名,当然这个消息不能是已经询问过签名预言机的消息。

Page 18: 第 8 章   可证明安全性理论

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

Page 19: 第 8 章   可证明安全性理论

3.随机预言模型 显示一个密码协议安全的现代方法是可证

明安全性。可证明安全性的目的在于证明:如果一个敌手能够攻破一个密码体制的某个安全概念,那么我们就可以利用该敌手做一些认为不可能的事情。

Page 20: 第 8 章   可证明安全性理论

我们假设一个敌手(一个概率算法)能够以一个不可忽略的概率攻破 RSA的某个安全概念(比方说语义安全性)。对于一个安全参数 (安全参数用于测量密钥长度的大小,比如在RSA中,安全参数可能是模数 n的比特数 )为 k的密码体制,如果敌手成功的概率大于 1/p( k),我们就说这个敌手以一个不可忽略的概率成功,这里的 p是一个以 k为变量的多项式。

我们假设敌手 A是一个被动攻击敌手,即对于RSA加密,他不进行解密询问。我们现在希望能够构造一个新算法BA,它能够在输入一个整数 n和调用多项式次敌手 A的情况下,以一个不可忽略的概率输出 n的因子。算法 BA说明了如果存在敌手 A,就存在一个多项式时间因子分解算法,能够以一个不可忽略的概率解决因子分解问题。既然我们目前并不相信存在这样的因子分解算法,我们也可以断定这样的敌手A是不存在的。

Page 21: 第 8 章   可证明安全性理论

可证明安全的思想 可证明安全的思想就是给定一个算法 A,我们提出一个新算法 BA, BA把 A作为子程序。输入给 BA的是我们希望解决的困难问题,输入给 A的是某个密码算法。然而,如果 A是一个积极攻击敌手,即 A可以对输入的公钥进行解密预言询问或签名预言询问。算法 BA要想使用 A作为子程序,就需对 A的询问提供回答。算法 BA需要应对以下几个问题:

它的回答应该看起来是合法的。因为加密应该能够解密,签名应该能够被验证,否则,算法 A就知道它的预言机在撒谎。算法 BA就不能再确保算法 A是以一个不可忽略的概率成功。

它的回答应该与如果预言机是真正的解密 /加密预言机时 A期望的回答具有相同的概率分布。

自始至终,预言机的回答应该是一致的。 算法 BA需要在不知道私钥的情况下提供这些回答。

Page 22: 第 8 章   可证明安全性理论

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

Page 23: 第 8 章   可证明安全性理论

RSA 的安全性 引理 2 RSA 不是多项式安全的。 证明:假设敌手知道用户只加密了 m1 和 m2 中的

一个消息。敌手还知道用户的公钥,即 e 和 n 。当敌手被告知一个密文 c ,要求判断 c 对应的明文 m是 m1还是 m2 时,敌手只需要计算:

如果,则敌手知道 m = m1 。如果,则敌手知道 m = m2 。

除了以上的攻击外, RSA 在适应性选择密文攻击下也是不安全的,这主要是因为 RSA 具有同态性质。

Page 24: 第 8 章   可证明安全性理论

RSA 的安全性 定义 4 给定 m1 和 m2 的加密,如果能在

不知道 m1 或 m2 的条件下确定 m1m2 的加密结果,我们就说该加密体制具有同态性质( homomorphic property )。

根据以下方程知, RSA 具有同态性质:

Page 25: 第 8 章   可证明安全性理论

RSA 的安全性 引理 3 RSA 不是 CCA2 安全的。 证明:假设敌手想解密: 敌手首先生成一个相关的密文并询问解密

预言机。敌手得到 c 的明文 m 。然后敌手计算:

因此,敌手获得了密文 c 对应的明文 m 。

Page 26: 第 8 章   可证明安全性理论

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”。

Page 27: 第 8 章   可证明安全性理论

ElGamal 的安全性引理 5 ElGamal 加密体制是可展的。 证明:给定密文: (c1, c2)=(gk, mhk) 敌手可以在不知道 m、随机数 k、私钥 x

的情况下产生消息 2m 的合法密文: (c1, 2c2)=(gk, 2mhk)

Page 28: 第 8 章   可证明安全性理论

ElGamal 的安全性引理 6 ElGamal 加密体制不是 CCA2 安全

的。 证明:假设敌手想解密: c=(c1, c2)=(gk, mhk) 敌手首先生成一个相关的密文 c=(c1, 2c2)

并询问解密预言机。敌手得到 c 的明文 m 。然后敌手计算:

Page 29: 第 8 章   可证明安全性理论

RSA-OAEP

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

Page 30: 第 8 章   可证明安全性理论

将 CPA 体制变成 CCA2 体制 假设我们有一个在选择明文攻击下是语义安全的公钥加密体制,如 ElGamal 。

这样的体制应该是非确定性的。我们可以将加密函数写为: E(m, r) 其中, m 是需要加密的消息, r 是输入的随机数。解密函数用 D(c)表示。对

于 ElGamal 加密体制来说,我们有: E(m, r)=(gr, myr) Fujisaki 和 Okamoto 显示了如何将在选择明文攻击下是语义安全的体制转变

成在适应性选择密文攻击下是语义安全的体制。他们的结论只适用于随机预言模型。我们在这里只给出转变方法,详细的证明请参考相关文献。

我们将上述的加密函数变为: 其中 H 是 Hash 函数,解密函数变为: 我们需要检查是否有下式成立: 如果上式成立,我们恢复消息,否则,我们返回该密文是不合法的。 对于 ElGamal 体制来说,加密算法变为 这个算法的效率比原始算法要稍低一些。

Page 31: 第 8 章   可证明安全性理论

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

Page 32: 第 8 章   可证明安全性理论

分叉引理 我们首先来介绍一下分叉引理,它适用于下面类型

的数字签名算法: 为了对消息 m 签名,签名者执行如下步骤: ① 签名者产生一个承诺 。 ②签名者计算 。 ③签名者计算 ,它是关于 和 u 的“签名”。 签名算法的输出为 。 在 DSA 中, , , ,这里, r = (gk

mod p) mod q 。

11( || )u h m

2 1

1 1 2( , ( || ), )h m

1 ( )u h m 12 ( , ( )mod )r k u xr q

Page 33: 第 8 章   可证明安全性理论

在随机预言模型中,假设敌手 A 能以一个不可忽略的概率产生一个存在性伪造,即敌手 A输出。我们假设敌手 A 进行了这个关键的 Hash询问,否则,我们可以替敌手 A 进行这个询问。

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

1 2 1 2( , , , ) ( , , , )m u m u 和

Page 34: 第 8 章   可证明安全性理论

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

Page 35: 第 8 章   可证明安全性理论