用于外包空间数据库的范围查询完整性验证方法

文档序号:6546787阅读:168来源:国知局
用于外包空间数据库的范围查询完整性验证方法
【专利摘要】本发明公开了一种用于外包空间数据库的范围查询完整性验证方法,包括:1、基于自适应Hilbert曲线的范围查询转换,生成一维数值段集合;2、用户经过认证与外包空间数据库的服务商建立会话连接,将一维数值段集合发送给服务商;3、服务商根据用户提交的一维数值段集合,检索数据库中符合查询条件的空间对象集合,并将该空间对象集合返回给用户;4、用户接收到服务商返回的查询结果集合,并对其进行消息摘要验证;5、用户根据查询结果中的邻近空间对象信息,对结果集的完整性进行验证。本发明方法可以在外包空间数据库的模式下,为用户提供高效、安全的范围查询完整性验证功能,进而对服务商修改查询结果的行为进行约束,保证范围查询服务的质量。
【专利说明】用于外包空间数据库的范围查询完整性验证方法
【技术领域】
[0001]本发明属于数据库处理【技术领域】,具体涉及一种用于外包空间数据库的范围查询完整性验证方法。
【背景技术】
[0002]随着基于位置的服务与位置感知设备日益普及,与位置相关的信息爆炸式增长,由此产生的大量空间数据超出了小型企业和个人的处理能力。云存储服务提供弹性的资源分配,有效降低了数据拥有者维护数据的开销,因此数据外包成为一种流行的服务模式。为了保护外包空间数据的隐私并支持空间数据查询,需要在外包前对空间数据进行处理,构建用于查询的空间数据索引,并对空间数据内容进行加密。然而,由于服务商在执行查询的过程中,可能对查询结果进行修改,例如删除部分查询结果,从而在用户不知情的状况下降低服务质量。因此,在空间数据库外包的服务模式下,保证空间查询的完整性是该服务模式健康发展所要解决的重要问题。
[0003]目前多采用Hilbert曲线构建空间数据的索引,以支持隐私保护的空间查询,并提出了基于随机复制的查询完整性验证方法,通过随机抽取部分原始数据作为副本,对原始数据和副本数据采用不同的参数构建索引,从而生成外包数据,其查询完整性验证过程包括空间查询和完整性验证查询两个步骤,空间查询阶段获得查询结果,完整性验证查询阶段则获得完整性验证信息,这个过程需要用户与服务商建立两次会话连接,这增加了服务商进行查询分析的机会,通过对空间查询和完整性验证查询的特征进行抽取,进行针对性的调整,规避完整性验证,另外,在外包空间数据库中还需要存储额外的对象副本信息,大大增加了数据库系统的存储与维护负担。

【发明内容】

[0004]本发明的目的在于提供一种外包空间数据库的范围查询完整性验证方法,通过在外包的密文空间对象中附加基于索引的邻近空间对象信息,使用户可以从查询结果中直接获得完整性验证的依据,将范围查询和完整性验证通过一次会话连接完成,降低了系统负载,提高了外包空间数据库的查询效率,同时保证了数据库服务商诚实地为用户提供服务。
[0005]为了实现上述目的,本发明采用以下技术方案:
[0006]一种用于外包空间数据库的范围查询完整性验证方法,包括以下步骤:首先,用户通过自适应Hilbert曲线将二维平面的范围查询转换为一维数值段集合,作为查询条件;然后,服务商将符合查询条件的空间对象返回给用户,用户对查询结果进行消息摘要验证,若未通过则输出查询结果不完整;最后,用户对查询结果邻居集合进行范围查询验证,若未通过则输出查询结果不完整,否则输出查询结果完整。
[0007]一种用于外包空间数据库的范围查询完整性验证方法,包括以下步骤:
[0008]步骤一:用户通过自适应Hi Ibert曲线的范围查询转换方法,将二维平面的范围查询 W = [xl, xh] X [yl, yh]转换为一维数值段集合 R= (R1 (S1, e),R2 (s2, e2),...,Rn(sn,en)},即查询条件;
[0009]xl, xh分别为二维平面的范围查询的χ轴方向的最小值、最大值;yl, yh分别为二维平面的范围查询的I轴方向的最小值、最大值;Si,e,分别表示数值段Ri的开始值、结束值,I < i < η,η为数值段的个数;
[0010]步骤二:用户经过认证与外包空间数据库的服务商建立会话连接,将步骤一中生成的一维数值段集合R发送给服务商;外包空间数据库中的每一条记录对应一个空间对象,数据表的核心字段为一个三元组:〈index, Enc ((location, text, neighbors (f (1),f?,…,f(k),b⑴,b⑵,…,b(k))), key), Sign〉;
[0011]index为根据当前空间对象的位置坐标location,使用自适应Hilbert曲线生成的索引;text为当前空间对象附属的其他描述信息;neighbors为与当前空间对象在索引上近邻的空间对象的位置坐标集合,f⑴、b(i)分别表示index的前驱、后继空间对象的位置坐标,I < i ( k,k为前驱/后继空间对象的个数,k的取值由数据拥有者设定;Enc()为对称加密算法,key为对称密钥;31811为使用哈希算法他也()生成的当前空间对象消息摘要,即 Sign = Hash (location | text | neighbors), | 表不字符串连接运算;
[0012]步骤三:外包空间数据库服务商根据用户提交的一维数值段集合R ={Ri(s!, e), R2(s2, e2),…,Rn(sn, en)},检索数据库中符合查询条件的空间对象集合G = {p1;P2,…,Pm},并将该空间对象集合G返回给用户,其中:
[0013]Pi表示一个检索结果,包含索引值indeXi,密文数据信息Enc ((1cationi, texti;neighborsj),以及消息摘要Signi, I≤i≤m, m为检索结果的个数; [0014]步骤四:用户接收到服务商返回的查询结果集合G= {P1,P2,…,pm},对其中的每一个对象 Pi =〈index” Enc ((1cationi, text” Iieighborsi), key), Signi),首先使用解密算法 Dec O 与密钥 key 处理 Pi 的加密字段 Enc ((1cationi, text” neighbors), key),得到Pi的明文信息(1catioivtextpneighborsi),然后使用哈希算法HashO生成明文信息的消息摘要,即 Sign/ = HashGocationi I texti Ineighborsi),判断 Sign/ 与 Signi 是否相同,若不相同,则证明空间对象Pi的信息被篡改,终止查询完整性验证过程,输出查询结果不完整;若对任意Pj e G,均有Sign/ = Sign」,,则进一步进行步骤五;
[0015]步骤五:将通过步骤四验证的查询结果集合G = {Pl, p2,…,P1J,分为两类集合:查询结果位置集合Q= (1cation1, 1cation2,..., 1cationJ ,查询结果邻居集合N =Ineighbors1, neighbors2,..., neighborsj ;
[0016]其中Jocationi 为第 i 个查询结果的位置坐标!Iieighborsi = (fi(1), fi(2),...,fi(k),bi(1),bi(2),…,bi(k))为与第i个查询结果在索引上近邻的空间对象的位置坐标集合,fi(J)>bi(J)分别为1cationi的第j个前驱、后继空间对象的位置坐标,I ^ j ^ k, k为前驱/后继空间对象的个数;
[0017]对于任意位置坐标d(x, y) e N,若d存在于范围查询W = [xl, xh] X [yl, yh]中,则判断d是否属于查询结果位置集合Q,若不属于,则终止查询完整性验证过程,输出查询结果不完整;若查询结果邻居集合N中不存在满足上述条件的位置坐标,则完成查询完整性验证过程,输出查询结果完整。
[0018]优选的,步骤三种判Spi符合查询条件的具体依据为:存在Rj e R,使得
Sj- ^ Indexi ^ ej0[0019]优选的,判定位置坐标d(x,y)存在于范围查询W中的具体依据为:xl< χ < xh,且yl < y < yh。其中x, y分别为d在χ轴、y轴方向的坐标值;判定位置坐标d(x, y)属于查询结果位置集合Q的具体依据为:存在location」(X」,y」)e Q,使得χ」=χ,且y」=y。
[0020]和现有技术相比,本发明具有以下优点:
[0021]1、更高的安全性
[0022]本发明提出的外包空间数据库范围查询完整性验证方法将传统的空间查询和完整性验证查询合并为一次,通过一次范围查询获得查询结果与完整性验证信息,从而减少了服务商进行查询分析的机会;并且由于不同的数据拥有者可能设置不同的邻近空间对象数量,这进一步增大了服务商进行查询结果更改的难度。
[0023]2、更高的存储与查询效率
[0024]传统的基于随机复制的查询完整性验证方法,在数据库中需要存储额外的对象副本信息,大大增加了数据库系统的存储与维护负担,而本发明对外包空间数据库中的对象,仅附加少许邻近对象信息,从而提高了数据库存储资源的利用率;通过将空间查询和完整性验证查询进行合并,减少了用户与服务商的会话连接次数,提高了查询效率。
[0025]本发明公开了一种用于外包空间数据库的范围查询完整性验证方法,包括:1、基于自适应Hilbert曲线的范围查询转换,生成一维数值段集合;2、用户经过认证与外包空间数据库的服务商建立会话连接,将一维数值段集合发送给服务商;3、服务商根据用户提交的一维数值段集合,检索数据库中符合查询条件的空间对象集合,并将该空间对象集合返回给用户;4、用户接收到服务商返回的查询结果集合,并对其进行消息摘要验证;5、用户根据查询结果中的邻近空间对象信息,对结果集的完整性进行验证。本发明方法可以在外包空间数据库的模式下,为用户提供高效、安全的范围查询完整性验证功能,进而对服务商修改查询结果的行为进行约束,保证范围查询服务的质量。
【专利附图】

【附图说明】
[0026]图1为本发明用于外包空间数据库的范围查询完整性验证方法的流程框图。【具体实施方式】
[0027]下面结合附图对本发明做进一步详细说明。
[0028]请参阅图1所示,本发明一种用于外包空间数据库的范围查询完整性验证方法,包括以下步骤:首先,用户通过自适应Hilbert曲线将二维平面的范围查询转换为一维数值段集合,作为查询条件;然后,服务商将符合查询条件的空间对象返回给用户,用户对查询结果进行消息摘要验证,若未通过则输出查询结果不完整;最后,用户对查询结果邻居集合进行范围查询验证,若未通过则输出查询结果不完整,否则输出查询结果完整。具体包括下列步骤:
[0029]步骤一:用户通过自适应Hilbert曲线的范围查询转换方法,将二维平面的范围查询 W = [xl, xh] X [yl, yh]转换为一维数值段集合 R= (R1 (S1, e),R2 (s2, e2),...,Rn(sn,en)},即查询条件,其中:
[0030]xl, xh分别为二维平面的范围查询的χ轴方向的最小值、最大值,yl, yh分别为二维平面的范围查询的y轴方向的最小值、最大值。Si,ei分别表示数值段Ri的开始值、结束值,I Si Sn,η为数值段的个数。
[0031]步骤二:用户经过认证与外包空间数据库的服务商建立会话连接,将步骤一中生成的一维数值段集合R发送给服务商;外包空间数据库中的每一条记录对应一个空间对象,数据表的核心字段为一个三元组:〈index, Enc ((location, text, neighbors (f (1),f(2),…,f(k),b(1),b⑵,…,b(k))), key), Sign〉,其中:
[0032]index为根据当前空间对象的位置坐标location,使用自适应Hilbert曲线生成的索引;text为当前空间对象附属的其他描述信息;neighbors为与当前空间对象在索引上近邻的空间对象的位置坐标集合,f⑴、b(i)分别表示index的前驱、后继空间对象的位置坐标,I < i ( k,k为前驱/后继空间对象的个数,k的取值由数据拥有者设定;Enc()为对称加密算法,key为对称密钥;31811为使用哈希算法他也()生成的当前空间对象消息摘要,即 Sign = Hash (location | text | neighbors), | 表不字符串连接运算。
[0033]步骤三:外包空间数据库服务商根据用户提交的一维数值段集合R ={Ri(s!, e), R2(s2, e2),…,Rn(sn, en)},检索数据库中符合查询条件的空间对象集合G = {p1;P2,…,Pm},并将该空间对象集合G返回给用户,其中:
[0034]Pi表示一个检索结果,包含索引值indexp密文数据信息Enc ((1cationi, texti;neighborsj),以及消息摘要Signi, I≤i≤m, m为检索结果的个数。
[0035]判定Pi符合查询条件的具体依据为:
[0036]存在Rj e R,使得 Sj ( Indexi ( ej。
[0037]步骤四:用户接收到 服务商返回的查询结果集合G = {Pl, p2,…,pm},对其中的每一个对象 Pi =〈index” Enc ((1cationi, text” neighbors), key), Signi),首先使用与Enc O对应的解密算法Dec O与密钥key处理空间对象Pi的加密字段Enc ((1cationi,texti; neighborsj), key),得到 Pi 的明文信息(1cationi, texti; neighborsj),然后使用与步骤二相同的哈希算法HashO生成明文信息的消息摘要,即Sign/ = Hashdocationi | teXti Ineighborsi),判断Sign/与Signi是否相同,若不相同,则证明空间对象Pi的信息被篡改,终止查询完整性验证过程,输出查询结果不完整;若对任意Pj e G,均有Sign/ = Signj,则进一步进行下述过程。
[0038]步骤五:将通过步骤四验证的查询结果集合G = {Pl, p2,…,P1J,分为两类集合:查询结果位置集合Q= (1cation1, 1cation2,..., 1cationJ ,查询结果邻居集合N =Ineighbors1, neighbors2,..., neighborsj,其中:
[0039]1cationi 为第 i 个查询结果的位置坐标 ^eighborsi = (fi(1), fi(2),..., fi(k),bi(1),bi(2),…,bi(k))为与第i个查询结果在索引上近邻的空间对象的位置坐标集合,fi(J)>bi(J)分别为1cationi的第j个前驱、后继空间对象的位置坐标,I ^ j ^ k, k为前驱/后继空间对象的个数。
[0040]对于任意位置坐标d(x, y) e N,若d存在于范围查询W = [xl, xh] X [yl, yh]中,则判断d是否属于查询结果位置集合Q,若不属于,则终止查询完整性验证过程,输出查询结果不完整;若查询结果邻居集合N中不存在满足上述条件的位置坐标,则完成查询完整性验证过程,输出查询结果完整。
[0041]判定位置坐标d(x,y)存在于范围查询W中的具体依据为:
[0042]xl≤χ≤xh,且yl≤y≤yh。其中x, y分别为d在χ轴、y轴方向的坐标值。[0043]判定位置坐标d(x,y)属于查询结果位置集合Q的具体依据为:
[0044]存在1cationj (Xj, Yj) e Q,使得 Xj = x,且 yj = y。
[0045]综上所述,本发明提出一种用于外包空间数据库的范围查询完整性验证方法。该方法通过在外包空间对象中,附加基于索引的邻近对象信息,降低了查询完整性验证对数据库存储系统的资源消耗。该方法将传统的空间查询和完整性验证查询合并为一次,降低了用户与服务商的会话连接次数,提高了查询效率,减少了服务商进行查询分析的机会;并且由于不同的数据拥有者可能设置不同的邻近空间对象数量,这进一步增大了服务商进行查询结果更改的难度。
【权利要求】
1.一种用于外包空间数据库的范围查询完整性验证方法,其特征在于,包括以下步骤: 首先,用户通过自适应Hilbert曲线将二维平面的范围查询转换为一维数值段集合,作为查询条件; 然后,服务商将符合查询条件的空间对象返回给用户,用户对查询结果进行消息摘要验证,若未通过则输出查询结果不完整; 最后,用户对查询结果邻居集合进行范围查询验证,若未通过则输出查询结果不完整,否则输出查询结果完整。
2.一种用于外包空间数据库的范围查询完整性验证方法,其特征在于,包括以下步骤: 步骤一:用户通过自适应HiIbert曲线的范围查询转换方法,将二维平面的范围查询W=[xl, xh] X [yl, yh]转换为一维数值段集合 R = (R1 (S1, e),R2 (s2, e2),...,Rn(sn, en)},即查询条件; xl, xh分别为二维平面的范围查询的X轴方向的最小值、最大值;yl, yh分别为二维平面的范围查询的y轴方向的最小值、最大值;Si,ei分别表示数值段Ri的开始值、结束值,Ι^?^η,η为数值段的个数; 步骤二:用户经过认证与外包空间数据库的服务商建立会话连接,将步骤一中生成的一维数值段集合R发送给服务商;外包空间数据库中的每一条记录对应一个空间对象,数据表的核心字段为一个三元组:〈index, Enc ((location, text, neighbors (f(1), f ⑵,…,f(k),b⑴,1?),…,b(k))), key), Sign〉; index为根据当前空间对象的位置坐标location,使用自适应Hilbert曲线生成的索引;text为当前空间对象附属的其他描述信息;neighbors为与当前空间对象在索引上近邻的空间对象的位置坐标集合,f(i)、b(i)分别表示index的前驱、后继空间对象的位置坐标,I ^ i ^ k, k为前驱/后继空间对象的个数,k的取值由数据拥有者设定;Enc()为对称加密算法,key为对称密钥;31811为使用哈希算法他也()生成的当前空间对象消息摘要,即Sign = Hash (location I text I neighbors),| 表不字符串连接运算; 步骤三:外包空间数据库服务商根据用户提交的一维数值段集合R ={Ri(s!, e), R2(s2, e2),…,Rn(sn, en)},检索数据库中符合查询条件的空间对象集合G = {p1;P2,…,Pm},并将该空间对象集合G返回给用户,其中: Pi表示一个检索结果,包含索引值Indexi,密文数据信息Enc ((1cationi, text”neighborsj),以及消息摘要Signi, I≤i≤m, m为检索结果的个数; 步骤四:用户接收到服务商返回的查询结果集合G= {ρι,ρ2,…,pm},对其中的每一个对象 Pi = <indexi; Enc ((1cationi, text” Iieighborsi),key),Signi),首先使用解密算法Dec ()与密钥 key 处理 Pi 的加密字段 Enc ((1cationi, text” Iieighborsi), key),得到 Pi的明文信息(1cationi, texti; Iieighborsi),然后使用哈希算法HashO生成明文信息的消息摘要,即 Sign/ = HashGocationi I texti Ineighborsi),判断 Sign/ 与 Signi 是否相同,若不相同,则证明空间对象Pi的信息被篡改,终止查询完整性验证过程,输出查询结果不完整;若对任意Pj e G,均有Sign/ = Signj,,则进一步进行步骤五; 步骤五:将通过步骤四验证的查询结果集合G = {Pl, p2,…,pj,分为两类集合:查询结果位置集合Q= {location” 1cation2,..., 1cationJ ,查询结果邻居集合N =Ineighbors1, neighbors2,..., neighborsj ; 其中 Jocationi 为第 i 个查询结果的位置坐标!Iieighborsi = (fi(1), fi(2),..., fi(k),bi(1),bi(2),…,bi(k))为与第i个查询结果在索引上近邻的空间对象的位置坐标集合,fi(J)>bi(J)分别为1cationi的第j个前驱、后继空间对象的位置坐标,I ≤ j ≤ k, k为前驱/后继空间对象的个数; 对于任意位置坐标d(x, y) e N,若d存在于范围查询W = [xl, xh] X [yl, yh]中,贝U判断d是否属于查询结果位置集合Q,若不属于,则终止查询完整性验证过程,输出查询结果不完整;若查询结果邻居集合N中不存在满足上述条件的位置坐标,则完成查询完整性验证过程,输出查询结果完整。
3.根据权利要求2所述的一种用于外包空间数据库的范围查询完整性验证方法,其特征在于,步骤三种判定Pi符合查询条件的具体依据为:存在Rj e R,使得Sj≤ Indexi ≤ ej。
4.根据权利要求2所述的一种用于外包空间数据库的范围查询完整性验证方法,其特征在于,判定位置坐标d(x,y)存在于范围查询W中的具体依据为:xl ≤ X ≤ xh,且yl≤y≤yh ;其中x, y分别为d在x轴、y轴方向的坐标值;判定位置坐标d(x, y)属于查询结果位置集合Q的具体依据为:存在locationj(Xj,yj)e Q,使得χj=x,且yj=y。
【文档编号】G06F17/30GK103984728SQ201410209505
【公开日】2014年8月13日 申请日期:2014年5月16日 优先权日:2014年5月16日
【发明者】桂小林, 田丰, 杨攀, 杨建伟, 张学军, 安健 申请人:西安交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1