一种基于云计算隐私保护的空间关键词搜索方法

文档序号:26050827发布日期:2021-07-27 15:25阅读:118来源:国知局
一种基于云计算隐私保护的空间关键词搜索方法

本发明涉及空间关键词搜索、访问控制、几何范围查询领域,特别是涉及基于云计算隐私保护的空间关键词搜索方法。



背景技术:

随着云计算的飞速发展,越来越多的企业、政府、用户将空间数据外包至云服务器,以享受云服务器带来的经济利益和计算优势。但是,云服务器不完全可信,数据外包存储于云服务器中可能会带来隐私泄露和数据安全问题。如果数据拥有者和数据使用者按照传统的加密方式加密空间数据,并外包密文数据至云服务器,这将极大地影响数据搜索效率,降低数据的可用性,比如空间数据搜索。空间数据搜索是一种较为普遍且非常重要的一种基于位置服务的应用。空间数据搜索旨在对给定的查询范围中找到相关的基于关键词的空间数据,它在现实生活中得到了极大地应用推广,如基于位置服务(locationbasedservices,lbs)、车联网、智能共享汽车服务等。然而,空间关键词搜索需要充足的存储空间和高效的计算能力。因此,数据拥有者会将收集的空间数据外包至云服务器中,以享受云服务器带来的便利。相应的,数据使用者为了获得期望中的空间数据(如附近符合口味的餐馆、最近的加油站、最相邻的朋友等),他会向云服务器提交基于空间关键词的查询请求。云服务器收到用户的查询请求后,在存储的空间数据中进行搜索,并返回相应的空间数据。

不幸的是,在许多基于云辅助的服务应用中,云服务器会出于利益驱使,窃取存储于其中的空间数据敏感信息,并分析用户提交的查询请求,从而导致数据拥有者和数据使用者的隐私泄露。因此,数据的机密性,包括外包存储于云服务器中的空间数据以及发送的查询请求,应该加以保护。然而,传统的加密机制限制了空间数据的可用性,如空间关键词搜索。一般而言,数据拥有者收集了大量的空间数据,且这些空间数据往往都是高维数据。空间数据的高维体现在数据包含多个属性,如二维的位置坐标和多维的关键词向量。其中,关键词向量表示空间数据的特征,如酒店的评分、价格、舒适度、便捷度等。

给定数据使用者的基于空间关键词的查询请求,云服务器执行空间关键词搜索,并返回与查询请求相似的查询结果。然而,现实中空间数据规模呈现指数级增长,且数据维度呈现线性增加的趋势。因此,如何在大规模高维空间数据中进行高效且安全的空间关键词相似性搜索成为了极具挑战的问题。与此同时,由于空间数据中包含一些秘密位置,如军事基地、军用机场、特长隧道等。这些秘密空间数据往往只能够被一些特定且具备访问权限的用户访问。未授权或者未认证的用户一旦获得秘密空间数据,将会带来严重的数据安全事故。更有甚者,可能会危害国家的安全。因此,在进行空间关键词搜索时,空间数据的隐私保护和访问控制同样需要得到重视。

考虑到空间数据中包含用户的敏感信息,如用户的位置和关键词(用户兴趣)。然而,云服务器不是可信的,它会窃取用户的地理位置和用户的兴趣,造成用户隐私泄露。另外,现实中的几何范围查询往往是任意多边形的。然而,传统的几何范围查询仅仅能够支持有限的几何多边形查询,限制了几何范围查询的实用性。此外,目前大部分空间数据搜索研究仅仅关注基于位置的搜索或者基于关键词的搜索,无法同时支持基于位置和关键词的搜索。而且,基于位置搜索和基于关键词搜索方法无法直接应用到基于空间关键词搜索中。除了以上问题外,由于空间数据中包含秘密位置,如军用战场、军用营地等。这类特殊空间数据只能够被特定的且具备访问权限的用户访问。综上所述,本专利针对以上问题与挑战,提出了基于云计算隐私保护的空间关键词搜索方法,实现了任意多边形的几何范围查询,支持对用户细粒度访问控制,达到了高效的密文空间关键词搜索。



技术实现要素:

发明目的:本发明旨在解决基于云计算空间关键词搜索效率低、数据隐私泄露、用户不合法访问等问题,提出一种基于云计算隐私保护的空间关键词搜索方法,主要包括三大内容:

内容一:提出一个基于云计算隐私保护的空间关键词搜索模型,该模型能够支持多用户场景下的高效密文搜索;

内容二:提出一种基于多项式拟合技术的几何范围查询方法,实现任意多边形的几何范围查询;

内容三:提出一种基于角色访问控制的空间关键词搜索方法,实现高效且安全的空间关键词搜索。

本发明所提出的基于云计算隐私保护的空间关键词搜索方法,具体内容如下:

内容一:提出一个基于云计算隐私保护的空间关键词搜索模型。

本专利针对一种典型的基于云计算位置服务系统设计了空间数据搜索模型。在该模型中,主要包含三个实体,即数据拥有者、云服务器、数据使用者。

数据拥有者相当于位置服务器,用于收集用户的地理位置信息。由于数据拥有者存储空间有限、计算资源不足,一般会将空间位置数据外包至云服务器,从而释放本地的存储压力,解决计算效率低等问题。然而,云服务器不是可信实体,它可能会窃取数据拥有者存储的位置数据,分析其中的敏感信息。因此,数据拥有者通常将位置数据加密后再上传至云服务器。另外,为了防止不合法用户非法使用空间位置数据,数据拥有者对空间位置数据设定访问策略。只有满足访问策略的用户才能够访问空间位置数据。

云服务器为基于位置的服务提供充足的存储资源和强大的计算能力。用户可以向云服务器提交加密的查询请求,以获得期望的地理位置。如用户希望获得附近的加油站、游客需要找到适合口味的餐厅、医生查询某个地区感染新冠病毒患者的数量等。云服务器收到用户的查询请求后,首先认证用户的合法性。若用户通过认证,则云服务器在加密的空间位置数据中执行相似性搜索,并返回相应的查询结果。

数据使用者为了获得期望的空间位置数据,首先利用自身的密钥加密查询请求,并将查询请求发送至云服务器。云服务器收到查询请求后,通过访问认证后,执行密文空间关键词搜索算法。然后,为数据使用者返回对应的查询结果。当收到查询结果后,数据使用者能够利用获取的密钥解密密文,从而获得需要的空间位置数据。

在基于云计算空间关键词搜索的威胁模型中,假设数据拥有者是可信的,数据拥有者外包加密空间数据,并为合法用户提供解密密钥。对于数据使用者而言,存在两种类型的用户:认证用户和未认证用户。其中,认证用户表示用户角色通过数据拥有者设定的访问策略,他们是可信的实体,且不会泄露他们的密钥给其他用户。然而,未认证的用户可能会进行恶意攻击。另外,云服务器是半可信实体,即云服务器会正确的执行算法,但是他们对用户的查询请求以及数据拥有者存储的空间位置数据非常好奇。此外,本专利假设云服务器和用户之间不会合谋。因为合谋攻击容易被检测出来。一旦发现云服务器与用户进行合谋,那么这将会极大地降低云服务器的信誉。本专利主要考虑两种攻击模型:惟密文攻击和已知背景攻击。

内容二:提出一种基于多项式拟合技术的几何范围查询方法。

由于空间位置数据主要由两部分组成:位置和关键词,即p=(l||w),其中,l表示用户的位置坐标,w表示该位置的关键词,如酒店的评分、价格、舒适度、环境等。为了实现空间关键词搜索,本专利提出一种基于多项式拟合技术的几何范围查询(geometricrangequery,grq)方法。几何范围查询能够支持任意多边形的范围搜索。用户可以生成任意的几何范围,并将加密后的范围提交至云服务器。然后,云服务器根据用户提交的几何范围,返回几何范围中囊括的位置点。本专利提出的几何范围查询方法主要包括四个算法:密钥生成算法、索引构建算法、陷门生成算法、以及几何范围查询算法。下面详细介绍四个算法的构造过程:

(1)密钥生成算法:grq.keygen(1λ)→sk1

给定一个安全参数λ,密钥生成算法输出密钥其中,s是一个(n+2)维二进制向量,用于分裂位置向量和查询向量,m1,m2是两个(n+2)×(n+2)可逆矩阵,用于加密数据拥有者的位置向量,π1是一个随机置换函数,是两个(n+2)×(n+2)可逆矩阵,用于加密查询向量。

(2)索引构建算法:grq.indexbuild(m1,m2,s,li)→ii.

给定两个可逆矩阵m1,m2,随机置换函数π1,随机二进制向量s,以及空间位置向量li,索引构建算法执行扩充、置换、分裂、以及加密操作生成空间位置对应的索引向量。假设空间位置数据集中的每个位置向量可表示为li=(xi,yi),i∈[1,m],其中,m表示空间位置数据集的大小。首先,li被扩充为(n+2)维向量其中ri是数据拥有者任意选择的一次一密随机正数。然后,数据拥有者利用置换函数π1,将扩充向量置换为置换完成后,数据拥有者利用随机二进制向量s,将置换向量ri分裂为随机的两个向量形式,即ri=(r′i,r″i)。具体分裂规则为:当s[j]=0时,ri[j]=r′i[j]=r″i[j];当s[j]=1时,ri[j]=r′i[j]+r″i[j]。

向量分裂完成后,数据拥有者利用密钥m1,m2加密分裂向量r′i,r″i,即最后,索引构建算法完成,数据拥有者将加密后的索引上传至云服务器。

(3)陷门生成算法:

给定两个可逆矩阵随机置换π1,随机二进制向量s,数据使用者执行陷门生成算法,包括置换、分裂、加密,从而生成基于几何范围的查询陷门。具体而言,数据使用者首先使用多项式拟合技术生成两条光滑曲线拟合用户期望返回的位置。其中,两条光滑曲线可表示为然后,数据使用者提取出两条曲线的系数用于构建几何范围查询的陷门,即与索引构建相似,数据使用者选取随机正数rj,并生成两个随机向量然后,数据使用者利用随机置换π1,对两随机向量进行置换,得到置换完成后,数据使用者对置换向量进行分裂,分裂方式与索引构建相反,得到分裂后的向量,即t1=(t′1,t″1),t2=(t′2,t″2)。

分裂完成后,数据使用者将分裂向量加密,得到基于几何范围的查询陷门最终,数据使用者将查询陷门提交至云服务器,用于几何范围查询。

(4)几何范围查询算法:grq.query(ii,tq)→λ={0,1}

当云服务器收到查询请求后,云服务器计算查询陷门tq与索引ii的内积,并返回对应的查询结果。具体计算过程如下所示:

类似地,

由于ri,rj都是随机正数,如果同时成立,则几何范围查询算法输出1,表示位置li=(xi,yi)落在几何范围中。否则,几何范围查询算法输出0,表示位置li=(xi,yi)不在几何范围中。

通过几何范围查询,本专利可以极大地降低云服务器搜索空间。由传统的集合查询方法需要遍历整个数据集,得到目标点,转化为寻找特定的几何区域中的点,降低了搜索范围,提高了空间关键词的搜索效率。对于给定的查询请求,几何范围中的所有空间位置数据均被考虑为用户期望获得的空间数据。通过几何范围查询,可以快速过滤掉不相关的空间位置数据,云服务器只需要比较几何范围中的空间关键词与查询请求关键词之间的相似度,并返回相应的结果。

内容三:提出一种基于角色访问控制的空间关键词搜索方法。

本专利基于内容二中几何范围查询方法,提出了基于角色访问控制的空间关键词搜索方法(multidimensionalspatialkeywordsearchsimilaritysearchwithaccesscontrol,mssac)。mssac的核心思想是在几何范围中,找到与查询请求关键词相似的空间关键词。因此,云服务器需要计算查询关键词向量与空间关键词向量之间的相似度,并进行排序,筛选出top-k个相似的空间关键词向量。本专利提出的mssac主要包含四个算法:密钥生成算法、索引构建算法、陷门生成算法、关键词搜索算法。四个算法的具体构造过程如下所示:

(1)密钥生成算法:mssac.keygen(1λ)→sk2

给定一个安全参数λ,数据拥有者设定空间关键词向量的维度为n,密钥生成算法输出密钥其中d1,d2为两个(n+3+2k)×(n+3+2k)的可逆矩阵,π2为随机置换函数,为d1,d2的逆矩阵。

(2)索引构建算法:

假设位于几何范围中的空间数据数量为d,即{p1,p2,…,pd}。那么对于任意i∈[1,d],空间数据pi由位置坐标和关键词组成,其中关键词可表示为n维向量,即wi=(wi,1,wi,2,…,wi,n)。给定两个可逆矩阵d1,d2,以及随机置换π2,数据拥有者按照如下步骤加密关键词向量wi:

步骤(a):数据拥有者首先将n维关键词向量wi扩充为(n+3+2k)维向量其中,α是随机选取的一次一密正数,zi表示基于角色多项式函数的系数。

步骤(b):然后,数据拥有者对扩充向量进行置换,即

步骤(c):置换完成后,数据拥有者将向量转换为对应的对角矩阵其中,对角矩阵的对角线元素为

步骤(d):最后,数据拥有者随机生成一个(n+3+2k)×(n+3+2k)的下三角矩阵其中,的对角线元素全为1,其余元素均为非零的一次一密随机数。数据拥有者利用密钥加密

当关键词向量加密完成后,数据拥有者将加密的关键词索引上传至云服务器。

(3)陷门生成算法:mssac.trapgen(sk2,q)→cq

给定两个可逆矩阵以及随机置换函数π2,用户的查询请求q=(q1,q2,…,ql),其中qi表示用户的查询关键词。为了使得查询关键词向量的长度与空间关键词向量的长度一致,用户添加n-l个混淆关键词{ql+1,…,qn}至查询关键词向量中。注意到每个混淆关键词与关键词字典中的关键词完全不同。因此,添加的混淆关键词不会影响关键词搜索的结果。数据使用者按照如下步骤生成基于关键词向量的查询陷门:

步骤(a):首先,数据使用者将n维关键词查询向量扩充为n+3+2k维向量其中,β,γ为一次一密随机正数,s表示数据使用者的角色值。

步骤(b):然后,数据使用者利用置换函数π2,将扩充向量置换为另一种(n+3+2k)维向量,即

步骤(c):置换完成后,数据使用者将置换向量转换为相应的对角矩阵aq,其中,矩阵aq的对角线元素等于向量

步骤(d):最后,数据使用者随机生成一个(n+3+2k)×(n+3+2k)的下三角矩阵bq,其中bq的对角线元素均为1,其余元素均为非零的一次一密随机数。数据使用者利用密钥加密查询关键词向量,即

当关键词查询陷门生成后,数据使用者提交关键词查询陷门cq至云服务器,并请求云服务器返回与查询关键词相关的top-k个空间位置数据。

(4)关键词搜索算法:

当云服务器收到查询陷门cq时,云服务器首先利用基于角色的访问控制策略认证数据使用者是否具备访问权限,即验证基于角色的多项式函数是否为零。若函数值为零,说明该用户的角色满足访问策略,能够访问空间数据。否则,云服务器拒绝数据使用者的查询请求。当数据使用者通过访问策略时,云服务器计算查询关键词陷门与空间关键词索引之间的欧氏距离相似度,并利用top-k排序,得到前k个与查询关键词向量最相关的空间关键词向量。基于关键词搜索的具体流程如下所示:

步骤(a):首先,云服务器计算查询关键词陷门矩阵与空间关键词索引矩阵的乘积,即计算

步骤(b):然后,云服务器分别计算以上两乘法矩阵的迹,即tr(ni)和tr(nj)。

步骤(c):计算矩阵的迹之后,云服务器比较两个矩阵迹的大小关系,并进行排序。

步骤(d):最后,云服务器根据陷门矩阵与索引矩阵乘积后得到的矩阵的迹,获得top-k个空间关键词向量,并将获得的查询结果返回给数据使用者。

附图说明

图1为本发明具体实施方式中基于云计算隐私保护的空间关键词搜索系统模型图;

图2为本发明具体实施方式中基于云计算隐私保护的空间关键词搜索流程图。

具体实施方式

本发明提出了一种基于云计算隐私保护的空间关键词搜索方法,主要包括以下四个步骤:

步骤(a):初始化系统与密钥生成;

步骤(b):几何范围查询;

步骤(c):空间关键词搜索;

步骤(d):查询结果检索;

实现环境为1.80ghz英特尔酷睿i7处理器,8gb内存笔记本电脑,实现平台为java,操作系统为win10。具体步骤如下:

第一步:初始化系统与密钥生成。

给定系统安全参数,数据拥有者初始化系统,并生成空间关键词搜索的对称密钥,一方面,数据拥有者为几何范围查询生成所需要的可逆矩阵m1,m2、随机二进制向量s、随机置换函数π1。另一方面,数据拥有者为空间关键词搜索生成所需的可逆矩阵d1,d2、随机置换函数π2、随机下三角矩阵(其中对角线元素均为1)

第二步:几何范围查询。

在空间关键词搜索中,本专利首先执行几何范围查询,主要包括三个阶段:位置索引构建、几何范围陷门生成、几何范围查询。在位置索引构建阶段,数据拥有者对收集的空间数据中位置进行索引构建,便于云服务器进行索引和几何范围的匹配。在索引构建过程中,数据拥有者需要对位置向量进行扩充、置换、分裂、以及加密,并将加密后的索引上传至云服务器。在几何范围陷门生成阶段,数据使用者根据个人需求生成由两条光滑曲线包围的封闭区域,并提取两条光滑曲线的系数构造几何范围查询的陷门。类似地,数据使用者执行扩充、置换、分裂、以及加密操作,并将加密后的几何范围陷门提交至云服务器。当云服务器收到几何范围查询请求时,云服务器执行几何范围查询。在几何范围查询阶段,云服务器根据多项式拟合技术,判断并寻找出位于几何区域中的空间数据。

第三步:空间关键词搜索。

在空间关键词搜索中,本专利基于几何范围查询得到的几何区域中的空间数据,进行关键词搜索,并返回与查询关键词向量相关的top-k个空间关键词向量。空间关键词搜索同样包含三个阶段:空间关键词向量索引构建、查询关键词向量陷门生成、空间关键词搜索。在空间关键词向量索引构建阶段,数据拥有者需要对位于几何范围区域中位置对应的关键词构建索引。首先数据拥有者对空间数据基于角色多项式函数设计一种细粒度的访问策略,并将策略嵌入到关键词索引向量和关键词陷门向量中,用于对数据使用者合法性的认证。然后,数据拥有者对几何范围中的空间关键词构建索引,用于空间关键词搜索。数据拥有者构建空间关键词索引主要包括扩充、置换、矩阵变换、以及矩阵加密。空间关键词索引构建完成后,数据拥有者将加密的索引外包至云服务器。在查询关键词陷门生成阶段,类似于索引构建,数据使用者根据索引关键词向量长度,扩充查询关键词向量长度。然后相应的进行置换、矩阵变换以及矩阵加密,生成查询关键词陷门,并将关键词陷门提交至云服务器。当云服务器收到查询关键词陷门时,云服务器首先进行用户权限认证。只有当用户满足访问策略时,云服务器进行空间关键词搜索,并返回与查询关键词陷门相关的top-k个空间关键词向量。

第四步:查询结果检索。

当用户收到云服务器返回的top-k查询结果后,用户对查询结果进行密文检索。首先,认证用户向数据拥有者发送解密密钥请求。然后,数据拥有者发送空间数据的解密密钥至合法用户。最后,利用解密密钥,数据使用者获得与查询请求(包括位置和关键词)相关的top-k个明文空间数据。

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