一种可验证的公钥可搜索加密方案
一种可验证的公钥可搜索加密方案
刘鹏亮;俎龙辉;白翠翠;马华
【摘 要】公钥可搜索加密能实现基于密文的信息检索,适用于云计算环境。但现有公钥可搜索加密方案普遍依赖于双线性对,并且无法对服务器返回的搜索结果进行验证,效率和安全性较低。为此,基于ElGamal加密算法提出一种可验证的公钥可搜索加密方案。该方案使用ElGamal加密算法替代双线性对运算,与传统算法相比具有较低的计算复杂度,并且易于实现。在密文关键词及加密文件生成算法中,采用ElGamal签名算法对关键词的哈希值进行数字签名。当收到服务器返回的搜索结果后,用户可以通过计算得到发送者的公钥,并对相应的签名值进行验证,从而有效防止服务器返回错误结果。%As an attractive cryptographic primitive, the public key searchable encryption enables users to search on encrypted data,and hence is applicable to the setting of cloud computing. But most of the existing schemes have to adopt the bilinear pairing and fail to verify search results from the server. Accordingly,these schemes suffer drawbacks in terms of efficiency and security. Aiming at this problem,based on the ElGamal encryption algorithm,a new verifiable scheme is propos
ed . It has more desirable computation efficiency and is easy to implement in because it replaces the bilinear pairing with the ElGamal encryption. Especially,during the generation of encrypted keywords and encrypted files,the new scheme can generate the digital signature of the hash value of keywords based on the ElGamal signature algorithm. Upon receiving the search results from the server,users can obtain the public key of the sender,and then verify the ElGamal signature, which effectively prevents the server from returning wrong results.
【期刊名称】《计算机工程》
【年(卷),期】2014(000)011
【总页数】4页(P118-120,125)
【关键词】可搜索加密;公钥;密文;验证;搜索;ElGamal加密
【作 者】刘鹏亮;俎龙辉;白翠翠;马华
【作者单位】西安电子科技大学数学与统计学院,西安710071;西安电子科技大学数学与统计学院,西安710071;西安电子科技大学数学与统计学院,西安710071;西安电子科技大学数学与统计学院,西安710071
【正文语种】中 文
【中图分类】TP309
随着云计算技术越来越流行,大量的私密信息被存储在云端[1-2]。因此,云端数据的安全性引起了广泛关注。加密技术保护了数据的机密性和隐私性,却给加密数据的检索带来了很大的困难。检索加密数据的一种方法是用户将所有密文全部下载,逐一解密寻自己想要的文件,确保了不会泄露任何信息给服务器。这是一项非常耗时且需要很大存储空间的任务,对资源受限的用户来说,寻特定文件是不现实的。为使用户在不解密密文的情况下快速到自己想要的文件,研究者提出了可搜索加密方法[3],主要分为公钥可搜索加密[4-5]和对称可搜索加密[6-7]。目前许多公钥可搜索加密方案相继被提出,如文献[8-9]通过利用改变传统陷门信息解决了公钥可搜索加密中存在的陷门攻击问题,增强了方案的安全性。但其方案都是基于计算量大且难以实现的双线性对。针对这一缺陷,文献[10]基于K-容忍的
身份加密技术提出了一种新的公钥可搜索加密方案,方案中运用多项式和异或运算代替双线性对,提高了计算效率。文献[11]提出了一种基于大整数分解的公钥可搜索加密方案。然而,上述方案都存在着一个共同的问题:均没有对搜索结果进行正确性验证。而与公钥相对应的对称可搜索加密中已经实现了对搜索结果的验证。文献[6-7]分别提出了对称可搜索加密中确定性和模糊性关键词搜索结果的验证方案,确保了用户对服务器返回结果的正确性和完整性的验证。
如何给文件加密
针对公钥可搜索加密中缺少验证这一问题,本文基于离散对数问题,运用ELGamal算法构造一种可验证的公钥可搜索加密方案。
2.1 ELGamal加密算法
ELGamal加密算法不是一个确定性算法,其加密结果依赖于消息、公钥和一个随机选择的数,算法具体过程如下:
(1)密钥生成:Zp是有p个元素的有限域,p是一个大素数,g是中的一个生成元。选择随机整数x,0≤x≤p-2,计算y=gxmodp,则公钥为(p,g,y),其中,p,g可由一组用户共享,私钥为x。
(2)加密:若加密明文消息为M,发送者选择随机整数k(1≤k≤p-1),并且gcd(k,p-1)=1。计算y1=gk,y2=Myk=Mgxk,则密文为C=〈y1,y2〉。
(3)解密:当接收者接收到密文C后,利用私钥x恢复。
2.2 ELGamal签名算法
ELGamal签名算法的具体过程如下:
(1)密钥生成(同ELGamal加密算法):公钥为(p,g,y),私钥为x。
(2)签名:对明文消息M,进行如下操作:
选择随机整数k(1≤k≤p-2),这里k必须满足并且gcd(k,p-1)=1;r=gkmodp,s=k-1(M-rx)mod (p-1),则签名消息为(M,r,s)。
(3)验证:当接收者收到签名消息(M,r,s)后进行如下计算:1)验证是否有1≤r≤p-1,如果不是,则拒绝签名;2)计算v=gM和w=yrrs;3)如果v=w成立,则接受签名,否则拒绝。
公钥可搜索加密方案模型如图1所示。发送者(Alice)利用接收者(Bob)的公钥生成密文关键词并将密文存储于服务器。Bob用自己的私钥生成陷门发送给服务器,然后服务器检测密文关键词和陷门是否是由同一个关键词生成。如果相同,服务器就发送密文给接收者。否则,返回空值。
本文基于ELGamal加密和签名算法构造了一种新可验证的公钥可搜索加密方案。新方案不仅实现了关键词的检索,而且Bob可以对服务器返回的搜索结果的正确性进行验证。新方案包括 5个算法:
(1)参数生成算法
首先Alice运行ELGamal加密算法,选择一个大素数p1,g1是中的一个生成元。选择随机整数x1(0≤x1≤p-2),计算,Alice公钥为(p1,g1,y1),私钥为x1。选取g2和g分别为和的生成元,Bob公钥为(p2,g2,y2),私钥为x2;服务器公钥为(p,g,y),私钥为x,哈希函数H:。
(2)密文关键词及加密文件生成算法
若Alice要发送含有关键词w的文件M给Bob。Alice计算关键词W的哈希值H(W),选取2个随
机数r1,r2∈Z*p,计算S1=r1rH(w)2 modp,S2=r1
H(w)-1r2modp,则密文关键词为S=〈S1,S2〉。
Alice用Bob的公钥(p2,g2,y2)对文件M进行加密:选择随机整数k(1≤k≤p2-1),且gcd(k,p2-1)= 1,计算y11=gk2mod(p2-1),y12=Myk2mod(p2-1)=Mgx2k2mod(p2-1),密文为C1=〈y11,y12〉。
Alice用自己的私钥x1对H(w)进行签名:选择随机整数k1,k1(1≤k1≤p1-1),r=g1k1mod(p1-1),s=k-11(H(w)-rx1)mod(p1-1),则签名为sig=〈H(w),r,s〉。
为了让Bob确定此消息是来自Alice,Alice需对自己的身份IDA用Bob的公钥(p2,g2,y2)进行加密:选择随机整数k2(1≤k2≤p2-1),计算y21=,则身份密文为C2=〈y21,y22〉,最后Alice将密文关键词S=〈S1,S2〉和D=〈C1,sig,C2〉发送给服务器。
(3)陷门生成算法
当Bob要检索一个含有关键词w1的文件时,他首先计算A=H(w1),然后用服务器的公钥(p,g,y)
对其进行加密。选择随机整数α(1≤α≤p-1)。计算y31=gαmodp;y32=Agαmodp;TW=Enc(A)=〈y31,y32〉。Bob将Tw发给服务器,作为对关键词w的搜索请求。
(4)检测算法
当服务器接收到来自Bob的搜索请求后,首先解密获取陷门信息。如果S1=SH(w1)2 ,服务器返回D=〈C1,sig,C2〉发送给Bob。否则,返回空值。
(5)验证算法
当Bob收到服务器返回的结果D后并将其分成C1,sig和C23个部分,首先对身份密文C2进行解密,确认发送者身份。然后再用其公钥对关键词的签名进行验证,若验证成功再对C1进行解密。否则,丢弃。
方案正确性验证过程如下:
(1)Alice计算:
(2)服务器收到陷门信息,首先计算,若w=w1,则有。 否则说明没有到要查询的关键词。
(3)若Bob收到服务器返回的D=〈C1,sig,C2〉,首先进行身份验证:
1)对C2进行解密计算,确认发送者的身份:
2)若上步身份验证是Alice时,用其公钥进行签名验证:
①验证是否有1≤r≤p1-1,如果不是,则拒绝该签名;
3)解密:签名验证成功后Bob用自己的私钥对加密文件进行解密:
通过以上分析,可以证明此方案是正确的。
本文方案采用的是ELGamal加密和签名算法,接下来从3个方面对其安全性进行分析:
(1)文件密文和陷门信息安全性:对文件和陷门信息的加密都采用ELGamal加密算法,该算法基于求解离散对数困难问题。攻击者要通过求解离散对数得到解密密钥,而求解过程非常复杂。因此,保证了密文和陷门信息的安全性。
(2)签名安全性:对关键词w,同样采用基于求解离散对数困难问题的ELGamal签名算法。每次
选取不同的随机数k1实施签名。这样即使同样的文件,得到的签名结果是不一样的,防止了重复攻击,提高了系统的安全性。另外,对密文关键词w的签名实质是对H(w)的签名,所选取哈希函数是抗碰撞的,因此,对一个消息的签名伪造是不可能实现的。
(3)密文关键词安全性
关键词的密文形式S=〈S1,S2〉。其中:
对每一个关键词w的加密都随机选取r1,r2,攻击者无法直接获取有关关键词的任何信息。
文献[4,8-9]方案主要基于双线性对进行大量运算,这会耗费大量时间和存储资源。文献[10-11]基于大整数分解实现了公钥可搜索加密,提高了效率,却未对服务器的返回结果进行验证。本文基于ELGamal算法提出了一种新的可验证的公钥可搜索加密方案,利用ELGamal签名算法对搜索结果的正确性进行了验证。各种方案的比较如表1所示。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。