CN108768651A - 支持多维区间范围查询的可搜索公钥加密方法 - Google Patents

支持多维区间范围查询的可搜索公钥加密方法 Download PDF

Info

Publication number
CN108768651A
CN108768651A CN201810358310.9A CN201810358310A CN108768651A CN 108768651 A CN108768651 A CN 108768651A CN 201810358310 A CN201810358310 A CN 201810358310A CN 108768651 A CN108768651 A CN 108768651A
Authority
CN
China
Prior art keywords
pos
converted
steps
cnt
follow
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810358310.9A
Other languages
English (en)
Inventor
路松峰
张钰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Search Text Information Technology Co Ltd
Original Assignee
Nanjing Search Text Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Search Text Information Technology Co Ltd filed Critical Nanjing Search Text Information Technology Co Ltd
Priority to CN201810358310.9A priority Critical patent/CN108768651A/zh
Publication of CN108768651A publication Critical patent/CN108768651A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy

Abstract

本发明公开了一种支持多维区间范围查询的可搜索公钥加密方法。本发明主要通过把文档数值转换成属性向量,进而再加密成密文索引数组;把多个查询范围区间[A,B],首先转换成与[0,B]相关的”01*形式的字符串数组,再”转换成与[A,B]相关的具有”01*”形式的字符串数组,再把字符串加密成陷门数组;然后利用对密文索引和陷门数组进行匹配测试来进行安全的区间范围搜索。本发明解决了实际的可搜索加密使用中只能使用关键词查询,无法进行多维查询和区间查询的问题。

Description

支持多维区间范围查询的可搜索公钥加密方法
技术领域
本发明涉及计算机技术中的信息安全领域,更具体的说,本发明涉及一种支持多维区间范围查询的可搜索公钥加密方法。
背景技术
信息检索系统中,用户提交的数据查询请求不仅仅只有关键词查询,还会包括更复杂的查询模式,比如多维查询和区间查询等。例如:在线视频应用中,一个视频数据往往需要用D维向量(t1,t2,...,tD)表示,每一维向量分别表示视频的各维属性,比如用户编号、创建日期、清晰度等。查询请求(20180101≤时间≤20180501)∧(1≤编号≤1000)表示用户需要获取日期和编号属于上述区间内的所有视频。如果视频数据中的属性信息是敏感的,那么尝试使用加密来保护这些数据的隐私性是一种合理的途径。为了对密态数据进行多维范围检索,则必须构造一个支持多维范围查询的公钥加密方案。
在支持多维范围查询的公钥加密方案中,给定维数D,则每个文件会与D个索引值(t1,t2,...,tD)相关联。利用这D个整数值,可以构建与文件相关的加密索引。相应地,用户的查询请求可以表示成D个范围值{[a1,b1],[a2,b2],...,[aD,bD]}。利用这些范围值,可以构造相应的查询陷门。对每一维i∈[1,D],如果有ti∈[ai,bi],则代表文件索引值与查询条件匹配。
在中国发明专利说明书CN201510248964.2中公开了一种基于短语的可搜索对称加密方法,由客户端初始化、生成关键词索引、生成安全索引并上传云端服务器、生成查询陷门并上传云端服务器、云端服务器执行查询并返回结果步骤组成。主要是准对短语进行可搜索加密,没用涉及公钥系统的多维查询。在中国发明专利说明书CN201611005461.3中公开了一种基于密钥协商的多维密文区间查询方法,主要解决现有方法在关系数据库云存储背景下不能同时支持区间密文查询和多维密文查询的问题。其实现方案是在私有云服务器为数据集建立明文索引结构和密文索引结构;用户每次与私有云服务器协商临时会话密钥,发送加密的查询请求和查询范围;私有云服务器根据明文索引结构筛选出数据表位置,再利用密文索引结构在数据表上搜索密文。该发明的应用场景是私有云服务器下的数据库,没有采用可搜索加密技术的安全定义,无法解决安全要求下的公钥加密查询。在中国发明专利说明书CN201710007109.1中公开了一种面向密文云存储的多维区间检索方法与系统,该发明在有效保护数据隐私的同时,可以实现海量密文数据的快速多维区间检索,发明的原理是使用R树为数据构造索引,并提出一种可以隐藏矩形相对位置的相交判定方法,基于该判定方法,云存储系统可以快速搜索R树,且不泄露数据的排序特征、检索条件等。该发明没有设计公钥密码体系下的可搜索加密技术,其安全性无法判定。上述发明的应用场合都与本发明不同,此外本发明提出的方案是可证安全的可搜索加密方案。
发明内容
本发明所要解决的技术问题是现有的公钥加密下多范围查询效率低且缺乏安全性的问题,提出一种利用支持内积的谓词加密技术构建支持多维范围的可搜索公钥加密方法。
本发明为解决上述技术问题采用以下技术方案:
(1)输入安全参数λ,执行算法Setup(λ),生成公钥pk和私钥sk,其中函数Setup是标准的内积谓词加密技术中的密钥生成算法;
(2)输入D个值{t1,t2,...,tD}和公钥pk,对于每一维i∈[1,D],把ti转换成向量然后利用内积谓词加密技术生成索引元素CTi;最后,输出索引Ind={CT1,CT2,...,CTD}。其中把数值ti转换成向量的方法如下:
(3)给定{[a1,b1],[a2,b2],...,[aD,bD]},把每一维的范围值[ak,bk]转换成一组向量其中i∈[1,D],wk是由范围值[ak,bk]转换成的字符串的个数。然后,对于每一个向量利用内积谓词加密技术,执行函数生成陷门元素tki,其中i∈[1,wk],函数KeyGen是标准的内积谓词加密技术中的陷门生成算法。然后输出陷门
(4)输入公钥pk,陷门T和索引Ind,执行Test函数进行多维区间搜索,其方法如下:
对于维度i∈[1,D],如果存在j∈[1,ωi]使得陷门元素tij匹配第i个索引CTi,则测试下一维,即第i+1维。如果对于所有的j∈[1,ωi],所有陷门元素tij都与索引元素CTi不匹配CTi,则结果为不匹配。如果对于所有维i∈[1,D]都有数值ti∈[ai,bi],则结果为匹配。
优选地,所述步骤(2)把数值ti转换成属性向量具体包括如下步骤:
(21)将数值ti写成二进制,并转换成“01”字符串str;设str长度为n,计str的第j个位置的字符为str[j-1];
(22)设置并初始化
(23)对str的每一个位置j,如果有str[j]=0,则将str[j]转换成vsj={α2,α,1}。如果str[j]=1,则将str[j]转换成vsj={β2,β,1},其中α和β为不为0的整数;然后x3(j+1)=vsj[0],x3(j+1)+1=vsj[1],x3(j+1)+2=vsj[2];
(24)输出
优选地,所述步骤(3)其中把范围值转换成向量组的方法如下:该方法分为两个阶段,
(31)第一阶段,将一个区间范围[A,B]转换成一个”01*”字符串,”01*”字符串的含义是包含0,1和*的序列,其中*代表一个通配符。
(32)第二阶段,将第一阶段产生的”01*”字符串换成一组谓词向量,可以通过对每一维应用这个方法来实现多维情况的转换。
进一步优选地,所述第一阶段将区间范围转换成”01*”字符串的方法如下:
设区间范围[A,B]支持的最大长度为T且该方法分为如下两个部分,
第一部分将一个区间范围[0,B]转换成一组”01*”字符串。设b是一个关于B的二进制字符串,b[j]是字符串b的第j位的值,s[i]是由[0,B]转换成的一组”01*”字符串中的第i个,s[i][j]是字符串s[i]的第j位的值,范围[0,B]转换成的”01*”字符串的个数为t,其中i∈[0,t)且j∈[0,n),该部分的转换算法如下所述:
(3101)把数字B转换成二进制字符串b;
(3102)初始化位置值pos=0,计数器cnt=0,临时变量j=0;
(3103)如果pos小于n,则执行步骤(3104),否则执行步骤(3113);
(3104)如果b[pos]=1则执行步骤(3105),否则执行步骤(3111);
(3105)如果j小于等于pos–1,则执行步骤(3106),否则执行步骤(3107);
(3106)s[cnt][j]=b[j],j=j+1;执行步骤(3105);
(3107)s[cnt][pos]=0;j=j+1;
(3108)如果j小于等于n,则执行步骤(3109),否则执行步骤(3110);
(3109)s[cnt][j]=“*”;j=j+1;执行步骤(3108);
(3110)pos=pos+1;cnt=cnt+1;j=0;执行步骤(3112);
(3111)pos=pos+1;
(3112)执行步骤(3103);
(3113)输出s[0],s[1],...,s[cnt-1]。
第二部分将第一部分得到的”01*”字符串转换成关于范围值[A,B]的”01*”字符串,设a是数值A的二进制字符串,a[j]是字符串a的第j位的值,r[i]是由[A,B]转换成的一组”01*”字符串中的第i个,r[i][j]是字符串r[i]的第j位的值,范围[A,B]转换成的”01*”字符串的个数为m,其中i∈[0,m)且j∈[0,n),根据以上定义,该部分的转换方法如下所述:
(3201)输入”01*”字符串组s[0],s[1],...,s[t-1];
(3202)初始化位置值pos=0,计数器cnt=0,临时变量j=0,k=0;
(3203)如果k大于等于字符串数量t,执行步骤(3221);
(3204)如果pos大于等于n则执行步骤(3220);
(3205)如果s[k][pos]=a[pos]则pos=pos+1,然后执行步骤(3220);
(3206)如果s[k][pos]<a[pos]则k=k+1,pos=0,然后执行步骤(3203);
(3207)如果s[k][pos]>a[pos]则执行步骤(3208);
(3208)r[cnt]=s[k];
(3209)k=k+1;pos=0;cnt=cnt+1;然后执行步骤(3203);
(3210)如果s[k][pos]=`*’则执行步骤(3211);
(3211)如果a[pos]=1则pos=pos+1,然后执行步骤(3220);否则执行步骤(3212);
(3212)如果j大于pos-1则执行步骤(3215);
(3213)r[cnt][j]=a[j];j=j+1;
(3214)执行步骤(3212);
(3215)r[cnt][pos]=1;j=j+1;
(3216)如果j大于等于n,则执行步骤(3219);
(3217)r[cnt][j]=`*’;j=j+1;
(3218)执行步骤(3216);
(3219)pos=pos+1;j=0;cnt=cnt+1;
(3220)k=k+1;pos=0;执行步骤(3203)
(3221)输出r[0],r[1],...,r[cnt-1]。
进一步优选地,所述第二阶段将”01*”字符串转换成谓词向量的方法如下:
对于r[i]中的每一个位置j,如果r[i][j]=0,则将r[i][j]转换成{1,-2α,α2}。如果r[i][j]=1,则将r[i][j]转换成{1,-2β,β2};而如果r[i][j]=*,则将r[i][j]转换成{1,-(α+β),αβ}。
优选地,所述步骤(4)的多维区间搜索的方法如下:
(41)设定三个临时变量i=1,j=1,f=0;
(42)如果i大于范围区间数量D,则执行步骤(47);
(43)如果j大于第i个区间范围转换后的字符串个数ωi,则执行步骤(42);
(44)输入参数公钥pk、第i个索引CTi和陷门元素tij,执行陷门匹配测试,如果匹配则设置j=1,i=i+1,然后转到步骤(42);不匹配则设置j=j+1,然后转到步骤(45);
(45)如果j小于等于第i个区间范围转换后的字符串个数ωi,则执行步骤(43);
(46)f=1;
(47)如果f=1,输出不匹配,否则输出匹配。
本发明提出的方法因而可以进行多维范围安全加密和搜索,如果索引ti∈[A,B],则索引ti转换的字符串str必然与[A,B]转换成“01*”字符串组中某个字符串匹配。匹配是指:如果str匹配r[i],那么对每一个位置j,必然有r[i][j]=str[j]或者r[i][j]=‘*’。设str转换成向量为r[i]转换成向量如果str匹配r[i],则从而即可实现多维区间范围可搜索公钥加密。
本发明的有益效果:本发明解决了实际的可搜索加密使用中只能使用关键词查询,无法进行多维查询和区间查询的问题。发明提出的方案可以对日期、数值以及其他具有范围特征的信息进行区间和多维度存储加密和密文搜索。本发明提出的方案是适应安全的,要优于现有方案,因为现有的方案的选择安全性的。本发明的陷门长度较小,索引的长度更小,具有存储空间优势,发明减少了陷门生成时间,进而加速了检索匹配时间,从而提高了密文检索效率,适合数据量较大的情况下具有云计算背景的安全数据访问。
附图说明
图1是本发明的支持多维区间范围查询的可搜索公钥加密方法流程图;
图2是本发明中的数值转换为属性向量的方法流程图;
图3是本发明中的将区间[0,B]转换成一组”01*”字符串的方法流程图;
图4是本发明中的将关于区间[0,B]的”01*”字符串转换成关于区间[A,B]的”01*”字符串的方法流程图;
图5是本发明中的进行多维区间范围查询的方法流程图;
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面将结合发明实施例中的附图,对发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是发明一部分实施例,而非全部的实施例。基于发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于发明保护的范围。
如图1所示,本发明一种支持区间范围查询的可搜索公钥加密方法,其步骤如下:
在步骤101中,输入安全参数λ,执行算法Setup(λ),生成公钥pk和私钥sk,其中函数Setup是标准的内积谓词加密技术中的密钥生成算法。
在步骤102中,输入D个值{t1,t2,...,tD}和公钥pk,对于每一维i∈[1,D],把ti转换成向量然后利用内积谓词加密技术生成索引元素CTi;最后,输出索引Ind={CT1,CT2,...,CTD}。
在步骤103中,给定{[a1,b1],[a2,b2],...,[aD,bD]},把每一维的范围值[ak,bk]转换成一组向量其中i∈[1,D],wk是由范围值[ak,bk]转换成的字符串的个数。然后,对于每一个向量利用内积谓词加密技术,执行函数生成陷门元素tki,其中i∈[1,wk],函数KeyGen是标准的内积谓词加密技术中的陷门生成算法。然后输出陷门
在步骤104中,输入公钥pk,陷门T和索引Ind,执行Test函数进行多维区间搜索。
其中,上述步骤(102)把数值ti转换成向量的方法如图2所示,其步骤如下:
在步骤102-1中,将数值ti写成二进制,并转换成“01”字符串str;设str长度为n,计str的第j个位置的字符为str[j-1];。
在步骤102-2中,设置并初始化
在步骤102-3中对str的每一个位置j,如果有str[j]=0,则将str[j]转换成vsj={α2,α,1}。如果str[j]=1,则将str[j]转换成vsj={β2,β,1},其中α和β为不为0的整数;然后x3(j+1)=vsj[0],x3(j+1)+1=vsj[1],x3(j+1)+2=vsj[2]。
在步骤102-4中输出
上述步骤(103)把范围值转换成谓词向量的方法如下:
该方法分为两个阶段。第一阶段将一个区间范围[A,B]转换成一个”01*”字符串,”01*”字符串的含义是包含0,1和*的序列,其中*代表一个通配符。第二阶段:将第一阶段产生的”01*”字符串换成一组谓词向量。可以通过对每一维应用这个方法来实现多维情况的转换。
其中第一阶段方法描述如下:
设区间范围[A,B]支持的最大长度为T且该方法分为如下两个部分。第一部分将一个区间范围[0,B]转换成一组”01*”字符串。设b是一个关于B的二进制字符串,b[j]是字符串b的第j位的值,s[i]是由[0,B]转换成的一组”01*”字符串中的第i个,s[i][j]是字符串s[i]的第j位的值,范围[0,B]转换成的”01*”字符串的个数为t,其中i∈[0,t)且j∈[0,n),该部分的转换方法,如图3所示,其步骤如下:
(103-101)把数字B转换成二进制字符串b。
(103-102)初始化位置值pos=0,计数器cnt=0,临时变量j=0。
(103-103)如果pos小于n,则执行步骤(103-104),否则执行步骤(103-113)。
(103-104)如果b[pos]=1则执行步骤(103-105),否则执行步骤(103-111)。
(103-105)如果j小于等于pos–1,则执行步骤(103-106),否则执行步骤(103-107)。
(103-106)s[cnt][j]=b[j],j=j+1;执行步骤(103-105)。
(103-107)s[cnt][pos]=0;j=j+1。
(103-108)如果j小于等于n,则执行步骤(103-109),否则执行步骤(103-110)。
(103-109)s[cnt][j]=“*”;j=j+1;执行步骤(103-108)。
(103-110)pos=pos+1;cnt=cnt+1;j=0;执行步骤(103-112)。
(103-111)pos=pos+1。
(103-112)执行步骤(103-103)。
(103-113)输出s[0],s[1],...,s[cnt-1]。第二部分就是将第一部分得到的”01*”字符串转换成关于范围值[A,B]的”01*”字符串。设a是数值A的二进制字符串,a[j]是字符串a的第j位的值,r[i]是由[A,B]转换成的一组”01*”字符串中的第i个,r[i][j]是字符串r[i]的第j位的值,范围[A,B]转换成的”01*”字符串的个数为m,其中i∈[0,m)且j∈[0,n)。其转换方法如图4所示,其步骤如下:
(103-201)输入”01*”字符串组s[0],s[1],...,s[t-1]。
(103-202)初始化位置值pos=0,计数器cnt=0,临时变量j=0,k=0。
(103-203)如果k大于等于字符串数量t,执行步骤(103-221)。
(103-204)如果pos大于等于n则执行步骤(103-220)。
(103-205)如果s[k][pos]=a[pos]则pos=pos+1,然后执行步骤(103-220)。
(103-206)如果s[k][pos]<a[pos]则k=k+1,pos=0,然后执行步骤(103-203)。
(103-207)如果s[k][pos]>a[pos]则执行步骤(103-208)。
(103-208)r[cnt]=s[k]。
(103-209)k=k+1;pos=0;cnt=cnt+1;然后执行步骤(103-203)。
(103-210)如果s[k][pos]=`*’则执行步骤(103-211)。
(103-211)如果a[pos]=1则pos=pos+1,然后执行步骤(103-220);否则执行步骤(103-212)。
(103-212)如果j大于pos-1则执行步骤(103-215)。
(103-213)r[cnt][j]=a[j];j=j+1。
(103-214)执行步骤(103-212)。
(103-215)r[cnt][pos]=1;j=j+1。
(103-216)如果j大于等于n则执行步骤(103-219)。
(103-217)r[cnt][j]=`*’;j=j+1。
(103-218)执行步骤(103-216)。
(103-219)pos=pos+1;j=0;cnt=cnt+1。
(103-220)k=k+1;pos=0;执行步骤(103-203)。
(103-221)输出r[0],r[1],...,r[cnt-1]。
该方法的第二阶段方法描述如下:
该阶段输入第一阶段由[AB]转换而来的一组”01*”字符串r[0],r[1],...,r[cnt-1],将r[i]转换成谓词向量的方法如下:
对于r[i]中的每一个位置j,如果r[i][j]=0,则将r[i][j]转换成{1,-2α,α2}。如果r[i][j]=1,则将r[i][j]转换成{1,-2β,β2}。而如果r[i][j]=*,则将r[i][j]转换成{1,-(α+β),αβ}。
图1中步骤(104)执行Test函数进行多维区间搜索的方法如图5所示,其步骤如下:
(104-1)设定三个临时变量i=1,j=1,f=0;
(104-2)如果i大于范围区间数量D,则执行步骤(104-7);
(104-3)如果j大于第i个区间范围转换后的字符串个数ωi,则执行步骤(104-2);
(104-4)输入参数公钥pk、第i个索引CTi和陷门元素tij,执行陷门匹配测试,如果匹配则设置j=1,i=i+1,然后转到步骤(104-2);不匹配则设置j=j+1,然后转到步骤(104-5);
(104-5)如果j小于等于第i个区间范围转换后的字符串个数ωi,则执行步骤(104-3);
(104-6)f=1;
(104-7)如果f=1输出不匹配,否则输出匹配。
本发明解决了实际的可搜索加密使用中只能使用关键词查询,无法进行多维查询和区间查询的问题。发明提出的方案可以对日期、数值以及其他具有范围特征的信息进行区间和多维度存储加密和密文搜索。本发明提出的方案是适应安全的,要优于现有方案,因为现有的方案的选择安全性的。本发明的陷门长度较小,索引的长度更小,具有存储空间优势,发明减少了陷门生成时间,进而加速了检索匹配时间,从而提高了密文检索效率,适合数据量较大的情况下具有云计算背景的安全数据访问。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.支持多维查询范围的可搜索公钥加密方法,其特征在于:
(1)输入安全参数λ,执行算法Setup(λ),生成公钥pk和私钥sk,其中函数setup是标准的内积谓词加密技术中的密钥生成算法;
(2)输入D个值{t1,t2,...,tD}和公钥pk,对于每一维i∈[1,D],把ti转换成向量然后利用内积谓词加密技术生成索引元素CTi;最后,输出索引Ind={CT1,CT2,...,CTD}。
(3)给定{[a1,b1],[a2,b2],...,[aD,bD]},把每一维的范围值[ak,bk]转换成一组向量其中i∈[1,D],wk是由范围值[ak,bk]转换成的字符串的个数;然后,对于每一个向量利用内积谓词加密技术,执行函数生成陷门元素tki,其中i∈[1,wk],函数KeyGen是标准的内积谓词加密技术中的陷门生成算法;然后输出陷门
(4)输入公钥pk,陷门T和索引Ind,执行Test函数进行多维区间搜索。
2.根据权利要求1所述的加密方法,其特征在于,所述步骤(2)把数值ti转换成属性向量具体包括如下步骤:
(21)将数值ti写成二进制,并转换成“01”字符串str;设str长度为n,计str的第j个位置的字符为str[j-1];
(22)设置并初始化
(23)对str的每一个位置j,如果有str[j]=0,则将str[j]转换成vsj={α2,α,1}。如果str[j]=1,则将str[j]转换成vsj={β2,β,1},其中α和β为不为0的整数;然后x3(j+1)=vsj[0],x3(j+1)+1=vsj[1],x3(j+1)+2=vsj[2];
(24)输出
3.根据权利要求1所述的加密方法,其特征在于,所述步骤(3)其中把范围值转换成向量组的方法如下:该方法分为两个阶段,
(31)第一阶段,将一个区间范围[A,B]转换成一个”01*”字符串,”01*”字符串的含义是包含0,1和*的序列,其中*代表一个通配符;
(32)第二阶段,将第一阶段产生的”01*”字符串换成一组谓词向量,可以通过对每一维应用这个方法来实现多维情况的转换。
4.根据权利要求3所述的加密方法,其特征在于,所述第一阶段将区间范围转换成”01*”字符串的方法如下:
设区间范围[A,B]支持的最大长度为T且该方法分为如下两个部分,
第一部分,将一个区间范围[0,B]转换成一组”01*”字符串。设b是一个关于B的二进制字符串,b[j]是字符串b的第j位的值,s[i]是由[0,B]转换成的一组”01*”字符串中的第i个,s[i][j]是字符串s[i]的第j位的值,范围[0,B]转换成的”01*”字符串的个数为t,其中i∈[0,t)且j∈[0,n),该部分的转换算法如下所述:
(3101)把数字B转换成二进制字符串b;
(3102)初始化位置值pos=0,计数器cnt=0,临时变量j=0;
(3103)如果pos小于n,则执行步骤(3104),否则执行步骤(3113);
(3104)如果b[pos]=1则执行步骤(3105),否则执行步骤(3111);
(3105)如果j小于等于pos–1,则执行步骤(3106),否则执行步骤(3107);
(3106)s[cnt][j]=b[j],j=j+1;执行步骤(3105);
(3107)s[cnt][pos]=0;j=j+1;
(3108)如果j小于等于n,则执行步骤(3109),否则执行步骤(3110);
(3109)s[cnt][j]=“*”;j=j+1;执行步骤(3108);
(3110)pos=pos+1;cnt=cnt+1;j=0;执行步骤(3112);
(3111)pos=pos+1;
(3112)执行步骤(3103);
(3113)输出s[0],s[1],...,s[cnt-1]。
第二部分,将第一部分得到的”01*”字符串转换成关于范围值[A,B]的”01*”字符串,设a是数值A的二进制字符串,a[j]是字符串a的第j位的值,r[i]是由[A,B]转换成的一组”01*”字符串中的第i个,r[i][j]是字符串r[i]的第j位的值,范围[A,B]转换成的”01*”字符串的个数为m,其中i∈[0,m)且j∈[0,n),根据以上定义,该部分的转换方法如下所述:
(3201)输入”01*”字符串组s[0],s[1],...,s[t-1];
(3202)初始化位置值pos=0,计数器cnt=0,临时变量j=0,k=0;
(3203)如果k大于等于字符串数量t,执行步骤(3221);
(3204)如果pos大于等于n则执行步骤(3220);
(3205)如果s[k][pos]=a[pos]则pos=pos+1,然后执行步骤(3220);
(3206)如果s[k][pos]<a[pos]则k=k+1,pos=0,然后执行步骤(3203);
(3207)如果s[k][pos]>a[pos]则执行步骤(3208);
(3208)r[cnt]=s[k];
(3209)k=k+1;pos=0;cnt=cnt+1;然后执行步骤(3203);
(3210)如果s[k][pos]=`*’则执行步骤(3211);
(3211)如果a[pos]=1则pos=pos+1,然后执行步骤(3220);否则执行步骤(3212);
(3212)如果j大于pos-1则执行步骤(3215);
(3213)r[cnt][j]=a[j];j=j+1;
(3214)执行步骤(3212);
(3215)r[cnt][pos]=1;j=j+1;
(3216)如果j大于等于n则执行步骤(3219);
(3217)r[cnt][j]=`*’;j=j+1;
(3218)执行步骤(3216);
(3219)pos=pos+1;j=0;cnt=cnt+1;
(3220)k=k+1;pos=0;执行步骤(3203);
(3221)输出r[0],r[1],...,r[cnt-1]。
5.根据权利要求3所述的加密方法,其特征在于,所述第二阶段将”01*”字符串转换成谓词向量的方法如下:
对于r[i]中的每一个位置j,如果r[i][j]=0,则将r[i][j]转换成{1,-2α,α2}。如果r[i][j]=1,则将r[i][j]转换成{1,-2β,β2};而如果r[i][j]=*,则将r[i][j]转换成{1,-(α+β),αβ}。
6.根据权利要求1所述的加密方法,其特征在于,所述步骤(4)的多维区间搜索的方法如下:
(41)设定三个临时变量i=1,j=1,f=0;
(42)如果i大于范围区间数量D,则执行步骤(47);
(43)如果j大于第i个区间范围转换后的字符串个数ωi,则执行步骤(42);
(44)输入参数公钥pk、第i个索引CTi和陷门元素tij,执行陷门匹配测试,如果匹配则设置j=1,i=i+1,然后转到步骤(42);不匹配则设置j=j+1,然后转到步骤(45);
(45)如果j小于等于第i个区间范围转换后的字符串个数ωi,则执行步骤(43);
(46)f=1;
(47)如果f=1输出不匹配,否则输出匹配。
CN201810358310.9A 2018-04-20 2018-04-20 支持多维区间范围查询的可搜索公钥加密方法 Pending CN108768651A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810358310.9A CN108768651A (zh) 2018-04-20 2018-04-20 支持多维区间范围查询的可搜索公钥加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810358310.9A CN108768651A (zh) 2018-04-20 2018-04-20 支持多维区间范围查询的可搜索公钥加密方法

Publications (1)

Publication Number Publication Date
CN108768651A true CN108768651A (zh) 2018-11-06

Family

ID=64011297

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810358310.9A Pending CN108768651A (zh) 2018-04-20 2018-04-20 支持多维区间范围查询的可搜索公钥加密方法

Country Status (1)

Country Link
CN (1) CN108768651A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109672525A (zh) * 2018-12-14 2019-04-23 华中科技大学 一种具有高效前向索引的可搜索公钥加密方法及系统
CN110765238A (zh) * 2019-10-12 2020-02-07 北京字节跳动网络技术有限公司 数据加密查询方法及装置
WO2022099893A1 (zh) * 2020-11-10 2022-05-19 杭州趣链科技有限公司 数据查询方法、装置、系统以及数据集处理方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105681280A (zh) * 2015-12-29 2016-06-15 西安电子科技大学 一种云环境中基于中文的可搜索加密方法
CN103345526B (zh) * 2013-07-22 2016-12-28 武汉大学 一种云环境下高效的隐私保护密文查询方法
CN106875325A (zh) * 2017-02-14 2017-06-20 四川理工学院 一种可搜索图像加密算法
CN107273467A (zh) * 2017-06-06 2017-10-20 南京搜文信息技术有限公司 一种支持可搜索加密的安全索引结构及其构造方法
CN107342863A (zh) * 2017-06-17 2017-11-10 信阳师范学院 一种同时支持合取与析取关键词查询的公钥加密方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103345526B (zh) * 2013-07-22 2016-12-28 武汉大学 一种云环境下高效的隐私保护密文查询方法
CN105681280A (zh) * 2015-12-29 2016-06-15 西安电子科技大学 一种云环境中基于中文的可搜索加密方法
CN106875325A (zh) * 2017-02-14 2017-06-20 四川理工学院 一种可搜索图像加密算法
CN107273467A (zh) * 2017-06-06 2017-10-20 南京搜文信息技术有限公司 一种支持可搜索加密的安全索引结构及其构造方法
CN107342863A (zh) * 2017-06-17 2017-11-10 信阳师范学院 一种同时支持合取与析取关键词查询的公钥加密方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
QIANG TANG ECT.: ""Public Key Encryption Supporting Plaintext Equality Test and User-Specified Authorization"", 《SECURITY COMM.NETWORKS》 *
张钰: ""支持多关键词查询的公钥加密方案研究"", 《中国博士学位论文全文数据库信息科技辑(月刊)》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109672525A (zh) * 2018-12-14 2019-04-23 华中科技大学 一种具有高效前向索引的可搜索公钥加密方法及系统
CN110765238A (zh) * 2019-10-12 2020-02-07 北京字节跳动网络技术有限公司 数据加密查询方法及装置
WO2022099893A1 (zh) * 2020-11-10 2022-05-19 杭州趣链科技有限公司 数据查询方法、装置、系统以及数据集处理方法

Similar Documents

Publication Publication Date Title
Zhang et al. PIC: Enable large-scale privacy preserving content-based image search on cloud
CN104765848B (zh) 混合云存储中支持结果高效排序的对称可搜索加密方法
CN106951411B (zh) 一种云计算中保护数据隐私的快速多关键词语义排序搜索方法
Fu et al. Smart cloud search services: verifiable keyword-based semantic search over encrypted cloud data
CN108647529A (zh) 一种基于语义的多关键词排序搜索隐私保护系统及方法
CN103927340B (zh) 一种密文检索方法
Chen et al. EliMFS: achieving efficient, leakage-resilient, and multi-keyword fuzzy search on encrypted cloud data
Wang et al. Generalized pattern matching string search on encrypted data in cloud systems
CN103970889A (zh) 一种中英文关键词模糊搜索的安全云盘
CN109885650B (zh) 一种外包云环境隐私保护密文排序检索方法
CN108768651A (zh) 支持多维区间范围查询的可搜索公钥加密方法
CN106980796A (zh) 云环境下基于mdb+树的多域连接关键词的搜索方法
CN110134718A (zh) 一种基于属性加密的支持多关键字的模糊搜索方法
Cuzzocrea et al. Effective and efficient skyline query processing over attribute-order-preserving-free encrypted data in cloud-enabled databases
Boucenna et al. Secure inverted index based search over encrypted cloud data with user access rights management
Abduljabbar et al. EEIRI: Efficient encrypted image retrieval in IoT-cloud
Mittal et al. Privacy preserving synonym based fuzzy multi-keyword ranked search over encrypted cloud data
CN108549701A (zh) 云环境加密外包数据语义扩展搜索方法及系统
Cuzzocrea et al. An effective and efficient technique for supporting privacy-preserving keyword-based search over encrypted data in clouds
Wang et al. A privacy-preserving fuzzy keyword search scheme over encrypted cloud data
CN106874379A (zh) 一种面向密文云存储的多维区间检索方法与系统
Gao et al. Secure approximate nearest neighbor search over encrypted data
Strizhov Towards a practical and efficient search over encrypted data in the cloud
Wang et al. An effective verifiable symmetric searchable encryption scheme in cloud computing
Indhuja et al. A multi-keyword ranked search scheme over encrypted based on hierarchical clustering index

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20181106

WD01 Invention patent application deemed withdrawn after publication