群上的离散对数问题:给定群G的生成元g和G中的随即元素h,计算loggh。这个问题在许多群中都被认为是困难的,称其为离散对数假设。
令GroupGen是一个多项式时间算法,其输入为安全参数K,输出为一个阶等于q的循环群G的描述,以及一个生成元g∈G,它的离散对数假设定义如下:
GroupGen的离散对数问题是困难的,如果对于所有的PPT算法A,下式是可忽略的
Pr[(G,g)←GroupGen(K);h←RG;x←A(G,g,h)],st gx=h
如果GroupGen的离散对数是困难的,且G是一个有GroupGen输出的群,则称离散对数问题在G中是困难的。
ElGamal加密算法是IND-CPA安全的,
密钥产生过程:
KenGen(K):(G,g)←GroupGen(K);x←RZq,y=gxpk=(G,g,y),sk=x
加密过程
εpk(M):r←RZqoutput (gx,yrM)
解密过程
Dsk(A,B)
离散对数问题意味着给定公开钥,没有敌手能确定秘密钥。然而,这不足以保证方案是IND-CPA安全的。实际上,可以找到一个特殊的群,其上的离散对数假设成立,但建立在其上的ElGamal加密方案却不是IND-CPA的。
例如Zp∗上的离散对数假定是成立的,但在多项式时间内可判定ZP∗是否为二次剩余。而且ZP∗中的生成元g不可能是二次剩余,否则其元素都是二次剩余。这就导致一种针对ElGamal的直接攻击:敌手产生两个等长的消息(M0,M1)使得M0是二次剩余,M1是二次非剩余。给定密文(A,B)则存在r使得A=gx,B=yrMβ,可以在多项式时间内判定yr是否为二次剩余。
例如A是二次剩余,则存在一个a使得a2=A,将a写成生成元g的幂ga,那么A=g2a,r≡2αmod(p−1)。
如果A或y是二次剩余,则x,r至少有一个是偶数,所以yr=gxr也是一个二次剩余。通过观察B,就能判断Mβ是否为二次剩余。进而可以判断出加密的是哪个消息。
因此,为了证明ElGamal加密方案的语义安全性,我们需要一个更强的假设。
判断性Diffie-Hellman(DDH)假设
判断性Diffie-Hellman(Decisional Diffie-Hellman)假设(DDH假设)指的是区分元组(g,gx,gy,gxy)和(g,gx,gy,gz)是困难的,其中g是生成元,x,y,z是随机的
设G是阶为大元素q的群,g为G的生成元,x,y,z←RZq,则以下两个分布:
- 随机四元组R=(g,gx,gy,gz)∈GA
- 四元组D=(g,gx,gy,gxy)∈GA在计算上是不可区分的。
对任一敌手A,A区分R和D的优势AdvADDH(K)=∣Pr[A(R)=1]−Pr[A(D)=1]∣是可忽略的。
在DDH假设下,ElGamal加密方案是IND-CPA安全的。