阮 玉,邓伦治
(贵州师范大学 数学科学学院,贵州 贵阳 550025)
为消除传统公钥密码体制中需要证书管理的问题,Shamir[1]于1984年提出了基于身份的公钥密码体制(Public key cryptography, PKC)。在这种密码体制中,将用户独一无二的信息作为身份,例如:身份证,IP地址等,私钥生成器(Private key generator, PKG)用此身份生成用户唯一的私钥,并通过一个安全信道传送给用户。但在该密码体制中存在密钥托管问题,因此, Al-Riyami 等[2]提出了无证书的公钥密码体制(Certificateless public key cryptography, CL-PKC)。在这里,用户的私钥由两部分组成,一部分由PKG根据用户的身份生成,另一部分由用户自己设置,这既消除了证书管理的问题,也解决了秘钥托管问题。而系统中可能出现非法用户,如公司中有员工离职,为了保护公司内部信息的安全,则需要对这些离职用户的权利进行撤销。
因此,提出了一个可撤销的无证书加密方案,同时加入了多用户机制,可以将一个消息加密后发送给多个用户,而每个用户仅需用自己的私钥就可解密密文,有效提高了运行效率。
对于系统中可能出现非法用户的情况, Boneh等[3]于2001年提出了一种实现用户撤销的方法,让PKG周期性地为用户产生私钥并通过安全信道传输给用户,从而保证未撤销的用户可以及时更新他们的私钥。为减少私钥更新的总数,Boldyreva 等[4]提出了一种新的实现撤销的方法,使用完整子树结构去实现用户的撤销,但增加了加密解密阶段的计算开销。随后,为了消除安全信道的需要,Tseng等[5]于2012年提出了一个使用公共信道传输时间更新密钥的可撤销加密方案。这里,用户的私钥由身份密钥和时间更新密钥构成,并使用公共信道为未撤销用户发送时间更新密钥,想要撤销用户仅需停止发送时间更新密钥给他。撤销功能的实现使系统数据的完整性得到了进一步的保障,因此,被学者们广泛研究[6-10]。
2013年,Tsai等[11]提出了首个采用时间密钥撤销非法用户的无证书加密方案(Revocable certificateless encryption, RCLE),将解密密钥分成部分私钥、用户秘密值及时间更新密钥这3部分,使用公共信道为未撤销的用户发送时间更新密钥,以此来实现对非法用户的有效撤销。并在随机预言模型下针对3类敌手做了安全性证明,即:撤销的用户(能执行部分密钥和秘密值查询,但不能执行时间更新密钥查询)、外部敌手(能执行时间更新密钥和秘密值查询,但不能执行部分私钥查询)和诚实但好奇的PKG(由PKG扮演,能执行身份密钥查询和时间更新密钥查询,但并不能执行秘密值查询)。在这里,用户想要解密密文就必须知道部分私钥、用户秘密值及时间更新密钥,而秘密值是由用户自己产生,所以不存在密钥托管问题。
2014年,Shen等[12]提出了一个在标准模型下的可撤销的无证书加密方案,并在q-ABDHE和DBDH假设下做了安全性证明。但他们的撤销机制并不安全,对于某一用户而言,即使他被系统撤销,仍可以用撤销之前的时间更新密钥计算出当前的时间更新密钥,Tang等在文献[13]中做出了具体的描述。随后,Tsai等[14]在2015年提出了一个在标准模型中具有委托撤销权限的可撤销的无证书加密方案,用委托权限减轻PKG的负载并降低了计算成本。为了提高效率,孙银霞等[15]提出了一个无双线性对的加密方案,但该方案的完整性和证明的合理性存在不足。为防止解密密钥暴露的危险,Sun等[16]提出了2个抵抗解密密钥暴露的可撤销的无证书方案,第一个方案具有可扩展性,而第二个拥有较短的解密密钥。2018年,Sun等[17]又提出了一个新的可撤销的无证书加密方案,方案中使用更少的双线性映射降低了加密解密的开销。为进一步防止撤销的用户能用以前的时间更新密钥解密密文, Sun等[18]在2018年提出了具有密文更新的可撤销的无证书加密方案。但该方案并不能实现密文的不可区分性,故Sun等[19]又提出了一个能抵抗选择密文攻击(CCA)的可撤销的无证书加密方案。2020年,Ma等[20]提出了一个带有半诚信云撤销代理的可撤销的无证书加密方案,将时间更新密钥委托给云的同时又将主时间密钥分成多份,防止了云不诚信所带来的威胁。随后,Tseng等[21]在2022年提出了一个抗泄露的可撤销的无证书加密方案,除了用时间更新密钥实现用户的撤销,还使用密钥更新技术使不同轮次的用户私钥不同,从而保证该方案可以抵抗密钥泄露。
随着多用户加密机制的引入,Islam等[22]在2015年提出了第一个在椭圆曲线上的实现多用户加密的无证书加密方案,该方案采用无证书密码体制实现了多用户的加密并在随机预言模型下做出了安全性证明。随后,He等[23]和Gao等[24]也分别提出了在椭圆曲线上实现多用户加密的无证书方案,以更少的开销和更高的效率实现了多用户的加密。2017年,Hung等[25]提出了相较于文[22]的方案效率更高的在双线性对运算下的多用户无证书加密方案,且在解密中使用一个点乘运算和一个双线性运算就可以解密,恒定了解密开销。但以上方案均未实现对系统中非法用户的撤销。
虽然Tsai等[26]提出过一个可撤销的多用户加密方案,但该方案在加密解密过程中使用了较多的哈希运算和双线性对运算,使得运行成本较高,效率较低,且是在基于身份的密码体制下提出的。因此,我们提出了一个新的具有更高效率且实现了多用户撤销的加密方案。新方案将无证书系统、可撤销机制与多用户体制结合在一起,既解决了传统公钥密码体制中的证书管理和基于身份密码体制中的密钥托管问题,也实现了多用户下对非法用户的撤销。然后在DBDH和DDH困难问题下进行了安全性证明。最后与以前的几个加密方案做了功能与效率上的比较,方案在实现多用户可撤销的同时具有更多的功能,更少的开销,更高的运行效率。
首先将介绍双线性映射定义及2个困难问题。相关符号及定义如表1所示。
表1 符号及其定义Tab.1 Symbols and definitions
DDH困难问题:G1=
是一个q阶的加法群,对于给定的四元组(P,aP,bP,X∈G1),判断X=abP是否成立。
一个可撤销的多用户无证书加密(RMU-CLE)由以下7个算法组成:
设置:输入一个安全参数k,私钥生成器(PKG)生成主密钥(α)及系统参数(PP)。
身份密钥提取:输入身份ID∈{0,1}*,PKG生成一个身份密钥DID, 并通过一个安全信道将DID发送给用户。
时间更新密钥提取:输入元组(ID,t),PKG生成一个时间更新密钥DID,t,并通过一个公共信道将DID,t发送给用户。
秘密值设置:用户ID选择一个秘密值xID。
用户公钥:用户ID用秘密值xID生成他的公钥PKID。
加密:在时间段t,输入一个明文m及接收者集合W={ID1,ID2,…,IDn},发送者运行算法输出密文C。
解密:输入一个密文C,接收者IDi∈W运行算法解密密文,输出明文m。
在新的RMU-CLE方案中,有3类敌手需要被考虑:
阶段2:进行与阶段1相同的查询,但不能对挑战密文C*进行解密查询。
具体的RMU-CLE方案的组成如下:
● 设置:输入一个安全参数k, PKG执行以下步骤:
1)选择阶均为q的加法群G1和乘法群G2,P是G1的生成元。
3)密文空间为M={0,1}l1。
4)选择5个哈希函数:H1:{0,1}*→G1,
H2:{0,1}*×{0,1}*→G1,
5)公共参数PP={G1,G2,P,P0,H1~5}。
● 身份密钥生成: PKG计算QID=H1(ID),用户ID的身份密钥为DID=αQID。
● 时间更新密钥: PKG计算QID,t=H2(ID,t),用户ID在时间段t的时间更新密钥为DID,t=αQID,t。
● 用户公钥:计算PKID=xIDP作为公钥。
● 加密:在时间段t,接收者集合为W={ID1,ID2,…,IDn},发送者执行以下步骤:
1)随机选择σ∈{0,1}l2,计算r=H3(m,σ),U=rP。
3)计算hi=H4(Ki,Ei)。
=xn+gn-1xn-1+…+g1x+g0。
5)计算W=H5(s,U)⊕(m‖σ)。
6)密文是C=(g0,…,gn-1,U,W)。
● 解密:接收者IDi∈W执行如下步骤:
2)构造f(x)=xn+gn-1xn-1+…+g1x+g0,计算f(hi)=s。
3)计算m‖σ=H5(s,U)⊕W。
检查U=H3(m,σ)P是否成立,成立则输出m,否则,拒绝。
在随机预言模型下,新的RMU-CLE方案是安全的,如下:
1)设置U*=cP。
4)随机选取τ*∈{0,1}l1+l2,σ*∈{0,1}l2,计算W*=τ*⊕(mλ‖σ*)。
H3~H5查询、公钥查询及公钥替代查询:与定理1相同。
秘密值查询:与定理1相同。
解密查询:与定理1相同。
1)设置U*=cP。
4)随机选取τ*∈{0,1}l1+l2,σ*∈{0,1}l2,计算W*=τ*⊕(mλ‖σ*)。
H3~H5查询:与定理1相同。
公钥替代查询:与定理1相同。
身份密钥查询:与定理1相同。
解密查询:与定理1相同。
1)设置U*=bP。
4)随机选取τ*∈{0,1}l1+l2,σ*∈{0,1}l2,计算W*=τ*⊕(mλ‖σ*)。
在这部分,将新的RMU-CLE方案与文献[6-7,17,25-26]的方案进行了比较。为了方便,定义了以下符号:
Te:一个幂运算运行时间。
Tm:一个点乘运算运行时间。
TH:一个到点的哈希运算运行时间。
表2 运算时间Tab.2 Operation time
图1 加密计算开销Fig.1 Computation cost of encryption
表3 效率比较Tab.3 Comparison of the efficiency
可撤销的多用户无证书加密方案,将无证书系统、可撤销机制与多用户体制结合在一起,实现了对多用户下非法用户的撤销,解决了传统公钥密码体制中的证书管理和基于身份密码体制中的密钥托管问题。另外,相比于以前的无证书加密方案,新的方案还具有更高的效率和更少的开销。