一种针对加密的空间数据的圆形范围搜索方法与流程

文档序号:15485029发布日期:2018-09-21 19:43阅读:467来源:国知局

本发明属于可搜索加密技术领域,具体涉及一种针对加密的空间数据的圆形范围搜索方法。



背景技术:

云计算是学术界与工业界最为关注的下一代信息技术(Information Technology,IT)架构,它具有迄今为止众多已成熟应用于工业界的IT技术所不具有的诸多特性,诸如:按需获取自助式服务、无处不在的网络接入、独立于地点的资源池、资源的快速伸缩、按使用付费以及风险转嫁。云计算汇集了庞大的计算资源、存储资源以及其他服务资源,为用户提供了多种新颖便捷可靠的服务,给云服务提供商们带来了巨大的商机和利益。在诸多服务中,数据外包服务由于其为用户提供了一种更为简便、高效以及可靠的数据管理方式,而成为广受学术界与工业界关注的焦点。用户可以将自己的海量数据外包给云服务器,在需要的时候对这些数据进行访问查询等操作。这一服务模式为用户释放了其本地数据存储与维护的压力,并能让用户随时随地按需访问这些数据。总之,这一服务模式为用户带来了极大的便利。

然而,在用户将自己的数据存储于云服务器后,数据便完全受控于服务器,继而使得存储于云上的数据面临着严重的安全和隐私威胁,主要表现在以下几个方面:

1.安全威胁。尽管云服务器利用了更加安全的存储技术并提供了更加可靠的存储设备,但是,在实际的云环境中,存在着众多恶意的敌手,他们出于各自的利益,试图篡改或偷窥存储于云服务器上的用户数据。

2.隐私威胁。云服务器并不是完全可信的。他也许会对于存储的数据的具体内容感兴趣。比如,对云服务提供商自己而言,在经济利益的驱使下,他们很有可能将用户的数据内容进行统计分析等操作甚至会偷窥个人的敏感数据。所以隐私的威胁也很大。

数据的安全和隐私问题严重的制约了云计算服务发展。并且,如果简单粗暴的用复杂的加密算法来加密数据并设计严格的访问控制机制会大大的降低服务的效率和质量。诸如关键字搜索,范围搜索等服务甚至会无法提供。云服务器会沦为一个单纯的廉价存储介质。

为了解决上述问题,设计一个可搜索加密方法,该方法必须满足一下几个特点:

1.数据的拥有者不可能一直在线向搜索用户提供服务。主要的存储和访问任务都必须由云服务器来提供。数据拥有者只需在外包数据之前做一些加密和生成索引等基本操作。一旦数据到达云服务器,数据的拥有者只需定期的做密钥更新等轻量级的任务

2.为了保证服务的效率,数据的加密算法和密文下的搜索算法都不能太复杂。而且,数据必须有很好的索引结构。

3.数据和搜索内容的安全与隐私依赖于加密算法和搜索算法,不同方法有不同的安全和隐私强度。一般来说可搜索加密方法的安全隐私强度和效率之间需要作平衡。

基于此,可搜索加密技术得到了很多学者的研究和贡献。但是大多数都是基于关键字查询和方形的范围搜索的方法。圆形范围搜索的方法非常的少。圆形范围搜索是一种最近提出的在圆形区域内返回点集的可搜索加密方法。它和kNN查询比较相近,但不需要预先设定返回查询结果的数量k。圆形范围搜索需要定义圆的半径(查询范围)。最近,目前有人提出两个对称密钥可搜索加密算法来支持圆形范围搜索。但是,其中搜索令牌生成、数据加密以及查询过程的效率比较低。

本方法是基于矩形范围搜索的,矩形范围搜索要求返回一个矩形区域内所有点。目前实现的矩形区域搜索都是基于公钥密码学的。但两者的方法数据结构都是线性的,不适合大数据环境。为了解决这个问题,不少方法运用了树状结构比如R-tree和kd-tree作为索引。这些方法查询比运用线性结构的方法要快。但是这些算法可能会因为顺序信息的泄露而造成重要信息丢失。有的方法确保了顺序信息不泄露却牺牲了效率。有的方法以牺牲结果的正确率确保顺序信息不泄露。



技术实现要素:

本发明的目的,就是针对上述问题,提出一种针对加密的空间数据的圆形范围搜索方法。

本发明的技术方法为:一种针对加密的空间数据的圆形范围搜索方法,其特征在于,包括以下步骤:

a.搜索用户根据目标圆形查询范围产生搜索令牌,并将搜索令牌上传至云服务器;所述搜索令牌包括第一正方形和第二正方形的查询范围,第一正方形为目标圆形的内接正方形,第二正方形为目标圆形的外接正方形;

b.云服务器根据搜索令牌进行搜索得到中间搜索结果,并将中间搜索结果和搜索令牌发送到可信第三方;所述云服务器中存储有加密的空间数据;

c.可信第三方解密中间搜索结果和搜索令牌,在明文条件下检查哪些结果没有在目标圆形查询范围内,并将错误的结果过滤后将剩下的最终搜索结果重新加密后返回云服务器;

d.云服务器将最终所搜结果发送给搜索用户。

进一步的,步骤a中所述搜索用户根据目标圆形查询范围产生搜索令牌的具体方法为:搜索用户输入圆心和圆的半径,假设圆心为(X,Y),半径为R,则可获得第一正方形查询范围Qin为第二正方形查询范围Qex为{(X-R,Y-R),(X+R,Y+R)}。

进一步的,步骤a中所述第一正方形和第二正方形的查询范围经过ASPE(Asymmetric Scalar-productPreserving Encryption,非对称的向量积保持加密)加密算法加密后上传至云服务器。

进一步的,步骤b中所述云服务器中存储有加密的空间数据,空间数据具体加密方法为:采用R树作为数据索引结构,在明文的环境下,所有的数据点都被使用对应的分组策略分成区块,区块是R树的最小外接矩形,R树的叶子节点对应于空间数据库的数据点;采用ASPE加密算法对区块进行加密:使用V∈Rd来表示最小外接矩形的顶点,并且使用ASPE加密算法来加密顶点,ASPE加密算法将V的维数扩展,得到V+=(VT|1)T,然后通过使用矩阵密钥M进行加密得到VE=M-1V+;其中,矩阵密钥M为一个可逆的(d+1)×(d+1)矩阵;则云服务器中存储的加密的空间数据至少包括加密数据点、R树的双亲节点和孩子节点的关系。

进一步的,步骤b中所述云服务器搜索令牌进行搜索的具体方法为:

根据步骤a中生成的第一正方形查询范围和第二正方形查询范围,判断查询范围的四个边是否与区块相交,若是,则依次判断该节点的子节点是否与查询范围的相交,重复查询直至数据点为止,遍历查询范围的所有边后退出该步骤并将相交的数据点生成中间搜索结果。

本发明的有益效果为,本发明在保证安全和隐私的同时高效地实现了针对加密的空间数据的圆形范围搜索方法。

附图说明

图1是本发明的方法的流程示意图;

图2是用户产生的搜索令牌的逻辑示意图;

其中,center表示圆心,Radius表示半径。

具体实施方式

下面对本发明进行详细的描述

在EP-CRS中,采用R树作为数据索引结构。在明文的环境下,所有的数据点都被使用对应的分组策略分成区块。区块是R树的MBR(Minimum bounding rectangle,最小外接矩形)。R树的非叶子节点都是更高级节点的子节点,R树的叶子节点都是对应于空间数据库的数据点。

R树的非叶子节点和R树的叶子节点的加密方式不同。非叶子节点Ri(i∈Z*)由两个顶点(Vm,Vn)表示,其中m,n∈Z*。使用V∈Rd来表示MBR的顶点,并且使用ASPE加密算法来加密它。该算法首先将V的维数扩展,得到V+=(VT|1)T。然后,通过使用矩阵密钥M,一个可逆的(d+1)×(d+1)矩阵来加密V。加密过的顶点表示为VE=M-1V+。本发明中R树的MBR的所有顶点是以相同的方式被加密的。出于提高加密效率的考虑,对于叶子节点(数据点),可以通过任何有效的安全的密码技术来加密。本发明采用高级加密标准AES来来加密源数据点。

如图1所示,为本发明的具体方法流程,本发明的具体的实现方法如下:

一个圆形空间范围搜索生成一个搜索令牌的具体方法为:在现实中,用户想知道最近的地方(比如:在2公里以内的最近的酒店),所以,基于位置的服务的查询范围很自然成为一个圆;用户需要提供自己的地理位置(经度和纬度)作为查询圆的中心;此外,用户还需要指定圆的半径。因此,用户输入所有的信息应该是(经度,纬度)和半径。

如图2所示,根据搜索用户提供的圆形搜索范围,首先,将改变圆形的查询范围转化为两个正方形的查询范围。其中一个为圆形的内接正方形,另一个为圆形的外接正方形。那么容易计算两个方形的查询范围。让(X,Y)作为圆心的坐标,以及R作为半径的值。然后,内部的查询Qin就可以表示为并且外部查询Qex可以表示为{(X-R,Y-R),(X+R,Y+R)}。最终,可以运用正常的矩形范围搜索技术来求解Qin和Qex。在矩形范围搜索中,Qin和Qex应该首先被转化成四个半平面。

因此,有Qin计算过程和Qex是完全一样的,这里以Qex的计算为例。

正方形查询范围的四个超平面中有八个锚点。由于四个超平面都是等价的,以其中一个点H1的计算为例。H1是由两个参数a和b的确定。随机选择一个锚点其中是的另一侧的锚点。根据线性代数,让A:然后有B:显然,解等式A和B得到这样,就可以为每个超平面生成两个锚点,同理可得到所有超平面的锚点。

然后是对明文的查询范围加密。在加密之前先将锚点向量扩展一维:

然后,使用密钥M来加密α和α>:和

最后,获得H的密文是其中r是一个随机正数。

在上述分析的基础上,可以获得对Qex搜索令牌是(H1E,H2E,H3E,H4E),其中H1E是H1的密文。此外,为了保护单维查询隐私,随机排列搜索令牌向量的四个元素。此操作不会影响查询结果。Qin的搜索令牌的产生和Qex是完全一样的。搜索令牌由用户生成。

云服务器进行密文下的搜索计算:云服务器实现了矩形范围搜索(Qex,Qin)。云服务器储存以下信息:加密搜索算法,加密数据点和R树的双亲节点和孩子节点的关系。而且,双亲节点和孩子节点的关系没有被加密。

首先方法要进行交叉判断。显然,不能只通过测试一个索引矩形的顶点是否在查询矩形中来判断矩形的交叉情况。相反,应该确定顶点是否在适当的查询范围内。而且,实际有三种以上的交叉模式。因此,很难检查所有的交叉模式,并决定搜索路径。所以,本发明从相反角度分析这个问题。如果一个索引范围的顶点是在相同的范围H>内,可以得出这样的结论:查询范围矩形和索引矩形不相交。逐一检查查询矩形的四个超平面来判断索引矩形是否不与查询范围相交。本发明提供一个名为Not_In_Halfspace(VE,HiE),i=1,2,3,4的函数作为交叉鉴别器。这个函数的输入为一个加密点VE和一个查询的加密超平面HiE。它输出一个比特位来表明是否成立。函数需要计算HiE·VE来输出结果。具体计算如下:

其中和是超平面HiE加密了的锚点。参数r是一个非负随机整数和VE是V的密文。如果HiE·VE<0,则V不在中。如果V不在上,可以让函数输出1,

如上所述,如果索引矩形的两个顶点在相同的半空间可以判断,查询矩阵不与索引矩阵相交。当输出四个0时,矩阵相交。交叉情况判断算法的细节如下:

云服务器采用上述算法作为基本工具来完成剩余的搜索操作。让Γ为加过密的R树和Σ为搜索结果。在本发明的方法中,应用BFT算法搜索Γ。首先,该算法访问Γ的根并且应用算法1来检测查询范围是否与根节点相交。如果是相交,它将从左向右遍历所有的根的孩子。否则,该算法停止并返回0。对于有孙子节点的节点,如果查询范围和它不相交,算法将不访问孩子节点。但是,当算法返回1时,该算法将遍历所有的孩子节点,对每个孩子进行相同操作。如果节点的孩子是数据点并且算法返回1,搜索算法将返回所有的孩子并作为Σ的元素。否则,该算法继续搜索的Γ的其他节点。

对Γ分别采用上述搜索算法计算Qex和Qin。Σex和Σin分别为Qex和Qin的解集。因此,如果一个数据点出现在Σex和Σin中,它应该放入最后的解集Σ*。否则,数据点将被放在中间结果集合Σ+。然后,把Σ+和搜索令牌Qex和Qin发送给TTP。TTP会过滤掉在Σ+中的错误点并返回剩余的点给云服务器。最后,云服务器把剩下的点放到最后的结果集合Σ*中并返回给用户。

TTP过滤出错误结果的方法为:

TTP是全局可信第三方,所以TTP持有ASPE密钥和AES密钥。TTP从云服务器那里接收中间结果Σ+或者Σex和搜索令牌Qex和sQin。

TTP首先用矩阵密钥M解密搜索令牌,会得到圆形查询范围的内接和外接正方形。然后利用欧氏几何可以得到圆形查询范围的方程。接着,TTP用AES密钥解密所有的数据点并将点的值代入圆的方程来判断该点是否在圆内。如果在则将该点放入最终解集Σ*否则过滤掉该点。

最后,TTP将最终的解集Σ*加密并发送给云服务器。

综上所述,本方法在保证安全和隐私的同时高效地实现了针对加密的空间数据的圆形范围搜索方法。

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