1. 判定性DDH问题与G相关是困难的
\qquad 对任意的多项式时间算法 A A A,存在可忽略函数 n e g l negl negl,使得 ∣ P r [ A ( G , q , g ,
g x , g y , g z ) = 1 ] − P r [ A ( G , q , g , g x , g y , g x y ) = 1 ] ∣ ≤
n e g l ( n ) |Pr[A(G,q,g,gx,gy,g^z )=1]-Pr[A(G,q,g,gx,gy,g^{xy} )=1]|\leq
negl(n) ∣Pr[A(G,q,g,gx,gy,gz)=1]−Pr[A(G,q,g,gx,gy,gxy)=1]∣≤negl(n),则称判定性 D D H
DDH DDH问题与 G G G相关是困难的。
\qquad 有关 D D H DDH DDH问题以及其他离散对数相关的信息本证明不做叙述。
2. ElGamal加密
\qquad 设多项式时间算法 G G G,输入为 1 n 1^n 1n,输出循环群 G \mathbb{G} G,群的阶为 q q q,生成元为 g g
g。
- G e n Gen Gen:获得 ( G , q , g ) ← G ( 1 n ) (\mathbb{G},q,g)←G(1^n ) (G,q,g)←G(1n),均匀随机选择 x ← Z q x\leftarrow \mathbb{Z}_q x←Zq,计算 h = g x h=g^x h=gx。公钥是 ( G , q , g , h ) (\mathbb{G},q,g,h) (G,q,g,h),私钥是 ( G , q , g , x ) (\mathbb{G},q,g,x) (G,q,g,x)。
- E n c Enc Enc:输入公钥 ( G , q , g , h ) (\mathbb{G},q,g,h) (G,q,g,h)和消息 m ∈ G m\in G m∈G,选择随机的 y ← Z q y\leftarrow \mathbb{Z}_q y←Zq,输出密文 ⟨ g y , h y ⋅ m ⟩ \left \langle gy,hy\cdot m \right \rangle ⟨gy,hy⋅m⟩。
- D e c Dec Dec:输入私钥 ( G , q , g , x ) (\mathbb{G},q,g,x) (G,q,g,x)和密文 ⟨ c 1 , c 2 ⟩ \left \langle c_1,c_2 \right \rangle ⟨c1,c2⟩,输出 m = c 2 / c 1 x m=c_2/c_1^x m=c2/c1x。
3. ElGamal加密的CPA安全性
\qquad 如果 D D H DDH DDH问题相对于 G G G是困难的,则 E l G a m a l ElGamal ElGamal加密方案 Π
\Pi Π是 C P A CPA CPA安全的。
\qquad 修改加密方案 Π \Pi Π为 Π ′ \Pi’ Π′,用公钥 ( G , q , g , h ) (\mathbb{G},q,g,h)
(G,q,g,h)加密消息通过选择随机的 y ← Z q y\leftarrow \mathbb{Z}_q y←Zq和 z ← Z q
z\leftarrow \mathbb{Z}_q z←Zq来完成,并输出密文 ⟨ g y , g z ⋅ m ⟩ \left \langle
gy,gz\cdot m\right \rangle ⟨gy,gz⋅m⟩。
\qquad 考虑算法 D D D,目标是解决与 G G G相关的 D D H DDH DDH问题:输入 ( G , q , g , g 1 , g 2 ,
g 3 ) (\mathbb{G},q,g,g_1,g_2,g_3) (G,q,g,g1,g2,g3),
- 设 p k = ( G , q , g , g 1 ) pk=(\mathbb{G},q,g,g_1) pk=(G,q,g,g1),运行 A ( p k ) A(pk) A(pk)得到消息 m 0 , m 1 m_0,m_1 m0,m1;
- 选择随机比特 b b b,设 c 1 = g 2 c_1=g_2 c1=g2, c 2 = g 3 ⋅ m b c_2=g_3\cdot m_b c2=g3⋅mb;
- 把密文 ⟨ c 1 , c 2 ⟩ \left \langle c_1,c_2 \right \rangle ⟨c1,c2⟩给 A A A,输出 b ′ b’ b′。如果 b ′ = b b’=b b′=b,输出 1 1 1。
\qquad 分析 D D D的行为:
- D D D的输入由 G ( 1 n ) G(1^n) G(1n)来获得 ( G , q , g ) (\mathbb{G},q,g) (G,q,g),随机选择 x , y , z ← Z q x,y,z\leftarrow \mathbb{Z}q x,y,z←Zq,设 g 1 = g x g_1=g^x g1=gx, g 2 = g y g_2=g^y g2=gy, g 3 = g z g_3=g^z g3=gz。然后 D D D执行 A A A, A A A有公钥 p k = ⟨ G , q , g , g x ⟩ pk=\langle \mathbb{G},q,g,g^x\rangle pk=⟨G,q,g,gx⟩和密文 ⟨ c 1 , c 2 ⟩ = ⟨ g y , g z ⋅ m b ⟩ \langle c_1,c_2 \rangle =\langle gy,gz\cdot m_b \rangle ⟨c1,c2⟩=⟨gy,gz⋅mb⟩。这种情况下, A A A作为 D D D的子程序所见情形与实验 P u b K A , Π ′ e a v ( n ) PubK{A,\Pi’}^{eav} (n) PubKA,Π′eav(n)中相同,即 P r [ D ( G , q , g , g x , g y , g z ) = 1 ] = P r [ P u b K A , Π ′ e a v ( n ) = 1 ] = 1 2 Pr[D(\mathbb{G},q,g,gx,gy,gz)=1]=Pr[PubK_{A,\Pi’}{eav} (n)=1]=\frac{1}{2} Pr[D(G,q,g,gx,gy,gz)=1]=Pr[PubKA,Π′eav(n)=1]=21。
- D D D的输入由 G ( 1 n ) G(1^n ) G(1n)来获得 ( G , q , g ) (\mathbb{G},q,g) (G,q,g),随机选择 x , y ← Z q x,y\leftarrow \mathbb{Z}q x,y←Zq,设 g 1 = g x g_1=g^x g1=gx, g 2 = g y g_2=g^y g2=gy, g 3 = g x y g_3=g^{xy} g3=gxy。然后 D D D执行 A A A, A A A有公钥 p k = ⟨ G , q , g , g x ⟩ pk=\langle \mathbb{G},q,g,g^x \rangle pk=⟨G,q,g,gx⟩和密文 ⟨ c 1 , c 2 ⟩ = ⟨ g y , g x y ⋅ m b ⟩ \langle c_1,c_2 \rangle=\langle gy,g{xy}\cdot m_b \rangle ⟨c1,c2⟩=⟨gy,gxy⋅mb⟩。这种情况下, A A A作为 D D D的子程序所见情形与实验 P u b K A , Π e a v ( n ) PubK{A,\Pi}^{eav} (n) PubKA,Πeav(n)中相同,即 P r [ D ( G , q , g , g x , g y , g x y ) = 1 ] = P r [ P u b K A , Π e a v ( n ) = 1 ] Pr[D(\mathbb{G},q,g,gx,gy,g^{xy} )=1]=Pr[PubK_{A,\Pi}^{eav} (n)=1] Pr[D(G,q,g,gx,gy,gxy)=1]=Pr[PubKA,Πeav(n)=1]。
![归约证明](https://img-
blog.csdnimg.cn/2a47a569be2b4e52992952079055e235.png#pic_center)
\qquad 由于 D D H DDH DDH问题相对于 G G G是困难的, ∣ P r [ A ( G , q , g , g x , g y , g
z ) = 1 ] − P r [ A ( G , q , g , g x , g y , g x y ) = 1 ] ∣ ≤ n e g l ( n )
|Pr[A(\mathbb{G},q,g,gx,gy,g^z )=1]-Pr[A(\mathbb{G},q,g,gx,gy,g^{xy}
)=1]|\leq negl(n)
∣Pr[A(G,q,g,gx,gy,gz)=1]−Pr[A(G,q,g,gx,gy,gxy)=1]∣≤negl(n),因此
P r [ P u b K A , Π e a v ( n ) = 1 ] ≤ 1 2 + n e g l ( n )
Pr[PubK_{A,\Pi}^{eav} (n)=1]\leq \frac{1}{2}+negl(n)
Pr[PubKA,Πeav(n)=1]≤21+negl(n)。
4. 参考文献
乔纳森.卡茨,耶胡达.林德尔著,任伟译,现代密码学——原理与协议,国防工业出版社,2017年第一版第4次印刷.
网络安全工程师(白帽子)企业级学习路线
第一阶段:安全基础(入门)
第二阶段:Web渗透(初级网安工程师)
第三阶段:进阶部分(中级网络安全工程师)
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
学习资源分享
![](https://i-blog.csdnimg.cn/blog_migrate/27b11559cab3c01c2d03f4a390cb8827.jpeg)