CN116756185A - 基于同态加密的关键词匿踪查询方法和装置 - Google Patents
基于同态加密的关键词匿踪查询方法和装置 Download PDFInfo
- Publication number
- CN116756185A CN116756185A CN202310461990.8A CN202310461990A CN116756185A CN 116756185 A CN116756185 A CN 116756185A CN 202310461990 A CN202310461990 A CN 202310461990A CN 116756185 A CN116756185 A CN 116756185A
- Authority
- CN
- China
- Prior art keywords
- ciphertext
- keyword
- polynomial
- determining
- query
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 101150060512 SPATA6 gene Proteins 0.000 claims abstract description 64
- 239000013598 vector Substances 0.000 claims description 66
- 238000003860 storage Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 15
- 230000009467 reduction Effects 0.000 claims description 7
- 238000004891 communication Methods 0.000 claims description 4
- 238000004422 calculation algorithm Methods 0.000 description 20
- 238000004364 calculation method Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000012856 packing Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 241000544061 Cuculus canorus Species 0.000 description 5
- 238000010276 construction Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000013479 data entry Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种基于同态加密的关键词匿踪查询方法和装置。所述方法包括:根据待查询关键词,计算哈希序列;根据所述哈希序列中前预设个比特,确定位置索引密文,根据所述哈希序列中连续预设个比特,生成关键词密文;根据所述位置索引密文和所述关键词密文,确定查询结果密文;对所述查询结果密文进行解密,得到所述关键词对应的查询结果。本申请将部分关键词转换为多维索引粗略筛选出可能匹配的关键词所在的位置;再利用剩余的关键词精确检索出所需的关键词对应的数据,相对于现有技术,此方案中的多项式次数更小,意味着同态运算的深度更浅;相当于使用更小更短的多项式代替原方案中次数更高的多项式,该方案的检索和回复的数据量更小。
Description
技术领域
本申请涉及数据查询技术领域,特别是涉及一种基于同态加密的关键词匿踪查询方法和装置。
背景技术
PIR(private information retrieval,匿踪查询)目前广泛应用于关键词查询技术领域,用于客户端向服务端发起查询请求但不向服务端泄露查询的关键词,进而使得服务端在不知道关键词的情况下向客户端返回正确的查询结果。
目前为了保证查询结果的正确性,PIR主要基于整个关键词进行查询,具体方法为客户端先对关键词进行哈希计算,得到哈希序列,再对该哈希序列进行加密,得到可以基于关键词内容进行查询的关键词密文,最后将该密文发送给服务端,进而使得服务端基于该密文进行查询得到查询结果密文,将其发送给客户端。在客户端接收到关键词密文之后,该客户端对该关键词密文进行解密,得到查询结果。
发明内容
有鉴于此,本申请提供一种基于同态加密的关键词匿踪查询方法和装置,本申请将部分关键词转换为多维索引粗略筛选出可能匹配的关键词所在的位置;再利用剩余的关键词精确检索出所需的关键词对应的数据,相对于现有技术,此方案中的多项式次数更小,意味着同态运算的深度更浅;相当于使用更小更短的多项式代替原方案中次数更高的多项式,该方案的检索和回复的数据量更小。
为达到上述目的,本申请主要提供如下技术方案:
第一方面,本申请提供了一种基于同态加密的关键词匿踪查询方法,所述方法包括:
根据待查询关键词,计算哈希序列;
根据所述哈希序列中前预设个比特,确定位置索引密文,根据所述哈希序列中连续预设个比特,生成关键词密文;
根据所述位置索引密文和所述关键词密文,确定查询结果密文;
对所述查询结果密文进行解密,得到所述关键词对应的查询结果。
第二方面,本申请提供了一种基于同态加密的关键词匿踪查询装置,该装置包括:
计算单元,用于根据待查询关键词,计算哈希序列;
第一确定单元,用于根据所述哈希序列中前预设个比特,确定位置索引密文,根据所述哈希序列中连续预设个比特,生成关键词密文;
第二确定单元,用于根据所述位置索引密文和所述关键词密文,确定查询结果密文;
解密单元,用于对所述查询结果密文进行解密,得到所述关键词对应的查询结果。
第三方面,本申请还提供了一种电子设备,所述电子设备包括至少一个处理器、以及与处理器连接的至少一个存储器、总线;其中,处理器、存储器通过总线完成相互间的通信;处理器用于调用存储器中的程序指令,以执行上述第一方面的基于同态加密的关键词匿踪查询方法。
第四方面,本申请提供了一种存储介质,该存储介质用于存储计算机程序,其中,该计算机程序运行时控制该存储介质所在设备执行该第一方面所述的基于同态加密的关键词匿踪查询方法。
借由上述技术方案,本申请提供了一种基于同态加密的关键词匿踪查询方法和装置,根据待查询关键词,计算哈希序列;根据所述哈希序列中前预设个比特,确定位置索引密文,根据所述哈希序列中连续预设个比特,生成关键词密文;根据所述位置索引密文和所述关键词密文,确定查询结果密文;对所述查询结果密文进行解密,得到所述关键词对应的查询结果。本申请将部分关键词转换为多维索引粗略筛选出可能匹配的关键词所在的位置;再利用剩余的关键词精确检索出所需的关键词对应的数据,相对于现有技术,此方案中的多项式次数更小,意味着同态运算的深度更浅;相当于使用更小更短的多项式代替原方案中次数更高的多项式,该方案的检索和回复的数据量更小。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请公开的一种基于同态加密的关键词匿踪查询方法的流程示意图;
图2为本申请公开的一种基于同态加密的关键词匿踪查询装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本申请的示例性实施例。虽然附图中显示了本申请的示例性实施例,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
在阅读本申请实施例之前,首先对本申请所使用的相关技术进行介绍,具体如下:
BFV同态加密算法基于格的ring-LWE问题构造。设密文空间为表示系数在/>中模XN+1的多项式环,N为2的幂。明文空间为/>设/>q除以t向下取整。私钥的空间为/>也就是系数取值为{-1,0,1}的均匀分布。误差的分布χ服从高斯分布。BFV的安全性基于判定性ring-LWE问题:均匀随机选取a←Rq均匀随机选取秘密信息s←R3,随机选取小尺寸误差e←χ,敌手无法区分分布(sa+e,a)和分布(b,a),b←Rq。
BFV.SecKeyGen(1λ):输入安全参数,输出私钥,随机选取s←R3,输出s为私钥。
BFV.PubKeyGen(sk):根据生成的私钥sk=s,生成公钥;随机选取p1←Rq和e←χ;输出公钥pk=(p0,p1)=(-(s·p1+e),p1)。
BFV.RelinKeyGen(sk,w):重线性化密钥生成算法,输出结果为公开参数;两个密文进行同态乘法后新的密文数据项数会增加,使用重线性化密钥降低密文项数;设w=(w0,w1,…,wl)T,w<q,;随机选取r1←Rq l,e←χl,即l维的向量;计算输出重线性化密钥rlk=(r0,r1)=(s2w-sr1+e,r1)。
BFV.Enc(pk,m):加密算法输入消息m和公钥pk,输出密文;随机选取u←R3,e0,e1←χ;计算输出密文ct=(c0,c1)=(Δ·m+up0+e0,up1+e1)。
BFV.Dec(sk,ct):解密算法根据私钥sk=s解密密文,计算输出明文
BFV.Add(ct1,ct2):密文加法算法,设两个密文分别为ct1=(c1,0,c1,1)和ct2=(c2,0,c2,1),同态加法输出新的密文ct3=(c1,0+c2,0,c1,1+c2,1)。
BFV.Mul(ct1,ct2,rlk):密文乘法运算,设两个密文分别为ct1=(c1,0,c1,1)和ct2=(c2,0,c2,1);
第一步计算基本同态乘法密文ct3=(c0,c1,c2):
第二步使用rlk将上述密文约简为两项,最终输出新密文ct4=(c′0,c′1):
and/>
rlk[i][j]表示重线性化密钥rlk的第i维第j项,表示将c2按照基数w展开后wi项对应的系数。
该层次型的同态加密算法已经在开源库SEAL中实现《Simple encryptedarithmetic library—SEAL.https://sealcrypto.org,2017.》。
除上述操作外,一般还支持密文与明文之间的同态加法、密文与明文之间的同态乘法以及替换算法等。
密文与明文的同态加法
BFV.AddConstant(ct1,m2):设ct1=(c1,0,c1,1)为明文m1的密文,则新的密文ct3=(c3,0,c3,1)=(c1,0+Δ·m2,c1,1),为m1+m2的密文。
密文与明文的同态乘法运算
BFV.MulConstant(ct1,m2):设ct1=(c1,0,c1,1)为明文m1的密文,则新的密文ct3=(c3,0,c3,1)=(c1,0·m2,c1,1·m2),为m1·m2的密文。
替换算法
BFV.Sub(ct1,k):设ct1=(c1,0,c1,1)为明文m1的密文,k为奇数,则输出新的密文ct3为m1(Xk)的密文。例如m1=7+X2+2X3,则经过BFV.Sub(ct1,3)的运算之后可得m1(X3)=7+(X3)2+2(X3)3=7+X6+2X9。该算法在SEALPIR方案中用于扩展查询密文。
索引匿踪查询index-pir
设服务端(发送方)的数据库c,具有n条记录分别为[c0,…,cn-1];客户端(接收方)可以指定获取其中任意一个序号i对应的内容ci,i∈[0,n-1];服务端不能得知客户端查询得到的内容。
在不考虑安全要求的情况下,客户端和服务端的协议可以如下实现:
1、客户端构造查询信息:设查询的序号为id∈[0,n-1],客户端构造一个n维的0-1查询向量s,当i≠id时si=0,当i=id时si=1。客户端将查询向量s发送给服务端。
2、服务端接收到向量s后,与其数据库记录向量c进行向量内积运算得到a=c·s=c0·s0+…+cn-1·sn-1;可知a=cid,将回复消息a发送给客户端。
3、客户端接收消息a获得所需的查询内容。
SealPIR
SealPIR是基于同态加密设计的索引PIR(index-pir)。
[1]Angel S,Hao C,Laine K,et al.PIR with Compressed Queries andAmortized Query Processing[C]//2018IEEE Symposium on Security and Privacy(SP).IEEE Computer Society,2018.
以下描述SEALPIR的协议流程和主要算法。
1)客户端构造查询消息:
设服务端的待查询数据条数为n,数据索引方式的维度为d,每个维度的个数为设每个BFV/BGV同态加密方案的明文多项式维度为N,将每个选取向量的元素编码到明文多项式的一个系数上,设每个明文可以容纳的元素个数为2c<N。则每个维度的选取向量需要加密成/>个密文。
为降低客户端查询请求的长度,将数据库的索引方式由一维改变为多维索引。数据库的内容组织方式为一维索引时,即内容数据按照递增的位置依次索引,客户端需要发送长度为n的0-1选取向量。当数据库的内容数据按照d维的超立方体索引时,客户端需要发送的d个长的0-1选取向量,也就是每个维度的选取向量长度是/>例如将待查询数据按照二维正方形矩阵进行索引时,客户端需要确定所需要查询数据的行号和列号,则行和列的选取向量长度都是/>总的发送请求的选取向量的长度为/>远小于一维索引时的n。
构造查询信息的流程:
设查询的索引值为k,将k表示为基数为m的等式k=s0·m0+s1·m1+…+sd-1·md-1,即可计算出每个维度的索引值。
1生成d个长度为m的选取向量,向量元素为0或者1,表明是否选取一个位置,每个向量仅有一个元素为1,其余元素为0。
2计算每个维度的向量需要加密成的密文个数
3对每个维度的选取向量,划分为l个2c长的向量。
4将每个向量编码为次数为2c的多项式的系数。
5将每个多项式作为同态加密方案的明文进行加密。
客户端向服务端发送d×l个密文作为查询请求。
2)服务端操作:
服务端接收到客户端的d×l个密文后,使用上述密文扩展算法将每个密文扩展成2c个明文为0或者1对应的同态加密系统的密文,每l×2c个新的密文对应着1个原始选取向量的m个元素的密文,最终输出的新密文向量就是所有客户端的选取向量的元素的密文。也就是每个维度对应的扩展出的密文向量中仅有查询位置是1的密文,其他均是0的密文。具体实现算法如下图:
该密文扩展算法使用的主要同态密文操作为同态替换HE.Sub(ct1,k),该操作的运算效率比同态乘法高,密文结果的噪音增长小。
服务端获取d×m个选取向量元素的密文后,使用如下算法计算应答消息:
设d个m长的0-1密文向量为oi,j,i∈[0,d-1],j∈[0,m-1];设服务端数据库中的数据为ef,其索引值f∈[0,n-1],索引值表示为以m为基的d维表示方式为f=g0·m0+g1·m1+…+gd-1·md-1,即每个数据可以通过d维索引(g0,…,gd-1)唯一确定。
服务端将密文发送给客户端。
对上述算法的注释:
首先使用一个维度的选取向量的元素乘以与该维度索引值相同的所有数据库元素;对得到的密文数据库元素,按照其他维度的索引值相同的密文元素进行同态累加,此时数据库中该维度的索引值对应的元素已经被累加到一个密文值上。也就是数据库元素的索引被消掉一个维度,数据库元素的密文个数降低m倍。最终仅需输出一个索引位置对应的密文值。
为了加快运算速度,XPIR、SEALPIR等方案使用同态常量乘法HE.MulConstant(oi,j,ef)运算代替同态密文乘法HE.Mul(oi,j,ef)。其做法是将ef视作明文与密文oi,j进行运算,但是ef经过一此运算之后成为同态加密方案的密文,因此尺寸膨胀,无法被容纳在一个同态加密方案的明文中,需要进行切分后,编码到多个明文中。其传输量为一维索引时的Fd -1倍,F为密文对明文尺寸的膨胀因子。
3)客户端解密结果:
客户端接收到服务端发送的密文回应消息,使用其私钥解密得到所查询的消息。
关键词PIR(Keyword-pir)
设服务端(发送方)的数据为关键词和标签信息的配对,设服务端的关键词集合为X,关键词和标签的对应关系(xi,li),i∈[0,|X|-1],每个关键词为长度不超过σ的字符串xi∈{0,1}σ,每个标签为长度不超过l的字符串li∈{0,1}l。
客户端(接收方)可以通过查询关键词获得所查询的标签信息,如果/>获得关键词对应的标签li;如果/>获得⊥。
在不考虑安全属性的情况下,Labeled PSI方案的Keyword-pir设计思路如下:
1、客户端向服务端发送查询关键词
2、服务端本地数据库中的关键词集合X计算插值多项式 构造为f(y)=r·∏(x0-y)…(xD-1-y),该多项式对属于服务端关键词集合X的查询关键词/>的输出结果为0,对不属于服务端本地关键词集合的查询值/>输出随机值。
3、服务端对本地关键词和标签的对应关系(xi,li),i∈[0,|X|-1],构造插值多项式一个构造为g(y)=h(y)+r′·f(y),其中h(y)为对本地关键词和标签的对应插值公式。该多项式对属于服务端本地关键词集合X的查询关键词/>输出对应的标签值li,否则,输出随机值。
4、服务端接收到客户端的查询关键词后,计算输入为/>时的关键词多项式f(y)和标签多项式g(y)的输出,并将计算结果/>和/>发送给客户端。
5、客户端对于收到的消息和/>如果/>则所查询关键词/>取得的标签结果为/>否则服务端不存在所查询关键词/>
Labeled PSI方案
Labeled PSI方案是基于同态加密的关键词查询的PIR(keyword-pir)。
Chen,Hao,et al."Labeled PSI from fully homomorphic encryption withmalicious security."Proceedings of the 2018ACM SIGSAC Conference on Computerand Communications Security.2018.
Labeled PSI方案基于同态密码实现,其主要的特点是在服务端和客户端数据量极端不对称的情况下,方案的通信量非常低。
Labeled PSI方案实现的基本框架如下:
1、客户端向服务端发送使用同态密码加密后的查询关键词
2、服务端接收到密文关键词后,使用密文的同态操作计算多项式和/>并将密文结果回复给客户端。
3、客户端收到密文和/>后,使用同态加密方案的私钥解密两个密文得到明文结果/>和/>如果/>则所查询关键词/>取得的结果为/>否则服务端不存在所查询关键词。
该协议中,服务端使用同态加密特性,在保持查询关键词加密的状态下,同态处理并返回客户端查询的密文结果。
Labeled PSI的具体设计方案如下:
设X表示服务端(服务端)的关键词集合,Y表示客户端(客户端)关键词集合,元素个数|X|远大于|Y|,每个元素的长度为σ;服务端的每个关键词元素对应的标签信息的长度为l。
当客户端的查询个数为1时,该Labeled PSI方案即为PIR方案。当服务端不存在标签信息时,Labeled PSI方案即为PSI方案。
设全同态密码方案代数环的维度为N(N为2的幂),q为密文的模数,t为明文的模数。d为SIMD编码的扩域次数。
为降低关键词多项式和标签多项式的次数,客户端使用布谷鸟哈希函数对查询关键词进行排序,服务端使用三个普通哈希函数对关键词集合进行排序,双方仅对相同桶号的关键词进行查询。设m表示布谷鸟哈希表的容量。服务端使用三个不同的哈希函数分别将其关键词分配到m个桶中,客户端使用布谷鸟哈希方法将其查询关键词无碰撞地分配到m个桶中。
客户端使用BFV同态加密方案的SIMD技术将m个元素作为一个向量,可以将N/d个查询关键词打包到一个F的明文中;为降低服务端的电路深度,客户端额外发送打包明文的幂的密文辅助服务端的多项式计算。客户端将打包后的明文和明文的幂使用同态加密后发送给服务端。
服务端接收到客户端的查询密文后,分别计算密文的关键词多项式和标签多项式;并将结果返回给客户端。为进一步降低服务端计算多项式的次数,服务端将每个桶中的元素划分为多个子集合,设α表示将服务端的数据集合划分的个数,每个子集的元素个数上限为B。
Labeled PSI方案的交互过程如下:
输入:客户端的查询关键词集合Y,数量为NY;服务端的关键词集合X,数量为NX,服务端的每个关键词可以对应标签值,关键词和标签的对应关系为(xi,li)。
输出:客户端获得双方关键词集合的交集Y∩X,以及交集对应的标签值li,
服务端的操作如下:
1.[服务端关键词OPRF]:服务端随机选取OPRF协议的密钥k,经过OPRF协议的运算,服务端获得每个关键词的OPRF输出的哈希值X′={H(Fk(x)),x∈X};H为哈希函数,输出长度为σ=log2(NXNY)+λ,λ表示统计安全参数。
2.[哈希排序]:接收发送使用三个哈希函数H1,H2,H3:{0,1}σ→[m]将所有元素分别分配到m个桶(子集合)中,也就是其哈希输出值作为每个元素插入位置的索引。每个元素分别所属的集合为
3.[选取FHE参数]:双方协商设置同态加密方案的参数(n,q,t,d),d*log2t≥σ。
4.[选取电路深度参数]:双方协商选取划分参数窗口参数w∈{2,22,…,2logB}。
5.[关键词预计算]:
(a)[集合划分]:将每桶元素集合划分为α个子集合,每个子集合至多B个元素;对每个集合划分子集合为/>
(b)[构造关键词多项式]:对每个子集合服务端构造关键词多项式Si,j,使得对每个/>Si,j(x)=0。
(c)[构造标签多项式]:如果服务端的每个关键词对应一个标签值,那么对每个子集合服务端构造标签多项式Pi,j,使得对每个/>Pi,j(x)=l,l为关键词x对应的标签值。
(d)[打包]:将多项式Si,j视为矩阵元素,下标i表示行,对每N/d行视为一个包。对第b包中的每个第j列元素,取每个多项式中第k个系数打包为一个FHE明文对标签多项式Pi,j采取相同的打包方式,得到系数的打包明文/>
客户端的操作
6.[客户端加密查询关键词]
(a)[客户端关键词OPRF]:客户端对每个关键词执行OPRF协议,服务端的秘密输入为密钥k,客户端的秘密输入为关键词集合Y;客户端获得每个元素的OPRF输出Fk(y),设其哈希值集合为Y′={H(Fk(y)):y∈Y}。
(b)[布谷鸟哈希]:客户端对其查询集合Y′使用三个哈希函数组成的布谷鸟哈希进行排序,得到元素的排序表
(c)[打包]:客户端将m个元素的排序表视为向量,对连续的N/d个元素视为一个包,将其打包为一个FHE明文/>
(d)[窗口]:对每个查询关键词包客户端计算/>的第i*wj次幂/>1≤i≤w-1,/>。
(e)[加密]:客户端使用同态加密算法加密每个打包关键词的幂次得到密文/>并发送到服务端。
服务端的操作
7.[服务端的密文计算]:对第b个密文包:
(a)[同态计算所有项的幂]:服务端接收到一组密文{ci,j},同态计算得到多项式的每个项的幂的密文c=(c0,…,cB),使得ck为的同态密文。
(b)[同态计算内积]:对每个打包后的关键词多项式的系数服务端同态计算关键词多项式的结果密文/>
(c)[同态计算标签多项式]:服务端对每个标签多项式的系数计算标签多项式的结果密文/>
(d)服务端将每个包的关键词多项式的结果密文值和标签多项式的结果密文值发送到客户端。
客户端的操作
8.[解密获取结果]:
(a)[解密关键词多项式结果密文并解析]:对第b个包,客户端收到并解密密文zb,1,…,zb,α,得到明文rb,1,…,rb,α,将其解析为N/d个的向量。设r1 *,…,rα *为m个/>元素形成的向量,rj *=r1,j||…||rmd/n,j。对所有的y′∈Y′,如果/>rj *[i]=0,i是y′所在的桶的序号,则输出相应的y∈Y∩X。
(b)[解密标签多项式结果密文并解析]:对标签多项式结果的密文值qb,1,…,qb,α,进行解密后解析得到l1 *,…,lα *。对每个rj *[i]=0,输出对应的标签lj *[i]。
本申请实施例提供了一种基于同态加密的关键词匿踪查询方法,该方法的执行主体为客户端和服务端两者所形成的系统,由于本申请的加密方式要比现有技术中的加密方式要复杂,减小了数据泄露的可能性。其具体执行步骤如图1所示,包括:
101,根据待查询关键词,计算哈希序列。
在本步骤的具体实施方式中,客户端获取用户所指定的关键词,并使用预先设置的哈希函数对该关键词进行计算,得到该关键词对应的哈希序列。
102,根据哈希序列中前预设个比特,确定位置索引密文,根据哈希序列中连续预设个比特,生成关键词密文。
在本申请中,可以基于哈希序列生成包括d个维度,每个维度包括logm个元素的数据序列,进而基于该数据序列确定位置索引密文。具体步骤包括:根据所述哈希序列中前个比特,得到存在d个维度,每个维度存在logm比特的数据序列,其中,m为小于/>的正整数,n为服务端中关键词的数目;对于第j个维度,确定第/>比特到第/> 比特形成的整数再模m的值,将其作为第j个维度索引值,j为大于等于0且小于等于d-1的整数;根据第j个维度索引值,确定位置索引密文。
在实施中,在哈希序列中选取出前个比特,并基于这些数据生成包括d个维度,每个维度包括logm个元素的数据序列。之后,对于每个维度,计算该维度对应的索引值,计算该维度对应的索引值的具体计算方法为:/>其中,j表示第j个维度,int表示对数值取整,mod表示取模处理,vj表示第j个维度的索引值。之后得到每个维度的索引值之后,根据每个维度的索引值,确定位置索引密文。
需要说明的是,基于上述计算方法计算出的索引值为大于等于0小于等于m-1的正整数。
进一步的,本申请中根据第j个维度索引值,确定位置索引密文的具体步骤为:对于每个索引值,根据所述索引值,生成包括m比特的选取向量;将每个维度的选取向量划分为e个N长的分段向量;将每个分段向量编码为同态加密方案的明文多项式的系数,并使用每个分段多项式作为同态加密方案的明文进行加密,得到d×e个密文,得到位置索引密文。
其中,所述选取向量中第i比特为1,其余比特为0,所述i等于所述索引值。N是基于同态加密方案的明文多项式确定的,e为m和N的商值。为明文多项式中的最高次数。
在实施中,可以先生成一个包含m比特,且每个比特均等于0的参考选取向量。对于每个索引值,在该参考选取向量中确定该索引值对应的位置,并将该位置对应的数据设置为1,得到每个索引值对应的选取向量。例如,索引值为3,将该参考选取向量中第4个比特设置为1。
之后,在生成每个索引值对应的选取向量后,会得到d个索引值对应选取向量,即d个选取向量。对于d个选取向量中的每个选取向量,将其划分为e个N长的分段向量。对于每个分段向量,将每个分段向量编码为最高次数项为2N-1的多项式的系数,并生成新的多项式,将其作为同态加密方案的明文进行加密,得到密文,这样便可以得到d×e个密文。
具体的,最高次数项为2N-1的多项式为s0·20+s1·21+…+sN-1·2N-1。
另外,本步骤还提供了一种生成关键词密文的方法,该方法可以生成关键词密文,具体步骤包括:将所述哈希序列中前预设个比特之后的γ长比特串,确定为新的关键词;对所述新的关键词的i次幂进行加密,得到关键词密文,i为大于等于1且小于等于h的整数,h为服务端中每个方格至多包含的数据数目。
设服务端使用d个索引值和新的关键词bi对应两个数据条目的概率小于δ,该统计概率一般设置为/>或者/>则要求/> 则新关键词的长度为/>
103,根据位置索引密文和关键词密文,确定查询结果密文。
在服务端根据位置索引密文和关键词密文确定查询结果密文之前,还需要对服务端具有的关键词和标签进行处理,具体方法为:假设,服务端具有n组关键词和标签的配对关系(ki,ci),i∈[0,n-1]。服务端基于与客户端相同的哈希序列计算方法,对关键词ki进行计算,得到关键词哈希序列xi,这样,服务端便可以生成关键词哈希序列和标签的新的对应关系(xi,ci)。之后服务端基于关键词哈希序列xi确定d维位置索引,每个维度的索引值总数为每个关键词哈希序列和标签对应的位置索引由其关键词的哈希序列的前比特决定,按照/>个比特划分每个关键词哈希序列得到d个整数表示该关键词和标签的位置索引。也就是对一个关键词的第j个维度,j∈[0,d-1],选取xi的第比特到第/>比特形成的整数再模m作为该关键词哈希序列和标签的第j个维度位置索引表示xi的第j个维度的位置索引。
另外,服务端对每个关键词的哈希序列xi取一段连续的γ长的比特串,如位置索引比特串后续的γ长比特串该比特串作为每个数据条目的新的关键词,因此每个关键词可以由位置索引和新关键词唯一确定。设服务端使用d个索引值/>和新的关键词bi对应两个数据条目的概率小于δ,该统计概率一般设置为/>或者/>则要求/>则新关键词的长度为
服务端将所有新关键词bi和标签ci按照d维位置索引进行重新组织。将每个d维索引{p0,…,pd-1},pi∈[0,m-1],i∈[0,d-1]确定的位置叫做一个方格,服务端按照d维位置索引/>将新关键词bi和标签ci放入对应的方格中,该方格中平均数据个数约为n/md,在极小的概率下一些位置的数据个数多余其他位置,设所有方格中的最多数据条数为h。
之后,服务端对每个方格的数据子集生成“关键词多项式”和“标签多项式”。
设一个d维索引值可以确定α个条目组成的数据子集,对此α个数据条目的新关键词与标签之间的对应关系构造“关键词多项式”和“标签多项式”。
关键词多项式的生成方法为:对一个任意输入z,如果z属于该方格的数据子集,则该关键词多项式的输出等于0;否则不为0。则每个方格生成的关键词多项式为pi∈[0,m-1],i∈[0,d-1]。
标签多项式的生成方法为:对一个输入a,如果a属于该方格的数据子集,则该标签多项式的输出等于该新关键词对应的标签 可以通过拉格朗日插值法等方法可求解出每个方格的标签多项式为pi∈[0,m-1],i∈[0,d-1]。
注意该设置中md≤n,d维索引所能索引的位置小于等于服务端数据条目的个数,那么每个d维索引所确定的位置中可能包含多个数据条目。在以往的将索引PIR(index-pir)转化为支持关键词查询的PIR方案中,索引的总量需要远大于服务端的数据条数以使得每个索引中两个数据条目发生碰撞的概率极小,如此会对服务端增加大量额外的计算量,对客户端增加查询数量通信量。
例如,对于二维索引形式,服务端将其数据组织为一个二维表或者树的形式,如下:
服务端应当设置d维索引值的总数使得每个索引值对应的数据条目的最大值保持在一个既定的较小的数值,如此对称多项式和标签多项式的最大次数较小,以便后续的全同态方案可以高效地进行运算。
之后,便可以在服务端接收到客户端发送的位置索引密文和关键词密文后,服务端便可以确定查询结果密文,具体方法为:对所述位置索引密文进行扩展,得到扩展后的密文;对每个方格对应的关键词多项式和标签多项式,使用同态密文操作计算输入为新关键词的密文时的密文结果;对扩展后的密文和md,对所述密文结果运行密文结果约化流程,得到关键词多项式密文结果和标签多项式密文结果;使用两个随机的同态加密方案的明文值,使用同态操作对所述关键词多项式密文结果和所述标签多项式密文结果进行加密,得到第一密文和第二密文,将其确定为查询结果密文。
在上述过程中,可以使用如SealPIR方案中的“密文茫然扩展算法”,或者如下的显然的算法完成:对选取向量元素的密文 生成m长的向量/>其中第i个元素为1,其余元素为0,/>对选取向量密文/>和向量/>进行同态常量乘法运算,再对其结果与明文多项式x-i进行同态常量乘法运算,最终得到第j个维度的第i个位置的密文/>
之后,服务端扩展选取向量后的密文分别为j∈[0,d-1],i∈[0,m-1]。
服务端接收到的新查询关键词幂的密文为<ai>,i∈[1,h]。
服务端的每个方格{p0,…,pd-1},pi∈[0,m-1],i∈[0,d-1]中至多包含h个元素。
对每个方格对应的“关键词多项式”和“标签多项式”
使用同态密文操作计算输入为新关键词的密文<a>时的密文结果/>和/>pi∈[0,m-1],i∈[0,d-1]。
服务端对密文选取比特和md对密文结果/>和/>pi∈[0,m-1],i∈[0,d-1]运行密文结果约化流程。从高维到低维不断约简密文结果的数量,该过程中对每个低维索引确定的密文结果子集与被降维度的轴对应的选取比特的密文进行内积运算。最终只输出一个关键词多项式密文结果和一个标签多项式密文结果。
密文结果约化流程如下:
设d维索引值由{p0,…,pd-1}表示,pi∈[0,m-1],i∈[0,d-1],每个维度pi的取值为[0,m-1]。每个具体索引值{p0,…,pd-1}所确定的多项式密文结果为和
从d维到d-1维的密文结果约化算法为
设密文结果约化流程输出的两个密文为和<ω>,服务端生成两个随机的同态加密方案的明文值r0和r1,使用同态操作生成
/>
将和ω′发送到客户端。
注释:首先使用一个维度的选取向量的元素乘以与该维度索引值相同的所有多项式的输出的密文值;再按照其他维度的索引值相同的密文元素进行同态累加,此时数据库中该维度的索引值对应的元素已经被累加到一个密文值上。也就是索引向量被消掉一个维度,密文个数降低m倍。最终仅需输出两个密文值。
由上述计算过程知,如果客户端的查询的关键词属于服务端关键词集合,则两个关键词对应的索引向量值相等,其生成的新关键词也相等;那么客户端选取向量与服务端每个索引值对应的密文的乘法仅会保留其中一个索引值对应的密文结果,其他密文值均会被置为0的密文。再通过新的关键词即可确认索引向量值所指向的位置的关键词是否完全相等。如果两个新的关键词也相等则最终输出的对称多项式的密文结果为0,标签多项式的密文结果等于服务端关键词对应的内容数据的密文。
104,对查询结果密文进行解密,得到关键词对应的查询结果。
在本步骤的具体实施方式中,所述查询结果中包括第一密文和第二密文,使用预设的私钥对所述第一密文和所述第二密文进行解密,得到解密后的第一密文和解密后的第二密文;判断所述解密后的第一密文是否为0;
如果是,则将所述解密后的第二密文确定为查询结果;如果否,则确定所述服务端不存在待查询关键词对应的查询结果。
例如,客户端收到两个密文和ω′,使用其私钥进行解密,如果/>则Dec(ω′)为所查询关键词对应的内容数据;否则,服务端不存在所查询关键词对应的条目。
在本申请实施例中,根据待查询关键词,计算哈希序列;根据所述哈希序列中前预设个比特,确定位置索引密文,根据所述哈希序列中连续预设个比特,生成关键词密文;根据所述位置索引密文和所述关键词密文,确定查询结果密文;对所述查询结果密文进行解密,得到所述关键词对应的查询结果。本申请将部分关键词转换为多维索引粗略筛选出可能匹配的关键词所在的位置;再利用剩余的关键词精确检索出所需的关键词对应的数据,相对于现有技术,此方案中的多项式次数更小,意味着同态运算的深度更浅;相当于使用更小更短的多项式代替原方案中次数更高的多项式,该方案的检索和回复的数据量更小。
进一步的,作为对上述图1所示方法实施例的实现,本申请实施例提供了一种基于同态加密的关键词匿踪查询装置,由于本申请的加密方式要比现有技术中的加密方式要复杂,减小了数据泄露的可能性。该装置的实施例与前述方法实施例对应,为便于阅读,本实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。具体如图2所示,该装置包括:
计算单元201,用于根据待查询关键词,计算哈希序列;
第一确定单元202,用于根据所述哈希序列中前预设个比特,确定位置索引密文,根据所述哈希序列中连续预设个比特,生成关键词密文;
第二确定单元203,用于根据所述位置索引密文和所述关键词密文,确定查询结果密文;
解密单元204,用于对所述查询结果密文进行解密,得到所述关键词对应的查询结果。
可选的,所述第一确定单元202,还用于:
根据所述哈希序列中前个比特,得到存在d个维度,每个维度存在logm比特的数据序列,其中,m为小于/>的正整数,n为服务端中关键词的数目;
对于第j个维度,确定第比特到第/>比特形成的整数再模m的值,将其作为第j个维度索引值,j为大于等于0且小于等于d-1的整数;
根据第j个维度索引值,确定位置索引密文。
可选的,所述第一确定单元202还用于:
对于每个索引值,根据所述索引值,生成包括m比特的选取向量,其中,所述选取向量中第i比特为1,其余比特为0,所述i等于所述索引值;
将每个维度的选取向量划分为e个N长的分段向量;将每个分段向量编码为同态加密方案的明文多项式的系数,并使用每个分段多项式作为同态加密方案的明文进行加密,得到d×e个密文,得到位置索引密文,其中,N是基于同态加密方案的明文多项式确定的,
可选的,所述第一确定单元202,还用于:
将所述哈希序列中前预设个比特之后的γ长比特串,确定为新的关键词,γ为基于预设规则确定的正整数;
对所述新的关键词的i次幂进行加密,得到关键词密文,i为大于等于1且小于等于h的整数,h为服务端中每个方格至多包含的元素数目。
可选的,所述第二确定单元203还用于:
对所述位置索引密文进行扩展,得到扩展后的密文;
对每个方格对应的关键词多项式和标签多项式,使用同态密文操作计算输入为关键词密文时的密文结果;
对扩展后的密文和md,对所述密文结果运行密文结果约化流程,得到关键词多项式密文结果和标签多项式密文结果;
使用两个随机的同态加密方案的明文值,使用同态操作对所述关键词多项式密文结果和所述标签多项式密文结果进行加密,得到第一密文和第二密文,将其确定为查询结果密文。
可选的,所述查询结果中包括第一密文和第二密文,所述解密单元204还用于:
使用预设的私钥对所述第一密文和所述第二密文进行解密,得到解密后的第一密文和解密后的第二密文;
判断所述解密后的第一密文是否为0;
如果是,则将所述解密后的第二密文确定为查询结果;
如果否,则确定所述服务端不存在待查询关键词对应的查询结果。
进一步的,本申请实施例还提供一种电子设备,所述电子设备包括至少一个处理器、以及与处理器连接的至少一个存储器、总线;其中,处理器、存储器通过总线完成相互间的通信;处理器用于调用存储器中的程序指令,以执行上述图1中所述的基于同态加密的关键词匿踪查询方法。
进一步的,本申请实施例还提供一种存储介质,存储介质用于存储计算机程序,其中,计算机程序运行时控制存储介质所在设备执行上述图1中的基于同态加密的关键词匿踪查询方法。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再一一赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本申请也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本申请的内容,并且上面对特定语言所做的描述是为了披露本申请的最佳实施方式。
此外,存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种基于同态加密的关键词匿踪查询方法,其特征在于,所述方法包括:
根据待查询关键词,计算哈希序列;
根据所述哈希序列中前预设个比特,确定位置索引密文,根据所述哈希序列中连续预设个比特,生成关键词密文;
根据所述位置索引密文和所述关键词密文,确定查询结果密文;
对所述查询结果密文进行解密,得到所述关键词对应的查询结果。
2.根据权利要求1所述的方法,其特征在于,所述根据所述哈希序列中前预设个比特,确定位置索引密文,包括:
根据所述哈希序列中前个比特,得到存在d个维度,每个维度存在logm比特的数据序列,其中,m为小于/>的正整数,n为服务端中关键词的数目;
对于第j个维度,确定第比特到第/>比特形成的整数再模m的值,将其作为第j个维度索引值,j为大于等于0且小于等于d-1的整数;
根据第j个维度索引值,确定位置索引密文。
3.根据权利要求2所述的方法,其特征在于,所述根据第j个维度索引值,确定位置索引密文,包括:
对于每个索引值,根据所述索引值,生成包括m比特的选取向量,其中,所述选取向量中第i比特为1,其余比特为0,所述i等于所述索引值;
将每个维度的选取向量划分为e个N长的分段向量;将每个分段向量编码为同态加密方案的明文多项式的系数,并使用每个分段多项式作为同态加密方案的明文进行加密,得到d×e个密文,得到位置索引密文,其中,N是基于同态加密方案的明文多项式确定的,
4.根据权利要求1所述的方法,其特征在于,所述根据所述哈希序列中连续预设个比特,生成关键词密文,包括:
将所述哈希序列中前预设个比特之后的γ长比特串,确定为新的关键词,γ为基于预设规则确定的正整数;
对所述新的关键词的i次幂进行加密,得到关键词密文,i为大于等于1且小于等于h的整数,h为服务端中每个方格至多包含的元素数目。
5.根据权利要求1所述的方法,其特征在于,所述根据所述位置索引密文和所述关键词密文,确定查询结果密文,包括:
对所述位置索引密文进行扩展,得到扩展后的密文;
对每个方格对应的关键词多项式和标签多项式,使用同态密文操作计算输入为关键词密文时的密文结果;
对扩展后的密文和md,对所述密文结果运行密文结果约化流程,得到关键词多项式密文结果和标签多项式密文结果;
使用两个随机的同态加密方案的明文值,使用同态操作对所述关键词多项式密文结果和所述标签多项式密文结果进行加密,得到第一密文和第二密文,将其确定为查询结果密文。
6.根据权利要求1所述的方法,其特征在于,所述查询结果中包括第一密文和第二密文,所述对所述查询结果密文进行解密,得到所述关键词对应的查询结果,包括:
使用预设的私钥对所述第一密文和所述第二密文进行解密,得到解密后的第一密文和解密后的第二密文;
判断所述解密后的第一密文是否为0;
如果是,则将所述解密后的第二密文确定为查询结果;
如果否,则确定所述服务端不存在待查询关键词对应的查询结果。
7.一种基于同态加密的关键词匿踪查询装置,其特征在于,所述装置包括:
计算单元,用于根据待查询关键词,计算哈希序列;
第一确定单元,用于根据所述哈希序列中前预设个比特,确定位置索引密文,根据所述哈希序列中连续预设个比特,生成关键词密文;
第二确定单元,用于根据所述位置索引密文和所述关键词密文,确定查询结果密文;
解密单元,用于对所述查询结果密文进行解密,得到所述关键词对应的查询结果。
8.根据权利要求7所述的装置,其特征在于,所述第一确定单元,还用于:
根据所述哈希序列中前个比特,得到存在d个维度,每个维度存在logm比特的数据序列,其中,m为小于/>的正整数,n为服务端中关键词的数目;
对于第j个维度,确定第比特到第/>比特形成的整数再模m的值,将其作为第j个维度索引值,j为大于等于0且小于等于d-1的整数;
根据第j个维度索引值,确定位置索引密文。
9.一种电子设备,其特征在于,所述电子设备包括至少一个处理器、以及与处理器连接的至少一个存储器、总线;其中,处理器、存储器通过总线完成相互间的通信;处理器用于调用存储器中的程序指令,以执行权利要求1-6中任意一项所述的基于同态加密的关键词匿踪查询方法。
10.一种存储介质,其特征在于,所述存储介质用于存储计算机程序,其中,所述计算机程序运行时控制所述存储介质所在设备执行权利要求1-6中任意一项所述的基于同态加密的关键词匿踪查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310461990.8A CN116756185A (zh) | 2023-04-26 | 2023-04-26 | 基于同态加密的关键词匿踪查询方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310461990.8A CN116756185A (zh) | 2023-04-26 | 2023-04-26 | 基于同态加密的关键词匿踪查询方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116756185A true CN116756185A (zh) | 2023-09-15 |
Family
ID=87954012
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310461990.8A Pending CN116756185A (zh) | 2023-04-26 | 2023-04-26 | 基于同态加密的关键词匿踪查询方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116756185A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117574435A (zh) * | 2024-01-12 | 2024-02-20 | 云阵(杭州)互联网技术有限公司 | 基于同态加密的多关键词匿踪查询方法、装置及系统 |
-
2023
- 2023-04-26 CN CN202310461990.8A patent/CN116756185A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117574435A (zh) * | 2024-01-12 | 2024-02-20 | 云阵(杭州)互联网技术有限公司 | 基于同态加密的多关键词匿踪查询方法、装置及系统 |
CN117574435B (zh) * | 2024-01-12 | 2024-04-23 | 云阵(杭州)互联网技术有限公司 | 基于同态加密的多关键词匿踪查询方法、装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11843687B2 (en) | Systems, devices, and processes for homomorphic encryption | |
CN108388807B (zh) | 一种支持偏好搜索和逻辑搜索的高效可验证的多关键字排序可搜索加密方法 | |
Lu | Privacy-preserving Logarithmic-time Search on Encrypted Data in Cloud. | |
CN115688167B (zh) | 匿踪查询方法、装置和系统及存储介质 | |
US20090113213A1 (en) | System and method for searching encrypted numerical data | |
CN109740362B (zh) | 一种基于熵编码的密文索引生成与检索方法及系统 | |
CN112270006A (zh) | 电商平台中隐藏搜索模式和访问模式的可搜索加密方法 | |
US11177944B1 (en) | Method and system for confidential string-matching and deep packet inspection | |
US20090138698A1 (en) | Method of searching encrypted data using inner product operation and terminal and server therefor | |
CN112199698A (zh) | 一种健壮的可搜索对称加密方法与系统 | |
CN116756185A (zh) | 基于同态加密的关键词匿踪查询方法和装置 | |
CN107766739B (zh) | 面向加密文本数据的短语检索方法及其装置 | |
CN117150557A (zh) | 一种基于安全多方计算的支持压缩的隐私信息检索方法及系统 | |
Silverman et al. | Timing attacks on NTRUEncrypt via variation in the number of hash calls | |
Hoang et al. | A multi-server oblivious dynamic searchable encryption framework | |
EP3959841B1 (en) | Compression and oblivious expansion of rlwe ciphertexts | |
Ali et al. | Searchable encryption with conjunctive field free keyword search scheme | |
KR101232385B1 (ko) | 대칭키 기반의 암호 생성 및 검색 방법과 그 시스템 | |
KR100951034B1 (ko) | 암호문 크기를 줄이기 위한 공개키 기반의 검색가능암호문생성 방법과, 그에 따른 공개키 기반의 데이터 검색 방법 | |
Moataz et al. | Privacy-preserving multiple keyword search on outsourced data in the clouds | |
Tian et al. | A Privacy-Preserving Hybrid Range Search Scheme Over Encrypted Electronic Medical Data in IoT Systems | |
Blass et al. | Epic: Efficient privacy-preserving counting for mapreduce | |
Bag et al. | A New Leakage Resilient Symmetric Searchable Encryption Scheme for Phrase Search. | |
CN114911851B (zh) | 数据查询方法、装置及存储介质 | |
CN113626485B (zh) | 一种适用于数据库管理系统的可搜索加密方法及系统 |
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 |