一种密文的多关键字分级安全检索方法与流程

文档序号:13736405阅读:440来源:国知局
本发明涉及网络密文检索,具体是一种密文的多关键字分级安全检索方法。
背景技术
:目前,采用分级的多关键字同态加密技术实现密文在安全性、精度和效率上三大综合指标的检索,是目前云环境下的密文检索技术的主要挑战。新型的多关键字分级检索方法在对文档关键字的检索上更有优势:一方面多关键字检索提供了精炼的检索结果;另一方面多关键字检索解决了云存储下用户的隐私与数据安全的问题,同时也是实现高级查询功能的基础。该方法的综合优势体现的前提是云存储服务器作为可信第三方,对于上传的数据没有任何泄露的可能。然而,目前的云存储服务器并不总是可靠的。自云计算诞生之日起,便伴随着数据泄露的安全事件。2016年4月,土耳其发生重大数据泄露,直接导致约近5000万人的信息得到公开。2016年5月,轻博客网站tumblr超过6500万邮箱账号和密码泄露。2016年6月,美国linkedin超过1.67亿个账户被公开销售。2016年12月,京东出现大规模数据泄露,约12g的用户数据信息流出,这些安全威胁不仅严重阻碍了云计算的发展,而且严重阻碍了云数据的高效使用。为了在保护用户隐私的同时,使云数据获得高效的利用,多关键字分级检索技术通过构造可搜索的加密方案,在保护用户数据的前提下,给用户提供有效的检索服务。数据拥有者在上传数据时,首先利用加密方案对原始数据和索引进行加密,然后再上传到云端。检索时,根据用户的查询内容构建查询门限,然后云存储服务器在密文环境下进行相关分数计算,最后根据相关分数得分排序输出计算结果。整个过程中,云存储服务器得到的数据和进行的计算都是在加密环境下进行的。该方案利用向量空间模型构建可搜索索引,使用同态加密算法进行加解密,支持查询结果的分级检索,有效避免了服务器端返回相关度不大的文件,降低了通信开销,也消除了不必要的流量开销。而且既能在效率,安全性和精度上进行密文检索,又能满足用户需求的方案,而目前还少见文献报道。技术实现要素:本发明提供的一种密文的多关键字分级安全检索方法,支持多关键字分级检索的同时保护了用户的查询隐私,增强了多关键字可搜索加密方案的安全性,提高了云环境中多关键字密文检索的效率,减少了数据使用者检索的工作量,提高了文件的查准率。为了达到上述目的,本发明提供一种密文的多关键字分级安全检索方法,该算法包含以下步骤:步骤1、使用同态加密算法生成公私钥:数据拥有者需要将文件集中所有文件上传至云存储服务器,上传之前需要对文件集进行加密,数据拥有者调用keygen生成同态加密算法的公私钥pk,sk;所述的kgen算法指的是同态加密方案中的密钥生成算法;所述的pk指的是同态算法生成的公钥,sk指的是同态算法生成的私钥;步骤2、对文件向量构成可搜索索引:数据拥有者从包含的数据集中提取关键字集合,并且计算每个关键字的词频和逆文件频率,对每个文件生成文件向量,对所有的文件向量构成可搜索索引并使用同态加密算法进行加密生成安全的可搜索索引;所述可搜索索引指的是为文件集合每一个文件中的文件生成一个它所包含的所有关键字的序列。所述的词频指的是某一个关键字在该文件中出现的频率;所述的逆文件频率指的是对一个关键字普遍重要性的度量;(可以由总文件数目除以包含该关键字文件的数目,再将得到的商取对数得到。)所述的同态加密算法指的是允许直接对密文进行操作的加密变换算法。步骤3、将检索请求生成陷门向量:当数据使用者想要检索某些包含特定关键字的文件时,检索请求向量被扩展成陷门向量。数据拥有者使用同态加密算法加密陷门向量,得到安全的陷门向量,最后安全的陷门向量传送至云存储服务器;所述的陷门向量指的是数据使用者利用密钥生成的与他输入的关键字集合相对应的安全门限;步骤4、用户选择前k个相关性最高的文件进行检索:云存储服务器在接收到安全的陷门后计算该文件与该请求的相关性分数的密文,若相关性分数越高,则文件中含有的被检关键字数量越多,云存储服务器返回加密的相关性分数的序列,数据使用者解密相关性分数序列,排序后把前k个分级的文件标识符发送给云存储服务器,然后数据使用者便可以检索到相关的文件;所述的相关性分数指的是文件向量和查询向量的内积;所述的文件标识符指的是唯一的能够标识文档的id符号,此标识符是由服务器提供。(1)在步骤1中,数据拥有者要将文件集上传至云存储服务器,上传之前需要对文件集进行加密,调用keygen生成同态加密算法的公私钥pk,sk的算法为;g=1+kn(2)y=gamodn2(3)y”=z1az2tnmodn2(4)λ=lcm(p-1,q-1)(5)则公钥pk=(y,y’,y”,z1,n),私钥sk=(a,t,λ,λ/t),其中,g指的是算法的基,k是系统参数,p和q是n比特长度的大素数,指的是同态加密方案,包含密钥生成算法,加密算法和解密算法,p,q,n是通过运行获取得到,且满足n=pq,a,k是随机选取的,λ指的是求取其最小公倍数,t指的是λ的任意一个因子,z1,z2∈zn*;其中加密算法enc具体如下:bx=ybmodn2(6)b’x=(y’)bmodn2(7)c1=z1b(r+1)modn2(8)c=bxmtb’x(y”)brmodn2(9)其中r,r1是随机选取的,b∈zn*;其中解密算法dec具体如下:其中m指的是根据解密算法得到的密钥;(2)在步骤2中,数据拥有者首先从包含的数据集中提取关键字集合,并且计算每个关键字的词频和逆文件频率计算公式为:ti,j=tf-idfwj,fi(1≤j≤l)(11)其中tf指的是每个关键字的词频,idf指的是逆文件频率。其次对文件向量构成可搜索索引:构建索引buildindex(c,pk);其中c指的是基于文件的数据集合;对于每个文件fi∈c,数据拥有者生成一个l+1维的文件向量vi=(idi,ti,1,ti,2,…,ti,i),所有的文件向量构成可搜索索引,其计算公式为:i={vi|1≤i≤n}(12)数据拥有者使用同态加密算法加密可搜索索引后生成的安全的可搜索索引为:i'={v'i|1≤i≤n},具体的计算公式为:v’i={id’i,t’i,1,t’i,2,…,t’i,i}(13)id’i=henc(ri,0,idi)(14)t’i,j=henc(ri,j,ti,j)(15)其中,i指的是数据拥有者构建的索引,i'指的是使用同态加密算法加密后生成的安全的可搜索索引,数据拥有者选取一个对称密码算法enc(·),例如aes,对文件集合进行加密,最后加密的文件集合c'={f'1,f'2,...,f'n}和安全索引i'被发送到云存储服务器端。(3)在步骤3中,将检索请求生成陷门向量:当数据使用者发送一个检索请求req={(w’1,w’2,…w’s)丨w’i∈w,1≤s≤l}其计算公式为,调用trapdoorgen算法生成陷门向量:tw=(w1w2…wl)(16)数据使用者使用同态加密算法加密陷门向量,得到安全的陷门向量:最后,安全的陷门向量传送给云存储服务器,云存储服务器当接收到安全的陷门后计算内积,内积的计算公式为:其中vi指的是安全索引,是l+1维向量,指的是安全陷门,是l维向量;(4)在步骤4中,用户选择前k个相关性最高的文件进行检索:云存储服务器在接收到安全的陷门后计算该文件与该请求的相关性分数的密文的计算公式为:其中,q表示需要检索的关键字,fd,t表示包含关键字t的文件的数目,n表示文件总数,|fd|表示文件fd长度;当授权用户发送检索请求时,若此请求也为向量形式时,文件与请求的相关性分数的另一种计算公式为:score=vf·q(20)其中,vf指的是文件向量,q指的是查询向量;云存储服务器把相关性分数的序列ⅱ={(id'1,p1),(id'2,p2),...,(id'n,pn)}发送给数据使用者,数据使用者通过解密获得.ⅱ={(id'1,p'1),(id'2,p'2),...,(id'n,p'n)},(p'i=hdec(sk,pi))。本发明具有以下优点及效果:1、支持多关键字分级检索的同时保护了用户的查询隐私,增强了多关键字可搜索加密方案的安全性。在多数据拥有者共享数据的应用场景下,支持多关键字查询,使用同态加密算法对文件集和可搜索索引进行加解密,而云存储服务器不能获取文件和关键字的密文,这满足了cca2安全性,因此,这满足了加密文件的多关键字检索需求并保护了云存储下用户的隐私和数据安全。2、提高了云环境中多关键字密文检索的效率。通过建立可搜索索引,根据关键字在该文件中的权重从小到大进行排序,这样检索每一个关键字的文件序列是变长的,这在某种程度上能够大大节省存储空间,有利于在文件集合规模较大时提高检索的效率。因此,提高了云环境中多关键字密文检索的效率。3、减少了数据使用者检索的工作量,提高了文件的查准率。数据使用者解密相关性分数序列,排序后把前k个分级的文件标识符发送给云存储服务器,云存储服务器通过分级检索返回的都是相关性较大的文件,然后用户便可以访问相关的文件。因此,极大地优化了查询结果的筛选,保证了用户只会检索到最相关的条目,不会对用户造成不必要的通信和计算负担,提高了文件检索的查准率。附图说明图1是本发明的流程图。具体实施方式以下根据图1,具体说明本发明的较佳实施例。如图1所示,本发明提供一种密文的多关键字分级安全检索方法,该方法包含以下步骤:步骤1、使用同态加密算法生成公私钥:数据拥有者需要将文件集中所有文件上传至云存储服务器,上传之前需要对文件集进行加密,数据拥有者调用keygen生成同态加密算法的公私钥pk,sk。所述的kgen算法指的是同态加密方案中的密钥生成算法;所述的pk指的是同态算法生成的公钥,sk指的是同态算法生成的私钥;步骤2、对文件向量构成可搜索索引:数据拥有者从包含的数据集中提取关键字集合,并且计算每个关键字的词频和逆文件频率,对每个文件生成文件向量,对所有的文件向量构成可搜索索引并使用同态加密算法进行加密生成安全的可搜索索引;所述可搜索索引指的是为文件集合每一个文件中的文件生成一个它所包含的所有关键字的序列。所述的词频指的是某一个关键字在该文件中出现的频率;所述的逆文件频率指的是对一个关键字普遍重要性的度量;(可以由总文件数目除以包含该关键字文件的数目,再将得到的商取对数得到。)所述的同态加密算法指的是允许直接对密文进行操作的加密变换算法。步骤3、将检索请求生成陷门向量:当数据使用者想要检索某些包含特定关键字的文件时,检索请求向量被扩展成陷门向量,数据拥有者使用同态加密算法加密陷门向量,得到安全的陷门向量,最后安全的陷门向量传送至云存储服务器;所述的陷门向量指的是数据使用者利用密钥生成的与他输入的关键字集合相对应的安全门限;步骤4、用户选择前k个相关性最高的文件进行检索:云存储服务器在接收到安全的陷门后计算该文件与该请求的相关性分数的密文,若相关性分数越高,则文件中含有的被检关键字数量越多,云存储服务器返回加密的相关性分数的序列,数据使用者解密相关性分数序列,排序后把前k个分级的文件标识符发送给云存储服务器,然后数据使用者便可以检索到相关的文件;所述的相关性分数指的是文件向量和查询向量的内积;所述的文件标识符指的是唯一的能够标识文档的id符号,此标识符是由服务器提供。下面用一个实例来阐述本方法。假定目前针对对称可搜索加密方案(sse)和改进的多关键字分级的可搜索同态加密方案(mmrse)这两种方案,研究其在不同的关键字数目和文件集合规模的大小来评估二者的性能以及其他的影响其性能的因素,各方案时间复杂度如表1所示。表1时间复杂度执行情况关键字字典10002000300035004000sse时间开销20ms80ms150ms185ms220msmmrse时间开销20ms45ms80ms85ms90ms表1通过不同规模的关键字集合的变化,对比观察两种方案所产生的时间复杂度,传统的服务器分级的时间是指数增长的,而改进的多关键字分级的可搜索同态加密方案生成陷门的时间是线性的,需要的时间是相对较少的。表2生成陷门的时间对比被检索关键字数目10002000300035004000sse时间开销220ms220ms220ms220ms220msmmrse时间开销90ms90ms90ms90ms90ms表2中两种方案在不同的检索关键字数目变化情况下维持原值没有发生任何变化,因为生成陷门的开销主要是方案中向量的维度引起的,mmrse方案中安全陷门的维度和字典中关键字的数目是相等的,所以,关键字的数目对陷门生成的复杂度几乎没有影响。表3相关性分数时间对比(关键字规模为1000)根据表3可看出,在指定关键字集合规模为1000时,在不同规模的文件集合上进行相关性分数计算的时间开销。通过对比可知在文件规模相对较小时mmrse方案的时间相对比sse方案的多,即文件集合规模相对较小时sse方案比较适合用来计算相关性分数。表4相关性分数时间对比(关键字规模为4000)根据表4可看出,当指定关键字规模为4000时,被检索关键字数量的变化并不会影响相关性分数的时间开销问题,相比之下,mmrse方案计算相关性分数的时间比sse方案较少。表明当文件集合规模增长到3500以上后,改进方案的性能将超过服务器端分级的可搜索加密方案。尽管本发明的内容已经通过上述实例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1