密码学归约证明——ElGamal加密方案的CPA安全性

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次印刷.

网络安全工程师(白帽子)企业级学习路线

第一阶段:安全基础(入门)

img

第二阶段:Web渗透(初级网安工程师)

img

第三阶段:进阶部分(中级网络安全工程师)

img

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

学习资源分享

  • 23
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值