ElGamal密码及其安全性证明

ElGamal 在 DDH下的 IND-CPA 安全性

有关DDH和ElGamal

Diffie-Hellman Protocol

有限循环群 G \mathbb{G} G ( e . g G = ( Z p ) ∗ ) \left(e.g\quad G=\left(Z_{p}\right)^{*}\right) (e.gG=(Zp)),其阶数为 n n n

G G G中取生成元 g g g: < g > = { 1 , g , g 2 , g 3 , … , g n − 1 } =\left\{1, \mathrm{g}, \mathrm{g}^{2}, \mathrm{g}^{3}, \ldots, \mathrm{g}^{\mathrm{n}-1}\right\} <g>={ 1,g,g2,g3,,gn1},那么Diffie-Hellman Protocol如下图所示:

ElGamal密码及其安全性证明_第1张图片

通过图述方式,Alice和Bob可以共享密钥 k A B k_{AB} kAB

ElGamal体制

ElGamal是基于Diffie-Hellman Protocal的公钥加密方案。其同样基于有限循环群 G \mathbb{G} G和群中一固定的生成元 g g g,那么ElGamal可由下图描述:

ElGamal密码及其安全性证明_第2张图片

(个人认为这个图比我在很多地方看到的文字叙述更容易理解。)

其中Enc,Dec是认证加密系统的加密和解密算法(比如对称加密方法),Gen是密钥生成算法。在实际应用时,Gen一般为一个Hashing Function(哈希函数),即 k ← H a s h ( g b , g a b ) k←Hash(g^b,g^{ab}) kHash(gb,gab)

Compute Diffie-Hellman Assumption

在上图,pk为我们选择的公钥,而其实你会发现 g a g^a ga. g b g^b gb都是明文形式给出的。基于 g , g a , g b g, g^a,g^b g,gagb,得到 g a b g^{ab} gab是计算困难的, 这就是Compute Diffie-Hellman Assumption(CDH)。

Decision Diffie-Hellman Assumption

考虑阶数为 q q q的有限循环群 G \mathbb{G} G和群中一固定的生成元 g g g,已知 g a g^a ga, g b g^b gb a , b ∈ Z q a, b \in \mathbb{Z}_{q} a,bZq, 独立随机选取),若DDH Assumption成立,那么 g a b g^{ab} gab应与 G \mathbb{G} G中的随机元素不可区分。

如果DDH在群 G \mathbb{G} G中是困难的,那么对于所有概率多项式时间算法 A \mathcal{A} A都应存在可忽略的函数 n e g l negl negl,其满足:
∣ Pr ⁡ [ A ( G , q , g , g a , g b , g c ) = 1 ] − Pr ⁡ [ A ( G , q , g , g a , g b , g a b ) = 1 ] ∣ ≤ negl ⁡ ( n ) \left|\operatorname{Pr}\left[\mathcal{A}\left(\mathbb{G}, q, g, g^{a}, g^{b}, g^{c}\right)=1\right]-\operatorname{Pr}\left[\mathcal{A}\left(\mathbb{G}, q, g, g^{a}, g^{b}, g^{ab}\right)=1\right]\right| \leq \operatorname{negl}(n) Pr[A(G,q,g,ga,gb,gc)=1]Pr[A(G,q,g,ga,gb,gab)=1]negl(n)
其中 a , b , c a,b,c a,b,c是在 Z q \mathbb{Z}_{q} Zq中随机选取的。可以看出,DDH是强于CDH的假设。

ElGamal在DDH下的CPA安全性证明

由于ElGamal是一种公共密钥加密方案,因此,如果它对单个查询是安全的,则它对 q q q个查询也是安全的。因此,我们可以假设对手A恰好进行了一次查询。

我们假设攻击者攻击ElGamal时具有优势 A d v A Adv\mathcal{A} AdvA

构建攻击实验D如下:

Require G , q , g , g a , g b , g z \mathbb{G}, q, g, g^{a}, g^{b}, g^{z} G,q,g,ga,gb,gz,Challenger, Adversary A \mathcal{A} A,El Gamal scheme Π \Pi Π

  1. 挑战者生成公钥 p k = ⟨ G , q , g , g a ⟩ p k=\left\langle\mathbb{G}, q, g,g^{a}\right\rangle pk=G,q,g,ga,发送给攻击者 A \mathcal{A} A
  2. 攻击者选择希望被加密的明文 m 0 , m 1 ∈ G m_{0}, m_{1} \in \mathbb{G} m0,m1G
  3. 挑战者随机生成 b b b,向攻击者 A \mathcal{A} A发送 g b g^{b} gb以及挑战密文 E n c ( m b , g z ) ( b = 0 或 b = 1 ) Enc(m_b, g^{z})\quad(b=0或b=1) Enc(mb,gz)(b=0b=1)
  4. 攻击者 A \mathcal{A} A判断密文是由哪条明文加密的,如果攻击者认为 b ′ = b b'=b b=b则输出 b ′ = 1 b'=1 b=1,反之输出0。

z = r a n d z=rand z=rand时,由于其是均匀随机选择的,所以 A \mathcal{A} A以1/2的概率输出1,即:
Pr ⁡ [ D ( G , q , g , g a , g b , g z ) = 1 ] = Pr ⁡ [ Pub ⁡ K A , Π eav ⁡ ( n ) = 1 ] = 1 2 \operatorname{Pr}\left[D\left(\mathbb{G}, q, g, g^{a}, g^{b}, g^{z}\right)=1\right]=\operatorname{Pr}\left[\operatorname{Pub} K_{\mathcal{A}, \Pi}^{\operatorname{eav}}(n)=1\right]=\frac{1}{2} Pr[D(G,q,g,ga,gb,gz)=1]=Pr[PubKA,Πeav(n)=1]=21
z = a b z=ab z=ab时,此时为IND-CPA实验。
ElGamal密码及其安全性证明_第3张图片
由于 x , y x,y x,y是随机选择的,那么攻击者在实验中具有优势 A d v A Adv\mathcal{A} AdvA(假设):
Pr ⁡ [ D ( G , q , g , g a , g b , g a b ) = 1 ] = Pr ⁡ [ Pub ⁡ K A , Π eav ⁡ ( n ) = 1 ] = 1 2 + A d v A \operatorname{Pr}\left[D\left(\mathbb{G}, q, g, g^{a}, g^{b}, g^{ab}\right)=1\right]=\operatorname{Pr}\left[\operatorname{Pub} K_{\mathcal{A}, \Pi}^{\operatorname{eav}}(n)=1\right]=\frac{1}{2}+Adv\mathcal{A} Pr[D(G,q,g,ga,gb,gab)=1]=Pr[PubKA,Πeav(n)=1]=21+AdvA
由于DDH在群 G \mathbb{G} G中是困难的,因此有:
∣ Pr ⁡ [ A ( G , q , g , g a , g b , g z ) = 1 ] − Pr ⁡ [ A ( G , q , g , g a , g b , g a b ) = 1 ] ∣ ≤ negl ⁡ ( n ) \left|\operatorname{Pr}\left[\mathcal{A}\left(\mathbb{G}, q, g, g^{a}, g^{b}, g^{z}\right)=1\right]-\operatorname{Pr}\left[\mathcal{A}\left(\mathbb{G}, q, g, g^{a}, g^{b}, g^{ab}\right)=1\right]\right| \leq \operatorname{negl}(n) Pr[A(G,q,g,ga,gb,gz)=1]Pr[A(G,q,g,ga,gb,gab)=1]negl(n)
也即
A d v A ≤ negl ⁡ ( n ) Adv\mathcal{A} \leq \operatorname{negl}(n) AdvAnegl(n)
从而我们证明了:如果 DDH 问题是困难的, ElGamal加密方案在IND-CPA 安全模型下是安全的。

关于ElGamal、CDH、DDH

对于ElGamal的安全性分析有两种:一种是基于Random Oracle模型,使用了CDH假设;另一种,没有Random Oracle模型,但是使用更强的DDH假设。

Random Oracle

ElGamal密码及其安全性证明_第4张图片由此:如果DDH假设在G中为假,则假设CDH在G中成立,该方案仍然是安全的,但限制在在较弱的Random Oracle语义安全(Semantic Secure)模型中。事实上,我们拥有其它避开RandomOracle的方法:可以通过强于CDH,但弱于DDH的hash Diffie-Hellman (HDH)假设,来实现IND-CPA安全。

Further Study

更高的安全性:从CPA到CCA

安全目标

  • 单向性(OW)安全: 由密文不能恢复相应的明文
  • 不可区分性(IND)安全: 对已知给定的的两个明文,加密者随机一致的选择其中一个进行加密,攻击者无法从密文中知道是对哪个明文的加密。
  • 非延展性(NM)安全: 攻止者无法构造与已给密文相关的新密文。
  • NM > IND > OW

攻击模式

  • 选择明文(CPA)攻击:攻击者可以先适应性选择明文, 获得相应的密文
  • 非适应性选择密文(CCA1)攻击:攻击者除了可以适应性选择明文攻赤外,在给定Challenge密文前,还可以选择密文获得相应的解密。
  • 适应性选择密文(CCA2)攻击:攻止者的唯一限制就是不可以直接用Challenge密文获得相应的明文,即还可以在给定Challenge密文,选择密文获得相应的解密。

研究进展

2001,Abdalla, Bellare, Rogway.提出的DHIES,将ElGamal加密转化为IND-CCA2,其效率非常高,不需要Random Oracle,其安全性基于 Oracle Diffie-Hellman假设。

ElGamal密码及其安全性证明_第5张图片
DHIES Conference Paper

你可能感兴趣的:(密码学,安全)