1.5 Cramer-Shoup公钥加密方案
1998年,Cramer和Shoup提出了一个实用且满足自适应性选择密文安全的公钥加密方案。本节简要回顾Cramer-Shoup加密方案的构造和安全性分析。
1.5.1 方案描述
●SysGen:输入安全参数λ,系统参数生成算法生成循环群(G,p,g),p为群G的阶,g为群G的生成元,选取密码函数H:{0,1}*→Zp,输出系统参数SP=(G,p,g,H)。
●KeyGen:输入系统参数SP,私钥生成算法随机选取群元素g1,g2∈G,α1,α2,β1,β2,γ1,γ2∈Zp,计算,,,按照如下形式输出公钥pk和私钥sk:
pk=(g1,g2,μ,υ,h),sk=(α1,α2,β1,β2,γ1,γ2)
●Encrypt:输入待加密的明文数据m∈G,公钥pk,系统参数SP,加密算法选取随机数r∈Zp,计算密文CT=(C1,C2,C3,C4)=(,hrm,urvwr),其中w=H(C1,C2,C3)。
●Decrypt:输入密文CT,私钥sk,系统参数SP,解密算法首先计算w=H(C1,C2,C3),验证等式是否成立。若成立,则计算。
1.5.2 安全性分析
Cramer-Shoup加密方案的安全性基于一个DDH问题的变体,我们首先给出DDH问题的变体。
DDH问题的变体:设(G,p,g)是一个循环群,其中p为群G的阶,g为群G的生成元。已知群元素(g,ga,gb,gac,Z)∈G,判断Z是否等于gbc,其中a,b,c是未知的。
定理1.3 如果DDH问题的变体是难解的,那么Cramer-Shoup加密方案是IND-CCA安全的。
证明:假设在IND-CCA安全模型中,存在一个攻击算法A,能以不可忽略的优势ε攻破Cramer-Shoup加密方案,那么我们可以构造一个模拟算法B通过与A交互,以不可忽略的优势解决DDH问题的变体。设B以循环群(G,p,g)上DDH问题的变体的实例(g1,g2,,)作为输入。
系统建立:令系统参数SP=(G,g,p,H),其中H:{0,1}*→Zp为密码哈希函数,B随机选取α1,α2,β1,β2,γ1,γ2∈Zp作为私钥,设公钥为
公钥可以从问题实例和给定的参数计算得到。
询问1:在该阶段,敌手允许询问密文解密。设询问的密文为CT,由于B知道私钥,它运行解密算法并将解密结果返回给敌手。
挑战:A输出两个不同的挑战消息m0,m1∈G。B随机选取c∈{0,1},计算挑战密文,其中由问题实例给出。令r=a1,如果a1=a2,有
因此,CT*为正确的挑战密文,其加密的消息为mc。
询问2:敌手在该阶段可继续向挑战者发出解密询问,但不能询问CT*的解密,挑战者的响应方式与询问1相同。
猜测:A输出对挑战密文中消息的猜测c′,若c=c′,B输出True,表示给定实例是正确的DDH元组,否则输出False,表示不是正确的DDH元组。
根据证明的设置,模拟者B知道私钥,因此能执行和真实攻击环境不可区分的解密模拟。在生成私钥和挑战密文中,所有的数都是随机选取的,所以模拟和真实攻击是不可区分的。在证明中,模拟没有出现失败的情况,故模拟成功的概率为1。接下来分析B解决困难问题的概率。
若问题实例中的Z是正确的,该方案的模拟与真实的方案攻击不可区分,因此敌手有1/2+ε/2的概率猜到正确的加密消息。若Z是错误的,敌手最多以的概率正确地猜测到加密消息,分析如下:
令,其中z∈Zp,则敌手可以从公钥中得到z,α1+zα2,β1+zβ2,γ1+zγ2,可以从挑战密文中获得a1,a2,a1(α1+w*β1)+za2(α2+w*β2),a1γ1+a2γ2+。如果γ1,γ2对于敌手是未知的,且没有发起解密询问,那么γ1+zγ2和a1γ1+a2zλ2是随机且独立的,因为以下系数矩阵的行列式为非零:
在该情况下,从敌手的视角看,挑战密文可以看作对消息mc的一次一密加密得到,因此敌手没有任何的优势猜到正确的c。下面证明解密询问不能帮助敌手以不可忽略的优势攻破挑战密文。
设)的解密询问通过验证,解密结果将返回给敌手C3·,敌手通过计算得到r1γ1+r2zγ2。如果r1=r2,则敌手所知道的相当于γ1+zγ2,因此,敌手无法获取额外的信息来破解一次一密加密。否则,敌手可以通过γ1+zγ2和r1γ1+r2zγ2计算出γ1,γ2来破解密文,从而攻破一次一密加密算法。下面证明B能够以不可忽略的概率拒绝所有与挑战密文不同的无效密文。敌手提交的无效密文分以下两种情况讨论:
1)且,此时B拒绝该形式的密文,因为只有才会通过验证。
2),由于哈希函数是安全的,因此有。如果以下等式成立,则密文可以通过验证:
也就是说如果敌手能计算出r1(α1+wβ1)+r2z(α2+wβ2),即可通过验证。
根据证明,包括r1(α1+wβ1)+r2z(α2+wβ2)在内的所有与α1,α2,β1,β2相关的参数为:
α1+zα2
β1+zβ2
a1(α1+w*β1)+za2(α2+w*β2)
r1(α1+wβ1)+r2z(α2+wβ2)
(α1,α2,β1,β2)相应的系数矩阵为
矩阵行列式的值为z(r2-r1)(a2-a1)(w*-w)≠0,因此,r1(α1+wβ1)+r2z(α2+wβ2)是随机的且与其他给定参数无关。所以,除了以1/p的概率产生C4通过验证,敌手没有任何优势。
当敌手产生一个错误的密文提交给解密询问时,第一次自适应选择C4成功的概率为1/p,第二次自适应选择C4成功的概率为1/(p-1)。因此,对于qd次解密询问,成功生成一个可以通过验证的不正确密文的概率最多为。此外,敌手有1/2的概率从密文中猜对c。综上所述,敌手最多有的概率正确地猜到加密消息。因此,B解决DDH问题的变体的优势为