技术领域
[0001] 本发明涉及数据处理技术领域,具体而言,涉及一种基于安全划分树的安全空间网络查询方法。
相关背景技术
[0002] 随着智能手机和其他具有GPS定位功能的设备数量的激增,基于位置的服务变得十分普遍,大量的真实网络被添加了空间属性的约束。其中最典型的是道路网络和移动社交网络,这种新兴网络被定义为空间网络。查询请求需要给定节点和坐标,其中空间网络中的k近邻(kNN)查询是在网络连通性和距离的约束下寻找距离请求节点最近的k个网络节点。例如,在道路网络中,Michael会在三公里内寻找离家最近的1个ATM机,或者在移动社交网络中,Taylor会在距离自己最近的签到地点不超过五公里的地方寻找3个餐厅。因为空间网络的扩展速度非常快导致数据量急剧增长,所以增加了空间网络中查询的复杂性,同时也提高了在本地运行查询服务的成本。若将这些存储和查询服务外包给云,就会大大地减少数据拥有者的服务成本从而带来效益。
[0003] 然而,数据拥有者直接将查询处理服务外包给云计算平台可能会造成严重的隐私安全问题。例如,用户请求节点和相应坐标的查询请求会导致数据用户敏感信息的泄露,如其家庭地址或个人登记信息。和这种情况相类似的还有数据拥有者的隐私安全问题。因为外包空间网络可能包含数据拥有者的私有位置、距离和节点之间的关系等私有信息,必须保证这些信息不能被未经授权的第三方获得。此外,空间网络的收集和构建也必须进行加密,因为其过程耗费巨大的资源,所以必须保证它不能被任何竞争对手和未授权的第三方获取。因此,研究以安全的方式对外包空间网络进行查询处理具有重要意义。
[0004] 若要保证空间网络查询处理的隐私信息不被泄露给不可信的云服务提供者,需要保证原有的空间网络查询处理只能在加密环境下执行。目前,针对空间网络查询的隐私保护问题,现有研究主要涉及两类,一类是采用匿名技术在空间网络查询处理过程中保护用户的位置隐私,或者通过添加噪声的基于差分隐私的安全模型来保护查询结果。然而这些方法只能防止云服务提供者知道查询处理期间的确切位置信息,查询的大致位置仍然暴露给云,不能满足半可信云服务提供者的安全要求。另一类是在基于加密的保护设置下,实现对加密空间数据或加密网络数据的查询处理,例如空间数据的安全kNN查询、安全最短路径查询、安全子结构查询等。这些方法虽然可以通过分别采用安全空间查询和安全网络查询的方法计算距离和遍历网络来部分解决安全查询问题,但仍然不能利用网络连接和距离的约束提供一个可用的解决方案来保护空间网络查询处理。由于现有的查询方法具有启发式安全搜索的特点,所以当空间网络数据规模较大时,会导致查询效率变低。因此,有必要研究在加密的空间网络上实现高效的、安全的查询方法。
具体实施方式
[0064] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0065] 实验设置如下:使用两台服务器作为云服务器,其配置为Intel(R)Xeon(R)CPU L5638@2.00GHz(Dual Processor)和40.0GB RAM;使用一台PC作为数据拥有者,其配置为Intel(R)Core(TM)i3-7100 CPU@3.90GHz和8.0GB RAM。三台主机都运行Windows 7操作系统。两个数据集采用真实的美国奥斯汀城市道路的空间网络数据集,分别包含526和1,148个节点以及647和1,223条边。与此同时,我们均匀地从数据集中选择10%的节点作为目标集。对于每个数据集,我们使用不同的查询节点执行10组查询,并计算平均查询响应时间。
[0066] 本发明选取启发式安全空间网络kNN查询处理算法(以下简称为启发式算法)作为比较算法。该算法首先采用了优先队列结构并完成了安全比较器的创建,确保了优先队列结构不会泄露任何隐私信息。然后在安全优先队列结构下,采用最优估计距离引导空间网络节点的启发式搜索,有效地减少了候选节点的访问次数。其次,为了保证查询结果的正确性,如果提取出的优先队列元素已经存在结果集中,则进行启发式更新。否则直接执行节点的安全扩展,即使用安全优先队列结构进行网络节点的启发式安全扩展,重复执行优先队列的安全入队和安全出队列操作,直到得到最终结果,完成查询处理。
[0067] 下面本发明分别从索引构建及加密开销以及查询响应时间等方面对本发明所述的基于安全划分树索引的安全空间网络查询方法(SPT-based Secure Spatial Network kNN Query,SPTSSNQ),下面及附图中称为SPTSSNQ算法,以及启发式算法(图中标记为HSSNQ)进行了评估,实验结果如下:
[0068] 在考察“索引构建及加密开销”时,本发明对节点的数据规模进行了实验,实验参数中,节点个数分别为100,200,300,500和1000,实验结果如图1,图2所示,节点个数增加会造成索引构建、预计算和加密的时间和空间花销的增加,但是SPTSSNQ算法的索引构建及加密的时间和空间开销要比启发式算法的数据预处理及加密的时间开销小,这是因为SPTSSNQ算法采用了基于图划分的树形索引结构,因此只需预计算并存储树的每个叶子节点内相关需求数据,而启发式算法需要预计算并存储整个空间网络的相关需求数据。
[0069] 在考察“查询响应时间”时,本发明首先对近邻的数据规模进行了实验,实验参数中,近邻个数分别为1,2,3,4,5,6,7,8,9,10,当查询点与目标点在同一个子空间网络内时,实验结果如图3所示,随着近邻个数的增加,查询响应时间也随着增加。但是相比于启发式算法,SPTSSNQ算法的查询响应时间要低很多,这是由于SPTSSNQ算法中安全划分树的采用减少了节点的访问次数,可见本发明的SPTSSNQ算法是高效的。
[0070] 实施例
[0071] 本发明可以应用于外包空间网络查询场景中。数据拥有者利用本发明提出的划分树索引结构对空间网络数据进行构建,再利用Paillier加密系统对边界集中的边界点进行加密处理,并利用Paillier加密系统对距离矩阵进行加密处理,最后还采用了哈希函数H对子空间网络ID进行处理得到H(ID)。据此,实现了一个安全的索引结构的构建。认证用户提出被加密的空间查询请求,并将其发送给云服务提供者(假设请求的近邻个数k=2),发起基于安全划分树的查询请求。图4给出了安全划分树索引结构的构建,其中空间网络数据(如图4)的空间网络的划分树如图5所示,每个树节点对应一个子图。图4描述了一个查询实例(k=2),该实例中有19个对象。其中,查询点Epk(v2),目标点Epk(v7),Epk(v12),E(v16),其他的为网络上的节点,边上的值表示加密的边权重。
[0072] 云服务提供者收到查询请求后,首先利用安全距离矩阵计算查询点Epk(q)到当前根节点H(n)的孩子节点{H(ni)|H(ni)∈H(n),i=2,3,...}的最短路径距离SecureSPDist(q,H(ni)),并按由小到大的距离插入到优先队列中,重复此步骤直到查询到叶子节点。然后,基于SecureSPDist(q,H(ni)),找出离查询点最近的叶子节点并对此叶子节点进行安全搜索,找出当前叶子节点内的所有目标点,并利用安全距离矩阵计算查询点Epk(q)到这些目标点的最短路径距离并安全地插入到优先队列中。最后,利用优先队列结构对安全空间网络查询进行启发式安全输出。
[0073] 具体查询过程如下:
[0074] 1)Epk(v2)出队列,G2,G3入队列;当前队列:G2,G3;结果集:null
[0075] 2)G2出队列,G4,G5入队列;当前队列:G4,G5,G3;结果集:null
[0076] 3)G4出队列,Epk(v1),Epk(v3),Epk(v4),Epk(v5)入队列;当前队列:
[0077] Epk(v1),Epk(v3),Epk(v4),Epk(v5),G5,G3;结果集:null
[0078] 4)G5出队列,Epk(v11),Epk(v12),Epk(v13),Epk(v14)入队列;当前队列:
[0079] Epk(v1),Epk(v3),Epk(v4),Epk(v5),Epk(v12),Epk(v11),Epk(v13),Epk(v14),G3;结果集:Epk(v12)
[0080] 5)G3出队列,G6,G7入队列;当前队列:
[0081] Epk(v1),Epk(v3),Epk(v4),Epk(v5),Epk(v12),Epk(v11),Epk(v13),Epk(v14),G6,G7;结果集:Epk(v12)
[0082] 6)G7出队列,Epk(v15),Epk(v16),Epk(v17),Epk(v18),Epk(v19)入队列;当前队列:
[0083] Epk(v1),Epk(v3),Epk(v4),Epk(v5),Epk(v6),Epk(v15),Epk(v12),Epk(v7),Epk(v10),Epk(v8),
[0084] Epk(v17),Epk(v11),Epk(v9),Epk(v16),Epk(v18),Epk(v19);结果集:Epk(v12),Epk(v7)[0085] 得到SPTSSNQ 2近邻查询结果,查询结束。
[0086] 以上技术方案阐述了本发明的技术思路,不能以此限定本发明的保护范围,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上技术方案所作的任何改动及修饰,均属于本发明技术方案的保护范围。