CN107291861B - 一种面向加密图的带约束近似最短距离查询方法 - Google Patents
一种面向加密图的带约束近似最短距离查询方法 Download PDFInfo
- Publication number
- CN107291861B CN107291861B CN201710436415.7A CN201710436415A CN107291861B CN 107291861 B CN107291861 B CN 107291861B CN 201710436415 A CN201710436415 A CN 201710436415A CN 107291861 B CN107291861 B CN 107291861B
- Authority
- CN
- China
- Prior art keywords
- vertex
- cost
- key
- encryption
- encrypted
- 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.)
- Active
Links
Images
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/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
Abstract
本发明提出一种面向加密图的带约束近似最短距离查询方法。带约束最短距离查询是一种基本的图查询原语,它在给定起始源点、目的地点以及代价阈值,在图上查找从起始源点到目的地点的不超过代价阈值的最短距离。本发明提出的方法利用了一种基于树的密文比较协议,并且充分利用了对称密码学原语,使之非常高效。通过使用该发明,图拥有者能够在图数据外包到云端服务器之前,首先对图数据进行加密来保障其数据隐私,而后,能够在加密图上进行带约束最短距离查询。
Description
技术领域
本发明涉及一种面向加密图的带约束近似最短距离查询方法,属于云计算安全领域。
背景技术
近年来,基于图结构的应用蓬勃发展,如在线社交网络图、城市道路交通图、web图、生物网络图以及通信网络图。因此,在工业界和学术界产生了诸多管理、查询、分析图数据的系统。同时,随着云计算的发展,图数据持有者期望将图数据外包到云端,以节约本地的存储和计算成本。然而,由于云服务器不可信,这带来了严重的隐私问题,因为云端服务器能够窃取用户的图数据敏感信息。为了克服这种隐私泄露问题,一种直观的解决方案是首先将图数据进行加密,然后再将其外包到云端服务器。然而不幸的是,加密操作使得图数据的有效利用成为了一个棘手的难题,因为在加密数据上很难执行在明文图上的一些查询操作。
最短距离查询作为一种最基本的图查询操作,它在给定源点和目的地点时,在图上寻找两点之间的最短距离。目前,已经有不少有价值的工作能够支持在图上执行隐私保护的最短距离查询操作。这些方法通常采用了一种新颖的被称为距离预言机的数据结构来回答任意两个图顶点的查询。
然而,在实际应用中,用户通常在进行最短距离查询时需要考虑其他额外的约束。例如,在城市交通道路上,用户期望知道在交通费不超过一定限额时,从当前位置到目的地点的最短交通时间(或最短交通距离)。这种问题可以被归类到带约束的最短距离查询问题。在带约束最短距离查询方面已经都大量的研究工作,不过这些工作全部关注于非加密图上的查询。这些方法在执行带约束最短距离查询时涉及到诸多复杂操作,倘若这些操作不经过特殊的设计,则无法应用到加密图上。此外,针对已存在的加密图上的最短距离查询方案,由于其不能在云服务器端执行代价约束过滤操作,因此也不能够应用到带约束最短距离查询的语境中。
发明内容
为了实现加密图上的带约束最短距离查询,本发明充分利用了对称密码学技术,在很好的保证了查询的高效性的同时完整的给出了在加密图上进行带约束最短距离查询的方法。
本发明关注的图为有向图,具有一个顶点集和边集。每一条边具有两个权重,为了后续描述方便,现考虑一个权重为距离,另外一个权重为代价,也即约束条件。带约束最短距离查询就是寻找两点之间,满足代价约束的最短距离。
本发明关联的系统模型涉及两个实体对象:用户和云服务器。
本发明的核心工作流程如下:
步骤1:用户端建立安全的图索引。
步骤1.1预先通过已有的方法对输入图建立非加密两跳覆盖标签索引。
非加密的图索引包含两部分,一部分是out_label标签集,一部分是in_label标签集。对于每一个顶点u,都关联一个out_label标签集合和一个in_label标签集合。out_label标签集合中的元素(顶点υ,距离d,代价c)对象表示从顶点u到顶点υ的距离为d,代价为c。in_label标签集合中的元素(顶点υ,距离d,代价c)对象表示从顶点υ到顶点u的距离为d,代价为c。
步骤1.2给定安全参数,随机生成两个二进制比特串作为安全的加密密钥K1和K2。
步骤1.3由加密密钥K1和K2生成用来加密图上距离权重的密钥Kd和加密图上代价的密钥Kc。密钥Kd和Kc的生成采用密码学上带密钥的伪随机函数。其中,Kd是通过以K2为密钥,以K1拼接数字1作为输入来生成;Kc是通过以K2为密钥,以K1拼接数字2作为输入来生成。
步骤1.4初始化两个字典Iout和Iin。
其中,Iout与out_label标签集对应,用来存储加密out_label标签集索引的结果;Iin与in_label标签集对应,用来存储加密in_label标签集索引的结果。
步骤1.5针对输入图中的每一个顶点u,初始化一个计数器ω为0,并且初始化用来加密顶点u对应的out_label标签集和in_label标签集索引对象的子密钥Sout,u、Tout,u、Sin,u、Tin,u。初始化子密钥过程通过密码学上的伪随机函数来实现,其中,子密钥Sout,u是以K2为密钥,顶点u拼接数字1为输入来生成;子密钥Tout,u是以K2为密钥,顶点u拼接数字2为输入来生成;子密钥Sin,u是以K2为密钥,顶点u拼接数字3为输入来生成;子密钥Tin,u是以K2为密钥,顶点u拼接数字4为输入来生成;
针对顶点u,执行步骤1.6、1.7和1.8。
步骤1.6构建加密顶点u对应的out_label标签集索引。
针对out_label标签集索引中的每一个对象(顶点υ,距离d,代价c),执行下列子步骤:
步骤1.6.1使用密码学上的带密钥伪随机函数加密顶点υ,得到的输出结果作为加密后的顶点描述符V。加密过程使用密钥K2,且以顶点υ拼接数字0作为输入。
步骤1.6.2计算加密距离和代价。
针对代价c,使用保序加密算法加密,以Kc为密钥,得到加密结果Cu,v。
步骤1.6.3将子步骤1.6.1和1.6.2中得到的加密的顶点描述符V,加密的距离加密的距离以及加密的代价Cu,v进行拼接,得到结果 这里的符号“||”表示数据拼接。将该结果与对应的密文掩码进行异或操作。密文掩码利用伪随机函数来生成,其中Sout,u为输入密钥,计数器ω的值为输入。
最后,将异或操作得到的结果存储到字典Iout中。其中,存储的位置是通过利用密码学上的伪随机函数计算得到。这里,以Tout,u为输入密钥,以计数器ω的值为输入。
步骤1.7加密顶点u对应的in_label标签集索引。
针对in_label标签集索引中的每一个对象(顶点υ,距离d,代价c),执行下列子步骤:
步骤1.7.1使用密码学上的带密钥伪随机函数加密顶点υ,得到的输出结果作为加密后的顶点描述符V。加密过程使用密钥K2,且以顶点υ拼接数字0作为输入。
步骤1.7.2计算加密距离和代价。
针对代价c,使用保序加密算法加密,以Kc为密钥,得到加密结果Cu,v。
步骤1.7.3将子步骤1.7.1和1.7.2中得到的加密的顶点描述符V,加密的距离加密的距离以及加密的代价Cuv进行拼接,得到结果 这里的符号“||”表示数据拼接。将该结果与对应的密文掩码进行异或操作。密文掩码利用伪随机函数来生成,其中Sin,u为输入密钥,计数器ω的值为输入。
最后,将异或操作得到的结果存储到字典Iin中。其中,存储的位置是通过利用密码学上的伪随机函数计算得到。这里,以Tin,u为输入密钥,以计数器ω的值为输入。
步骤1.8将计数器ω的值增加1。
步骤1.9输出字典Iout和Iin作为安全的加密图索引。针对原始输入图,采用任意的加密算法进行加密,如AES算法。
步骤2:将加密的图索引和加密的图外包到云服务器端。
步骤3:生成用户查询令牌。
用户的查询包括起始点,目标点,代价约束值,期待服务器返回结果数量。对每一个这样的用户查询,通过下列子步骤生成安全的查询令牌:
步骤3.1利用密码学上的伪随机函数生成查询子密钥Sout,s、Tout,s、Sin,t、Tin,t、Kc。
其中,子密钥Sout,s的生成以K2为密钥,以起始点拼接数字1为输入。
其中,子密钥Tout,s的生成以K2为密钥,以起始点拼接数字2为输入。
其中,子密钥Sin,t的生成以K2为密钥,以目标点拼接数字3为输入。
其中,子密钥Tin,t的生成以K2为密钥,以目标点拼接数字4为输入。
其中,子密钥Kc的生成以K2为密钥,以密钥K1拼接数字2为输入。
步骤3.2构建代价约束树
对于给定的查询代价约束值θ,使用密钥Kc构建具有指定深度的代价约束树Tθ。代价约束树中的节点分别是θ/2,θ/4,3θ/4等一系列有规则值的加密密文。该树中每一个节点(圆圈表示的节点)的值为保序加密算法密文,该过程用密钥Kc进行加密。
步骤3.3假设设置返回结果数量为R,那么输出结果(Sout,s,Tout,s,Sin,t,Tin,t,Tθ,R)作为用户的查询令牌。
步骤4:云服务器端利用查询算法回答用户查询。
步骤4.1获得查询起始点对应的索引元素集合。
初始化一个集合Ls,用于存储起始点对应的索引元素。初始化一个计数器ω的值为0。
步骤4.2根据步骤1.6.3相同的密码学上的伪随机函数,以用户查询令牌中的Tout,s为密钥,计数器ω的值为输入,得到输出,以该输出的值为位置索引,在字典Iout中判断是否存在对应的值。如果不存在,跳转至步骤4.4。否则,执行步骤4.3:
步骤4.3根据步骤1.6.3相同的密码学上的伪随机函数,以用户查询令牌中的Sout,s为密钥,计数器ω的值为输入,得到起始点对应的密文掩码。然后使用该掩码与上述字典中对应的值进行异或操作,得到最初的加密密文,也即这里的符号“||”表示数据拼接。将该结果加入到集合Ls中。更新计数器ω,使其值增加1。转向执行步骤4.2。
步骤4.4获得查询目标点对应的索引元素集合。
初始化一个集合Lt,用于存储起始点对应的索引元素。初始化一个计数器ω的值为0。
步骤4.5使用同步骤1.7.3相同的密码学上的伪随机函数,以用户查询令牌中的Tin,t为密钥,计数器ω的值为输入,得到输出,以该输出的值为位置索引,在字典Iin中判断是否存在对应的值。如果不存在,跳转至步骤4.7。否则,执步骤4.6:
步骤4.6根据步骤1.7.3相同的密码学上的伪随机函数,以用户查询令牌中的Sin,t为密钥,计数器ω的值为输入,得到起始点对应的密文掩码。然后使用该掩码与上述字典中对应的值进行异或操作,得到最初的加密密文,也即这里的符号“||”表示数据拼接。将该结果加入到集合Lt中。更新计数器ω,使其值增加1。转向执行步骤4.5。
步骤4.7初始化一个集合Y。对每一个既在Ls又在Lt中的加密的顶点描述符v,云服务器利用代价约束树Tθ来执行代价约束过滤操作。对于满足代价约束条件的元素,添加到集合Y中,对于无法确定是否满足代价约束的元素,也添加到集合Y中。
基于加密的代价值判断其是否满足代价约束的过程如下述子步骤,考虑两个保序加密的代价密文Cs,v和Cv,t,分别基于代价约束树进行类似二叉搜索的操作:
步骤4.7.1初始化一个计数器ω的值为1以及两个空二进制串cx和cy。
步骤4.7.2如果计数器ω的值超过代价约束树Tθ的深度,或者已能够确定Cs,v+Cv,t与代价约束值的大小关系,则转步骤4.7.1进而迭代判断下一个代价对,否则转步骤4.7.3。
步骤4.7.3针对Cs,v,访问代价约束树Tθ的第ω层,如果Cs,v大于当前节点值,则对cx拼接“1”,转向当前节点的右子树。否则,则对cx拼接“0”,转向当前节点的左子树。
步骤4.7.4针对Cv,t,访问代价约束树Tθ的第ω层,如果Cv,t大于当前节点值,则对cy拼接“1”,转向当前节点的右子树。否则,则对cy拼接“0”,转向当前节点的左子树。
步骤4.7.5如果cx和cy的和大于等于2w,则丢弃掉该代价对,并转向步骤4.7.1,判断下一个代价对。否则,执行步骤4.7.6。
步骤4.7.6如果cx和cy的和小于等于2w-2,则将该代价对加入到集合Y。并转向步骤4.7.1,判断下一个代价对。否则,执行步骤4.7.7。
步骤4.7.7将计数器ω的值增加1。转向步骤4.7.2。
步骤4.8初始化一个集合W。对每一个在集合Y中的元素对象,云服务器执行距离过滤操作,将那些具有更小距离的元素加入到集合W中,对于那些无法判断的元素,也添加到集合W中。距离过滤操作基于下述数学规则:
假设对应距离对(A,B)和(C,D),如果A≥C且B≥D,那么A+B≥C+D;如果A≥D且B≥C,那么A+B≥C+D。
步骤4.9云服务器端随机从集合W中挑选用户查询令牌指定的R个结果返回给用户。
步骤5:用户解密获得满足代价约束的最短距离。
用户利用密钥Kd解密每一个云服务器返回的距离对得到解密后的结果(ds,v,dv,t),然后选取最小的ds,v+dv,t作为最终的查询结果。其中,子密钥Kd是利用密码学上的伪随机函数,以K2为密钥,以密钥K1拼接数字1位输入得到的输出结果。
有益效果
本发明充分利用了对称密码学技术,鉴于对称密码学技术固有的高效属性,使得本发明提出的加密图上的带约束最短距离查询方案在有效地保护图隐私的情况下,仍然具有极高的查询效率。
本发明提出的加密图上的带约束近似最短距离查询方法,能够应用于云环境下,在保证图数据隐私的同时,保留图查询操作的功能。
附图说明
图1.系统模型图;
图2.代价约束树图;
图3.输入示例有向图;
图4Δout加密结果;
图5Δin加密结果;
具体实施过程
本发明的具体系统模型如图1所示。本发明查询过程中涉及的代价约束树如图2所示。
本发明能够实现安全的图数据外包功能,能够基于加密的图数据实现带约束近似最短距离查询功能。
根据步骤1,用户端建立安全的图索引:假设用户具有如图3描述的输入有向图G,图G具有5个顶点,分别是a、b、c、d、e。每条边上标注有对应的距离d和代价c。例如顶点a和顶点b之间的边上的权重d=2和c=3分别表示从顶点a和到顶点b的距离是2,代价是3。
然后,如步骤1.1所述,利用已有的方法对输入图处理,获得对应的非加密两跳覆盖标签索引,具体索引结构如下表1和表2所示。表中每一行Δout(u)中的元素(v,d,c)表示从顶点u到顶点v的距离为d,代价为c;表中每一行Δin(u)中的元素(v,d,c)表示从顶点v到顶点u的距离为d,代价为c;
表1示例图G对应的两跳覆盖标签索引Δout
Δ<sub>out</sub>(a) | (a,0,0) | (b,5,3) | (e,5,1) | (e,3,7) |
Δ<sub>out</sub>(b) | (b,0,0) | |||
Δ<sub>out</sub>(c) | (c,0,0) | |||
Δ<sub>out</sub>(d) | (d,0,0) | (d,1,4) | ||
Δ<sub>out</sub>(e) | (e,0,0) |
表2示例图G对应的两跳覆盖标签索引Δin
Δ<sub>in</sub>(a) | (a,0,0) | |||
Δ<sub>in</sub>(b) | (b,0,0) | (e,2,1) | ||
Δ<sub>in</sub>(c) | (b,1,1) | (c,0,0) | (e,2,6) | (e,3,2) |
Δ<sub>in</sub>(d) | (a,2,3) | (d,0,0) | ||
Δ<sub>in</sub>(e) | (e,0,0) |
然后如步骤1.2至1.9所述,对非加密两跳覆盖标签索引Δout和Δin进行加密。
这里简单地选取128比特的字符串“01234567891234560123456789123456”作为密钥K1,选取“0123456789ABCDEF0123456789ABCDEF”作为密钥K2。然后,利用步骤1.3描述的过程,生成加密图上距离权重的密钥Kd和加密图上代价的密钥Kc。计算方式如下:
Kd=h(K2,K1||1)
Kc=h(K2,K1||2)
其中,h表示密码学上的伪随机函数。
最终得到的输出结果Kd为“D1E0133758E8930124B4F286E9E94D02”,Kc为“E5B0D3998BD1428EBAAE0E10748C4EDE”。
接下来,对表1和表2所示的非加密两跳覆盖标签索引进行加密。针对每一个顶点,依照步骤1.6到步骤1.8加密其对应的out_label标签集和in_label标签集。加密结果如下图4和图5所示。
现在,假设用户查询输入图上顶点a到顶点c的最短距离,且需满足代价不超过4。
假设密码学上的伪随机函数为f(),也就是说,明文m对应的加密输出为f(m),假设保序加密算法为E(),也就是说,明文m对应的保序加密密文为E(m)。为了表示简便,这里的f(m)和E(m)均省略密钥的输入。
那么,依据步骤4.1至4.6,最终得到的起始点a对应的索引元素集合Ls和目标点c点对应的索引元素集合Lt分别为:
Ls
={(f(a),E(0),E(0)),(f(b),E(5),E(3)),(f(e),E(5),E(1)),(f(e),E(3),E(7))}
Lt={(f(b),E(1),E(1)),(f(c),E(0),E(0)),(f(e),E(3),E(2))}
依据步骤4.7,初始化一个集合Y,对每一个既在Ls又在Lt中的加密的顶点描述符v,云服务器利用代价约束树Tθ来执行代价约束过滤操作。代价约束树Tθ如图2所示。对于满足代价约束条件的元素,添加到集合Y中,对于无法确定是否满足代价约束的元素,也添加到集合Y中。具体操作过程如下,这里加上从用户端接受到的代价约束树包含一个节点,即E(2):
第一,观察集合Ls和Lt,发现共同出现的加密顶点描述符的值是f(b)和f(e)。
第二,针对f(b),在Ls中对应的元素是(f(b),E(5),E(3)),在Lt中对应的元素是(f(b),E(1),E(1))。因为加密代价值E(3)≥E(2),E(1)≤E(2),因此无法判断通过顶点b的这条路径的代价是否满足约束,则将其加入要集合Y,此时,
Y={<(f(b),E(5)),(f(b),E(1))>}
第三,针对f(e),在Ls中对应的元素是(f(e),E(5),E(1)),在Lt中对应的元素是(f(e),E(3),E(2))。因为加密代价值E(1)≤E(2),E(1)≤E(2),因此,能够判断通过顶点e的这条路径的代码满足约束,则将其加入到集合Y,此时,
Y={<(f(b),E(5)),(f(b),E(1))>,<(f(e),E(5)),(f(e),E(3))>}
依照步骤4.8,初始化一个集合W。对每一个在集合Y中的元素对象,云服务器执行距离过滤操作,将那些具有更小距离的元素加入到集合W中,对于那些无法判断的元素,也添加到集合W中。具体操作过程如下:
对于Y中的两个元素,f(b)对应的距离分别是E(5)和E(1),f(e)对应的距离分别是E(5)和E(3)。因为E(5)≥E(5)且E(3)≥E(1),因此可以断定f(e)对应的路径的距离要大于f(b)对应的距离,故丢弃掉f(e)对应的距离对,将f(b)对应的距离对加入到集合W。
由于集合W仅仅剩余一个元素,故将该元素返回给用户。
根据步骤5:用户解密获得满足代价约束的最短距离。
用户一旦收到云服务器端返回的元素(f(b),E(5)),(f(b),E(1)),解密后得到((b,5),(b,1)),用户计算5+1=6,将6作为本次查询的最终结果。
本发明解决了对图数据加密后外包到云服务器端执行带约束最短距离查询的困难,能够安全地在云服务器端实现带约束最短距离查询功能。
Claims (5)
1.一种面向加密图的带约束近似最短距离查询方法,其特征在于:
步骤1:用户端建立安全的图索引
步骤1.1预先通过已有的方法对输入图建立非加密两跳覆盖标签索引,非加密的图索引包含两部分,一部分是out_label标签集,一部分是in_label标签集;对于每一个顶点u,都关联一个out_label标签集合和一个in_label标签集合,out_label标签集合中的每一个元素包含顶点v、距离d、代价c三个对象,表示从顶点u到顶点υ的距离为d,代价为c,in_label标签集合中的每一个元素包含顶点υ、距离d、代价c三个对象,表示从顶点v到顶点u的距离为d,代价为c;
步骤1.2给定安全参数,随机生成两个二进制比特串作为安全的加密密钥K1和K2;
步骤1.3由加密密钥K1和K2生成用来加密图上距离的密钥Kd和加密图上代价的密钥Kc,密钥Kd和Kc的生成采用密码学上带密钥的伪随机函数,其中,Kd是通过以K2为密钥,以K1拼接数字1作为输入来生成;Kc是通过以K2为密钥,以K1拼接数字2作为输入来生成;
步骤1.4初始化两个字典Iout和Iin,其中,Iout与out_label标签集对应,用来存储加密out_label标签集索引的结果;Iin与in_label标签集对应,用来存储加密in_label标签集索引的结果;
步骤1.5针对输入图中的每一个顶点u,初始化一个计数器ω为0,并且初始化用来加密顶点u对应的out_label标签集和in_label标签集索引对象的子密钥Sout,u、Tout,u、Sin,u、Tin,u;初始化子密钥过程通过密码学上的伪随机函数来实现,其中,子密钥Sout,u是以K2为密钥,顶点u拼接数字1为输入来生成;子密钥Tout,u是以K2为密钥,顶点u拼接数字2为输入来生成;子密钥Sin,u是以K2为密钥,顶点u拼接数字3为输入来生成;子密钥Tin,u是以K2为密钥,顶点u拼接数字4为输入来生成;
针对顶点u,执行步骤1.6、1.7和1.8
步骤1.6构建加密顶点u对应的out_label标签集索引;
步骤1.7构建加密顶点u对应的in_label标签集索引;
步骤1.8将计数器ω的值增加1;
步骤1.9输出字典Iout和Iin作为安全的加密图索引,针对原始输入图,采用任意的加密算法进行加密;
步骤2:将加密的图索引和加密的图外包到云服务器端;
步骤3:生成用户查询令牌:用户的查询包括起始点,目标点,代价约束值,期待服务器返回结果数量,对每一个这样的用户查询,首先利用密码学上的伪随机函数生成查询子密钥Sout,s、Tout,s、Sin,t、Tin,t、Kc,
其中,子密钥Sout,s的生成以K2为密钥,以起始点s拼接数字1为输入,
其中,子密钥Tout,s的生成以K2为密钥,以起始点s拼接数字2为输入,
其中,子密钥Sin,t的生成以K2为密钥,以目标点t拼接数字3为输入,
其中,子密钥Tin,t的生成以K2为密钥,以目标点t拼接数字4为输入,
其中,子密钥Kc的生成以K2为密钥,以密钥K1拼接数字2为输入,
然后,构建代价约束树,对于给定的查询代价约束值θ,使用密钥Kc构建具有指定深度的代价约束树Tθ,代价约束树中的节点分别是θ/2,θ/4,3θ/4等一系列有规则值的加密密文,该树中每一个节点的值为保序加密算法密文,该过程用密钥Kc进行加密;
选择返回结果数量为R,输出包含6个对象Sout,s,Tout,s,Sin,t,Tin,t,Tθ,R的集合,作为用户的查询令牌;
步骤4:云服务器端利用查询算法回答用户查询;
2.如权利要求1所述的一种面向加密图的带约束近似最短距离查询方法,其特征还在于构建加密顶点u对应的out_label标签集索引步骤包括:
针对out_label标签集索引中的每一个元素的三个对象,即顶点v,距离d,代价c,执行:
(1)使用密码学上的带密钥伪随机函数加密顶点υ,得到的输出结果作为加密后的顶点描述符V,加密过程使用密钥K2,且以顶点υ拼接数字0作为输入;
(2)计算加密距离和代价:针对距离d,首先通过对称密码学算法加密,如使用AES,加密过程使用K1作为密钥,得到加密结果然后用保序加密算法加密距离,以Kd为密钥,得到加密结果针对代价c,使用保序加密算法加密,以Kc为密钥,得到加密结果Cu,v;
将(1)和(2)中得到的加密的顶点描述符V,加密的距离加密的距离以及加密的代价Cu,v进行拼接,得到结果这里的“||”表示数据拼接;将该结果与对应的密文掩码进行异或操作,密文掩码利用伪随机函数来生成,其中Sout,u为输入密钥,计数器ω的值为输入;
最后,将异或操作得到的结果存储到字典Iout中,其中,存储的位置是通过利用密码学上的伪随机函数计算得到,以Tout,u为输入密钥,以计数器ω的值为输入。
3.如权利要求1所述的一种面向加密图的带约束近似最短距离查询方法,其特征还在于,加密顶点u对应的in_label标签集索引,针对in_label标签集索引中的每一个元素的三个对象,即顶点υ,距离d,代价c,执行:
(1)使用密码学上的带密钥伪随机函数加密顶点υ,得到的输出结果作为加密后的顶点描述符V,加密过程使用密钥K2,且以顶点υ拼接数字0作为输入;
(2)计算加密距离和代价:针对距离d,首先通过对称密码学算法加密,如使用AES,加密过程使用K1作为密钥,得到加密结果然后用保序加密算法加密距离,以Kd为密钥,得到加密结果针对代价c,使用保序加密算法加密,以Kc为密钥,得到加密结果Cu,v;
4.如权利要求1所述的一种面向加密图的带约束近似最短距离查询方法,其特征还在于,云服务器端利用查询算法回答用户查询,实现步骤包括:
(1)获得查询起始点对应的索引元素集合:初始化一个集合Ls,用于存储起始点对应的索引元素,初始化一个计数器ω的值为0;
(2)根据构建加密顶点u对应的out_label标签集索引时相同的密码学上的伪随机函数,以用户查询令牌中的Tout,s为密钥,计数器ω的值为输入,得到输出,以该输出的值为位置索引,在字典Iout中判断是否存在对应的值,如果不存在,跳转至(4);否则,执行(3);
(3)根据构建加密顶点u对应的out_label标签集索引时相同的密码学上的伪随机函数,以用户查询令牌中的Sout,s为密钥,计数器ω的值为输入,得到起始点对应的密文掩码,然后使用该掩码与上述字典中对应的值进行异或操作,得到最初的加密密文,也即这里的“||”表示数据拼接;将该结果加入到集合Ls中,更新计数器ω,使其值增加1,转向执行(2);
(4)获得查询目标点对应的索引元素集合:初始化一个集合Lt,用于存储起始点对应的索引元素,初始化一个计数器ω的值为0;
(5)使用同加密顶点u对应的in_label标签集索引时相同的密码学上的伪随机函数,以用户查询令牌中的Tin,t为密钥,计数器ω的值为输入,得到输出,以该输出的值为位置索引,在字典Iin中判断是否存在对应的值,如果不存在,跳转至(7),否则,执步骤(6);
(6)根据构建加密顶点u对应的in_label标签集索引时相同的密码学上的伪随机函数,以用户查询令牌中的Sin,t为密钥,计数器ω的值为输入,得到起始点对应的密文掩码,然后使用该掩码与上述字典中对应的值进行异或操作,得到最初的加密密文,也即这里的“||”表示数据拼接;将该结果加入到集合Lt中,更新计数器ω,使其值增加1,转向执行(5);
(7)初始化一个集合Y,对每一个既在Ls又在Lt中的加密的顶点描述符v,云服务器利用代价约束树Tθ来执行代价约束过滤操作,对于满足代价约束条件的元素,添加到集合Y中,对于无法确定是否满足代价约束的元素,也添加到集合Y中;
(8)初始化一个集合W,对每一个在集合Y中的元素对象,云服务器执行距离过滤操作,将那些具有更小距离的元素加入到集合W中,对于那些无法判断的元素,也添加到集合W中,距离过滤操作基于下述数学规则:
假设对应距离对(A,B)和(C,D),如果A≥C且B≥D,那么A+B≥C+D;如果A≥D且B≥C,那么A+B≥C+D;
(9)云服务器端随机从集合W中挑选用户查询令牌指定的R个结果返回给用户。
5.如权利要求1所述的一种面向加密图的带约束近似最短距离查询方法,其特征还在于,基于加密的代价值判断其是否满足代价约束的过程包括如下步骤:
考虑两个保序加密的代价密文Cs,v和Cv,t,分别基于代价约束树进行类似二叉搜索的操作:
(1)初始化一个计数器ω的值为1以及两个空二进制串cy和cy;
(2)如果计数器ω的值超过代价约束树Tθ的深度,或者已能够确定Cs,v+Cv,t与代价约束值的大小关系,则转(1)进而迭代判断下一个代价对,否则转(3);
(3)针对Cs,v,访问代价约束树Tθ的第ω层,如果Cs,v大于当前节点值,则对cx拼接“1”,转向当前节点的右子树;否则,则对cx拼接“0”,转向当前节点的左子树;
(4)针对Cv,t,访问代价约束树Tθ的第ω层,如果Cv,t大于当前节点值,则对cy拼接“1”,转向当前节点的右子树;否则,则对cy拼接“0”,转向当前节点的左子树;
(5)如果cx和cy的和大于等于2ω,则丢弃掉该代价对,并转向(1),判断下一个代价对;否则,执行(6);
(6)如果cx和cy的和小于等于2ω-2,则将该代价对加入到集合Y;并转向(1),判断下一个代价对;否则,执行(7);
(7)将计数器ω的值增加1,转向(2)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710436415.7A CN107291861B (zh) | 2017-06-12 | 2017-06-12 | 一种面向加密图的带约束近似最短距离查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710436415.7A CN107291861B (zh) | 2017-06-12 | 2017-06-12 | 一种面向加密图的带约束近似最短距离查询方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107291861A CN107291861A (zh) | 2017-10-24 |
CN107291861B true CN107291861B (zh) | 2020-05-12 |
Family
ID=60096361
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710436415.7A Active CN107291861B (zh) | 2017-06-12 | 2017-06-12 | 一种面向加密图的带约束近似最短距离查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107291861B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108052834B (zh) * | 2017-12-11 | 2019-09-27 | 东北大学 | 一种面向密态图结构的近似最短距离查询方法 |
CN109409116B (zh) * | 2018-11-12 | 2022-01-28 | 青岛大学 | 求解无向带权图最小割的安全外包方法 |
CN112836078B (zh) * | 2021-02-20 | 2021-10-22 | 山东省计算中心(国家超级计算济南中心) | 一种图上最短路径安全查询方法、装置、系统及存储介质 |
CN113486092B (zh) * | 2021-07-30 | 2023-07-21 | 苏州工业职业技术学院 | 一种基于时间约束的时间图近似查询方法及装置 |
CN114417073B (zh) * | 2022-03-28 | 2022-08-05 | 之江实验室 | 一种加密图的邻居节点查询方法及装置、电子设备 |
CN117349894B (zh) * | 2023-12-01 | 2024-03-01 | 山东省计算中心(国家超级计算济南中心) | 一种基于填充字典加密的图结构最短路径查询方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9165040B1 (en) * | 2006-10-12 | 2015-10-20 | Google Inc. | Producing a ranking for pages using distances in a web-link graph |
CN102521364B (zh) * | 2011-12-15 | 2014-10-15 | 北京大学 | 一种图上两点间最短路径查询方法 |
US20150091909A1 (en) * | 2013-09-30 | 2015-04-02 | Alcatel Lucent | Systems And Methods For Distance Approximation In Graphs |
CN105488422B (zh) * | 2015-11-19 | 2019-01-11 | 上海交通大学 | 基于同态加密隐私数据保护的编辑距离计算系统 |
-
2017
- 2017-06-12 CN CN201710436415.7A patent/CN107291861B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107291861A (zh) | 2017-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107291861B (zh) | 一种面向加密图的带约束近似最短距离查询方法 | |
CN109660555B (zh) | 基于代理重加密的内容安全分享方法和系统 | |
US10554385B2 (en) | Method for providing encrypted data in a database and method for searching on encrypted data | |
JP6413598B2 (ja) | 暗号処理方法、暗号処理装置、及び暗号処理プログラム | |
CN113688999B (zh) | 一种横向联邦xgboost决策树的训练方法 | |
CN106571905B (zh) | 一种数值型数据同态保序加密方法 | |
CN102314580A (zh) | 一种基于向量和矩阵运算的支持计算的加密方法 | |
CN109361644B (zh) | 一种支持快速搜索和解密的模糊属性基加密方法 | |
JP2014126865A (ja) | 暗号処理装置および方法 | |
Jayapandian et al. | Secure and efficient online data storage and sharing over cloud environment using probabilistic with homomorphic encryption | |
CN105323061A (zh) | 一种可关键字搜索的外包密钥生成和解密的属性基系统及解密方法 | |
CN112332979B (zh) | 云计算环境中的密文搜索方法及系统、设备 | |
WO2012157279A1 (ja) | 順序保存暗号化システム、装置、方法及びプログラム | |
CN111786786A (zh) | 云计算环境下支持等式判定的代理重加密方法及系统 | |
JP6738061B2 (ja) | 暗号文照合システム、方法、および記録媒体 | |
Sharma et al. | Post-quantum cryptography: A solution to the challenges of classical encryption algorithms | |
CN113468440A (zh) | 一种基于sf-盲过滤协议的位置隐私保护的匿名查询方法 | |
CN106656500A (zh) | 加密装置及方法 | |
CN111159724B (zh) | 一种细粒度策略的条件代理可重构加密方法 | |
US11157631B1 (en) | System and method for securely indexing, storing, and retrieving data within a computer network | |
JP5486519B2 (ja) | 検索システム、判定装置、ベクトル構成装置、その方法及びプログラム | |
Gupta et al. | C 3 T: Cloud based cyclic cryptographic technique and it’s comparative analysis with classical cipher techniques | |
Murugan et al. | Securing cloud data using DNA and Morse code: A triple encryption scheme | |
KR101865703B1 (ko) | 키 생성 방법 및 장치, 암호화 장치 및 방법 | |
CN113452706B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |