功能型密码算法设计与分析
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.5 Cramer-Shoup公钥加密方案

1998年,Cramer和Shoup提出了一个实用且满足自适应性选择密文安全的公钥加密方案。本节简要回顾Cramer-Shoup加密方案的构造和安全性分析。

1.5.1 方案描述

SysGen:输入安全参数λ,系统参数生成算法生成循环群(G,pg),p为群G的阶,g为群G的生成元,选取密码函数H:{0,1}*→Zp,输出系统参数SP=(G,pgH)。

KeyGen:输入系统参数SP,私钥生成算法随机选取群元素g1,g2∈G,α1,α2,β1β2γ1γ2Zp,计算,按照如下形式输出公钥pk和私钥sk:

pk=(g1,g2,μ,υ,h),sk=(α1,α2,β1,β2,γ1,γ2)

Encrypt:输入待加密的明文数据m∈G,公钥pk,系统参数SP,加密算法选取随机数rZp,计算密文CT=(C1C2C3C4)=(hrmurvwr),其中w=HC1C2C3)。

Decrypt:输入密文CT,私钥sk,系统参数SP,解密算法首先计算w=HC1C2C3),验证等式是否成立。若成立,则计算

1.5.2 安全性分析

Cramer-Shoup加密方案的安全性基于一个DDH问题的变体,我们首先给出DDH问题的变体。

DDH问题的变体:设(G,pg)是一个循环群,其中p为群G的阶,g为群G的生成元。已知群元素(ggagbgacZ)∈G,判断Z是否等于gbc,其中abc是未知的。

定理1.3 如果DDH问题的变体是难解的,那么Cramer-Shoup加密方案是IND-CCA安全的。

证明:假设在IND-CCA安全模型中,存在一个攻击算法A,能以不可忽略的优势ε攻破Cramer-Shoup加密方案,那么我们可以构造一个模拟算法B通过与A交互,以不可忽略的优势解决DDH问题的变体。设B以循环群(G,pg)上DDH问题的变体的实例(g1g2)作为输入。

系统建立:令系统参数SP=(G,gpH),其中H:{0,1}*Zp为密码哈希函数,B随机选取α1α2β1β2γ1γ2Zp作为私钥,设公钥为

公钥可以从问题实例和给定的参数计算得到。

询问1:在该阶段,敌手允许询问密文解密。设询问的密文为CT,由于B知道私钥,它运行解密算法并将解密结果返回给敌手。

挑战A输出两个不同的挑战消息m0m1∈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是错误的,敌手最多以的概率正确地猜测到加密消息,分析如下:

,其中zZp,则敌手可以从公钥中得到zα1+2β1+2γ1+2,可以从挑战密文中获得a1a2a1α1+w*β1)+za2α2+w*β2),a1γ1+a2γ2+。如果γ1γ2对于敌手是未知的,且没有发起解密询问,那么γ1+2a1γ1+a22是随机且独立的,因为以下系数矩阵的行列式为非零:

在该情况下,从敌手的视角看,挑战密文可以看作对消息mc的一次一密加密得到,因此敌手没有任何的优势猜到正确的c。下面证明解密询问不能帮助敌手以不可忽略的优势攻破挑战密文。

)的解密询问通过验证,解密结果将返回给敌手C3·,敌手通过计算得到r1γ1+r22。如果r1=r2,则敌手所知道的相当于γ1+2,因此,敌手无法获取额外的信息来破解一次一密加密。否则,敌手可以通过γ1+2r1γ1+r22计算出γ1γ2来破解密文,从而攻破一次一密加密算法。下面证明B能够以不可忽略的概率拒绝所有与挑战密文不同的无效密文。敌手提交的无效密文分以下两种情况讨论:

1),此时B拒绝该形式的密文,因为只有才会通过验证。

2),由于哈希函数是安全的,因此有。如果以下等式成立,则密文可以通过验证:

也就是说如果敌手能计算出r1(α1+1)+r2z(α2+2),即可通过验证。

根据证明,包括r1(α1+1)+r2z(α2+2)在内的所有与α1,α2,β1,β2相关的参数为:

α1+2

β1+2

a1(α1+w*β1)+za2(α2+w*β2)

r1(α1+1)+r2z(α2+2)

(α1,α2,β1,β2)相应的系数矩阵为

矩阵行列式的值为z(r2-r1)(a2-a1)(w*-w)≠0,因此,r1(α1+1)+r2z(α2+2)是随机的且与其他给定参数无关。所以,除了以1/p的概率产生C4通过验证,敌手没有任何优势。

当敌手产生一个错误的密文提交给解密询问时,第一次自适应选择C4成功的概率为1/p,第二次自适应选择C4成功的概率为1/(p-1)。因此,对于qd次解密询问,成功生成一个可以通过验证的不正确密文的概率最多为。此外,敌手有1/2的概率从密文中猜对c。综上所述,敌手最多有的概率正确地猜到加密消息。因此,B解决DDH问题的变体的优势为