一种基于加密索引的安全空间文本skyline查询方法

文档序号:24641110发布日期:2021-04-09 20:54阅读:229来源:国知局
一种基于加密索引的安全空间文本skyline查询方法

本发明属于多维数据查询技术领域,涉及一种基于加密索引的安全空间文本skyline查询方法。



背景技术:

智能手机的普及性和可承受性以及移动技术和用户友好应用程序的快速发展促使了基于位置的服务(location-basedservices,lbs)的普及。在使用常用的app时,人们会使用社交网络,基于位置的游戏、定向广告和兴趣点(pointsofinterest,poi)搜索,分享与gps(globalpositioningsystem)坐标和文字描述相关联的照片,在朋友圈分享带有地理位置的文本等。传统的文本数据被添加了地理位置的标签,地理位置信息也常常带有相关的文本描述,空间数据和文本数据的结合形成了一类新的多源异构数据,其被定义为空间文本数据(spatio-textualdata)。查询这些空间文本数据的技术,即空间文本查询,基于多个地理位置和多种查询偏好(文本),查找出与这些位置距离相近且与这些查询偏好相关的目的位置。

空间文本skyline查询(spatio-textualskylinequery,stsq)是多请求查询,是一种重要的空间文本查询技术。与传统lbs的skyline查询不同,空间文本skyline查询面向一组表示不同查询偏好的查询请求,计算空间文本对象与该组查询请求间的空间文本支配关系,高效查找出在空间文本综合相关性上不受任何其他空间文本对象支配的空间文本对象。目前,空间文本skyline查询在交通管理、地图查询、移动社交等领域中有着广阔的应用前景。

然而,随着这些与lbs相关的活动不断增加,每天都会产生大量数据。大数据的确为分析提供了一个非常强大且具有潜在利益的矿藏,但同时它也带来了巨大挑战,这可能抵消潜在收益甚至使用户面临巨大的隐私和安全风险。随着云计算技术的成熟,企业采用云计算以确保更大灵活性的最新趋势,lbs的用户比以往任何时候都面临更大的网络攻击风险。一方面,由于基于位置的操作往往包含其服务提供商或用户的敏感数据,即使这些数据是匿名处理的,也可能导致隐私或机密信息的泄露。另一方面,公共云计算平台的服务提供商也并非完全可靠。从云服务器的漏洞入手,窃取云服务器中的数据信息,导致数据库中的用户隐私泄露。

在现有研究中,大部分云计算平台的服务商遵循着半可信的服务模型。在该模型中,云计算平台将正确地遵循协议规范完成协议的指令,云服务器不会对数据发起任何主动攻击,但是一旦满足某些条件(即可以获得一些辅助信息),云仍然会对数据隐私或用户位置隐私感到好奇。向云服务器提交查询用户的隐私可能会因其搜索关键字而信息泄露,受到损害。

因此,对于一个不完全可信的共享云计算平台,空间文本数据及其查询服务的直接外包可能会导致严重的隐私和安全问题。空间文本数据可能包含非常敏感的个人信息,如果空间文本数据是直接外包的,隐私数据可能会泄露。另一个典型问题,空间文本查询请求可能涉及用户的敏感信息,如家庭住址或个人注册信息等,外包可能威胁数据用户的位置隐私。另外,外包的空间文本数据还可能包含数据拥有者的私有信息,包括私有位置、距离和节点之间的关系等,这些信息不能被未经授权的第三方知道。此外,空间文本数据的收集和构建将耗费大量的人力或物力资源,这使得空间文本数据往往被视为商业秘密,任何竞争对手都无法获取。因此,如何在并不完全可信的云计算平台中提供安全、高效的空间文本skyline查询服务具有重要意义。

然而,在该研究领域中,针对安全的空间文本skyline查询研究还处于起步阶段,所以可能无法满足用户多样化的查询需求或者数据服务很高的性能要求。简单的应用已有研究中对空间数据和文本数据各自的隐私保护方法将难以实现对该查询过程中隐私信息的保护。同时,在复杂空间文本数据查询场景中,空间文本数据skyline查询需求使安全的空间文本数据查询研究变得更具挑战。



技术实现要素:

为了解决上述技术问题,本发明提供了一种空间文本skyline安全查询方法,在外包场景中实现安全的空间文本skyline查询,保证空间文本数据、空间文本skyline查询请求等敏感信息和用户隐私信息在查询过程中的安全。

本发明的目的可以通过以下技术方案实现:

一种基于加密索引的安全空间文本skyline查询方法,所述方法包括:

s1、将外包数据库中的空间文本数据对象创建ir-tree索引并将其转变成向量形式,其中ir-tree索引节点包含空间文本数据对象和最小边界矩形mbr;

将空间文本skyline查询请求转变成向量的形式;

采用非对称内积保持加密技术对每个ir-tree索引节点中的空间文本数据和空间文本skyline查询请求进行一致性加密,形成安全的ir-tree索引和安全的查询请求;

s2、面向mbr计算空间文本数据对象、加密索引节点间的支配关系;

s3、在支配关系的基础上实现基于加密索引的安全的空间文本skyline查询。

进一步地,所述方法具体包括如下步骤:

s11:发送安全索引:数据拥有者将对ir-tree中所有的索引节点进行一致性加密,并发送给云服务器;

s12:发起加密空间文本skyline查询请求:授权用户将空间文本skyline查询请求分解成向量的形式,并进行加密后发送给云服务器;

s13:基于mbr的空间文本相似度的安全计算:计算每个加密索引单元与每个查询请求间的空间文本相似度作为加密索引单元的派生维度;

s14:基于mbr的空间文本支配关系的安全比较:根据加密索引单元数据计算索引单元间的空间文本支配关系,则被支配的索引单元中的数据对象也将被空间文本支配,逐层访问索引节点,直至访问到空间文本对象,并将支配关系结果放进skyline结果集中;

s15:云服务器将基于安全索引的保护隐私的空间文本skyline查询结果发送给用户。

具体地,所述mbr边界确定的最大和最小的两组位置坐标数据用(xmin,ymin)和(xmax,ymax)来表示mbr空间范围,mbr的文本向量表示为e.dv=(t1′,t2′,…,tb′),mbr的空间向量表示为e.lv=(xmin,xmin2,1|ymin,ymin2,1|xmax,xmax2,1|ymax,ymax2,1),其中坐标都是经过归一化计算后的值;

将每个mbr的文本向量和空间向量拼接起来,并为拼接后的向量在最后填补一个附加维度值1,mbr向量最终表示为:e.v=(e.lv|e.dv|1)。

具体地,所述步骤s1形成安全的ir-tree索引具体包括:

定义查询索引加密函数为ei(g),索引e中的每个元素ei,使用加密函数ei(g)加密mbr向量,加密后的mbr向量为:

进一步地,所述步骤s2面向mbr计算空间文本数据对象、加密索引节点间的支配关系,具体包括如下步骤:

给定加密空间文本skyline查询请求et(q)={et(q1.v),et(q2.v),...,et(qm.v)},首先计算加密空间文本mbr索引节点ei(ei.v)和ei(ej.v)的空间文本相似性;然后判断根据空间文本支配计算定义,计算每对对应的派生维度ei(ei.v)·et(qk.v)和ei(ej.v)·et(qk.v)的空间文本支配关系。

具体地,所述s3在支配关系的基础上实现基于加密索引的安全的空间文本skyline查询,具体包括如下步骤:

s31、基于加密的加密索引ei(e)和安全查询请求et(q)={et(q1.v),et(q2.v),...,et(qm.v)},云计算平台将队列初始化为容器;

s32、对于队列中的每个当前mbr索引节点或对象,计算派生维度,并确定它们每对之间的对应的空间文本支配关系;

s33、排除被空间文本支配的索引节点,直到找到不受空间文本支配的空间文本对象作为skyline结果为止,云计算平台将其发送给相应的授权用户。

具体地,所述步骤s3在支配关系的基础上实现基于加密索引的安全的空间文本skyline查询,具体包括如下步骤:输入为加密的ir-tree索引ei(e)和加密空间文本skyline查询请求et(q)={et(q1.v),et(q2.v),...,et(qm.v)},输出基于加密索引的空间文本skyline结果集s;云计算平台首先使用加密的ir-tree的根初始化队列;然后,直到队列为空,每次云计算平台都会从队列中读取元素e;如果e是一个对象,且isskyline初始化为1,则云计算平台确定s中的每个当前对象p和e之间的空间文本支配关系;

如果p被e空间文本支配,则p不会成为最终的skyline对象,并从s中删除;

如果e不能被s中的任何p空间文本支配,则e将作为当前skyline对象添加到s中;

如果e是索引的一个mbr索引节点,读取e内的每个mbr索引节点e',并使用面向mbr的空间文本支配的安全计算来计算e'是否在空间上由其他e'空间文本支配;

如果不被空间文本支配,则将e'添加到队列中,当队列中的所有元素都被安全计算后,云计算平台将结果集合s返回给相应的授权用户。

本发明的有益效果:

本发明首次解决了外部数据库场景中隐私保护的空间文本数据skyline查询问题,具有较好的可用性。在保证数据隐私安全的前提下,满足实际应用中授权用户空间文本skyline查询需求,形成数据加密框架下安全高效的空间文本数据查询体系。

附图说明

为了便于本领域技术人员理解,下面结合附图对本发明作进一步的说明。

图1为本发明一种基于加密索引的安全空间文本skyline查询方法的流程示意图。

图2为本发明一种基于加密索引的安全空间文本skyline查询方法的具体算法流程示意图。

图3为本发明实施例中所述定义1的数据的空间信息图;

图4为本发明实施例中所述定义1空间文本对象的文本信息展示图;

图5为本发明实施例中所述系统模型结构示意图;

图6为本发明实施例中所述构建安全查询索引的时间开销图;

图7为本发明实施例中所述构建安全查询索引的存储开销;

图8为本发明实施例中所述查询响应时间的评估(扇出=100);

图9为本发明实施例中所述询响应时间的评估(扇出=200);

图10为本发明实施例中所述查询响应时间的评估(扇出=100)。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的方法的例子。

本发明提出一种基本的安全空间文本skyline查询方法,该方法基于数据对象的安全空间文本支配(sstd),通过线性扫描方式在加密对象集中查找skyline对象。该方法涉及的定义如下:

定义1:空间文本对象

给定一个空间文本数据集p={p1,p2,...,pn},其中包含n个空间文本对象,每个在p中的对象pi被表示为pi=(pi.loc,pi.doc),pi.loc是空间信息(xi,yi),xi是空间文本数据的经度,yi是空间文本数据的纬度。pi.doc={t1,t2,…,tb}是对象pi的文本描述,tb是对象pi中的第b个文本信息。在图1中,空间文本数据集共有6个二维空间文本对象{p1,p2,p3,p4,p5,p6},从图中可以获取每个空间文本对象的空间信息,如p1.loc=(2,2)。在图2显示了6个空间文本对象各自所包含的文本信息,如对象p1包含clean、cheap、bar和laundry四个文本关键词。

定义2:空间文本skyline查询请求

给定空间文本skyline查询请求数据集q={q1,q2,...,qm},其中包含m个空间文本skyline查询请求,每个在q中的空间文本skyline查询请求qj具有空间信息(xj,yj),xj是查询请求qj的经度,yj是查询请求qj的纬度。qj.doc={ξ1,ξ2,…,ξz}是空间文本skyline查询请求qj的文本描述,ξz是空间文本skyline查询请求qj中的第z个文本信息。查询请求数据集中的空间文本skyline查询请求具有相同的查询文本,即q1.doc=q2.doc=…=qm.doc。在图1中有2个空间文本skyline查询请求q1和q2,q1.loc=(2,-4),q1.loc=(-2,-2)。两个查询请求q1和q2想要寻找一家旅店,这家旅店需要距离他们近且满足clean、friendly、window和car四项服务。此时,q1和q2所处位置不同,但是对查询点的偏好要求是一致的。

定义3:空间相近性

空间相近性指的是计算空间文本对象pi与空间文本skyline查询请求qj之间的空间距离。本发明使用pi与qj的欧氏距离dis(pi.loc,qj.loc)来表示空间文本对象pi与空间文本skyline查询请求qj的空间相近性,并基于dismax实现归一化,使用数据集p中空间文本对象间距离的最大值dismax作为归一化参数。具体计算方式如公式(1.1)所示。

图1的例子显示了六个空间文本对象和两个空间文本skyline查询请求的空间位置,再使用公式(1.1)得到六个空间文本对象与两个查询请求间的空间相近性。具体计算结果如表1.1所示。

表1.1空间相近性

定义4:文本相关性

文本相关性指的是空间文本对象pi与空间文本skyline查询请求qj之间文本相关程度。本发明先使用文本频率逆文档频率(tf-idf)方案对文档进行建模,以此来获取每个文本对应的权重。使用提出的语言模型wei(pi,qj)作为使用空间文本对象pi与空间文本skyline查询请求qj之间的文本相关性,其中,wei(pi,qj)是基于weimax实现归一化后的值,weimax是空间文本对象集中文本相关性的最大权重。具体计算方式如公式(1.2)所示。

通常,语言模型的值越大,pi与qj的文本相关性越高。其中,ω(ξi,pi.doc)定义如下,如果ξi出现在pi.doc中,则ω(ξi,pi.doc)是pi.doc中ξi的权重,否则,wei(pi,qj)是一个平滑因数(例如,0.02)。图1中六个空间文本对象与空间文本skyline查询请求的文本相关性如表1.2所示。

表1.2文本相关性

定义5:空间文本相似性

空间文本相似性指的是同时考虑空间相近性和文本相关性。使用引入平衡参数的空间文本相似性度量模计算空间文本相似性。具体计算方式如公式(1.3)所示。

st(pi,qj)=αdis(pi.loc,qj.loc)+(1-α)(1-wei(pi.doc,qj.doc))(1.3)

其中,引入参数α以平衡空间相近性和文本相关性,该参数是根据查询用户的查询偏好设定的介于0和1之间值。st(pi,qj)的值越小,pi与qj的空间文本越相似性。图3中六个空间文本对象与空间文本skyline查询请求的空间文本相关性的计算值如表1.3所示。

表1.3空间文本度量

定义6:空间文本支配计算

空间文本支配指的是:当时,st(qk,pi)≤st(qk,pj),且时,st(qk,pi)<st(qk,pj),则pi空间文本支配pj。

在表1.3中,因为st(q1,p2)≤st(q1,p4),且st(q2,p2)≤st(q2,p4),所以空间文本对象p2空间文本支配空间文本对象p4。

定义7:空间文本skyline查询

空间文本skyline查询指的是找到空间文本数据集p中不被任何其他的空间文本对象支配的空间文本对象。

在表1.3中,通过六个空间文本数据的空间文本支配计算,可以得到空间文本支配结果,那些不被其他空间文本对象支配的空间文本对象是空间文本skyline查询结果,在图3的例子中,空间文本skyline查询结果集为:{p1,p2,p5,p6}。

定义8:安全的空间文本skyline查询

给定一个加密的空间文本对象数据集en(p)和一个加密的空间文本skyline查询请求en(q)。安全空间文本skyline查询(securespatio-textualskylinequery,sstsq)是指安全的从en(p)中找到不被其他加密数据对象支配的en(pi),具体计算方式如公式(1.4)所示。

sstsq(en(p),en(q))=<en(pi),...,en(pn)>(1.4)

其中,<en(pi),...,en(pn)>指的是加密的skyline结果集。

在本发明的系统模型中,考虑一个典型的云计算环境下的安全的空间文本skyline查询模型,该模型包括数据拥有者、授权用户和云服务器。如图3所示。

由系统模型可以看出,数据拥有者和授权用户与云服务器并不处于同一个可信域中,云服务器并不能被数据拥有者和查询用户无条件信任。在隐私保护方面,本发明采用一种常用的威胁模式-已知背景威胁模。在此模型中,假定云服务器可以访问加密的数据库和加密索引,并且可以知道更多其他背景信息。而且,它不具有以实际值或分布形式的数据和查询的先验知识。在该模型下,提出的算法应满足以下要求。

(1)数据拥有者是受信任的。数据拥有者是一个受信任的实体,负责系统初始化,包括将访问密钥分发给用户和云服务器。授权和访问控制功能执行良好。假设数据拥有者在执行授权和访问控制措施后将授权密钥提供给云服务器和授权用户。

(2)云服务器是诚实但好奇的。云服务器将遵循该协议,但可能会对数据拥有者的空间文本数据集和授权用户的查询隐私(包括查询兴趣和数据的准确位置信息)感到好奇。

(3)授权用户与云服务器之间没有串通。假设授权用户将忠实地遵循协议来发起安全的空间文本skyline查询,并且任何授权用户与云服务器之间都不会发生合谋。

非对称内积保持加密技术(asymmetricscalar-product-preservingencryption,aspe)是一种针对加密数据上实现knn查询的加密算法,aspe的一个关键特性是保存了数据和查询请求之间的内积,这使得它特别适合设计基于距离和文本相似性的查询搜索。aspe中非对称指的是数据对象或索引节点与空间文本查询请求使用不同的加密函数。空间文本数据对象使用加密,空间文本查询请求使用加密,其中s∈{0,1}d+1是拆分向量,m1,m2是两个(d+1)×(d+1)的随机可逆矩阵。

首先需要将空间文本数据对象p和空间文本查询请求q转化为向量的形式。当s=1时,空间文本对象p被分裂成p′和p″,且满足p=p′+p″;空间文本查询请求q被分裂成q′和q″,且满足q=q′=q″。否则当s=0时,空间文本对象p被分裂成p′和p″,且满足p=p′=p″;空间文本查询请求q被分裂成q′和q″,且满足q=q′+q″。基于可逆随机矩阵,分裂后的空间文本向量{p′,p″}被加密为分裂后的空间文本查询请求向量{q′,q″}被加密为

尽管事实证明aspe及其变体不能抵抗已知的明文攻击,但如果没有明文,则证明aspe可以确保纯密文攻击模型中数据库和查询的安全。在本发明中,假设云服务器无法学习数据库,索引和查询请求的任何实际值,但可以学习密文。

为了对加密的空间文本对象进行sstsq处理,本发明首先设计了一种安全的空间文本支配关系的计算方法,以实现对加密对象的支配关系测试。为了实现面向数据对象的sstd,需要将空间文本数据库p和空间文本查询请求集q转换为向量并使用利用aspe的内积保持的功能,可以安全地计算和比较对象与查询请求之间的空间文本相似性,从而可以安全地确定一对对象的空间文本支配关系。

为了便于空间文本相关性的计算,需要将空间文本数据对象转变为长度相同的空间文本向量。每个在p中的空间文本对象pi=((xi,yi),{t1,t2,…,tb}),pi的文本向量可以表示为pi.dv=(t1′,t2′,…,tb′),其中tk′是文本tk的权重。然后,通过添加空间向量,每个空间文本数据对象的空间向量被表示为:pi.lv=(xi,xi2,1|yi,yi2,1|0,0,0|0,0,0),其中坐标都是经过归一化计算后的值。最后,将每个空间文本数据对象的文本向量和空间向量拼接起来,并为拼接后的向量在最后填补一个附加维度值1。空间文本数据对象向量最终表示为:pi.v=(pi.lv|pi.dv|1)。这里,首先定义空间文本数据对象加密函数ep(g),空间文本数据集合p中的每个元素pi,如果s(i)=1,(1≤i≤d+1),设置p′i=p″i=pi,否则设置其中γ1是随机数。然后,加密的空间文本数据对象为:使用加密函数ep(g)加密空间文本数据对象向量,加密后的空间文本数据对象向量为:

空间文本skyline查询请求数据集q=((xq,yq),{ξ1,ξ2,…,ξz}),由于空间文本skyline查询请求的查询文本一致,则若查询请求文本中包含空间文本数据的文本tk,则该ξk被标记为-1,否则为0。因此,空间文本skyline查询请求的文本向量可以用qj.dv=(ξ1′,ξ2′,…,ξz′)来表示。然后,预计算空间文本skyline查询请求的空间向量,每个查询请求的空间向量被表示为:qj.lv=(xq,xq2,1|yq,yq2,1|0,0,0|0,0,0),其中坐标都是经过归一化计算后的值。最后,将每个查询请求的文本向量和空间向量拼接起来。为了实现空间相近性和文本相关性的平衡,在拼接的时候为qj.lv和qj.dv分别乘以平衡因子α和1-α,最终,空间文本skyline查询请求向量表示为:qj.v=(αqj.lv|(1-α)qj.dv|1-α)。

本发明定义空间文本skyline查询请求加密函数et(g),查询请求q中的每个元素qj,如果s(j)=1,(1≤j≤d+1),设置否则q′j=q′j′=qj,其中γ2是随机数。然后,加密空间文本skyline查询请求为:使用加密函数et(g)加密空间文本skyline查询请求向量,加密后的空间文本skyline查询请求向量为:

加密的空间文本对象ep(pi.v)和加密的空间文本skyline查询请求et(qj.v)间的空间文本相似性的计算过程如公式(1.5)所示。

由公式(1.5)的计算过程可知,云服务器在计算空间文本支配时并不需要解密,加密的空间文本数据对象与加密空间文本skyline查询请求间的内积与未加密时两者的空间文本相似性一致。

给定加密空间文本skyline查询请求et(q)={et(q1.v),et(q2.v),...,et(qm.v)},首先计算加密空间文本数据对象ep(pi.v)产生的派生维度{ep(pi.v)·et(q1.v),ep(pi.v)·et(q2.v),...,ep(pi.v)·et(qm.v)}和ep(pj.v)产生的派生维度{ep(pj.v)·et(q1.v),ep(pj.v)·et(q2.v),...,ep(pj.v)·et(qm.v)}之间的空间文本相似性,然后判断加密空间文本数据对象ep(pi.v)和ep(pj.v)之间的空间文本支配计算关系。根据定义6,比较每对对应的派生维度ep(pi.v)·et(qk.v)和ep(pj.v)·et(qk.v),然后和判定比较结果是否满足定义6,在这里k=1,2,...,m。最终安全计算加密空间文本数据对象ep(pi.v)和ep(pj.v)间的空间文本支配关系,具体算法如算法1所示。

算法1的输入为加密的空间文本对象ep(pi.v)和ep(pj.v),和加密空间文本skyline查询请求et(q)={et(q1.v),et(q2.v),...,et(qm.v)},输出为加密空间文本对象pi是否空间文本支配pj。使用haslt作为标记来记录空间文本相似性比较中“存在派生维度上小于”的结果,云计算平台计算ep(pi.v)和ep(pj.v)分别与et(qk.v)的空间文本相似性,在这里k=1,2,...,m(第2-3行)。然后进行条件判断,如果不满足条件ep(pi.v)·et(qk.v)≤ep(pj.v)·et(qk.v),这意味着pi不能空间文本支配pj,因此返回false;否则,检查是否满足条件ep(pi.v)·et(qk.v)<ep(pj.v)·et(qk.v)(第4-7行)。最后,在所有成对的满足ep(pi.v)·et(qk.v)≤ep(pj.v)·et(qk.v)条件的基础上,检查haslt以确保至少有一对满足ep(pi.v)·et(qk.v)<ep(pj.v)·et(qk.v);如果满足上述条件,pi空间文本支配pj;否则pi不能空间文本支配pj(第8-11行)。

为了进一步解决基本方法的效率问题,本发明提出了一种基于索引的空间文本skyline查询方法。在基于索引的方法中,采用了基于加密树的索引,即加密的ir-tree。不同于线性地访问加密对象,本发明设计了一个基于mbr的sstd计算方法,它可以通过早期修剪由其他任何mbr或对象支配的mbr来加速sstsq处理。根据树结构逐级访问加密的mbr和对象,直到找到skyline空间文本对象作为结果。

(1)加密ir-tree

索引是实现空间文本数据高效管理和查询的重要结构。数据拥有者为空间文本数据对象创建ir-tree索引,为了空间文本数据和索引的隐私保护,和为了索引节点间与空间文本skyline查询请求间的安全计算,本发明使用aspe对每个ir-tree节点中的空间数据和文本数据进行一致性加密,索引节点之间的从属关系不会改变,其中ir-tree节点包含空间文本数据对象和最小边界矩形(minimumboundaryrectangle,mbr)。因此,也需要将ir-tree中的节点转变成向量形式。

由于mbr表示一组空间文本数据对象在空间中的分布范围,不能仅使用其中的一组空间坐标作为mbr的空间位置。针对这个问题,本发明使用mbr边界确定的最大和最小的两组位置坐标数据(xmin,ymin)和(xmax,ymax)来表示mbr空间范围。mbr中具有mbr内空间文本数据对象的所有文本,对应文本的权重是mbr内该文本权重的最大值。因此,mbr的文本向量可以表示为e.dv=(t1′,t2′,…,tb′),mbr的空间向量可以表示为e.lv=(xmin,xmin2,1|ymin,ymin2,1|xmax,xmax2,1|ymax,ymax2,1),其中坐标都是经过归一化计算后的值。然后,将每个mbr的文本向量和空间向量拼接起来,并为拼接后的向量在最后填补一个附加维度值1。mbr向量最终表示为:e.v=(e.lv|e.dv|1)。本发明定义查询索引加密函数为ei(g),由于查询索引是一个基于树的索引,索引上的mbr能够被看成一个向量。索引e中的每个元素ei,如果s(i)=1,(1≤i≤d+1),设置e′i=e″i=ei,否则设置其中γ3是随机数。然后,加密索引为:使用加密函数ei(g)加密mbr向量,加密后的mbr向量为:当ir-tree中所有的节点都被一致性加密后,就形成了安全的ir-tree索引。

(2)面向mbr的空间文本支配的安全计算

面向mbr的空间文本支配的安全计算可以根据加密索引单元数据计算出索引单元之间的空间文本支配关系,则被支配的索引单元中的数据对象也将被空间文本支配,从而该索引单元可以在空间文本skyline查询中预先被过滤掉,提高查询效率。

在mbr空间文本支配关系的安全计算中,首先,需要利用索引的辅助结构,对查询请求相对于索引单元的分布关系进行安全判别。为了实现密文下的位置关系判断,需要为授权用户的空间文本skyline查询请求生成查询请求辅助点。对于空间文本skyline查询请求(xj,yj),查询请求向量可以表示为:q.a=(xj,yj,1)。然后使用空间文本查询请求加密函数加密,最后得到的加密后的查询请求辅助点表示为:使用加密后的查询请求辅助点和锚点,云服务器按照一定的顺序进行计算,最终确定查询请求位于矩形的哪个区域。然而,在云服务器上,空间文本skyline查询请求和mbr的位置信息同样被加密,即使能够判断其位置,也不能进行计算。针对这一问题,具体来说,在计算之前预处理空间文本skyline查询请求,生成针对不同位置的九个查询请求。对于每个空间文本skyline查询请求,根据查询请求向量和锚点确定适合当前状况下的查询请求向量。查询请求的加密与安全的空间文本skyline查询请求的生成相同。

给定加密空间文本skyline查询请求et(q)={et(q1.v),et(q2.v),...,et(qm.v)},首先计算加密空间文本mbr索引节点ei(ei.v)产生的派生维度{ei(ei.v)·et(q1.v),ei(ei.v)·et(q2.v),...,ei(ei.v)·et(qm.v)}和ei(ej.v)产生的派生维度{ei(ej.v)·et(q1.v),ei(ej.v)·et(q2.v),...,ei(ej.v)·et(qm.v)}之间的空间文本相似性,然后判断加密空间文本mbr索引节点ei(ei.v)和ei(ej.v)之间的空间文本支配计算关系。根据定义6,比较每对对应的派生维度ei(ei.v)·et(qk.v)和ei(ej.v)·et(qk.v),然后和判定比较结果是否满足定义6,在这里k=1,2,...,m。最终加密空间文本mbr索引节点ei(ei.v)和ei(ej.v)间的空间文本支配关系被计算。

(3)基于加密索引的安全空间文本skyline查询处理

基于加密索引的安全空间文本skyline查询处理旨在高效实现安全的空间文本skyline查询。使用空间文本支配的安全计算和面向mbr的空间文本的安全计算作为基础,本发明提出基于加密索引的安全的空间文本skyline查询方法。具体来说,基于加密索引ei(e)和安全查询请求et(q)={et(q1.v),et(q2.v),...,et(qm.v)},云计算平台将队列初始化为容器,以方便访问mbr索引节点或数据对象。使用队列,云计算平台首先访问ei(e)的根节点。如果没有其他mbr索引节点或对象存储在队列中,云计算平台需要按照预定顺序在根目录下添加mbr索引节点。对于队列中的每个当前mbr索引节点(或对象),计算派生维度,并确定它们每对之间的对应的空间文本支配关系,基于ir-tree构造的特点,因为ir-tree中的mbr索引节点使用mbr和倒排文件作为子树的空间和文本信息,给定e和q,时空文本相似性st(q,e)必须小于(更好)e中其他的mbr索引节点或对象的相似度。因此,在空间文本支配计算mbr索引节点时,由于e和q之间的空间文本相似性,如果mbr索引节点e在空间上由其他mbr索引节点或对象空间文本支配,则e内部的mbr索引节点或对象同样也被空间文本支配并从skyline结果中排除。因此,云计算平台会找到不被空间文本支配的mbr索引节点,并将其中的mbr索引节点添加到队列中。直到找到不受空间文本支配的空间文本对象作为skyline结果为止,云计算平台才会将其发送给相应的授权用户。基于加密索引的安全的空间文本skyline查询算法如算法3所示。

算法3的输入为加密的ir-tree索引ei(e)和加密空间文本skyline查询请求et(q)={et(q1.v),et(q2.v),...,et(qm.v)},输出是基于加密索引的空间文本skyline结果集s。云计算平台首先使用加密的ir-tree的根初始化队列(第1-3行)。然后,直到队列为空,每次云计算平台都会从队列中读取元素e(第4-5行)。如果e是一个对象,且isskyline初始化为1,则云计算平台确定s中的每个当前对象p和e之间的空间文本支配关系。如果p被e空间文本支配,则p不会成为最终的skyline对象,并从s中删除。如果e不能被s中的任何p空间文本支配,则e将作为当前skyline对象添加到s中(第6-15)。如果e是索引的一个mbr索引节点,读取e内的每个mbr索引节点e',并使用面向mbr的空间文本支配的安全计算来计算e'是否在空间上由其他e'空间文本支配。如果不被空间文本支配,则将e'添加到队列中(第16-20行)。当队列中的所有元素都被安全计算后,云计算平台将结果集合s返回给相应的授权用户。

对比例1

基于线性扫描的安全空间文本skyline查询处理

基于线性扫描的安全的空间文本skyline查询处理方法使用空间文本支配的安全计算作为基础,云计算平台通过线性扫描加密的空间文本对象处理查询算法,最终知道skyline结果集。具体来说,基于加密的空间文本数据集ep(p)={ep(p1.v),ep(p2.v),...,ep(pn.v)},在接收到加密的空间文本skyline查询请求et(q)={et(q1.v),et(q2.v),...,et(qm.v)}之后,云首先访问加密空间文本数据集ep(p)中的每个对象ep(pi.v),并且针对在空间文本skyline查询请求et(q)中的每个子查询请求et(qk.v)产生派生维度{ep(pi.v)·et(q1.v),ep(pi.v)·et(q2.v),...,ep(pi.v)·et(qm.v)}。然后,使用空间文本支配的安全计算方法,通过选择所有成对的空间文本数据对象,云计算平台判断每对的空间文本支配关系。最后,将不受其他对象支配的加密数据对象作为安全的空间文本skyline查询处理的结果集插入到集合中。云计算平台将结果集返回给相应的授权用户。算法2总结了基于线性扫描的安全的空间文本skyline查询算法。

在算法2中,输入加密的空间文本对象集ep(p)={ep(p1.v),ep(p2.v),...,ep(pn.v)}和加密的空间文本skyline查询请求集合et(q)={et(q1.v),et(q2.v),...,et(qm.v)},输出安全的空间文本skyline查询结果集s;通过空间文本支配的安全计算的结果isdom,给定加密数据对象ep(pi.v),云计算平台对每一个ep(pj.v)执行空间文本支配的安全计算(算法1),其中j=2,...,n,得到ep(pi.v)是否被ep(pj.v)空间文本支配(第1-6行)。如果ep(pi.v)被ep(pj.v)空间文本支配,isdom被设置为1。也就是说,ep(pi.v)不能是一个skyline对象,因此isskyline被设置为0。然后,云计算平台将在下一个ep(pi.v)上执行空间文本支配的安全计算(第7-9行)。如果ep(pi.v)不能被任何ep(pj.v)支配,其中j=2,...,n,则ep(pi.v)确定为一个skyline对象,插入到结果集s中,最后云计算平台返回s给对应的授权用户(第10-12行)。

本发明使用一台服务器作为云,其配置包括intel(r)xeon(r)cpul5638@2.00ghz(双处理器)和32.0gbram,将一台pc用作intel(r)core(tm)的数据拥有者或数据用户)i7-3610qmcpu@2.30ghz和3.0gbram用于实验。它们都在64位windows10操作系统上运行。所有程序都用java实现,并且java虚拟机堆设置为3gb。java的jdk版本为jdk1.8.0_101。

为了保证算法的有效性,本发明使用四个数据集评估测试:la数据集,它是从geotext数据集收集的带有地理标签的微博;eu数据集是真实的空间数据集和真实的文档数据集20newsgroups;ca数据是从实际空间数据集highmaps地图数据集中收集的,本发明为空间数据集随机匹配200到300个文本关键字;random随机数据集是生成的人工数据集,该数据集具有10,000个空间文本对象,其中空间文本对象位置的分布是均匀的,分配给每个空间文本对象的文本内容和个数是完全随机的。表1.4显示了有关数据集的详细统计信息。

另外,本发明实验中所有的空间文本skyline查询请求是通过根据每组试验数据集确定空间范围,从这个范围内随机产生查询请求空间位置,查询文本是从该组试验数据集中的总文本范围内,随机产生查询请求文本信息。

表1.4实验数据集

下面通过分析实验数据来说明本发明中算法的性能。

本发明通过空间文本对象数量的变化来评估索引加密处理的时间开销以及空间开销。图4显示了基于加密索引的安全的空间文本skyline查询算法的索引加密处理的时间开销。从图中可以看到,随着空间文本对象数量的不断增长,构建安全查询索引的时间开销随着增大。当空间文本数据对象数量为100,000时索引加密处理时间是空间文本对象数量为20,000时索引加密处理时间的11倍。这是因为当加密的空间文本数据对象的数量增加时,索引构建的mbr的数量也会增加,这会多消耗一些时间,另外每个mbr都有指向的倒排文件,倒排文件需要为每个mbr分配对应的文本信息,由于构建的mbr越多,添加倒排文件的时间越多,从而导致索引加密处理时间增加。

图5显示了基于加密索引的安全的空间文本skyline查询算法的索引加密处理的空间存储开销。从图中可以看到,随着空间文本对象数量的不断增长,构建安全查询索引的空间开销随着增大。然而当空间文本数据对象数量为100,000时索引加密处理的空间不超过800mb。即使这样,基于云计算平台丰富的存储资源,为了能够在云计算环境中提供空间文本skyline查询服务,构建加密索引所需的存储空间是可以被接受的。

本发明使用四个数据集,根据查询位置和查询关键字的数量来评估查询响应时间。在图6和图7中,通过空间文本skyline查询请求数量的变化来评估安全的空间文本skyline查询处理的时间开销。图8通过空间文本skyline查询请求文本数量的变化来评估安全的空间文本skyline查询处理的时间开销。

图6是当四个数据集空间文本skyline查询请求文本数量固定为10个,并且扇出值固定为100的时候,随着空间文本skyline查询请求数量的不断增加,四个数据集下基于线性扫描的安全的空间文本skyline查询和基于加密索引的安全的空间文本skyline查询的查询响应时间。

从图6可以直观的看到,扇出值为100时,查询响应时间随空间文本skyline查询请求个数变化的评估结果。随着空间文本skyline查询请求数量的增大,两种查询算法的查询响应时间都将增加。无论什么数据集,空间文本skyline查询请求数量至少为5时,基于加密索引的安全的空间文本skyline查询的响应时间比基于线性扫描的安全的空间文本skyline查询好得多。在图8(d)中,当空间文本skyline查询请求个数为5时,基于线性扫描的安全的空间文本skyline查询的响应时间比基于加密索引的安全的空间文本skyline查询的查询响应时间长30倍。

图7是当四个数据集空间文本skyline查询请求文本数量固定为10个,并且扇出值固定为200的时候,随着空间文本skyline查询请求的不断增加,四个数据集下基于线性扫描的安全的空间文本skyline查询和基于加密索引的安全的空间文本skyline查询的查询响应时间。当扇出值为200时,四个数据集中基于索引的安全的空间文本skyline查询的查询响应时间在图中的走向变化趋势几乎相同。然而,当扇出值从100增加到200时,基于索引的安全的空间文本skyline查询的查询响应时间会减少,但不会很多。这是因为,对于10,000和100,000个数据集来说,构建索引树时,设置节点容量必须考虑数据集大小。另外,由于基于线性扫描的安全的空间文本skyline查询中没有索引,而扇出的取值仅与索引有关,图6和图7中的基于线性扫描的安全的空间文本skyline查询的查询响应时间相同。

图8是当四个数据集空间文本skyline查询请求个数固定为20个,且扇出的值固定为100的时候,随着空间文本skyline查询请求文本数量的不断增加,四个数据集下基于线性扫描的安全的空间文本skyline查询和基于加密索引的安全的空间文本skyline查询的查询响应时间变化情况。从图中可以直观的看到,随着查询请求文本数量的增加,两种查询算法的响应时间将增加。另外,针对这四个数据集,基于加密索引的安全的空间文本skyline查询的查询响应时间几乎不变,由此可见,空间文本skyline查询请求文本的数量对基于加密索引的安全的空间文本skyline查询影响很小。然而,图8(a)中的变化趋势与其余数据不同。这是因为这组数据集是由微博语料库生成的,其中每个空间文本对象都包含一些公共属性,即与空间文本skyline查询请求文本相关的空间文本对象很多,因此查询时间将相应增加。

本领域技术人员在考虑说明书及实践公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述的内容,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1