基于查询范围的匿名区构造方法与流程

文档序号:12553845阅读:279来源:国知局
基于查询范围的匿名区构造方法与流程

本发明属于信息安全技术领域,尤其涉及一种匿名区的构造方法,可用于基于位置服务中用户位置隐私的保护。



背景技术:

随着移动设备的普及和定位技术的发展,基于位置的服务LBS得到了广泛的应用。它是指用户通过移动设备获取与其指定位置相关的信息查询及娱乐服务,如谷歌地图、四方网等。然而,位置服务提供商LSP在为用户提供便利服务的同时,还可能会搜集并滥用用户的服务信息,从而非法获取用户的隐私信息,如:家庭住址、工作单位、健康状况等。因此,LBS中的位置隐私保护受到了研究者们的广泛关注。

K-匿名作为最常用的LBS位置隐私保护方法,其基本思想是,当用户进行LBS查询时,先将自己的真实位置和查询内容发送给可信的匿名服务器,匿名服务器去除用户的标识信息,并为其生成包含其他k-1个用户的匿名区域,并连同查询内容一起发送给LSP。此时,LSP以不超过1/k地正确率将本次服务查询与用户进行关联,从而保护用户的位置隐私。与其他LBS隐私保护方法,如假位置、模糊化、差分隐私和基于密码学的方法相比,K-匿名具有以下优点:(1)用户能获取准确的查询结果;(2)用户的计算开销和通信开销较小;(3)能混淆用户与LBS查询间的关联性。

然而,当采用K-匿名方法保护用户的位置隐私时,存在匿名区面积过大,导致用户服务质量降低的问题。为解决该问题,Tan和Lin在Spatial cloaking revisited:distinguishing information leakage from anonymity论文中,提出将区域划分的思想应用于匿名区的构造,其通过Hilbert空间填充曲线将匿名区域中的用户划分到不同的群组。当用户进行服务器请求时,匿名服务器将利用其所属群组中其他用户的位置构造匿名区。随后,Li和Zhu同样利用区域划分的方法对减小匿名区面积,提高服务质量进行研究。在他们的论文Protecting user anonymity in location-based services with fragmented cloaking region中,匿名服务器首先构造一个包含k个用户的匿名区,随后根据各用户位置间的关系,去除不包含用户的匿名区域,形成多个互不相交的子匿名区,使匿名区面积减少,从而提高服务质量。

上述两种方法,均忽略了用户的查询范围对LBS查询服务质量的影响。由于在基于K-匿名的LBS查询中,服务质量不仅与匿名区的大小有关,也与用户的查询范围有关,因而采用现有技术构造匿名区域,会出现LSP重复查询兴趣点的情况,导致用户获取服务的时延增加,服务质量进一步降低。



技术实现要素:

本发明的目的在于提供一种基于查询范围的匿名区构造方法,旨在解决现有的K-匿名方法存在匿名区域过大,服务质量降低的问题。

为实现上述目的,本发明的技术方法包括如下:

(1)通过匿名服务器生成满足用户隐私保护需求的子匿名区域集合CS:

获取k个用户的位置信息,为每个用户随机生成子匿名区域,得到子匿名区域的集合CS={AR0,AR1…ARk-1},其中,每个子匿名区域的面积等于用户隐私需求匿名区域的最小面积Amin,且每个子匿名区域的中心位置均不存在用户;

(2)以服务提供者的查询区域面积为判定标准,进行子匿名区域集合CS的更新:

(2a)通过如下公式,计算子匿名区域集合CS中每个子匿名区域对应的查询区域面积:

S(QAR)=S(AR)+r*C(AR)+πr2,

其中,AR表示CS中的子匿名区域,QAR表示AR对应的查询区域,S(AR)表示AR的面积,C(AR)表示AR的周长,r表示查询半径;

(2b)从子匿名区域集合CS中,筛选出两个子匿名区域ARx和ARy

设在子匿名区域集合CS中,第i个子匿名区域ARi和第j个子匿名区域ARj合并形成新的子匿名区域为ARi,j,计算ARi,j对应查询区域的面积S(QARi,j),从{S(QARi,j)|0≤i<k,0≤j<k,i≠j}中选取最小值,该最小值所对应的子匿名区域为ARx,y,并由ARx,y得出第x个子匿名区域ARx和第y个子匿名区域ARy,其中x为i的一个特定取值,y为j的一个特定取值;

(2c)计算ARx、ARy对应的查询区域面积,比较ARx、ARy和ARx,y对应的查询区域面积,判断是否对子匿名区域集合CS进行更新:

若S(QARx)+S(QARy)>S(QARx,y),则不对子匿名区域集合CS进行更新;

若S(QARx)+S(QARy)≤S(QARx,y),则更新子匿名区域集合CS,即将子匿名区域ARx和ARy替换为ARx,y,其中S(QARx)表示ARx的查询区域面积、S(QARy)表示ARy的查询区域面积、S(QARx,y)表示ARx,y的查询区域面积。

(3)重复步骤(2),直至不满足子匿名区域集合CS的更新条件,此时,得到更新后的子匿名区域集合CS′={AR0′,…,ARl′},完成对匿名区的构造,其中AR0′表示组成匿名区的第0个子匿名区域、ARl′表示组成匿名区的第l个子匿名区域,l取值为0到k。

本发明具有如下优点:

本发明在随机生成子匿名区域时,由于将子匿名区域的面积设为与用户隐私需求匿名区域的最小面积Amin相等,并确保子匿名区域的中心位置不存在用户,使攻击者不能推测出用户的位置,从而解决了用户的位置隐私安全问题。

本发明通过从子匿名区域集合CS中筛选得到子匿名区域ARx、ARy和ARx,y,并根据ARx、ARy和ARx,y对应查询区域面积之间的大小关系,判断是否对子匿名区域集合CS进行更新,确保了最终得到的匿名区对应的查询区域面积最小,提高了服务质量。

附图说明

图1是本发明的使用场景图;

图2是本发明中服务提供者LSP的查询区域示意图。

图3是本发明的实现流程图。

图4为用本发明对图1服务提供者的仿真图

图5为用本发明对图1用户获取服务时延的仿真图。

具体实施方式

为了使本发明的目的、技术方法及优点更加清楚明白,以下对本发明进行进一步详细说明。

下面结合附图对本发明的应用原理作详细的描述。

参照图1,本发明的使用场景为一个K-匿名的集中式系统,包括用户、匿名服务器和服务提供者LSP三部分,其主要用于基于位置的服务LBS,该系统的工作原理如下:

假设用户与匿名服务器存在1条安全的通信信道,当用户进行查询附近的兴趣点时,首先利用安全信道将查询请求q=<ID,L(x,y),r,POI,p>通过安全信道发送给可信的匿名服务器。其中,ID表示用户的身份;L(x,y)表示用户的位置坐标;r表示用户的查询半径;POI表示用户查询的兴趣点;p=(k,Amin)表示用户当前查询的隐私保护需求,k表示匿名服务器生成的匿名区中至少包含k-1个其他用户,Amin表示匿名服务器生成的匿名区最小面积。

可信的匿名服务器收到用户请求后通过认证确定其身份,并根据用户的隐私保护需求p=(k,Amin),寻找其他k-1个用户从而生成面积不小于Amin的匿名区,并将匿名化处理得到的查询请求Q=<CR,r,POI>发送给半可信的LSP,其中,CR表示匿名服务器为当前请求的用户生成的匿名区。

服务提供者LSP在收到匿名服务器发送的匿名查询请求后,在数据库中进行检索,将所有的查询候选结果返回给匿名服务器。匿名服务器在收到服务提供者LSP发送来的查询候选结果后,根据用户的位置L(x,y)对查询结果进行精拣,最后将准确的查询结果返回给用户。

在该系统场景中,本发明直接将服务提供者LSP视为攻击者,其攻击目的有两个:一是从匿名区中识别出用户的真实位置;二是推测出真实请求的用户。

基于位置的服务LBS,其服务质量主要由服务提供者LSP根据匿名请求检索数据库所需的时间决定。服务提供者LSP在收到匿名服务器发送的匿名查询请求Q=<CR,r,POI>后,首先将根据匿名区CR和查询半径r计算得到查询区域QAR,再在QAR区域中检索用户查询的兴趣点。

图2为服务提供者根据匿名区CR和查询半径r得到的查询区域QAR

从图2可看出,服务提供者LSP检索数据库所需的时间不仅与匿名服务器生成的匿名区CR的大小有关,还与用户的查询半径r有关,即由查询范围决定。然而,现有技术中仅考虑了匿名区的大小,不能有效提高LBS查询的服务质量。因此,本发明提出一种基于查询范围的匿名区构造方法。

参照图3,本发明的实现流程如下:

步骤1,通过匿名服务器生成满足用户隐私保护需求的子匿名区域集合CS。

1.1)获取k个用户的位置信息:

匿名服务器采用四叉树结构存储城市空间内的用户,即按照四象限递归分割的方式将城市空间划分为不同层次的区域,区域与四叉树中相同层次的节点相对应,区域内的用户根据其位置存储在四叉树的相应节点中,当用户请求服务时,从用户位置对应的叶子节点开始向上检索四叉树,首先检索其兄弟节点,再检索其父节点,直至获取k个用户的位置信息;

1.2)生成子匿名区域集合CS:

为了使攻击者无法推测出真实请求的用户,根据k个用户的位置信息,为每个用户随机生成子匿名区域,得到子匿名区域的集合CS={AR0,AR1,…,ARm,…,ARk-1},其中,ARm表示子匿名区域集合CS中第m个子匿名区域,m的取值为0到k-1,同时,为了保证攻击者无法推测出用户的位置,每个子匿名区域的面积等于用户隐私需求匿名区域的最小面积Amin,且每个子匿名区域的中心位置均不存在用户;

步骤2,以服务提供者的查询区域面积为判定标准,进行子匿名区域集合CS的更新。

2.1)通过如下公式,计算子匿名区域集合CS中每个子匿名区域对应的查询区域面积:

S(QAR)=S(AR)+r*C(AR)+πr2,

其中,AR表示CS中的子匿名区域,QAR表示AR对应的查询区域,S(AR)表示AR的面积,C(AR)表示AR的周长,r表示查询半径;

2.2)从子匿名区域集合CS中,筛选出两个子匿名区域ARx和ARy

设在子匿名区域集合CS中,第i个子匿名区域ARi和第j个子匿名区域ARj合并形成新的子匿名区域为ARi,j,合并得到的子匿名区域ARi,j包含ARi和ARj中的所有用户,并通过如下公式,计算ARi,j对应查询区域的面积:

;S(QARi,j)=S(ARi,j)+r*C(ARi,j)+πr2,

其中,ARi,j表示由第i个子匿名区域ARi和第j个子匿名区域ARj合并形成的子匿名区域,QARi,j表示ARi,j对应的查询区域,S(ARi,j)表示ARi,j的面积,C(ARi,j)表示ARi,j的周长,r表示查询半径。

从{S(QARi,j)0≤i<k,0≤j<k,i≠j}中选取最小值,该最小值所对应的子匿名区域为ARx,y,并由ARx,y得出第x个子匿名区域ARx和第y个子匿名区域ARy,其中x为i的一个特定取值,y为j的一个特定取值;

2.3)对保证本发明能有效的降低服务质量,不会出现查询区域面积增大,服务质量反而降低的情况,本发明通过比较ARx、ARy和ARx,y对应的查询区域面积,判断是否对子匿名区域集合CS进行更新:

2.3.1)计算子匿名区域ARx对应的查询区域面积:

S(QARx)=S(ARx)+r*C(ARx)+πr2

其中,ARx表示CS中第x个子匿名区域,QARx表示ARx对应的查询区域,S(ARx)表示ARx的面积,C(ARx)表示ARx的周长;

2.3.2)计算子匿名区域ARy对应的查询区域面积:

S(QARy)=S(ARy)+r*C(ARy)+πr2

其中,ARy表示CS中第y个子匿名区域,QARy表示ARy对应的查询区域,S(ARy)表示ARy的面积,C(ARy)表示ARy的周长;

2.3.3)比较ARx、ARy和ARx,y对应的查询区域面积:

若S(QARx)+S(QARy)>S(QARx,y),则不对子匿名区域集合CS进行更新;

若S(QARx)+S(QARy)≤S(QARx,y),则更新子匿名区域集合CS,即将子匿名区域ARx和ARy替换为ARx,y,其中S(QARx)表示ARx的查询区域面积、S(QARy)表示ARy的查询区域面积、S(QARx,y)表示ARx,y的查询区域面积。

步骤3,重复步骤2,直至不满足子匿名区域集合CS的更新条件,此时,得到更新后的子匿名区域集合CS′={AR0′,…,ARl′},完成对匿名区的构造,最终得到的子匿名区集合CS由l+1个子匿名区域构成,其中AR0′表示组成匿名区的第0个子匿名区域、ARl′表示组成匿名区的第l个子匿名区域,l取值为0到k。

本发明的效果可通过以下理论分析和仿真实验,进一步说明本发明的效果。

1.安全性分析

1.1)本发明根据k个用户的位置信息,为每个用户随机生成子匿名区域,这使得最终构造的匿名区CS′={AR0′,…,ARl′}仍包含k个用户,并且匿名服务器在发送匿名查询请求时,已去除用户的身份标识。因此,即使攻击者获取匿名查询请求Q=<CR,r,POI>,也无法推测出服务请求的用户身份。

1.2)本发明生成的子匿名区域的集合CS={AR0,AR1,…,ARm,…,ARk-1},每个子匿名区域的面积等于用户隐私需求匿名区域的最小面积Amin,且每个子匿名区域的中心位置均不存在用户,这使得最终构造的匿名区CS′={AR0′,…,ARl′}满足隐私需求匿名区域的最小面积Amin,从而使攻击者无法推测出用户的真实位置。

2.仿真实验

2.1)仿真条件

本发明通过基于网络的移动对象生成器NGMO生成实验数据,该生成器常用于位置隐私保护研究,它以德国城市Oldenberg地图为基础,通过设置移动对象数量等参数模拟生成用户的位置信息。

实验设定用户隐私需求匿名区域的最小面积Amin=160000m2,查询半径r=500m,此外,为了评估服务提供者的查询开销,模拟构造了餐馆、酒店、医院和停车场等500000个兴趣点,并采用R树结构存取这些兴趣点。

R树作为目前最好的存储高维数据的平衡树,能有效提高在高维空间中的搜索效率。实验环境为3.20GHz Core(TM)i5CPU,4GB内存,编程语言采用C++,程序运行在windows 7环境下。

2.1)仿真方法

选用经典K-匿名方法Casper、现有提高K-匿名服务质量的技术Fragment和本发明三种方法,其中:

Casper方法采用四叉树结构存储城市空间内的用户,即按照四象限递归分割的方式将城市空间划分为不同层次的区域,区域与四叉树中相同层次的节点相对应,区域内的用户根据其位置存储在四叉树的相应节点中,当用户请求服务时,从用户位置对应的叶子节点开始向上检索四叉树,先检索兄弟节点,后检索父节点,直至获取k个用户的位置信息;

Fragment方法是对Casper方法的改进,其对Casper方法生成的匿名区域进行处理,即根据匿名区域内用户的位置,通过去除不包含用户位置的部分来减少匿名区面积。

2.3)仿真内容与结果

仿真1,用所述的三种方法对服务提供者进行仿真,结果如图4所示,其中:

图4(a)是对服务提供者获取的匿名区面积仿真结果,

图4(b)是对服务提供者处理的查询区域面积仿真结果。

由图4可知,Fragment方法无法有效的减少查询区域面积,提高服务质量,当k=25时,Casper方法生成的匿名区面积为5.73×107m2,其对应查询区域的面积为7.314×107m2,而Fragment方法生产的匿名区面积为3.40×107m2,但其对应查询区域的面积为7.379×107m2,可见Fragment方法虽然减少了匿名区域面积,但查询区域面积反而增加,造成这一问题的根本原因就是服务提供者LSP查询兴趣点的时间不仅受匿名区大小的影响,同时受到查询半径r影响;

而本发明在减少匿名区面积的同时,保证了查询区域面积的显著降低,以k=25为例,本发明生成的匿名区面积为5.93×106m2,比Casper方法生成的匿名区面积减少了3.40×107-5.93×106=2.80×107m2,查询区域面积为2.439×107m2,比Casper方法对应的的查询面积减少4.940×107m。由此可见,本发明能有效的减少查询区域面积,从而减少服务提供者LSP的时间开销,提高服务质量。

仿真2,用所述的三种方法对用户获取服务时延进行仿真,结果如图5所示,其中5(a)为匿名服务器构造匿名的时间仿真结果,5(b)为服务提供者查询处理的时间仿真结果。

由图5可知,Fragment方法无法减少用户获取服务的时延,提高服务质量,如k=25时,在Casper方法中量,生成匿名区所需的时间为177.275ms,服务提供者查询处理的时间为10.140s,用户获取服务的时延为10.140+0.177=10.317s,而Fragment方法生成匿名区所需时间为185.331ms,服务提供者查询处理的时间为10.721s,用户获取服务的实验为10721+0.185=10.906s;

而本发明有效的减少了用户获取服务的时延,提高了服务质量,以k=25为例,本发明与方法Casper相比,生成匿名区的时间仅从185.331ms上升至222.679ms,而服务提供者的查询处理时间从10.721s降低为2.286ms,用户获取服务的时延共减少了8.389s,服务质量显著提高。

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