一种基于泰森多边形的相同服务请求位置隐私保护方法与流程

文档序号:12732206阅读:530来源:国知局
一种基于泰森多边形的相同服务请求位置隐私保护方法与流程

本发明属于基于网络位置的服务及隐私保护技术领域,尤其涉及一种基于泰森多边形的相同服务请求位置隐私保护方法。



背景技术:

目前,随着无线通信技术的不断发展,移动端的生活服务软件层出不穷,这些软件在方便了人们的生活和消费的同时,也带来了无穷的安全隐患。目前有代表性的全球卫星导航定位系统包括美国的GPS、俄罗斯的GLONASS、中国的北斗系统以及欧洲的伽利略,而定位系统成了这些软件服务的关键功能之一。

基于位置服务LBS(Location Based Service)是指通过电信移动运营商的无线电通讯网络或外部定位方式,获取移动终端用户的位置信息,在GIS(Geographic Information System)平台的支持下,为用户提供相应服务的一种增值服务。随着GPS精确定位功能的普及,LBS也逐渐流行起来。LBS可以看成是由移动通信网络和计算机网络相结合,两者通过网关来实现动态交互。大致流程是移动终端通过移动通信网络发出用户请求消息,消息通过网关发送给LBS服务器,LBS服务器针对用户请求消息与用户当前位置进行查询,然后将查询结果通过网关返回给用户。

随着信息爆炸,大数据时代的到来,人们对于自身的隐私保护开始了空前的关注。然而想要这些生活服务类软件提供精准的服务,用户就必须首先提供自身的位置信息,这就涉及到个人隐私问题。因此,如何在共享数据的同时又能够保护个人的隐私,是亟待解决的问题。

位置隐私保护领域遇到了很多的挑战,比如:物联网中有许多泄漏用户位置隐私的方式;当所需要的服务质量越高时,造成的用户隐私泄漏的可能性越大;不同类型的用户对隐私保护的要求也不一样。

在位置隐私保护的研究中,采用匿名处理的方法是当前较为流行也是极其有效的,现阶段已有许多相当成熟的方法,包括基于启发式隐私度量的位置隐私保护技术、基于概率推测的位置隐私保护技术以及基于隐私信息检索的位置隐私保护技术。这些隐私保护方法的不足之处在于要么未考虑真实路网的位置情况,要么未考虑用户的服务质量,其中最重要的一点是计算效率不佳,无法集中处理不同用户的相同服务请求。

在实际生活中较为通用的是真实路网环境下的位置隐私保护方法。在该方法中,用户需要请求位置服务时,将用户所在的二维平面空间划分为不同的区域,对每个区域中具有相同服务请求的用户进行并发处理,可以提高服务效率。当然也可以通过添加虚拟用户信息点来构造匿名区域。由于LBS的存在,做到匿名就需要在用户与LBS服务器之间架设一台匿名服务器,用来对用户请求消息进行匿名处理,并对LBS服务器查询结果进行匹配。然而如何将多个用户的相同服务请求(例如多个用户都查找离自己位置最近的咖啡厅)划分至同一区域(或匿名簇)中却是一个较难解决的问题。此外,在匿名区域划分时也很难做到选择合适大小的范围,范围太大则降低了服务质量,太小又容易暴露用户的真实位置信息。

如何使用更合理的方法划分区域,同时匿名处理多个用户的相同服务请求,从而提升匿名效率与服务质量是一个需要解决的问题。



技术实现要素:

发明目的是提供一种基于泰森多边形的相同服务请求的位置隐私保护方法,通过泰森多边形、多个用户相同服务请求的特点,使用k匿名的思想,用户可以灵活的掌握隐私保护程度,匿名的效果也将得到进一步提升,并且保护用户的位置隐私的同时确保服务质量。

为实现上述目的,本发明采用的技术方案是一种基于泰森多边形的相同服务请求位置隐私保护方法,包括以下步骤:

步骤1、查询用户以M=(Uid,location,info,time,r,k)的六元组形式表示位于某一特定位置的用户请求消息,其中Uid是发出请求的用户的id号,location是用户发出的请求位置在二维平面上的坐标(x,y),info是表示请求查询具体信息,time是表示用户发出请求的时间,r是匿名区域的半径,k是指匿名参数;

步骤2、匿名服务器收到用户的请求消息M以后,将请求消息在所在的泰森多边形中进行匿名处理,生成请求消息Q,发送给LBS服务器;

步骤3、根据收到的请求消息Q,LBS服务器得到查询结果S,并将其发送给匿名服务器;

步骤4、匿名服务器接收到查询结果S后,对当前服务请求簇中每一个用户请求查询,然后依据每个用户的真实位置筛选出真实结果,将其发送给各个用户。

进一步,上述步骤1中所述匿名区域的半径可以动态改变。

步骤2中匿名处理具体包含以下步骤:

步骤2-1、将整体的位置服务区域依据泰森多边形的原理进行划分,由此得到多个紧紧相临的不规则的多边形Pi(i=1,2,3……);

步骤2-2、匿名服务器根据用户请求消息M中的info判断该用户请求消息应该加入哪个服务请求簇,方法是判断其所属的泰森多边形Pi,并加入到Pi所对应的簇cl[i]中,若能够成功加入则跳转至步骤2-5,否则执行步骤2-3;

步骤2-3、若此时要加入的服务请求簇不存在,则需要建立新的簇cl[i];

步骤2-4、设Tout为最大的允许查询时间,tnow为当前时间,当tnow-ti<Tout时,cl[i]继续等待下一个用户请求消息,当有用户请求消息到来则返回执行步骤2-2;如果持续没有新用户请求消息加入,当tnow-ti=Tout时,设置kmax=MAX(k1,k2,…,kn),由于服务请求簇中此时共有ni个用户,因此虚拟的位置还需要随机构建kmax-ni个,当cl[i]中的用户请求消息超过两个时跳转执行步骤2-6;

步骤2-5、当cl[i]中用户请求消息仅有1个时,若有新的用户请求消息到来,即第2个消息到来,,修改当前的匿名域为:以两个用户位置点之间的距离为直径的圆,圆心Oi为该直径的中点,此时直径长度为Lmax,ri

步骤2-6、计算新到来的用户请求消息M的位置location到当前匿名域圆心Oi(xi,yi)的距离当distance(location,Oi)≤ri时,表示M的位置location在原来的服务请求簇内,跳转执行步骤2-9;若distance(location,Oi)>ri则说明M的位置在簇的范围外,执行步骤2-7;

步骤2-7、计算用户请求消息M与当前cl[i]中存在的各个用户请求消息间距离的最大值Lmax’=MAX(Lmax,distance(location,location1),distance(location,location2),distance(location,location3),…,distance(location,locationn)),其中Lmax为当前用户请求消息到来前求得的簇内最大距离,然后更新Lmax=Lmax’;找到当前用户请求消息M距离泰森多边形内切圆最近的两个切点A(ai,bi)与B(aj,bj),连接消息M的位置点、两个切点以及距离M为Lmax的点构成一个不规则的四边形,作一个尽可能小的圆形域,标记此圆形域的圆心为Oi”(x,y),半径为ri”;当剩余各用户请求消息位置到Oi”的距离均小于等于ri”,则表示剩余的请求消息在该圆内,跳转至步骤2-9,否则跳转至步骤2-8;

步骤2-8、当有若干用户请求消息位于簇外,那么可以依次测量这些用户请求消息距离步骤2-7中所求四边形的外接圆圆心Oi”的距离distance(Oi”,locationi);假设此时用户请求消息q的位置距离Oi”最远,则以Oi”为圆心,此最远距离distance(Oi”,q.location)为半径rq做圆;设置一个默认的最大匿名区域范围range,当rq≤range时,则圆心Oi=Oi”,半径ri=rq,然后执行步骤2-9;当rq>range时,则判定超出匿名范围并提示拒绝为该用户请求消息服务,结束不再执行后续步骤;

步骤2-9、成功加入当前服务请求簇后,其用户请求消息个数ni=ni+1,并计算kmax’=MAX(kmax,M.k),当kmax’>ni时,则跳转至步骤2-2继续等待新的用户请求消息的到来,否则该簇已达到匿名要求执行步骤2-10;

步骤2-10、匿名成功后,匿名服务器发送一条含有匿名域ASR以及请求查询信息的消息Q给LBS服务器,等待LBS服务器返回结果。

又进一步,上述步骤2-3中新簇cl[i]的内容包括:包含所有用户请求消息所属的泰森多边形Pi,匿名域圆心Oi和相应半径ri,泰森多边形的最大内切圆的圆心Oi’和相应半径ri’,匿名参数ki,簇中最大的用户请求消息距离Lmax,簇中用户请求消息的个数ni和相应的创建时间ti

步骤2-7中所述圆形域至少外接这一四边形的顶点,并且保证四个顶点均在圆形域内或边界上。

步骤2-7中所述圆形域的计算方法为:连接该四边形的两条对角线,任意三个顶点构成了一个三角形,共四种三角形,选取其中外接圆半径较小且包含三角形各顶点的那个圆,假设筛选出的三个顶点坐标分别为U(xu,yu),V(xv,yv),W(xw,yw),则令a=distance(U.location,V.location),b=distance(U.location,W.location),c=distance(V.location,W.location),由海伦公式可以计算选中的三角形面积而该三角形外接圆的半径由于(x-xu)2+(y-yu)2=(x-xv)2+(y-yv)2=(x-xw)2+(y-yw)2,所以可得到2(xv-xu)x+2(yv-yu)y=-xu2+xv2-yu2+yv2,2(xw-xu)x+2(yw-yu)y=-xu2+xw2-yu2+yw2,联立二式可以得到外接圆圆心坐标

与现有技术相比,本发明的有益效果:

1,采用本发明的方法,在同一个泰森多边形划分的区域中,匿名服务器将不同用户的相同服务请求放入同一个簇中一并处理,从而提高了匿名处理的效率。

2,本发明不仅保护了用户位置隐私,也针对匿名区域的划分提出了全新的方案,在不降低服务质量的前提下,保证了计算出最优大小的匿名区域来实现隐私保护。

附图说明

图1为匿名处理的系统架构图。

图2为泰森多边形形成图。

图3为规划匿名域的生成图。

图4为基于泰森多边形的针对相同服务请求位置隐私保护的匿名流程图。

具体实施方式

现在结合附图对本发明做进一步详细的说明。

本发明包括如下步骤:

步骤1、查询用户以M=(Uid,location,info,time,r,k)的六元组形式表示位于某一特定位置的用户请求消息,其中Uid是发出请求的用户的id号,location是用户发出的请求位置在二维平面上的坐标(x,y),info是表示请求查询具体信息,time是表示用户发出请求的时间,r是匿名区域的半径(可动态改变),k是指匿名参数。

步骤2、匿名服务器收到用户的请求消息M以后,将请求消息在所在的泰森多边形中进行匿名处理,由此生成请求消息Q发送给LBS服务器。

步骤3、根据收到的请求消息Q,LBS服务器得到查询结果S,并将其发送给匿名服务器。

步骤4、匿名服务器接收到查询结果S后,对当前服务请求簇中每一个用户请求查询,然后依据每个用户的真实位置筛选出真实结果,将其发送给各个用户。

步骤2中的匿名处理涉及的匿名处理的系统架构图如图1所示,匿名处理的过程如图4所示,包含以下具体步骤:

步骤2-1、将整体的位置服务区域依据泰森多边形的原理进行划分,由此得到多个紧紧相临的不规则的多边形Pi(i=1,2,3……)。

步骤2-2、匿名服务器根据用户请求消息M中的info判断该用户请求消息应该加入哪个服务请求簇(同一服务请求簇中的用户具有相同的服务请求),方法是判断其所属的泰森多边形Pi,并加入到Pi所对应的簇cl[i]中,若能够成功加入则跳转至步骤2-5,否则执行步骤2-3。

步骤2-3、若此时要加入的服务请求簇并不存在,则需要建立新的簇cl[i],簇中的内容包括:包含所有用户请求消息所属的泰森多边形Pi,匿名域圆心Oi(初始坐标为Oi’的坐标)和相应半径ri(初始值为ri’),泰森多边形的最大内切圆的圆心Oi’和相应半径ri’(作为初始的匿名域),匿名参数ki,簇中最大的用户请求消息距离Lmax,簇中用户请求消息的个数ni(初始值为1)和相应的创建时间ti

步骤2-4、设Tout为最大的允许查询时间,tnow为当前时间,当tnow-ti<Tout时,cl[i]继续等待下一个用户请求消息,当有用户请求消息到来则返回执行步骤2-2;如果持续没有新用户请求消息加入,当tnow-ti=Tout时,设置kmax=MAX(k1,k2,…,kn)。由于服务请求簇中此时共有ni个用户,因此虚拟的位置还需要随机构建kmax-ni个。需要说明的是,因为ri≥ri’所以避免了匿名区域的过小而暴露位置,当cl[i]中的用户请求消息超过两个时跳转执行步骤2-6。

步骤2-5、当cl[i]中用户请求消息仅有1个时,若有新的用户请求消息到来(即第2个消息到来),修改当前的匿名域为:以两个用户位置点之间的距离为直径的圆,圆心Oi为该直径的中点,此时直径长度为Lmax,ri

步骤2-6、计算新到来的用户请求消息M的位置location到当前匿名域圆心Oi(xi,yi)的距离当distance(location,Oi)≤ri时,表示M的位置location在原来的服务请求簇内,跳转执行步骤2-9;若distance(location,Oi)>ri则说明M的位置在簇的范围外,执行步骤2-7;

步骤2-7、计算用户请求消息M与当前cl[i]中存在的各个用户请求消息间距离的最大值Lmax’=MAX(Lmax,distance(location,location1),distance(location,location2),distance(location,location3),…,distance(location,locationn)),其中Lmax为当前用户请求消息到来前求得的簇内最大距离,然后更新Lmax=Lmax’;找到当前用户请求消息M距离泰森多边形内切圆最近的两个切点A(ai,bi)与B(aj,bj),连接消息M的位置点、两个切点以及距离M为Lmax的点构成一个不规则的四边形,作一个尽可能小的圆形域(至少外接这一四边形的顶点,并且保证四个顶点均在圆形域内或边界上),标记此圆形域的圆心为Oi”(x,y),半径为ri”。具体计算该圆形域的方法为:连接该四边形的两条对角线,任意三个顶点构成了一个三角形,共四种三角形,选取其中外接圆半径较小且包含三角形各顶点的那个圆,假设筛选出的三个顶点坐标分别为U(xu,yu),V(xv,yv),W(xw,yw),则令a=distance(U.location,V.location),b=distance(U.location,W.location),c=distance(V.location,W.location),由海伦公式可以计算选中的三角形面积而该三角形外接圆的半径由于(x-xu)2+(y-yu)2=(x-xv)2+(y-yv)2=(x-xw)2+(y-yw)2,所以可得到2(xv-xu)x+2(yv-yu)y=-xu2+xv2-yu2+yv2,2(xw-xu)x+2(yw-yu)y=-xu2+xw2-yu2+yw2,联立二式可以得到外接圆圆心坐标当剩余各用户请求消息位置到Oi”的距离均小于等于ri”,则表示剩余的请求消息在该圆内,跳转至步骤2-9,否则跳转至步骤2-8;

步骤2-8、当有若干用户请求消息位于簇外,那么可以依次测量这些用户请求消息距离步骤2-7中所求四边形的外接圆圆心Oi”的距离distance(Oi”,locationi);假设此时用户请求消息q的位置(用q.location表示)距离Oi”最远,则以Oi”为圆心,此最远距离distance(Oi”,q.location)为半径rq做圆;这里设置一个默认的最大匿名区域范围range,当rq≤range时,则圆心Oi=Oi”,半径ri=rq,然后执行步骤2-9;当rq>range时,则判定超出匿名范围并提示拒绝为该用户请求消息服务,结束不再执行后续步骤;

步骤2-9、成功加入当前服务请求簇后,其用户请求消息个数ni=ni+1,并计算kmax’=MAX(kmax,M.k),当kmax’>ni时,则跳转至步骤2-2继续等待新的用户请求消息的到来,否则该簇已达到匿名要求执行步骤2-10;

步骤2-10、匿名成功后,匿名服务器发送一条含有匿名域ASR以及请求查询信息的消息Q给LBS服务器,等待LBS服务器返回结果。

为便于本领域的技术人员进一步理解本发明的构思,现提供一个实施例。

小刘是某大学的一名在校大学生,这正逢周末,准备去周围的咖啡厅小憩一下,于是在上午九点的时候在教一发出服务请求。假设这里Uid是小刘的id号004,location为南京邮电大学仙林校区教一楼(以下简称“南邮教一”),提出请求内容info为咖啡厅,提出请求时间time为9点,初始半径r为50米,参数k为4。

因此,小刘以M=(004,南邮教一,咖啡厅,9:00:00,50,4)的六元组形式表示其用户请求消息,南邮教一在二维平面上的坐标为(x,y)。

步骤1、用户发送用户请求消息

小刘使用移动端查询附近的咖啡厅,此时LBS服务器需要知道小刘的位置信息在南邮教一,为了隐藏用户的真实位置信息,将上述形式的用户请求消息M发送给匿名服务器。

步骤2、匿名服务器对用户请求消息M进行匿名处理,具体如下:

步骤2-1、匿名服务器对于小刘发出请求的用户位置和用户查询信息,确定合适的泰森多边形区域,如图2所示,P1为南师大,P2为金鹰商场与大成名店,P9为南财,P10为南邮,另外还有一些为周边相关区域。选择P10在此基础上并进一步规划恰当的匿名区域。

步骤2-2、在用户请求消息M中的info参数为“咖啡厅”,提示了匿名服务器该消息应归属的服务请求簇,再根据location参数确定所在的泰森多边形P10及其初始匿名区域。当关键词“咖啡厅”的服务请求簇cl[i]存在,假设此时匿名域圆心为Oi,其相应半径为ri,另外有附近的小赵、小钱、小孙也发出同样找寻咖啡厅的请求,此时在服务请求簇中请求消息的个数ni=3,匿名参数k=4,假设三人的用户请求消息分别为M1=(001,南邮图书馆,咖啡厅,8:59:55,50,2),M2=(002,南邮北操场,咖啡厅,8:59:57,50,4),M3=(003,南邮南三食堂,咖啡厅,8:59:51,50,3)。此时条件满足,小刘的用户请求消息M加入到该服务请求簇cl[i]中,跳过步骤2-3和步骤2-4,直接执行步骤2-5。

步骤2-5、由于此时簇中多于2个消息,所以直接执行步骤2-6;

步骤2-6、小刘的位置“南邮教一”到当前匿名域圆心Oi(xi,yi)的距离distance(南邮教一,假设distance(南邮教一,Oi)>ri,则表示小刘的位置在用户请求簇外。

步骤2-7、计算小刘的请求消息M与cl[i]中小赵、小钱、小孙的请求消息间距离的最大值Lmax’=MAX(Lmax,distance(南邮教一,南邮图书馆),distance(南邮教一,南邮北操场),distance(南邮教一,南邮南三食堂)),其中Lmax为当前用户请求消息到来前求得的最大距离;假设Lmax’=distance(南邮教一,南邮南三食堂),即与消息M3所在位置的距离最近,然后更新Lmax=Lmax’;如图3所示,找到小刘的请求消息M距离泰森多边形P10内切圆最近的两个切点A(ai,bi)与B(aj,bj),连接消息M的位置点、两个切点以及M3构成一个不规则的四边形AMBM3,作一个尽可能小的圆形域(至少外接这一四边形的顶点,并且保证四个顶点均在圆形域内或边界上),标记此圆形域的圆心为Oi”(x,y),半径为ri”,具体计算该圆形域的方法为:连接该四边形的两条对角线,任意三个顶点构成了一个三角形,共四种三角形,选取其中外接圆半径较小且包含各顶点的圆;假设筛选出的三个顶点坐标分别为小刘的位置点M(xm,ym),切点B(xb,yb)与小孙位置点M3(xm3,ym3),则令a=distance(南邮教一,切点B),b=distance(切点B,南邮南三食堂),c=distance(南邮教一,南邮南三食堂),假设a=350m,b=200m,c=450m,由海伦公式可以计算选中的三角形面积而该三角形外接圆的半径由于(x–xm)2+(y–ym)2=(x–xb)2+(y–yb)2=(x–xm3)2+(y–ym3)2,所以可得到2(xb–xm)x+2(yb–ym)y=-xm2+xb2–ym2+yb2,2(xm3–xm)x+2(ym3–ym)y=-xm2+xm32-ym2+ym32,联立二式可以得到外接圆圆心坐标假设小赵用户消息M1与小孙用户消息M3到Oi”的距离小于234.79m,小钱用户消息M2到Oi”的距离大于234.79m;

步骤2-8、由于M1与M3在圆内,M2在圆外,假设M2到Oi”的距离distance(Oi”,南邮北操场)=236m,假设range=250m,则以此236m为半径做圆;

步骤2-9、此时服务请求簇中的用户请求消息个数ni=4,计算kmax’=MAX(kmax,M.k)=4,已达到匿名参数要求。

步骤2-10、匿名成功后,匿名服务器发送一条含有匿名域ASR以及请求查询信息的消息Q给LBS服务器,等待LBS服务器返回结果。

步骤3、匿名服务器与LBS服务器之间的交互通信

匿名服务器将包含匿名域的消息Q与info发送给LBS服务器,而LBS服务器将查询到的“仙林地区某些咖啡厅”的结果S返还给匿名服务器。

步骤4、匿名服务器分析真实查询结果返回给用户

匿名服务器接收到查询结果S之后,根据S对小刘的用户请求消息M、小赵的用户请求消息M1、小钱的用户请求消息M2和小孙的用户请求消息M3进行查询,将真实结果分别返还给他们,由此四人均达到查询目的。

应当理解,此处所描述的具体实例仅用以解释本发明而不限定本发明,对于本领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干变化,也应视为属于本发明的保护范围。

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