法律状态公告日
法律状态信息
法律状态
2017-05-03
授权
授权
2014-10-15
实质审查的生效 IPC(主分类):H04L9/32 申请日:20140703
实质审查的生效
2014-09-10
公开
公开
技术领域
本发明属于数据加密领域,尤其涉及一种基于KP-ABE的有效可验证的 公钥可搜索加密方法。
背景技术
公钥可搜索加密是一个非常具有吸引力的密码学原语,它实现了基于密 文的信息检索,特别适用于云计算环境。公钥可搜索加密方案(PEKS)使得 用户凭借关键词在不泄露任何信息的情况下搜索加密数据。PEKS的概念是由 Boneh等提出的,Baek等人提出了一种去除安全通道的PEKS,使得方案更 加实用。在此之后,Hu等人和Zhao等人提出了可抵抗外部攻击者离线关键 词猜测的新方案。简而言之,PEKS的概念是提供一种用户凭借关键词去搜索 加密数据且不向包括服务器在内的其他方泄露任何信息的机制。随着云计算 的快速发展,使得用户可以以低廉的价格使用云服务器的大量存储和计算的 能力。这使得PEKS变得更加流行。尽管目前现存的PEKS可以安全有效地完 成搜索操作,然而大多数方案却没有对服务器返回的搜索结果进行验证,同 时也没有对搜索用户进行限制。在一个半诚实但可信的服务器的模型下,服 务器可能只执行部分搜索操作或者只返回部分搜索结果。针对这一问题, Zheng等人首次针对此问题提出了一个新的密码学原语——基于属性加密的 可验证的关键词搜索方案。该方案允许数据拥有者去控制搜索操作。访问控 制策略的合法用户可以把费时的搜索操作外包给云服务器并且可以有效地 验证服务器是否真实地执行了搜索操作。这意味着,具备满足数据拥有者的 访问策略的条件的用户才可以进行搜索云服务器上的加密数据。此外,用户 还可以对服务器返回的搜索结果进行正确性和完整性的验证。该方案运用模 指数,属性加密,布隆过滤器,数字签名和基于属性加密的关键词搜索构造 而成。然而该方案在正确性验证的时候所做的操作和云服务器的做法相同, 然而对于用户自己来说,这需要很大的计算量。另外,该方案疏忽了离线猜 测攻击。因为关键词密文、搜索口令和算法很容易被敌手获取,这样敌手便 可执行搜索操作,从而打破关键词密文的不可区分性。
发明内容
本发明的目的在于提供一种基于KP-ABE的有效可验证的公钥可搜索加 密方法,旨在在正确性验证方面大大减少用户的运算量,利用服务器的公钥 对关键词密文进行再加密,防止外部攻击者的离线猜测攻击,提高方案的安 全性。
符号说明:
F={F1}||{F2}||…||{Fn}:加密文件的集合;
ID{Fi}:文件{Fi}的地址;
IDw:包含关键词w的文件的地址;
WE:W的密文;
BF:包含所有关键词的布隆过滤器;
SYMEnc():对称加密算法;
ABE():基于密钥策略的属性加密算法。
本发明是这样实现的,一种基于KP-ABE的有效可验证的公钥可搜索加 密方法,所述的基于KP-ABE的有效可验证的公钥可搜索加密方法包括可信 权威中心、数据拥有者、云服务器、数据用户;可信权威中心选取双线性对 和哈希函数,为系统生成公参pm和主密钥mk;通过运行RSA算法,为数据 拥有者和云服务器生成公私钥对;通过访问结构中的Share(T,ac)算法,为用 户生成私钥sk;数据拥有者从外包的数据文件F中提取关键词w;外包F, 并生成关键词w密文cph并发送给云服务器;云服务器对数据拥有者发送来 的数据提供存储服务并在收到用户发送的搜索口令tk后执行搜索,并将搜索 结果和搜索证据返回给用户;数据用户用私钥sk生成搜索口令tk并发送给云 服务器;在收到云服务器返回的搜索结果后,对结果的正确性和完整性进 行验证;
所述的基于KP-ABE的有效可验证的公钥可搜索加密方法包括六个算法, l为安全参数,可信权威中心运行RSA算法为云服务器和数据拥有者生成公私 钥对:{(n1,e1),d1}和{(n2,e2),d2};数据拥有者通过数字签名来保证数据文件的 完整性,用云服务器的公钥对密文关键词进行再加密来防止外部攻击者的离 线猜测攻击,当数据拥有者用SYMEnc()加密算法对数据文件加密后外包给云 服务器,服务器返回加密文件的地址,记为ID{Fi},这样包含关键词w的数 据文件即可表示为IDw=ID{F1}||ID{F2}…||ID{Fi}。
进一步,所述公钥可搜索加密方法具体包括:
可信权威中心选取双线性对和哈希函数,为可搜索加密系统:可信授权 中心管理数据拥有者、用户和云服务器;
数据拥有者将数据文件传送至云服务器;
云服务器提供存储和检索服务;
用户通过云服务器搜索存储在其上的数据文件;
可信权威中心生成公参pm和主密钥mk;通过运行如下RSA算法:
按以下3个步骤:
i)选择不同的大素数p和q,计算n=p*q;
ii)选择e与互素,(n,e)作为公钥;
iii)通过计算d,(n,d)作为私钥;
这里数n,e,d分别为模数,加密指数和解密指数;
按照此算法,选取不同的大素数p1和q1,p2和q2,为数据拥有者和服务 器生成公私钥对{(n1,e1),d1}和{(n2,e2),d2};
通过访问结构中的Share(T,ac)算法,按如下步骤:
访问树T的每一个叶子节点都关联着秘密ac的部分分享qv(0),对每一个 叶子节点v∈lvs(T),选取t←Zp,计算和Bv=gt,记 sk=(T,Av,Bv)|v∈lvs(T))为用户的私钥。
进一步,所述的基于KP-ABE的有效可验证的公钥可搜索加密方法包括 六个算法,l为安全参数,可信权威中心运行RSA算法为云服务器和数据拥有 者生成公私钥对:{(n1,e1),d1}和{(n2,e2),d2}。数据拥有者通过数字签名来保证 数据文件的完整性,用云服务器的公钥对密文关键词进行再加密来防止外部 攻击者的离线猜测攻击,当数据拥有者用SYMEnc()加密算法对数据文件加密 后外包给云服务器,服务器返回加密文件的地址,记为ID{Fi},这样包含关 键词w的数据文件即可表示为IDw=ID{F1}||ID{F2}…||ID{Fi}。
进一步,所述的基于KP-ABE的有效可验证的公钥可搜索加密方法的具 体方案为:
步骤一、初始化(1l):可信权威中心选择双线性对:e:G×G→GT,G和 GT是阶为p的循环群,p为l比特长的素元,选择随机预言机模型下的哈希 函数H1:{0,1}*→G;H2:{0,1}*→Zp是单向哈希函数,选择a,b,c←Zp,g←G, pm=(H1,H2,e,g,p,ga,gb,gc,G,GT), mk=(a,b,c)
接着选取k个独立的哈希函数H1',…,H'k,用来m比特的构造m比特的布隆 过滤器BF发送给数据拥有者,为数据拥有者和云服务器生成公私钥对 {(n1,e1),d1}和{(n2,e2),d2};
步骤二、密钥生成(mk,T):可信权威中心执行Share(T,ac)算法,访问树T 的每一个叶子节点都会得到有关秘密ac的部分分享qv(0),对每一个叶子节点 v∈lvs(T),选取t←Zp,计算和Bv=gt,记私钥 sk=(T,Av,Bv)|v∈lvs(T));
步骤三、对关键词和文件地址的加密:(w,atts,ID(w))数据拥有者通过可 信权威中心发送的哈希函数生成布隆过滤器, BF←BFGen({H1',…,H'k},{w1,…,wl}),对含有关键词w数据文件地址IDw和布隆过 滤器,SYMEnc()加密算法加密,对称密钥为sk1:
BFEnc=SYM(BF),(IDw)Enc=SYM(IDw);
用户数据拥有者对ABFEnc和(IDw)Enc进行签名:
在搜索结束后,属性满足访问策略的合法用户就可以解密C得到sk1,进 而解密获取目标文件;
选择r1,r2←Zp,计算
步骤四、生成搜索口令(sk,w):选择s←Zp,对每个叶子节点v∈lvs(T)计 算
步骤五、搜索(tk,cph):服务器从cph中选取属性集S来满足搜索口令 中指定的访问树,如果这样的集合S不存在,返回0;反之,对每一个atj∈S, 计算
步骤六、验证{W,F,A,B,C}数据用户接收到云服务器返回的搜索结果后, 进行验证操作。
进一步,所述的验证操作的具体方法为:
步骤一、搜索关键词的存在性:当数据用户仅仅收到云服务器返回的A 时,首先用数据拥有者的公钥A进行验证若则通过验证; 对C进行解密操作获取对称密钥sk1,解密A获取布隆过滤器BF,若BF(w)=0, 意味着云服务器上不存在用户所搜索的关键词,反之,拒收返回结果;
步骤二、搜索关键词的正确性:数据用户收到{W,F,A,B,C}时,计算W/f1和如果说明正确,反之,说明是错误结果;
步骤三、包含关键词w的数据文件地址的完整性:当数据用户验证了关 键词的正确性后,接着对B进行验证,若则通过解密C 获取sk1,进而获取目标数据文件。
进一步,所述的基于KP-ABE的有效可验证的公钥可搜索加密方法的正 确性的分析如下:
步骤一、搜索匹配正确性:
云服务器在收到数据用户的搜索请求后,执行搜索操作,首先用自己的 私钥对密文关键词和搜索口令进行解密,用RSA算法,然后,执行如下匹配 操作:
如果w和w1是同一个关键词的话,那么e(W',tok1)Eroot和e(W,tok2)就是相等 的,说明搜索成功;
步骤二、验证正确性:
当数据用户收到云服务器返回的搜索结果{W,F,A,B,C}时,首先要对关键 词的正确性进行验证,由F中找到f1,f2,作如下计算:
用户对自己搜索的关键词的哈希值H2(w1)计算如下:
若w和w1是同一个关键词时,相等,说明,搜索结果是正确 的,在此之后,通过签名来验证数据文件地址的正确性和完整性。
效果汇总
本发明的基于KP-ABE的有效可验证的公钥可搜索加密方法,首先为数 据拥有者和云服务器生成了公私钥对,在发送密文关键词和搜索口令时,首 先使用云服务器的公钥对其再加密,这样有效地防止了外部攻击者的离线猜 测攻击行为,提高了方案的安全性,而且,复杂度降低,大大减少了用户的 运算量,效率得到了很大提高。
附图说明
图1是本发明实施例提供的基于KP-ABE的有效可验证的公钥可搜索加 密方法的模型示意图;
图2是本发明实施例提供的本发明和对比方案执行正确性验证的运行时 间的对比图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及 实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施 例仅仅用以解释本发明,并不用于限定本发明。
本发明是这样实现的,如图1所示,一种基于KP-ABE的有效可验证的 公钥可搜索加密方法包括可信权威中心、数据拥有者、云服务器、数据用户; 可信权威中心为所有云用户生成证书;数据拥有者外包数据文件和关键词给 云服务器;云服务器是提供存储服务并在收到用户发送的搜索请求后执行搜 索操作;数据用户生成搜索口令发送给云服务器寻找目标文件。
进一步,所述公钥可搜索加密方法具体包括:
可信权威中心选取双线性对和哈希函数,为可搜索加密系统:可信授权 中心管理数据拥有者、用户和云服务器;
数据拥有者将数据文件传送至云服务器;
云服务器提供存储和检索服务;
用户通过云服务器搜索存储在其上的数据文件;
可信权威中心生成公参pm和主密钥mk;通过运行如下RSA算法:
按以下3个步骤:
i)选择不同的大素数p和q,计算n=p*q;
ii)选择e与互素,(n,e)作为公钥;
iii)通过计算d,(n,d)作为私钥;
这里数n,e,d分别为模数,加密指数和解密指数;
按照此算法,选取不同的大素数p1和q1,p2和q2,为数据拥有者和服务 器生成公私钥对{(n1,e1),d1}和{(n2,e2),d2};
通过访问结构中的Share(T,ac)算法,按如下步骤:
访问树T的每一个叶子节点都关联着秘密ac的部分分享qv(0),对每一个 叶子节点v∈lvs(T),选取t←Zp,计算和Bv=gt,记 sk=(T,Av,Bv)|v∈lvs(T))为用户的私钥。
进一步,所述的基于KP-ABE的有效可验证的公钥可搜索加密方法包括 六个算法,l为安全参数,可信权威中心运行RSA算法为云服务器和数据拥有 者生成公私钥对:{(n1,e1),d1}和{(n2,e2),d2},数据拥有者通过数字签名来保证 数据文件的完整性,用云服务器的公钥对密文关键词进行再加密来防止外部 攻击者的离线猜测攻击,当数据拥有者用SYMEnc()加密算法对数据文件加密 后外包给云服务器,服务器返回加密文件的地址,记为ID{Fi},这样包含关 键词w的数据文件即可表示为IDw=ID{F1}||ID{F2}…||ID{Fi}。
进一步,所述的基于KP-ABE的有效可验证的公钥可搜索加密方法的具 体方案为:
步骤一、初始化(1l):可信权威中心选择双线性对:e:G×G→GT,G和 GT是阶为p的循环群,p为l比特长的素元,选择随机预言机模型下的哈希 函数H1:{0,1}*→G;H2:{0,1}*→Zp是单向哈希函数,选择a,b,c←Zp,g←G, pm=(H1,H2,e,g,p,ga,gb,gc,G,GT), mk=(a,b,c)
接着选取k个独立的哈希函数H1',…,H'k,用来m比特的构造m比特的布隆 过滤器BF发送给数据拥有者,为数据拥有者和云服务器生成公私钥对 {(n1,e1),d1}和{(n2,e2),d2};
步骤二、密钥生成(mk,T):可信权威中心执行Share(T,ac)算法,访问树T 的每一个叶子节点都会得到有关秘密ac的部分分享qv(0),对每一个叶子节点 v∈lvs(T),选取t←Zp,计算和Bv=gt,记私钥 sk=(T,Av,Bv)|v∈lvs(T));
步骤三、对关键词和文件地址的加密:(w,atts,ID(w))数据拥有者通过可 信权威中心发送的哈希函数生成布隆过滤器, BF←BFGen({H1',…,H'k},{w1,…,wl}),对含有关键词w数据文件地址IDw和布隆过 滤器,SYMEnc()加密算法加密,对称密钥为sk1:
BFEnc=SYM(BF),(IDw)Enc=SYM(IDw);
用户数据拥有者对ABFEnc和(IDw)Enc进行签名:
在搜索结束后,属性满足访问策略的合法用户就可以解密C得到sk1,进 而解密获取目标文件;
选择r1,r2←Zp,计算
步骤四、生成搜索口令(sk,w):选择s←Zp,对每个叶子节点v∈lvs(T)计 算
步骤五、搜索(tk,cph):服务器从cph中选取属性集S来满足搜索口令 中指定的访问树,如果这样的集合S不存在,返回0;反之,对每一个atj∈S, 计算
步骤六、验证{W,F,A,B,C}数据用户接收到云服务器返回的搜索结果后, 进行验证操作。
进一步,所述的验证操作的具体方法为:
步骤一、搜索关键词的存在性:当数据用户仅仅收到云服务器返回的A 时,首先用数据拥有者的公钥A进行验证若则通过验证; 对C进行解密操作获取对称密钥sk1,解密A获取布隆过滤器BF,若BF(w)=0, 意味着云服务器上不存在用户所搜索的关键词,反之,拒收返回结果;
步骤二、搜索关键词的正确性:数据用户收到{W,F,A,B,C}时,计算W/f1和如果说明正确,反之,说明是错误结果;
步骤三、包含关键词w的数据文件地址的完整性:当数据用户验证了关 键词的正确性后,接着对B进行验证,若则通过解密C 获取sk1,进而获取目标数据文件。
进一步,所述的基于KP-ABE的有效可验证的公钥可搜索加密方法的正 确性的分析如下:
步骤一、搜索匹配正确性:
云服务器在收到数据用户的搜索请求后,执行搜索操作,首先用自己的 私钥对密文关键词和搜索口令进行解密,用RSA算法,然后,执行如下匹配 操作:
如果w和w1是同一个关键词的话,那么e(W',tok1)Eroot和e(W,tok2)就是相等 的,说明搜索成功;
步骤二、验证正确性:
当数据用户收到云服务器返回的搜索结果{W,F,A,B,C}时,首先要对关键 词的正确性进行验证,由F中找到f1,f2,作如下计算:
用户对自己搜索的关键词的哈希值H2(w1)计算如下:
若w和w1是同一个关键词时,W/f1和相等,说明,搜索结果是正确 的,在此之后,通过签名来验证数据文件地址的正确性和完整性。
将本发明与文献“Verifiable attribute-based keyword search over outsourced encrypted data”(Q.Zheng,Xu,S.Ateniese,G.:Vabks, IACR Cryptology ePrint Archive2013(2013))中的方案进行对比,在本 发明的方案中,首先为数据拥有者和云服务器生成了公私钥对,在发送密文 关键词和搜索口令时,首先使用云服务器的公钥对其再加密,这样有效地防 止了外部攻击者的离线猜测攻击行为。这在对比中是没有涉及到的。另外, 与对比方案对比,对比方案在验证正确性时所进行的操作和云服务器是相同 的,而本发明所用方法具有明显的优势,如表1所示:
表1
BF代表布隆过滤器;这里复杂度考虑的是渐近复杂度,主要是Pair和ET。 Pair代表双线性对运算;ET代表群GT中的指数运算;S代表用户的属性的数 量。和对比方案一样,因为乘法运算和哈希运算比起对运算和指数运算起来, 复杂度较低。所以在讨论复杂度时,忽略了乘法运算和哈希运算。
用户对服务器返回的搜索结果的正确性进行验证:
C语言编程,采用Ubuntu Linux12.04系统。电脑配置为:Intel(R) Core(TM)i3-3240Cpu,2GBRAM。基于对运算的密码算法(PBC)实验室0.514 版本。所有实验结果取的是50次的实验平均值。分别选取了512比特长和 1024比特长的模长度,属性数量范围10到50个。最终,如图2所示,实验 结果显示,本发明的验证方法效率高,具有更强的实用性。
图2示出了本发明的方案和对比方案执行正确性验证的运行时间。相比 对比方案,本发明方案的运行时间不会随着属性数量的增加而变化,进一步 说明了本发明的实用性。图中的双斜线代表着在垂直方向的中断,这里使用 的是ORIGIN8.0软件进行数据分析并作图。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发 明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基 础上,本领域技术人员不需要付出创造性的劳动即可做出的各种修改或变形 仍在本发明的保护范围之内。
机译: 支持优先搜索和逻辑搜索的有效且可验证的多关键字排序可搜索加密方法
机译: 一种基于客户端服务器的基于防虚假,可验证且易于证明的基于公平令牌的游戏的系统及其实现方法
机译: 一种基于客户端服务器的基于防虚假,可验证且易于证明的基于公平令牌的游戏的系统及其实现方法