一种同时支持合取与析取关键词查询的公钥加密方法技术

技术编号:16550046 阅读:32 留言:0更新日期:2017-11-11 13:39
本发明专利技术提供一种同时支持合取与析取关键词查询的公钥加密方法。所述同时支持合取与析取关键词查询的公钥加密方法四个多项式时间算法,分别为keyGen、indexBuild、trapdoor和test算法,其中,keyGen算法是根据选定的安全参数r,产生公钥pk以及私钥sk;indexBuild算法是以公钥pk和W={w1,w2,...wn}作为输入,trapdoor算法接受sk以及查询关键词集合Q={q1,q2,...,qm}和符号sym∈{∨,∧}作为输入;test算法是输入pk,IW以及TQ,如果是合取关键词查询,则判断是否存在

A conjunctive or disjunctive query keywords and the public key encryption method

The invention provides a support conjunctive or disjunctive keyword query and public key encryption method. At the same time, the support of conjunctive or disjunctive query keywords public key encryption method four polynomial time algorithm, respectively keyGen, indexBuild, trapdoor and test algorithm, the keyGen algorithm is selected according to the safety parameters of R, PK and SK public key private key; the indexBuild algorithm is based on public key PK and W = {w1, W2,... Wn} as the input of trapdoor algorithm for SK and query keywords set Q = {q1, Q2, qm}, sym,... And symbol {V}, lambda as input; the test algorithm is input PK, IW and TQ, if it is a conjunctive keyword query, to determine whether there is

【技术实现步骤摘要】
一种同时支持合取与析取关键词查询的公钥加密方法
本专利技术涉及密码学领域,涉及一种可查询加密方法,尤其涉及一种基于多关键词查询的公钥加密方法。
技术介绍
随着计算机技术的飞速发展,数据量的大规模增长,越来越多的企业与个人会通过网络共享彼此有用的数据。特别是在今天,云计算、云服务的大规模发展,越来越多的人会对处于托管模式下的数据的安全性产生疑虑。各地频发的用户隐私泄露已经成为热门话题。这些数据的泄露不仅仅是由于黑客的攻击,也有一大部分是管理人员的监守自盗。为了保证数据的机密性,将数据加密后存储在云端服务器上是解决上述安全问题的一种有效方法。但是,当用户需要寻找包含某个关键字的相关文件时,将会遇到如何在云端服务器上进行密文检索的问题。一种简单的方法是将所有密文数据下载到本地进行解密,然后在明文上进行关键字搜索,但是这种操作需要庞大的传输开销、存储开销和计算开销。为了更好地对密文进行检索,可查询加密(searchableencryption)便应运而生,并在近些年中得到了广泛研究和发展。构建安全高效的支持合取关键词或析取关键词查询的公钥加密方案是该领域中的两个重要问题。尽管支持合取关键词查询的方案进展较为迅速,但是析取关键词查询的研究过程却很很慢。为了支持析取关键词查询,支持内积的谓词加密方案被提出。利用该方案和简单索引构建方法,该方案可以支持在密文上进行多项式,以及合取或析取范式查询。尽管如此,基于谓词加密方案以及简单索引构建方法构造出的析取关键词查询方案在时间和空间复杂度上都属于指数级。另外,如果用户想要同时执行合取和析取关键字查询时,他必须构建析取和合取两种方案,并同时维护两个系统以满足用户需求。基于以上两个缺陷,本专利技术旨在构建一个同时支持合取与析取关键词查询的公钥加密方法,并保证方案的时间与空间复杂度优于之前方案。
技术实现思路
本专利技术为了解决现有技术问题,设计一种同时支持合取与析取关键词查询的公钥加密方法,包括:四个多项式时间算法,分别为keyGen、indexBuild、trapdoor和test算法,其中,keyGen算法是根据选定的安全参数r,产生公钥pk以及私钥sk;indexBuild算法是以公钥pk和一个关键词集合W={w1,w2,…,wn}作为输入,产生一个安全索引IW作为输出;trapdoor算法接受sk以及查询关键词集合Q={q1,q2,…,qm}和符号sym∈{∨,∧}作为输入,输出陷门TQ,在这里m≤n;test算法是输入pk,IW以及TQ,如果是合取关键词查询,则判断是否存在如果存在则输出1,否则输出0;如果是析取关键词查询,则判断集合Q∩W是否为空,如果不为空则输出1,否则输出0。与相关技术相比,本专利技术提供的同时支持合取与析取关键词查询的公钥加密方法不仅支持析取关键词查询,而且同时支持合取关键词查询,并保证方案的时间与空间复杂度优于之前方案。具体实施方式以下详细说明本专利技术。实施例一种同时支持合取与析取关键词查询的公钥加密方法,包括;包括四个多项式时间算法,分别为keyGen、indexBuilf、trapdoor和test算法,其中,keyGen算法是根据选定的安全参数r,产生公钥pk以及私钥sk;indexBuild算法是以公钥pk和一个关键词集合W={w1,w2,…,wn}作为输入,产生一个安全索引IW作为输出;trapdoor算法接受sk以及查询关键词集合Q={q1,q2,…,qm}和符号sym∈{∨,∧}作为输入,输出陷门TQ,在这里m≤n;test算法是输入pk,IW以及TQ,如果是合取关键词查询,则判断是否存在如果存在则输出1,否则输出0;如果是析取关键词查询,则判断集合Q∩W是否为空,如果不为空则输出1,否则输出0。进一步,将关键词集合W和Q分别转换为矩阵M和向量,具体为:对于索引关键词集合W,采用公式(1)构建函数:其中,H1(w1),H1(w2),…,H1(wn)为函数g(x)=0的根,在这里,H1为哈希函数,其输入为关键词,输出为整数,根据这些根采用公式(2)构建矩阵:对于查询关键词集合Q,采用公式(3)构建函数:利用公式(3)构建向量进一步,在四个多项式时间算法中,设定SetupIPE,为支持内积的谓词加密算法(predicateencryptionsupportsinnerproduct,IPE)的四个多项式时间算法,其中,pkIPE和mskIPE为IPE方案中的SetupIPE算法产生的公钥与主私钥,为属性向量,为谓词向量,c为算法EncIPE产生的密文,为KeyGenIPE算法产生的关于的私钥。其包括:步骤一,keyGen(r):利用SetupIPE算法,可以获得pkIPE和mskIPE,该算法设置pk=pkIPE以及sk≤mskIPE,并输出pk与sk;步骤二,indexBuild(W,pk):根据公式(2),该算法产生加密索引IW={c1,c2,…,cn},在这里步骤三,trapdoor(Qsk):给定关键词查询Q={q1,q2,…,qm}和符号sym∈{∨,∧},其中符号∨和∧分别代表析取与合取关键词查询,随后,该算法利用产生tQ,并构建TQ={tQ,sym};步骤四,test(pk,IW,TQ):给定TQ,IW和pk,该算法将面临两种情况:1)如果TQ中的符号sym为∨,该算法进行如下操作:a)选择一个计数器i,并设置i=1;b)如果i>n,则跳到步骤c),否则该算法计算:R=Dec(pk,IW,TQ)如果R=1,则算法输出1并结束,否则算法设置i=i+1并跳到步骤b);c)算法输出0并结束;2)如果TQ中的符号sym为∧,该算法进行如下操作:a)选择一个计数器i,并设置i=1;b)如果i>n,则跳到步骤c),否则该算法计算:R=Dec(pk,IW,TQ)如果R≠1,则算法输出0并结束,否则算法设置i=i+1并跳到步骤b);c)算法输出1并结束。对比例本专利技术提供的一种同时支持合取与析取关键词查询的公钥加密方法与现有的计算方法有着较大区别,功能上更为强大,时间空间复杂度效率更优,具体为:相对于现有的支持析取关键词查询的公钥加密方法,提出方法在功能上不仅支持析取关键词查询,而且同时支持合取关键词查询。此外,在效率上,现有的方法的索引长度,陷门长度以及匹配时间都为O(2n),本技术方案的n为索引关键词个数;而提出方案的索引长度与匹配时间分别为O(n2)与O(m*n),陷门长度为O(m),这里n同上,m为陷门关键词个数。再就是,相对于先前低效的支持合取和析取关键字搜索的公钥加密方案(publickeyencryptionwithconjunctiveanddisjunctivekeywordsearch,PECDK),提出方案在效率上得到极大提升,且更加实际。为了更好地展示提出方案有效性。假设|G|代表群G中的一个元素的长度、|Te|为一次双线性配对操作时间、|TG|为一次群指数操作时间、n为索引关键词个数、m为陷门关键词个数,N为一个大正整数(比如字典中词汇数),对比结果如表1所示:表1:提出方案与先前PECDK方案对比上表中,现有方案在N>n2情况下,提出方案在陷门长度、索引长度、加密时间和匹配时间上较优。而在公钥长度和私钥长度上,本本文档来自技高网
...

【技术保护点】
一种同时支持合取与析取关键词查询的公钥加密方法,其特征在于,包括四个多项式时间算法,分别为keyGen、indexBuild、trapdoor和test算法,其中,keyGen算法是根据选定的安全参数r,产生公钥pk以及私钥sk;indexBuild算法是以公钥pk和一个关键词集合W={w1,w2,...,wn}作为输入,产生一个安全索引IW作为输出;trapdoor算法接受sk以及查询关键词集合Q={q1,q2,...,qm}和符号sym∈{∨,∧}作为输入,输出陷门TQ,在这里m≤n;test算法是输入pk,IW以及TQ,如果是合取关键词查询,则判断是否存在

【技术特征摘要】
1.一种同时支持合取与析取关键词查询的公钥加密方法,其特征在于,包括四个多项式时间算法,分别为keyGen、indexBuild、trapdoor和test算法,其中,keyGen算法是根据选定的安全参数r,产生公钥pk以及私钥sk;indexBuild算法是以公钥pk和一个关键词集合W={w1,w2,...,wn}作为输入,产生一个安全索引IW作为输出;trapdoor算法接受sk以及查询关键词集合Q={q1,q2,...,qm}和符号sym∈{∨,∧}作为输入,输出陷门TQ,在这里m≤n;test算法是输入pk,IW以及TQ,如果是合取关键词查询,则判断是否存在如果存在则输出1,否则输出0;如果是析取关键词查询,则判断集合Q∩W是否为空,如果不为空则输出1,否则输出0。2.根据权利要求1所述的一种同时支持合取与析取关键词查询的公钥加密方法,其特征在于,将关键词集合W和Q分别转换为矩阵M和向量具体为:对于索引关键词集合W,采用公式(1)构建函数:其中,H1(w1),H1(w2),...,H1(wn)为函数g(x)=0的根,在这里,H1为哈希函数,其输入为关键词,输出为整数,根据这些根采用公式(2)构建矩阵:对于查询关键词集合Q,采用公式(3)构建函数:利用公式(3)构建向量3.根据权利要求1所述的一种同时支持合取与析取关键词...

【专利技术属性】
技术研发人员:张钰
申请(专利权)人:信阳师范学院
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1