软件学报  2020, Vol. 31 Issue (2): 471-492   PDF    
保护位置隐私和查询内容隐私的路网K近邻查询方法
周长利1 , 陈永红1 , 田晖1 , 蔡绍滨1,2     
1. 华侨大学 计算机科学与技术学院, 福建 厦门 361021;
2. 哈尔滨工程大学 计算机科学与技术学院, 黑龙江 哈尔滨 150001
摘要: 位置隐私和查询内容隐私是LBS兴趣点(point of interest,简称POI)查询服务中需要保护的两个重要内容,同时,在路网连续查询过程中,位置频繁变化会给LBS服务器带来巨大的查询处理负担,如何在保护用户隐私的同时,高效地获取精确查询结果,是目前研究的难题.以私有信息检索中除用户自身外其他实体均不可信的思想为基本假设,基于Paillier密码系统的同态特性,提出了无需用户提供真实位置及查询内容的K近邻兴趣点查询方法,实现了对用户位置、查询内容隐私的保护及兴趣点的精确检索;同时,以路网顶点为生成元组织兴趣点分布信息,进一步解决了高强度密码方案在路网连续查询中因用户位置变化频繁导致的实用效率低的问题,减少了用户的查询次数,并能确保查询结果的准确性.最后从准确性、安全性及查询效率方面对本方法进行了分析,并通过仿真实验验证了理论分析结果的正确性.
关键词: 基于位置的服务    隐私保护    连续K近邻查询    私有信息检索    
Location Privacy and Query Privacy Preserving Method for K-nearest Neighbor Query in Road Networks
ZHOU Chang-Li1 , CHEN Yong-Hong1 , TIAN Hui1 , CAI Shao-Bin1,2     
1. School of Computer Science and Technology, Huaqiao University, Xiamen 361021, China;
2. School of Computer Science and Technology, Harbin Engineering University, Harbin 150001, China
Abstract: Location privacy and query content privacy are both critical elements in LBS querying for points of interest (POIs). For continuous queries in road networks, frequent changes of a user's location bring huge burden of query processing to LBS server, how to release a user's privacy information as little as possible, and obtain accurate query results efficiently are still great challenges in current researches. Taking the idea of private information retrieval (PIR), i.e. no trusted entities except the user himself, as a basic assumption, a privacy-preserving method is put forward based on homomorphic properties of Paillier cryptosystem, which the user does not need to provide his actual location or query content to LBS server in K nearest neighbor POIs query, it achieves privacy preservation in LBS and accurate retrieval of POIs. Meanwhile, takeing the vertexes in road networks as generating elements to organize the distribution information of POIs, the inefficient problem is further solved in most cryptographic query schemes, which is caused by frequent location changes in continuous query, the proposed method significantly reduces the frequency of initiating queries to LBS server without decreasing the query accuracy. Finally, the proposed method is analyzed from the aspects of accuracy, security, and efficiency, extensive experiments verify the effectiveness.
Key words: location-based service    privacy preservation    continuous K-nearest neighbor query    private information retrieval    

基于位置的服务(location based service, 简称LBS)[1, 2]成为移动智能终端中最广泛的应用服务形式, 现有多数移动终端软件在安装和使用时都会默认读取用户位置数据, 以便为用户提供高质量的服务.基于位置的K近邻(K-nearest neighbor, 简称KNN)兴趣点(point of interest, 简称POI)查询是LBS中应用最为广泛的一种服务形式[3], 用户通过提供自己的真实位置和查询内容给位置服务器, 获取服务器返回的距离该用户最近的K个兴趣点[4, 5], 如“查询距离我当前位置最近的5家医院”.然而, 直接提交这样的查询请求, 会带来严重的用户位置隐私和查询内容隐私泄漏问题, 攻击者可以通过二者并结合其他的背景知识, 推断出用户的其他敏感信息, 如家庭住址、习惯爱好、健康情况及社会关系等[1].随着使用智能终端用户数量的不断增多, LBS中的隐私泄漏问题也受到越来越多用户的关注, 用户在享受高质量的位置服务时, 其隐私信息必须得到有效的保护[6, 7].

LBS查询中的隐私保护问题可以分成位置隐私保护和查询内容隐私保护两类[8].一方面, 由于用户真实位置的时空关联特性, 将自身真实位置发送给LBS服务器会带来直接位置隐私泄漏, 模糊泛化的方法可用来保护用户的位置隐私[1, 6, 8].常用的位置隐私保护方法可分为构造匿名区(cloaking region, 简称CR)[1, 9, 10]和生成假位置(dummy)[11-16]两类.然而, 匿名区方法在连续查询时存在难以构造的问题, 而假位置方法多数情况需要利用多个虚假位置模糊真实位置, 因此会带来额外的查询处理负担.

另一方面, 现有的研究大多会考虑如何保护用户的位置隐私, 而忽略了对查询内容的保护, 查询内容同样可作为推断用户真实身份的直接关联条件.最好的隐私保护方式是用户不对外释放任何信息, 然而这与获取服务相矛盾.在通常情况下, 用户要获取服务就必须以释放自身信息为代价, 如何在不知晓用户查询内容的条件下为其提供精确的服务结果看似难以实现.私有信息检索(private information retrieval, 简称PIR)[3, 8, 17, 18]技术为上述问题提供了良好的解决途径, 然而这种方法大多基于高强度密码系统设计, 存在不适用于位置变换频繁的连续查询、无法区分兴趣点类型、多面向欧氏空间设计实用性差等缺陷[3]; 同时, 现有多数PIR协议依然要依靠一个可信的安全处理器[18, 19], 对LBS数据库及用户真实位置预处理, 其可信性依然基于假设, 存在更多不安全因素.

最后, 从实体架构和实体可信性来看, 现有LBS隐私保护研究大多采用有中心服务器架构[1, 6, 8], 负责模糊泛化用户隐私数据、代理用户发起查询请求, 并假设中心服务器不会泄漏用户隐私.然而, 用户将涉及隐私的数据交给任何第二方都存在隐私泄漏的可能, 因此这种安全性假设并不符合实际情况.

针对上述问题, 本文研究内容及贡献如下.

(1) 针对路网连续查询中的位置和查询内容隐私保护问题, 基于Paillier密码系统的同态加密属性, 提出了无需用户提供真实位置和查询内容的连续K近邻兴趣点查询方法, 主要包括用户端基于同态加密的秘密查询请求生成、服务端在密文查询请求上基于同态特性的密文查询结果生成、用户端同态解密并计算精确结果这3个阶段.

(2) 针对Paillier等高强度密码系统中普遍存在的处理开销大、无法适用于连续查询等问题, 基于锚点技术和以路网顶点为生成元的兴趣点分布信息组织结构, 解决了高强度密码算法在面对连续查询时因用户位置变化频繁导致的实用性低的问题, 有效降低了查询次数, 同时能够确保查询准确率.

(3) 本方法基于“用户-LBS服务器”两方实体架构, 即除了用户自身外, 假设其他实体都存在隐私泄露可能, 实体可信性假设更符合实际; 性能分析部分对本方法的查询服务质量和安全性进行了分析, 并提出“εp-隐私确保模型”和“δq-质量确保模型”来确定隐私保护与服务质量之间的均衡点.大量的仿真实验验证了性能分析中所得出结论的正确性.

1 相关工作

LBS兴趣点查询中的隐私保护问题主要可以分为两类:位置隐私保护和查询内容隐私保护[3, 6, 8].LBS查询请求可形式化为Q=〈uk, loc, time, K, C, 其中每个元素分别代表用户身份标识、位置、查询时间、近邻兴趣点查询个数及查询内容, 其中, 身份标识的保护可用匿名通信Tor[20]或假名变换[21]的方法来实现, 这里不做讨论.当用户提交查询请求时, 既不愿意提供自己的真实位置数据, 也不愿意提供查询请求内容, 例如用户提交查询请求“查询距离我当前位置最近的K个酒吧”, 位置和查询内容都可能作为推断出用户身份、生活习惯及经济状况等隐私信息的条件[1].从信息熵的角度看, 用户释放的自身信息越少, 攻击者推断其隐私信息的可能性就越低.因此, 用户在提交查询请求时, 尽量少提供或不提供精确的位置和查询内容, 同时希望获得精确的查询结果.位置隐私保护通常采用模糊泛化的方法实现, 对查询请求内容的保护PIR是目前行之有效的保护方法之一.

位置隐私保护方法通常采用构造匿名区和生成假位置两类[8].构造匿名区的方法是构造包含用户在内的k-1个其他用户的区域, 以该区域替代自己的真实位置发起查询, 以实现k匿名(k-anonymity)的方式确保攻击者无法确定k个用户中哪个是发起查询的真实用户.这种方法虽然较为常用, 但LBS服务器必须具备处理非精确地理坐标查询的能力, 且在用户移动连续查询时难以构造包含多数初始用户的连续匿名框[8].假位置方法是用户一次提交1个[13-16]或多个[11, 12]虚假的位置用来替代自己的真实位置, 使攻击者难以确定用户的真实位置, 然而提交多个虚假位置会给LBS服务器带来额外的负担.但假位置却具有构造灵活、易处理、查询精度高等优势, 适用于路网动态用户的连续查询, 但需要解决假位置替代用户真实位置后如何确保查询准确率的问题.

作为假位置方法的一种, 锚点[13-16, 22]技术是以一个假位置(锚点)替代用户真实位置发起查询请求, 用户以锚点为起点采用增量近邻查询的方式逐步扩大获取近邻兴趣点候选集, 并通过两个被称为供应空间和需求空间的大小变化来控制查询开始和结束, 如图 1所示.用户根据LBS服务器返回的结果候选集计算出距离自己最近的K个兴趣点.该方法(SpaceTwist)由Yiu等人[13]首次提出, 在无需提供用户真实位置的条件下, 实现了精确的KNN兴趣点查询.但该方法也存在未实现k匿名、锚点随机生成等缺陷[15, 16, 22, 23].虽然Yiu等人提出过改进方法[14], 国内外学者也针对上述问题分别提出了KAWCR[15]、Coprivacy[16]、HINN[22, 23]等改进方案, 但这些方法仍基于欧氏空间设计, 在实际路网环境中并不适用[24-26].而且锚点位置随机生成, 并没有考虑锚点位置的选取对查询效率的影响.LBS服务器在面临频繁变换的锚点位置时, 查询效率显著降低.2015年, 我们面向路网环境提出了利用锚点实现兴趣点KNN查询的解决方案[24], 在方法的实用性、查询效率及位置隐私保护等方面取得了一定的进展.但没有解决查询内容隐私保护问题, 仍存在查询内容关联攻击的可能.但锚点技术在构造灵活性、易处理、易共享、便于用来组织兴趣点分布信息等方面仍然具有显著优势.本文拟采用锚点技术, 在先前研究的基础上提出一种路网环境中无需提供用户真实位置和查询内容的精确KNN兴趣点查询方法.

Fig. 1 Workflow diagram of SpaceTwist 图 1 SpaceTwist工作示意图

私有信息检索(PIR)[4, 5, 8, 18]是查询内容隐私保护最有效的方法之一.该方法以LBS服务器为不可信实体, 用户通过向LBS服务器提交一个经过加密处理后的查询请求, 服务器在不知晓用户真实请求内容的情况下, 依然能够为用户返回查询结果, 并且服务器无法确定为用户提供了哪个具体结果, 实现了秘密获取兴趣点查询结果的目标[4, 5].但这种方法存在计算开销较大、连续查询时效率较低及大多基于欧氏空间设计等缺陷[3, 8], 并且很多情况下要依赖一个可信设备来对数据库和用户的真实位置信息进行预处理, 存在诸多不安全因素[18, 19].特别是在实际路网环境下, 行进中的用户会多次以不同位置发起相同的兴趣点连续查询请求, 频繁的查询请求会给LBS服务器带来巨大的处理负担, 因此需要改进.文献[25-27]为本文提供了路网查询方法参考.

近年来, 我们借鉴私有信息检索的思想提出了保护查询内容的盲查询协议[28].该方法基于伪随机置换方法, 具有良好的查询效率.但该方法依然不适用于路网环境, 且索引结构不够高效.针对此问题, 我们进一步提出了改进方案, 但依然要依靠可信中心服务器[29].Yi等人[3]针对PIR在查询协议复杂、连续查询及查询粒度等方面的缺陷, 借鉴Paillier-RSA密码系统, 提出了一个保护查询内容的兴趣点秘密检索协议.然而, 该协议仍然基于欧氏空间设计, 将用户位置限定在某个网格空间内, 存在严重位置隐私泄漏风险.在查询过程中, 由于用网格代替用户位置查询, 会带来查询结果不精确或查询范围大等问题; 并且, 同态加解密处理在连续查询中存在实际效率低的问题.

综上, 我们针对LBS查询中位置隐私和查询内容隐私保护问题, 提出了用户无需提供真实位置和查询内容的路网K近邻兴趣点精确查询方法.该方法通过路网锚点共享实现位置隐私保护, 并基于锚点组织兴趣点分布信息, 面向现有私有信息检索方法中普遍存在的无法区分兴趣点类型、连续查询效率差、多基于欧氏空间设计等问题, 基于Paillier密码系统[30]实现了保护查询内容隐私的K近邻兴趣点秘密检索方法.该方法无需引入可信的中间实体, 最终实现对用户位置隐私和查询内容隐私保护的目标.

2 预备知识

本节首先介绍Paillier密码系统, 然后定义系统架构并解释所涉及的概念, 最后是对路网模型的描述.

2.1 Paillier公钥密码系统

Paillier公钥密码系统由密钥生成、加密和解密这3个过程组成.

●密钥生成过程:用户随机选取两个不同的大素数p, q满足gcd(pq, (p-1)(q-1))=1, 计算N=pq, 选取一个整数元g, 满足$g \in \mathbb{Z}_{{N^2}}^*$, 然后公布公钥pk=(N, g), 保存私钥sk=(p, q)作为秘密.

●加密过程:给定用户公钥pk, 可以用来加密一个消息m, 其中, m是一个不超过N的正整数, 从集合$\mathbb{Z}_{{N^2}}^*$中随机选取整数r, 并通过Enc计算出m的密文c:

$ c=E n c(m, p k)=g^{m} r^{N}\left(\bmod N^{2}\right) $ (1)

●解密过程:对密文c的解密可以利用私钥通过如下计算过程Dec实现, 其中, λ=lcm(p-1, q-1).

$m = Dec(c, sk) = \frac{{({c^\lambda }(\bmod {N^2} - 1))/N}}{{({g^\lambda }(\bmod {N^2} - 1))/N}}(\bmod N)$ (2)

Paillier是一种随机非对称加密算法, 对于任意元素$m{{\kern 1pt} _1}, {m_{{\kern 1pt} 2}}, a \in \mathbb{Z}_N^*$, 满足如下同态特性:

$ {Enc}\left(m_{1}\right) {Enc}\left(m_{2}\right)={Enc}\left(m_{1}+m_{2}\right) $ (3)
$ {Enc}\left(m_{1}\right)^{a}={Enc}\left(a m_{1}\right) $ (4)
2.2 系统架构及相关定义

本文采用“用户-LBS服务器”两方实体架构, 除自身外, 用户认为任何实体都存在隐私泄漏的可能.定义如下.

定义1(架构内实体集E).架构内存在两类实体, 用2元组E=(U, LBS)表示, 其中, U表示用户集合, 用户ukU携带具有GPS等感知功能模块的移动智能终端; LBS表示位置服务器集合.

为了解决单一LBS服务器在面对大量用户服务请求时的瓶颈问题, 一定数量的LBS服务器部署在路网环境中, 每个LBS服务器负责为本区域内的用户提供兴趣点查询服务.在服务开始前, 先为用户提供负责区域内兴趣点分布情况索引, 用户据此提出查询请求.用户认为, LBS服务商同样存在隐私泄漏的可能.

定义2(不可追踪性).不可追踪性是指攻击者通过用户查询请求信息并结合掌握的背景知识分析出来用户连续位置(轨迹)隐私信息的概率很低.

不可追踪性主要是针对用户位置隐私而言.背景知识由攻击者掌握, 用户很难知晓攻击者掌握什么程度的知识信息, 而用户可以在查询请求中通过少释放涉及个人位置等信息的方式来降低被追踪的可能.

定义3(不可关联性).不可关联性是指查询内容C与用户集合U中的任意用户uk相互关联的概率很低, 即查询内容无法映射到某个具体用户身份标识上.

不可关联性主要是针对用户的查询内容隐私而言, 用户连续发出相同查询请求内容依然可以作为关联条件, 攻击用户深入隐私信息.与假名变换和位置模糊泛化不同, 查询内容很难变换、模糊泛化, 因此对查询内容的保护较难实现, 需要借助秘密信息检索技术.

定义4(私有信息检索).假设除用户自身外, 其他实体均不可信, 用户秘密向LBS服务器检索其第i条记录的过程中, LBS服务器无法知晓用户的查询内容, 并依然可以满足用户查询需求, 则称实现了私有信息检索或秘密检索.本文中实现兴趣点的秘密检索, 实际是指在保护用户隐私的条件下获取查询结果的过程.

定义5(位置隐私). 对于用户uk发起的任何查询请求$Q = {\kern 1pt} {\kern 1pt} \langle {u'_k}, loc, time, K, C\rangle $, 如果存在方法f, 使得:

$f:({k_{adv}}, \langle {u'_k}, loc, time, K, C\rangle ) \to {u_k}$ (5)

成立, 且当loc为用户真实位置坐标时, 则称loc为位置隐私.其中, kadv为攻击者掌握的背景知识集; uk表示用户真实身份标识; ${u'_k}$表示查询中使用的假名, 每次查询均变换不同假名, 用户生成的假名之间无关联; loc是经过去模糊化后得到的真实位置坐标, 其余为辅助输入, 是否需要辅助输入取决于攻击者对方法f的构造能力; f可以是攻击者自运行的算法, 也可以是与其他实体交互的协议或策略等.

位置隐私泄漏以攻击者获取用户真实位置为前提, 并且要实现从该位置到某一具体用户身份的唯一映射.用户查询内容隐私及其他个人隐私均可通过类似方法定义.可见, 不实现身份映射的任何隐私信息对于攻击者来说没有任何意义.用户公布的任何涉及个人隐私的数据均存在用来推断其真实身份的可能, 隐私的私密性决定了任何第二方实体均是不可信的.隐私保护的最有效方法就是什么也不公布, 但这也给获取服务带来了难题.

2.3 路网模型

行驶在路网中的用户, 行驶方向和行驶距离受路网约束, 如图 2所示, 有向路网图相关概念定义如下.

Fig. 2 Road network model 图 2 路网模型

定义6(有向路网图). 有向路网图可用二元组digraph=(Vex, Edg)表示, 其中, Vex表示顶点集合, viVex表示某个路网顶点, 任意一条路段两端顶点称为邻接顶点; Edg表示有向边集合, $\overrightarrow {{v_m}{v_n}} \in Edg$表示路网中的某条有向路段(简称路段), 该路段表示从顶点vm的一条出边或vn的一条入边, 行进在路段$\overrightarrow {{v_m}{v_n}} $上的某个用户uk或该路段上的兴趣点pi可以表示为${u_k} \in \overrightarrow {{v_m}{v_n}} $${p_i} \in \overrightarrow {{v_m}{v_n}} $, vn称为用户uk所在路段的正方向顶点.

定义6中的路段方向也用来表示用户的行进方向, 同时也表明兴趣点位于哪一个路段.如图 3所示, ${p_3} \in \overrightarrow {{v_5}{v_9}} $${p_5} \in \overrightarrow {{v_9}{v_5}} $表示分别位于用户uk行驶方向左、右两侧的兴趣点.

Fig. 3 Local description of road network 图 3 路网局部详细描述

定义7(路网距离).路网边上任意两点vipi最短行驶路径长度distr(vi, pi)称为路网距离.如图 3所示, distr(v5, p5)=diste(v5, v9)+diste(v9, p5), 其中, 表达式diste(v5, v9)表示两点之间的欧氏距离, 并假设用户均沿路段行进, 不存在跳跃路段障碍行进可能.

由定义7可知, distr(vi, pi)与distr(pi, vi)可能并不相等, 且欧氏距离近的点可能路网距离较远.如图 3所示, 顶点v5到兴趣点p5的路网距离比到p3的更大, 而v5p5的欧氏距离却相对更小.

定义8(锚点). 即被用户选择替换自己真实位置发起查询的路网顶点, 非顶点位置不可选作锚点.用户通常选择所在路段正方向顶点作为查询锚点, 同一锚点可以被不同路段上的用户复用.如图 3所示, 用户ui, uj, ukum均可以选择v5作为锚点, 当这些用户共用同一个锚点时, 初步实现了位置匿名, 当路网上的所有路网用户均用锚点发起查询时, 从攻击者角度看, 全部查询均从固定位置发出, 起到了模糊泛化用户真实位置的作用, 进一步增加了攻击者关联用户连续位置的难度.从用户角度看, 锚点位置并非随机生成而是固定的, 相对于其他使用随机锚点的查询方法, 这种固定锚点有利于提高查询结果的复用率.

通过路网定义, 我们可以发现, 用户在行进过程中总会经过不同的路网顶点, 用户要达到其他路段的某个兴趣点, 必须先到达当前路段所指向顶点, 并从该顶点出发到达目标兴趣点.由此可见, 兴趣点是依据路段分布的, 以路网顶点为基本单位组织路网兴趣点分布信息, 便于查找K近邻兴趣点; 同时, 具有同一指向顶点的不同路段上的用户, 以同一路网顶点作为锚点发起查询时, 攻击者无法确定哪个用户处在哪条路段发起了查询, 可以实现对用户位置隐私的保护.

3 路网连续查询中的隐私保护方法

本节分为3部分:首先对保护隐私查询流程3个阶段进行概述; 然后阐述基于路网顶点的兴趣点分布信息组织结构, 该结构为下文兴趣点秘密检索提供了实现基础; 最后阐述基于Paillier密码系统的秘密检索详细过程.

3.1 隐私保护流程概述

图 4所示, 为了保护用户位置及查询内容隐私, 基于Paillier的兴趣点秘密检索流程简要描述如下.

Fig. 4 Workflow diagram of POIs query 图 4 兴趣点查询流程图

① 用户uk依据兴趣点分布索引, 以所在路段正方向顶点vn作为锚点向LBS服务器发起兴趣点查询请求$Q = \{ {u'_k}, lo{c_{{v_n}}}, time, K, C\} $, Q中各个元素依次表示用户身份标识(通常使用假名)、第i个锚点位置(路网顶点)、查询时间戳、K近邻兴趣点查询个数及经过后文算法1中Paillier同态加密处理生成的密文查询内容C.LBS服务器无法得知C的真实内容, 因此无法确定用户查询哪个类型的兴趣点, 即假设在LBS端存在m个类型的兴趣点, 其中某个兴趣点类型t(t=1, 2, …, m)是用户查询的目标兴趣点, 经过后文算法1的处理, 实现对其秘密标识, 而LBS服务器并不知道哪个类型兴趣点是经过秘密标识的.在连续查询中, 用户每次发起查询都会变换假名且K也会不同, 以避免由身份标识及K等相同属性关联带来对用户连续位置隐私的推断攻击.

② 基于Paillier的同态特性, LBS服务器在密文Q上运行后文算法2, 以锚点$lo{c_{{v_n}}}$为起点, 依次在数据库中提取全部m个类型兴趣点的K近邻查询结果$(P_1^K, P_2^K, ..., P_m^K), $并利用同态属性将无区别的m个兴趣点查询结果作为输入累乘处理, 得出一个密文处理结果R.LBS无法根据R推断出用户目标兴趣点类型, 并将其返回给用户.

③ 用户根据返回的密文查询结果R, 通过计算公式并运行后文算法3计算得出其所需的精确K近邻查询结果.

在连续查询过程中, 用户始终无需提供自己的真实位置及查询内容, 实现了对位置及查询内容隐私保护, 并且能够确保查询结果的准确性, 最终实现了对目标兴趣点的秘密检索(PIR).详细实现过程在第3.3节中说明.

3.2 基于路网顶点的兴趣点分布结构设计

为了方便用户利用锚点查询, 就必须在LBS服务端设计适用于路网顶点发起查询的兴趣点分布情况组织方式.如前所述, 可采用以路网顶点为基本单位来组织兴趣点分布情况信息.如图 3所示, 以图 3中顶点v5为例, 从v5出发可到达不同类型的兴趣点, 图 3以不同形状的点表示不同类型兴趣点.

定义9(顶点直达兴趣点).从某个顶点出发, 不经过其他顶点达到的兴趣点, 称为顶点直达兴趣点.图 3中, 顶点v5的黑色正方形直达兴趣点按照路网距离由近到远依次有{p14, p9, p15, p7, p8, p12, p3}, 其他同类黑色正方形兴趣点不属于顶点v5的直达兴趣点, 如{p11, p10, p5}等, 属于其他顶点的直达兴趣点.

由此, 可以根据顶点直达兴趣点的定义, 以路网空间内所有顶点为基础, 构造LBS端的路网兴趣点分布情况信息表, 见表 1.其中, 第1行每个列名依次表示路网顶点的位置坐标(即用户查询时所用的锚点)、邻接顶点集合、不同类型兴趣点的标号、兴趣点类型名、Kmax个此类近邻兴趣点坐标集合和每个此类兴趣点的详细描述信息.每个锚点中, 不同类型兴趣点标号唯一.Kmax表示从该顶点出发此类型的近邻兴趣点个数的一个上限值, 由LBS服务商预先存储在数据库中, 并定期更新.该集合中的兴趣点可能分布在不同路段上, 用户发起K近邻查询时满足KKmax, 并且集合中所有兴趣点按照从该顶点出发的距离递增排序, 兴趣点描述信息列中的每条详细信息按相同顺序依次排列.本文采用分布式数据库, 每个LBS服务器只负责管理所在区域内的兴趣点分布表, 并响应区域内用户的查询请求, 不同区域内的兴趣点分布表不同.这种分布式结构有利于提高查询效率.

Table 1 Structure of POIs distribution in LBS 表 1 LBS端兴趣点分布结构

部署在各个区域内的不同LBS服务器以路网顶点为基本元素, 掌握自己所负责区域内的全部路网顶点的兴趣点分布情况, 并由表 1生成兴趣点分布情况索引表, 见表 2.该表在查询开始前公布给用户.用户首先根据索引表确定所在路段, 如计算用户位置到两个邻接顶点之间距离的方法等[24, 31], 以确保后续对锚点的有效选择, 此类定位方法较多, 此处不再赘述.

Table 2 Distribution index of POIs in LBS 表 2 LBS端兴趣点分布索引

索引表 2提供了用户所在位置一定范围内各类兴趣点沿路网分布情况, 是一种分布式结构化的广播索引, 其中, 路网顶点和邻接顶点用于帮助用户确定所在路段.兴趣点类型表示从该对应顶点出发可以到达区域内哪些类型的兴趣点, 兴趣点标号唯一标识一类兴趣点.用户通过同态加密对标号进行处理, 生成对某类型兴趣点的秘密检索请求.该表周期广播给LBS服务器负责区域内的用户.用户在确定自身所在路段后, 首先选取当前所在路段正方向顶点vn作为锚点anchor n, 然后通过后文算法1对该锚点下所有的兴趣点类型标号做同态加密处理, 并秘密标记其感兴趣的目标兴趣点类型, 最终生成查询请求Q发送给LBS服务器.而LBS服务器无法依据Q知晓用户查询了哪类兴趣点, 但依然可以据此生成密文查询结果返回给用户.因此, 用户需要首先获取索引表 2.

3.3 保护位置和查询内容隐私的K近邻查询方法

由用户发起的K近邻兴趣点秘密检索流程可以概括为用户端查询请求生成、服务端对查询请求的处理及用户端对查询结果求精这3个过程, 依次对应后文算法1~算法3.用户基于同态加密Enc执行后文算法1, 生成秘密检索请求Q; LBS服务器基于同态属性对密文Q执行后文算法2, 生成密文查询结果R; 用户依据相应公式解密查询结果, 并依据自身实时位置运行后文算法3, 生成路网环境下的精确K近邻查询结果.

(1) 秘密检索请求的生成、处理

LBS服务器针对不同顶点将各类兴趣点进行分类处理, 将从某个顶点vn出发的全部m个类型的兴趣点依次标号, 如表 1第3列所示, 并以二进制数的形式存储, 用户通过标号来表示自己的目标查询兴趣点.用户在收到LBS服务器发来的区域内兴趣点分布情况索引表 2后, 根据索引表兴趣点类型标号生成的查询请求可表示为$Q = \langle {u'_k}, lo{c_{{v_n}}}, time, K, C\rangle $.为了避免自身查询内容隐私泄漏, 其中的C是用户对目标兴趣点类型经过Paillier同态加密处理后的密文查询内容, 处理过程如算法1所示, 确保LBS服务器不知道其查询兴趣点类型(即查询内容隐私).其中, 用户针对自己的目标兴趣点类型标号t∈(1, 2, …, m), 获取从所在路段正方向顶点vn出发的Kmax个近邻兴趣点结果, 可表示为$P_{{v_n}, t}^{{K_{\max }}}, $该类型兴趣点的Kmax个结果按照到顶点vi的路网距离递增排序, 而用户发起某个类型tK(KKmax)近邻兴趣点查询可表示为$P_{{v_n}, t}^K$.LBS服务器端也需在查询自己的数据库表时执行特定的算法, 使LBS服务器既能根据密文查询内容C返回给用户其所需的兴趣点查询结果, 同时其自身又无法确定返回给用户什么样的查询结果.处理过程如后文算法2所示.

算法1.用户端密文查询请求生成算法.

1.输入:用户目标兴趣点类型(如医院、银行等), 近邻兴趣点查询个数K.

2.输出:用户查询请求Q、加密算法Enc的公私钥对(pkpail, skpail).

3.用户获取LBS服务器公布的索引表IndexTablelbsi

4.确定自己所在路段$ {u_k} \in \overrightarrow {{v_m}{v_n}} $, 正前方顶点为vn

5.依据索引表IndexTablelbsi确定顶点vn中的目标兴趣点类型的标号为t∈(1, 2, …, m)

6.随机选取两个大素数p, q, 使得Npail=pq

7.依据公式(1)生成Paillier加密算法Enc的公私钥对pkpail={Npail, g}, skpail={p, q}

8.选取两个不相等的整数α, β

9.在IndexTablelbsi中提取所在路段正前方顶点vn中的全部m个兴趣点类型标号

10. for每个兴趣点类型标号x∈(1, 2, …, m)

11.   生成随机数$r_{x} \in \mathbb{Z}_{N_{ {pail}}^{2}}^{*}$

12.   if x=t then //类型标号是用户的目标兴趣点

13.   ${c_{{\kern 1pt} x}} = Enc(\alpha, p{k_{pail}}) = {g^\alpha }r_{{\kern 1pt} x}^{{N_{pail}}}(\bmod N_{pail}^2)$

14.   else $c_{x}={Enc}\left(\beta, p k_{ {pail}}\right)=g^{\beta} r_{x}^{N_{ {pail}}}\left(\bmod N_{ {pail}}^{2}\right)$

15.   end if

16.end for

17.将上面生成的每个cx表示为密文查询内容集C=(c1, c2, …, cm)

18.选取所在路段正前方顶点vn作为锚点, 选取假名, 生成查询请求$Q=\left\langle u_{k}^{\prime}, l o c_{v_{n}}, t i m e, K, C\right\rangle$

19.返回查询请求Q及Paillier加密算法Enc的公私钥对(pkpail, skpail)给用户

20. END.

算法1中, 用户需要执行m次Pailiier加密过程, 其计算复杂度可以用O(m)表示.由算法1第13行可见, 用户在生成查询请求过程中, 用α对自己目标类型兴趣点标号t进行了秘密标识, 其他类型兴趣点类型标号均用β来运算处理.由于算法1对每个类型标识符在加密处理时均选取不同时随机数rx, 使加密结果未表现出任何特征, 因此, LBS服务器及其他潜在攻击者无法通过密文查询请求确定用户真实查询请求.由此, 用户根据算法1生成的密文查询内容集C, 并选取当前所在路段正方向顶点vn作为查询锚点, 向LBS发起查询请求$Q = \langle {u'_k}, lo{c_{{v_n}}}, $ time, K, C〉, 由于C是经过算法1处理后的密文查询内容, 因此LBS服务器并不知晓用户对m种类型兴趣点中的哪个类型感兴趣, 然而LBS服务器如何实现在不知晓用户目标兴趣点类型的条件下为用户提供密文查询结果R, 即LBS服务器也不知道提供了哪类兴趣点的查询结果.因此, 需要依据查询请求及Paillier的同态特性进一步做特殊处理.LBS服务器处理过程如算法2所示.

算法2. LBS服务器端查询请求处理算法.

1.输入:用户查询请求$Q = \langle {u'_k}, lo{c_{{v_n}}}, time, K, C\rangle $、LBS服务器端路网顶点兴趣点存储表Tablelbsi.

2.输出:密文查询结果R.

3. LBS服务器依据Q确定顶点vn

4. for Tablelbsi中顶点vn的每个类型兴趣点数据集合$P_{v_{n}, t}^{K_{\max }}, t=1, 2, \ldots, m$

5.    提取前K个兴趣点集, 用wt表示每个$P_{v_{n}, t}^{K}$

6.    按序将每个wt存储在集合W

7. end for

8.提取Q中的集合C

9. for每个cxC及每个wtW, 其中, x=t=1, 2, …, m

10.    累乘计算$R=\prod\limits_{x=1}^{m} c_{x}^{w_{x}}\left(\bmod N_{p a i l}^{2}\right)$

11. end for

12.返回密文查询结果R给用户

13. END.

LBS服务端收到用户查询请求后执行算法2.由算法2第9行、第10行可知, LBS服务器提取查询内容C中的每个兴趣点类型标号密文cx, 并结合自己数据库表中提取表 1中该顶点vnm个类型的兴趣点K近邻结果(主要为表 1中的最后两列), 基于同态属性累乘计算出一个结果密文结果R, 并将其返回给用户uk.该算法的计算复杂度为O(m2).用户需要根据自己掌握的私钥, 通过公式(2)描述的Paillier解密算法Dec解密计算出自己想

要的类型为tK近邻目标兴趣点信息$P_{{v_n}, t}^K$, 如式(6)所示, 从而实现目标兴趣点的秘密检索.

$P_{{v_n}, t}^K = Dec(R, s{k_{pail}})$ (6)

然而, 该结果仅是以用户所在路段正方向顶点为起点获取的K近邻查询结果, 而由于用户行进在路段的某个位置上, 该查询结果并非基于用户当前位置获得的最终K近邻结果.为了确保查询的准确性, 用户需要进一步结合自身当前位置对查询结果进行求精, 计算出距离自身最近的K个目标兴趣点集合$P_{{u_k}, t}^K$, 而不是$P_{{v_n}, t}^K$, 求取精确的查询结果如后文算法3所示.

(2) 精确查询结果生成

为了实现位置隐私保护效率和实用性, 根据当前路段正方向顶点必达性的特点, 如图 3所示, 路网用户uk$\overrightarrow {{v_9}{v_5}} $可以选取当前路段指向顶点v5作为锚点, 替代自身位置发起查询.在连续查询中, 用户无需频繁提交实时变化的位置发起连续查询, 用户仅需以当前路段正方向顶点v5为锚点发起1次查询即可.用户根据表 1Kmax近邻兴趣点集”列中提供的KKmax近邻信息, 获取K近邻兴趣点查询结果.同时, 用户可以依据索引表 2提供的邻接顶点信息, 以较高概率判断出自己当前所在路段的顶点和即将进入的下一路段顶点[24], 即使没有进入预测的路段, 依然可以根据刚刚获取的结果, 并结合新路段信息获取精确查询结果.当用户进入下一路段$\overrightarrow {{v_5}{v_2}} $时, 以新的路段指向顶点v5发起新一次连续查询即可.当路网用户均以锚点发起查询时, 攻击者无法判断用户所在该顶点入边具体路段, 实现了用户位置隐私保护.因此, 以路网顶点作为查询锚点的方法不仅可以保护用户的位置隐私, 同时还有效降低了连续查询过程中的查询次数, 提高了查询效率及查询准确性.

然而, 从查询准确度来看, 用户在第1次发起查询时, 如图 3所示, 如果以当前顶点v5发起实心正方形类兴趣点的K近邻查询结果并不准确.这是因为用户uk前进的正方向上依然有3个同类兴趣点{p11, p10, p5}距离用户更近, 而根据定义9及锚点查询方式可知, 从锚点v5出发的K近邻查询结果中, 这3个兴趣点很可能并不是距离用户路网距离最近的3个顶点.为了解决这个问题, 如果用户采用直接获取自己当前路段兴趣点的方式, 会泄漏用户所在路段的隐私信息.为此, 在起始阶段, 用户需要以路段$\overrightarrow {{v_9}{v_5}} $的起始点v9发起一次K近邻查询, 确定自己前方目标兴趣点的个数X, 然后结合自身当前位置和以锚点v5为出发点的(K-X)近邻查询结果, 获得精确完整的K近邻查询结果, 避免因兴趣点疏漏而造成的查询不精确的问题, K近邻兴趣点精确结果计算算法如下.

算法3.用户端K近邻兴趣点精确结果计算算法.

1.输入:用户${u_k} \in \overrightarrow {{v_m}{v_n}} $自身当前位置坐标$l o c_{u_{k}}$, 当前路段两个端点坐标${loc}_{v_{m}}, l o c_{v_{n}}$.

2.输出:从用户当前位置出发的精确K近邻查询结果.

3. if缓存中不存在以vm为锚点的目标兴趣点K近邻结果

4.    调用算法1, 以为锚点发起目标兴趣点K近邻查询, 获取目标兴趣点类型t的结果集合

5. end if

6.获取当前位置$l o c_{u_{k}}$

7. while $\left(\left({loc}_{u_{k}}-{loc}_{u_{k}}^{\prime}\right) \geqslant \zeta_{\max }\right)$  //${loc}_{u_{k}}^{\prime}$表示上一次获取的位置, ξmax为某一距离阈值

8.   计算当前位置到所在路段指向顶点路网距离${dist}_{r}\left({loc}_{u_{k}}, v_{n}\right)$

9.   for每个兴趣点$p_{i} \in P_{v_{m}, t}^{K}$

10.      if ${dist}_{r}\left(p_{i}, v_{n}\right) \leqslant {dist}_{r}\left({loc}_{u_{k}}, v_{n}\right)$ //判断用户前目标兴趣点

11.      将兴趣点pi放入集合$P_{u_{k}}^{X}$

12.     else丢弃兴趣点pi

13.      end if

14.    end for

15.   计算集合$P_{u_{k}}^{X}$的势$X=\left|P_{u_{k}}^{X}\right|$

16.   调用算法1, 以$l o c_{v_{n}}$为锚点发起目标兴趣点(K-X)近邻查询, 获取结果集合$P_{v_{n}}^{(K-X)}$

17.   返回精确K近邻查询结果集$P_{u_{k}}^{K}=P_{u_{k}}^{X} \cup P_{v_{n}}^{(K-X)}$

18. end while

19. END.

算法3第7行用来判断用户位置变化情况, 当交通拥塞时(连续位置更新变化较小), 则无需不断重复计算K近邻兴趣点; 当用户位置出现较大变化时(如前进了一定的距离、拥塞缓解或通过了路口信号灯等), 再次开启连续查询.第9行~第14行将用户当前位置前的目标兴趣点保留下来, 丢弃其他兴趣点, 用户确定了前方兴趣点数量后, 以前方顶点为锚点发起(K-X)近邻查询.由于用户每次前方兴趣点数量不同, 所以, 可能用户每次以锚点发起的近邻查询K值会有不同.当用户进入到下一路段后, 依然可以依据上一次路网顶点为锚点的查询的结果, 运行算法3得出当前所在路段中用户位置前方的兴趣点个数(K-X), 再次发起新查询, 减少查询次数.由于用户首次查询需要计算所在路段兴趣点并调用算法1生成查询请求, 因此算法3的计算复杂度为O(m+k).

4 性能分析

本节将从准确性、安全性和工作效率这3个方面对所提出方法的性能做出分析.通过分析可以看出, 本文所提出的方法能够在确保用户位置隐私和查询内容隐私的基础上, 确保较高的查询准确度.

4.1 准确性

基于位置的服务不应因为隐私保护需求而降低服务质量, 用户体验较差的服务很难获得认可.本文提出, 既不提供真实位置信息, 也不提供查询内容明文, 确保查询结果准确性是首要问题.

一方面, 在不提供用户精确位置的条件下, 我们基于路网兴趣点沿路段分布及其可达性的特点, 设计了基于路网顶点的兴趣点分布情况组织结构.如图 5(a)图 5(b)所示.

Fig. 5 Comparison of querying with an anchor and a cloaking region 图 5 利用锚点和利用匿名框查询比对

为了保护位置隐私而将用户所在网格作为匿名框查询获得的查询结果(以v为圆心的实线圆内的兴趣点), 与用户真实位置获得的查询结果(以uk为圆心的虚线圆内的兴趣点)具有明显的差异, 这种基于欧氏空间设计的查询方法在建筑体等障碍物阻挡的情况下, 可能也不是距离用户最近的兴趣点.因此匿名框方法在实际查询中, 准确性相对较低.本方法考虑了路网限制因素, 某个路段上的用户${u_k} \in \overrightarrow {{v_m}{v_n}} $如果想到达目标兴趣点, 必然会首先到达当前所在路段正方向顶点vn, 并以此为出发点到达K近邻兴趣点, 因此, 以路网顶点为锚点的查询在查询准确度方面具有显著的优势.考虑到用户当前路段$\overrightarrow {{u_k}{v_n}} $上依然存在目标兴趣点的可能, 算法3将精确的用户K近邻兴趣点集$P_{{u_k}}^K$分成两个集合分布逐步查询$P_{{u_k}}^X \cup P_{{v_n}}^{(K - X)}, $其中, $P_{{u_k}}^K$根据用户上一次的依据顶点vm发起的查询结果中通过计算获取, $P_{{v_n}}^{(K - X)}$以为锚点vn的新一次查询中获得, 用户通过计算获取距离自身真实位置最近的K近邻兴趣点集, 确保查询结果的准确性.当用户驶入新路段后${u_k} \in \overrightarrow {{v_n}{v_o}} $, 则以新路段正方向顶点vo发起新的查询.由此可见, 基于路网顶点的查询方式不仅可以解决传统欧氏空间K近邻查询中存在的因障碍物阻挡等因素带来的查询结果与实际情况不符的问题, 还能确保连续查询过程中的结果准确性.

另一方面, 在用户不提供真实查询内容的条件下, 为了确保用户能够获取目标类型兴趣点查询结果, 我们基于Paillier密码系统给出了秘密信息检索交互过程.由于兴趣点分布信息是依据路网顶点组织的, 并且每个类型兴趣点的Kmax近邻查询结果上限值在LBS服务器端已经预置好, 在秘密检索过程中, 任意兴趣点类型tK近邻(KKmax)查询结果明文$P_{{v_n}, t}^K, $用户均可以通过$P_{{v_n}, t}^K = Dec(R, s{k_{pail}})$解密获得.这是因为算法1、算法2和公式(6)中的密文查询处理过程等价于Pailllier算法对目标类型兴趣点ct的一次加解密过程, 即有:

$R = \prod\limits_{x = 1}^m {c_x^{{w_x}}} = {g^{P_{{v_n}, t}^K}}{\left( {\prod\limits_{x = 1}^m {r_x^{P_{{v_n}, t}^K}} } \right)^{{N_{pail}}}}(\bmod {\kern 1pt} N_{pail}^2)$ (7)

成立.因此, 根据Pailllier的同态属性, 用户可以结合私钥skpail解密获得目标类型K近邻兴趣点查询结果明文.因此, 本方法可以确保对任意顶点和任意兴趣点类型的秘密检索结果解密的准确性.

4.2 安全性

由定义5可知, 在一次完整的连续查询中, 安全性是指用户在使用不同路网顶点发起查询过程中, 方案中不存在可以推断出用户真实身份的关联项, 用户每次查询可表示为$Q = \langle {u'_k}, lo{c_{{v_n}}}, time, K, C\rangle $.这是用户唯一向外界提供的信息, 其中任意两次查询之间假名${u'_k}$无关联, 时间time和查询兴趣点数量K用来作为关联项的概率较低, 用户位置和查询内容是本方案中可以关联多次查询并推断用户真实身份隐私关键因素.即整体方案安全性取决于用户位置不可追踪性和内容不可关联性的实现.下面通过信息熵证明连续查询中位置的不可追踪性, 通过语义安全性证明连续查询中查询内容的不可关联性, 从而说明本方案在连续查询中的整体安全性.

(1) 不可追踪性

如前所述, 行驶在路网中的用户不断发起LBS兴趣点查询服务, 如果为了保护位置隐私而采用构造匿名框的方法, 由于用户移动的特点, 初始构造的匿名框在连续查询中会因为用户的离开而失效.为了不被唯一锁定, 用户需要维持初始匿名框中的绝大多数用户仍在后续构造匿名框中, 然而由于用户移动方向及速度的不同, 上述目标很难实现, 因此在连续查询中, 匿名框在用户共用实现位置隐私保护方面效果不佳.针对这个问题, 当路网内所有用户均利用所在路段正方向顶点作为锚点查询时, 如图 5(a)所示, 不同路段上的用户uk, ui, ul共用同一个锚点vn, 相当于构造了一个匿名度k=3的匿名框, 实现了一次k匿名, 其中, 某个用户uk的实际位置可能位于以顶点vn为入边顶点的任意4条路段上.用户到达下一路段后, 用新的顶点作为锚点发起查询, 依然可以和其他用户共用下一路口锚点, 实现连续查询中的位置隐私保护.由于路网锚点不是临时构造的, 类似于预先部署很多可以供用户共用的假位置, 从全局看, 路网内所用用户似乎都在同一个匿名区内, 因此相对于临时构造的匿名框, 无需考虑保持初始多数用户的问题.

同时, 由于用户在查询过程中查询内容C是不可见的, 并且算法2中查询内容密文每次均选取不同的随机数rx生成, 因此由查询内容关联带来的连续位置隐私泄漏概率几乎为0.并且根据算法3, 每次K近邻查询结果$P_{{u_k}}^K$的计算由并集$P_{{u_k}}^X \cup P_{{v_n}}^{(K - X)}$生成, 并集中的每次用户当前路段前方兴趣点集不确定, 因此用户每次进入新路段后发起新查询的K值都会不同, 这样利用兴趣点查询值K关联带来的连续位置隐私泄漏概率较低.由定义2可知, 在用户提交的查询请求$Q = \langle {u'_k}, lo{c_{{v_n}}}, time, K, C\rangle $中, 由位置$lo{c_{{v_n}}}$、查询兴趣点数量K、查询内容C关联带来的连续位置隐私泄漏概率较低, 用户可以采用匿名通信或变换假名的方式解决由身份标识${u'_k}$带来的关联隐私泄漏问题, 因此, 用户每次发起的查询请求所使用的位置坐标可以看作是相互独立的.这样, 每次查询都可能是以$lo{c_{{v_n}}}$为正方向顶点路段上的n个用户发起的查询, 每个用户是真实查询用户的概率为p(ui)=1/n, 单次查询的信息熵为

$H(Q) = - \sum\limits_{i = 1}^n {p({u_i})} {\log _2}p({u_i}) = {\log _2}n$ (8)

此时, 单次查询的信息熵最大.如前所述, 因为用户用不同锚点发起的M次连续查询请求都是相互独立的, 即有p(Q1, Q2, …, QM)=p(Q1)p(Q2)…p(QM)成立, 此时, M次查询的联合信息熵为

$H({Q_1}, {Q_2}, ..., {Q_M}) = - \sum\limits_{i = 1}^M {H({Q_i})} = M{\log _2}n$ (9)

即某用户连续查询中每次查询Qi无显著可用来关联连续多个位置的关联数据项.因此, 本方法在抵抗查询项关联带来的连续位置隐私泄漏问题上具有较好的安全性, 即能够保证较强的不可追踪性.

(2) 不可关联性

在一次查询请求中, 身份标识、位置、时间及兴趣点查询数量K都可以采用明文替换泛化的方法实现.由于LBS需要根据查询内容为用户提供服务, 查询内容无法实现明文泛化, 用户需要明确自己的查询内容(即用户对哪一类兴趣点感兴趣).因此, 本文采用秘密检索技术来实现查询内容的不可关联性.

本文采用Paillier密码系统来实现秘密检索, Paillier是一个满足语义安全[32]的密码系统, 即计算能力有限的攻击者无法从密文和公钥中得到明文的重要信息, 语义安全性是本文提出不可关联性的充分条件.本文的语义安全性可以采用LBS服务器和挑战者(用户)如下博弈过程描述:给定锚点$lo{c_{{v_n}}}$m个类型兴趣点的K近邻查询结果, 博弈过程如下.

① 对于任意给定的锚点$lo{c_{{v_n}}}{\rm{, }}$LBS服务器选择两个不同类型的K近邻兴趣点结果x0, x1, 并将其发送给挑战者.

② 挑战者随机选择一个比特b∈{0, 1}, 执行算法1生成查询请求Q, 并将Q及Paillier公钥pkpail发送给LBS服务器.

③ LBS服务器根据用户返回查询请求及公钥通过执行多项式有限次数的计算, 得出一个比特b'∈{0, 1}, 对挑战者选择的比特b进行猜测.

通过执行上述步骤, 如果LBS服务器最终得出的b'等于b, 则LBS服务器攻击成功; 否则失败.由此可定义LBS服务器在博弈中的概率优势为

$Prob(b = b'|(Q, p{k_{pail}})) = \frac{1}{2} \pm Adv(\lambda )$ (10)

其中, λ为安全参数.如果上述公式中Adv(λ)是一个可忽略的函数, 对于一个能力为概率多项式时间有界的攻击者, 在上述博弈中的成功概率不高于1/2±Adv(λ), 则称本文所提出的秘密检索方案是语义安全(IND-CPA)[32]的, 即LBS服务器无法知晓用户查询的兴趣点类型.

这是由于, 如果LBS服务器猜测结果是b=1, Q是用户真实查询, 则LBS服务器能够以1/2±Adv(λ)的概率博弈获胜, 其中, Adv(λ)是一个不可忽略的函数; 否则, 当b=0时, 由算法1计算出的查询请求Q与用户身份标识相互独立, LBS服务器仅能以1/2的概率获胜.由此, LBS服务器猜测出真实结果的概率为1/2+1/2+1/2×(1/2+Adv(λ))= 1/2+Adv(λ)/2.由此可见, LBS服务器并不具备不可忽略的优势, 处理的查询请求Q具有语义安全性, LBS服务器无法获知其感兴趣的兴趣点类型.由此, 当语义安全性获得保证时, LBS服务器由于无法获取其密文, 密文查询请求与用户真实身份相互无关联, 因此可以实现定义3的不可关联性和定义4的秘密信息检索.

综上, 通过确保不可追踪性和不可关联性, 攻击者很难构造出有效的方法f, 使得公式(5)成立, 进而推断出用户的位置和查询内容隐私.因此, 整个方案可以确保在连续查询中用户的位置隐私和查询内容隐私安全.

4.3 查询效率

本文提出了基于路网顶点的兴趣点分布信息组织方法, 面向查询效率提高和用户隐私保护两个问题, 在查询次数和缩小查询范围两个方面具有显著优势.

(1) 查询次数少

首先对比匿名框的查询方法.如图 5(b)所示, 处在某个网格内的用户如果以当前网格为匿名框发起查询, 则查询结果以当前网格中心v为出发点获取K近邻查询结果.然而用户uk在该网格边缘, 为了确保查询准确性, 还需要对多个邻近网格进行查询, 增加了查询次数, 会带来额外的计算、通信开销.本方法每次只发起1次查询即可获得精确的结果, 显著降低了LBS服务端的计算开销和通信开销.亦无需为了保护隐私提交多个假位置或多个虚假查询内容.本文虽使用密码学方法实现隐私保护, 但在实际应用中, 特别是在兴趣点较多时, 扩展性良好.

其次, 在连续查询中, 路网锚点仅需在每次进入新路段时提交一次K近邻查询请求即可, 用户可以根据自身不断变化的位置并结合上一路段查询的结果, 自行计算出距离自己最近的K近邻兴趣点集合$P_{{u_k}}^K$, 不必将变化的位置频繁地发送给LBS服务器, 给LBS服务器带来巨大的处理负担, 相应的通信开销和计算开销会减少.

最后, 对比以往提交一个假位置(锚点)的查询方法, 由于锚点选取随机, 因此很难以锚点为基础组织兴趣点分布信息.本方法选取的路网顶点是固定锚点, 即所有用户在查询过程中使用的全部锚点位置总是不变化, 这样的好处就是, 下次有新用户以该路网顶点为锚点进行查询时可以利用之前用户的查询结果.且有如下定理成立.

定理1(路网固定锚点查询优势). 初始状态下, 在路网兴趣点分布信息数据库的缓存空间一定时, 路网内用户利用固定锚点发起的查询越多, 后续用户越能以较高的概率快速获取目标查询结果.

证明:LBS服务器端数据库缓存容量c一定, 每次利用随机锚点查询获取的最新结果被存储在该缓存中, 假设某个初始状态下缓存中有此类查询a个, 利用固定锚点查询的结果存储了b个, 且a+b=c, 在某个LBS服务器负责的区域内固定锚点的数量是固定的.在每次到达新的查询请求中, 利用随机锚点发起查询的概率为p, 固定锚点查询的概率为q, 假设每次查询都能够命中, 则有p+q=1.由于缓存容量固定, 每增加一个固定锚点查询则随机锚点查询相应减少一个, 反之亦然, 则固定锚点查询充满数据库缓存的事件可以看作状态空间为{0, 1, 2, …, c}的查询数量质点随机游走问题, 即质点从初始状态a出发到达状态0先于到达状态c的概率.假设质点从状态i出发到达状态0先于到达状态c的概率用xi表示, 则依据全概公式有:xi=xi+1·p+xi-1·q, 其中, p+q=1.若有u=q/p, 则可得差分方程:

$ d_{x}=x_{i}-x_{i+1}=u d_{x-1}=u^{i} d_{0} $ (11)

由假设可知x0=1, xc=0, 则有:

${x_0} - {\kern 1pt} {x_c} = \sum\limits_{x = 0}^{c - 1} {({x_i} - {x_{i + 1}}} ) = \sum\limits_{x = 0}^{c - 1} {{u^i}{d_0}} = \frac{{1 - {u^c}}}{{1 - u}}{d_0} = 1$ (12)

所以有${d_0} = \frac{{1 - u}}{{1 - {u^c}}}, $进而有:

${x_i} = {x_i} - {\kern 1pt} {x_c} = \sum\limits_{k = i}^{c - 1} {({x_k} - {x_{k + 1}}} ) = \sum\limits_{k = i}^{c - 1} {{u^k}{d_0}} {\kern 1pt} {\kern 1pt} = {u^i}(1 + u + ... + {u^{c - i - 1}}){d_0} = \frac{{{u^i} - {u^c}}}{{1 - u}}{d_0} = \frac{{{u^i} - {u^c}}}{{1 - {r^c}}}$ (13)

因此, LBS数据库中充满固定锚点查询的概率xa

${x_a} = \frac{{{u^a} - {u^c}}}{{1 - {u^c}}} = \frac{{{{\left( {\frac{q}{p}} \right)}^a} - {{\left( {\frac{q}{p}} \right)}^c}}}{{1 - {{\left( {\frac{q}{p}} \right)}^c}}}$ (14)

由随机锚点和固定锚点的选取方式可知, 由于LBS服务器区域内锚点位置和数量一定, 路网内全体用户每次利用固定锚点发起查询时, 总能以相对较高的概率遇到重复锚点, 而随机选取的锚点由于位置坐标选取随机、重复性较小.因此, 从用户感觉出发, 选取固定锚点发起的每次查询能够在缓存中找到重复结果的可能要远大于选取随机锚点的可能, 查找速率更高.因此, 用户利用固定锚点提出查询的概率要高于随机锚点查询的概率, 即有q>>p.因此在c固定的条件下, a越小, xa概率越高.这样, 每次查询后就会有更多基于固定锚点的查询被LBS服务器暂时缓存下来, 这样, 缓存容量c中就含有更多的固定锚点查询结果.由于区域内固定锚点数量有限, 最终后续用户就越能以较高的概率在快速获取目标查询结果.

由此可见, 用户利用固定锚点比利用随机锚点的数据库查询次数少很多.利用随机锚点的每一次查询几乎都是新查询, 都要进行一次数据库查询, 而利用固定锚点可以促使一些常用锚点查询结果保留在缓存中, 便于该锚点结果再次被查询时提高查询效率.假设LBS端一次缓存查询耗时为t, 而一次数据库查询为nt(n > 1), 一段时间内路网用户发起的查询请求数量为h, 其中缓存命中比率为rc, 则用户完全利用固定锚点查询消耗的时间为rc·ht+(1-rchnt.而在无重复命中的随机锚点查询每次都可以看作是一次数据库查询, 其消耗时间为hnt, 则利用固定锚点查询与随机锚点查询消耗的时间比r可表示为

$r = \frac{{{r_c} \cdot ht + (1 - {r_c})hnt}}{{hnt}} = \frac{{{r_c} + (1 - {r_c})n}}{n}{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} = \frac{{{r_c}(1 - n) + n}}{n}$ (15)

由此可知, 当n(n > 1)固定时, 缓存命中比率rc越高, 固定锚点查询与随机锚点查询消耗时间之比r就越低.在区域内固定锚点数量一定且不过多的条件下, 固定锚点查询越多, 越会提升缓存的命中率, 即LBS端数据库查询次数少, 特别是在兴趣点类型较多导致同态加解密处理时延长情况下, 可显著提高查询效率.

(2) 查询范围小

为了保护位置隐私和查询精确性, 对比匿名框方法, 一方面为了保护隐私需要构建包含用户在内的匿名框, 这种方法不仅需要计算匿名框内的兴趣点, 还需要计算匿名框外的兴趣点, 这是为了在保护用户位置隐私的同时, 还要确保查询结果精确所需付出的计算代价.另一方面, 为了保护查询内容隐私而进行秘密检索必然会带来计算开销的增加.在Yi等人[3]采用的匿名框为基础的秘密检索中, 不仅要计算用户当前所在网格的K近邻兴趣点结果, 还要同时计算邻近网格(甚至匿名区内所有网格)的K近邻兴趣点结果.这是因为用户实际位置可能距离邻近网格更近一些, 这会带来计算开销的成倍增加, 而本方法采用路网顶点的兴趣点组织方法.这种方法可以确保用户每次只需发起一次正方向顶点为锚点的秘密K近邻查询, 而不必额外计算从其他顶点出发的K近邻兴趣点, 因此查询范围更减小、更精准, 使得计算开销与通信量相应地减小, 同时确保较高的隐私保护强度.

综上, 本文提出的方法能够为用户提供较强的位置隐私保护和查询内容隐私保护, 路网顶点不仅可以作为兴趣点分布信息的组织基础来提高查询效率, 还可以作为锚点保护用户位置隐私, 便于查询隐私保护的处理.

4.4 服务质量与安全性的均衡

引入锚点会带来查询准确率和效率的提升, 但也会带来一定程度的隐私泄漏.这是因为采用泛化位置精度的方法将可以实现位置隐私的保护.路段上的用户采用锚点代替真实位置, 实际将自己的位置泛化到了整个路段上, 与路段上其他用户共同构成了一个匿名集, 类似于构成了一个路段形状的匿名框.显然, 用户在越短的路段上, 可能包含的用户越少, 此时, 用户位置泛化范围越小, 用户很容易在进入到该路段后发起查询因而被迅速识别锁定.可见, 锚点的分布决定了用户隐私与服务质量之间的权衡, 即锚点稀疏时, 用户真实位置不确定性大, 但是基于稀疏锚点的兴趣点数据量大, 服务质量不高; 反之, 锚点稠密, 用户真实位置易暴露, 但是服务质量高.因此, 需要分析锚点分布情况对隐私保护和服务质量两个矛盾因素影响的分析, 找到二者的均衡点.

对锚点分布情况的衡量, 可以等价量化为全网路段平均长度, 即锚点分布稠密或稀疏则路段平均长度小或大.为了达到保护用户隐私的目标, 可以在初始构造路网图时, 通过剪枝的方法合并一些较短的路段, 提高位置的泛化程度.然而剪枝合并路段需要去掉一些路段顶点, 用户在经过这些路段顶点时不会发起查询, 使得该顶点可到达的目标兴趣点被忽略, 查询精确度和效率会下降.因此, 查询服务质量和隐私保护需要均衡考虑.我们借鉴并修改“δp-δq”平衡确定方法[33], 使其可用来分析本文中基于路网锚点的隐私保护和服务质量的均衡情况.本文采用泛化度来评价位置保护程度及数据可用性.

定义10(位置泛化度).假设某用户${u_k} \in \overrightarrow {{v_m}{v_n}} $发起以路网顶点vn为锚点的查询请求Q, 此时用户位置被泛化到整个路段$\overrightarrow {{v_m}{v_n}} $上, 则位置泛化度Generalization(·)定义为

${Generalization}{\rm{ }}(Q,\overrightarrow {{v_m}{v_n}} ) = \frac{{{S_{\overrightarrow {{v_m}{v_n}} }}}}{{\left( {\sum {{S_{\overrightarrow {{v_i}{v_j}} }}} /A} \right)}} = {S_{\overrightarrow {{v_m}{v_n}} }}/S$ (16)

其中, ${S_{\overrightarrow {{v_m}{v_n}} }}$表示路段长度, $\sum {{S_{\overrightarrow {{v_i}{v_j}} }}} /A$用来计算全路网路段平均长度S.在用户进入下一路段前的查询有效期Texp内, 位置信息的总泛化度为$\int_{{T_s}}^{{T_{\exp }}} {Generalization(Q, \overrightarrow {{v_m}{v_n}} ){\rm{d}}t}, $Ts为用户进入路段$\overrightarrow {{v_m}{v_n}} $的时间.为了保证用户不在较短的路段发起查询, 确保用户位置隐私不被迅速锁定泄漏, 定义εp-隐私确保模型如下.

定义11(εp-隐私确保模型).$S e t=\left\{\overrightarrow{v_{n} v_{x}} | x \in N^{*}\right\}$表示以vn为起始点的路段集合, εp是用户指定的路网中路段最小粒度长, 则有:

$\forall time \in [{T_s}, {T_{\exp }}], {\rm{ }}\min ({S_{\overrightarrow {{v_n}{v_x}} \in Set}}) \geqslant {\varepsilon _p} \times S$ (17)

成立, 则称该路段满足εp-隐私确保模型.

路段长度不仅要满足最低的隐私确保需求, 位置泛化度不能过高, 即路段不能过分剪枝合并, 且在一些较长的路段上(如高架路)上需要添加路口信息, 确保兴趣点丢失率不过高, 由此定义δq-质量确保模型如下.

定义12(δq-质量确保模型). 假设用户能够忍受的最差查询质量为δq, 对于

$\forall time \in [{T_s}, {T_{\exp }}], {\rm{ }}\forall {u_k} \in \overrightarrow {{v_m}{v_n}} , {\rm{ }}Generalization({Q_{uk}}, \overrightarrow {{v_m}{v_n}} ) \geqslant {\delta _q}$ (18)

成立, 则称该路段满足δq-质量确保模型.

可见, 在用户分布相对均匀的条件下, 用户所在路段长度在同时满足εp-隐私确保模型和δq-质量确保模型时, 用户即可用该路段正方向顶点发起查询, 既能实现较好的查询质量, 又能保证查询隐私安全, 实现位置隐私保护和服务质量间的平衡.

5 实验

基于上一节性能分析的结果, 本节主要讨论在用户数量、兴趣点查询数量、位置变换频率等因素影响下, 用户基于本方法发起LBS查询时的准确性、安全性及查询效率等指标的变化情况.实验在模拟数据集上进行, 通过影响因素变化和同类方法比较的方式, 对本方法的性能进行了比对验证.

5.1 实验环境配置

本实验提出的所有算法均采用JAVA语言在Windonws 7操作系统中移动终端模拟器上实现, 运行硬件环境为3.2GHz Intel Core i5四核处理器, 内存大小为8GB.路网地图采用美国国家地理勘探局(USGS)[34]提供的佐治亚州亚特兰大市路网图, 其中, 被选作固定锚点的路网顶点约为顶点总数的70%.由于该路网数据具有简洁、易处理的特点, 本文默认采用该地理数据进行绝大多数实验.同时, 为了进一步对比说明本方法在实际路网的效率, 本文增加两个同样较为常用的真实路网数据集California Map(CA)和New York Map(NY)[35]来对比测试本方法.该实验数据集仅在后文测试平均处理时间(average processing time, 简称APT)的图 15图 16中使用.3种类型路网数据集见表 3.

Fig. 15 Comparison of APT (K varies) 图 15 平均处理时间比较(K变化)

Fig. 16 Comparison of APT (K varies) 图 16 平均处理时间比较(K变化)

Table 3 Datasets of road networks 表 3 路网数据集

另外, 本文采用Thomas Brinkhoff路网数据生成器[36]生成用户位置及连续查询中的轨迹数据, 用户随机均匀分布在每条路网上, 起点及终点随机选择.实验的网络通信带宽为3Mbps, 路网兴趣点分布索引大小为25.6KB.参数配置情况见表 4.

Table 4 Parameters configuration 表 4 参数配置

5.2 准确率及带宽消耗

图 4描述的查询处理过程, 查询准确率是指发起总数为n次的查询请求所获得的结果中, 准确的查询结果数量与查询总数的比率, 如图 6图 7所示.

Fig. 6 Query accuracy (U varies) 图 6 查询准确率(U变化)

Fig. 7 Query accuracy (U, K vary) 图 7 查询准确率(U, K变化)

图 6中, 当用户数量变化时, 由于处理负担增加, 3种方法的准确率均表现出了下降的趋势, 本方法的查询准确率总体保持不低于90%.这是由于本方法考虑了路网兴趣点的分布特点建立了兴趣点索引, 因此可以较好地保证查询准确率.而后文图 9显示, 本方法能够保持一个较为合理的带宽消耗.

Fig. 9 Use rate of bandwidth (K varies) 图 9 带宽利用率(K变化)

在Cloaking Region[3]方法中, 由于查询在欧氏空间进行, 在障碍物阻挡的实际情况下, 导致查询准确率相对较低.该方法采用匿名框的查询方法, 使得查询处理过程中存在较近兴趣点没有被查出的情况, 因此查询准确率在用户数量增大的过程中下降明显.SpaceTwist[13]方法在查询过程中存在查询不均衡问题[22], 因此查询准确率较低.该方法不仅存在上述欧氏空间查询导致的不准确问题, 而且由于锚点位置是随机选取的, 因此在用户数量增长的过程中, LBS服务器面临查询请求不断增大的处理瓶颈问题, 导致准确率显著下降.

K值变化时, 也会导致查询准确率变化.如图 7所示, 本文提出的方法在K增大时, 由于LBS服务器端需要计算更多的兴趣点结果, 导致服务延迟, 因此查询准确率会相应地降低.

同时, 在路网内兴趣点分布均匀的情况下, 平均路段长度S的变化也会影响查询质量.当相邻路网顶点距离较小时, 我们会采取剪枝等方法去掉一些出边或入边较少的顶点, 使全网平均路段长度变长, 以避免过于发起查询带来位置隐私遭到推断锁定的问题, 但这会带来查询准确率的下降.如图 8所示, 当平均路段长度增加时, 由于一些顶点被裁剪掉, 因此由该顶点直接连通的兴趣点也会相应地被丢弃, 造成查询过程中兴趣点丢失率的上升, 进而带来准确率下降的问题.对于路段过短带来的不安全因素, 我们将在下一节中讨论.

Fig. 8 Loss rate of POIs (U, S vary) 图 8 兴趣点丢失率(U, S变化)

另一方面, 用户发起K近邻兴趣点查询时, 需要请求某一锚点上全部m个类别的POI数据(这里假定每个锚点均有m类POI数据), 因此理论上用户需要从一个锚点处获得K×m个POI数据.如果是首次查询用户, 需要从路段两端锚点vm, vn获取总数为2×K×m个POI数据, 因此会带来较大的带宽资源消耗.一般地, 如果用K0来表示某个初始状态下查询兴趣点个数, RBW表示带宽利用率, 则用户查询兴趣点数量K与带宽利用率RBW之间的关系如公式(19)所示, 二者的变化关系如图 9中三角形标识A线所示.可见, 带宽利用率理论上会随用户兴趣点查询数量的增长而快速增长.

$K = \frac{{{K_0}}}{{1 - {R_{BW}}}}$ (19)

然而, 本文不采用将全部m个兴趣点查询结果一起发送回来的方式来达到隐藏真实查询类型的目标, 而是通过算法2第9行、第10行的描述将该顶点下各类型兴趣点进行累乘计算, 得出1个乘积结果后返回给用户.因此, 在用户查询K值不断增大的过程中, 带宽消耗呈现线性增长, 如图 9中圆形标识B线所示.而K增大却会给服务端带来计算开销的迅速增大, 不会带来公式(19)中难以承受的带宽迅速增加, 而通过提升固定锚点使用率, 增加服务器端兴趣点缓存时长, 可以帮助降低服务端计算开销, 从而提升整体查询效率.我们将在第5.4节中讨论该问题.

5.3 安全性

假设通常情况下, 当每个路网顶点vn的平均入边数量为4, 且一次连续查询经过的路网顶点数不超过5个时, 以某顶点vn发起的查询请求的用户位于该顶点的任意入边上的概率均相等, 因此, 由其查询请求Q中的元素通过追踪关联, 推断出用户所在具体入边的自信息量为-log2(1/4)=2bit, 由第4.2节不可追踪性分析可知, 在连续查询中, 每次锚点查询相互独立, 一次连续查询结束后自信息量至少为5×2bit=10bit.以该信息量作为隐私泄露界限, 如果用户在一次连续查询过程中的自信息量低于10bit, 则可看作存在隐私泄漏可能.本文比对包括本文提出方法在内的3种方法中大于10bit的连续查询请求占全部查询请求的比率(QRIE > 10bit).如图 10所示.

Fig. 10 Query rate satisfies QRIE > 10bit (U varies) 图 10 满足QRIE > 10bit查询比率(U变化)

如第4.4节分析所述, 通过剪枝的方法提高平均路段长度可以带来查询效率的降低, 但是随着平均路段长度S的增加, 用户的匿名集变大, 泛化度增高.如图 11所示, 随着用US的增长, 存在隐私泄漏风险的查询比率逐步降低, U的增长起到了增大匿名集的作用, S的增长起到了扩大泛化用户位置的作用, 二者共同作用提高了隐私保护度.可见, 当平均路段长度较小, 即路段中存在较多短路段时, 很多用户在进入较短路段后必须立即用前方顶点发起查询, 因此很容易遭受查询时序推断攻击, 极端情况下, 某个时间间隔内只有1个用户进入该路段, 就被迅速锁定, 造成位置隐私泄漏.但本文采用了同态加密处理查询内容, 不会造成查询内容等隐私的泄漏.

Fig. 11 Query rate satisfies QRIE > 10bit (U, S vary) 图 11 满足QRIE > 10bit查询比率(U, S变化)

本文提出的方法在初始阶段QRIE > 10bit的比率略低于Cloaking Region, 这是由于该方法不仅对查询内容进行了秘密检索处理, 还对位置数据进行了相同处理, 因此用户被追踪关联的概率较低, 但相应的处理时延也会增加(详见后文第5.4节实验).然而本方法随着用户数量的增加, 比率逐渐升高.这是因为随着更多用户的加入, 本方法锚点的共用程度更高, 匿名性更好, 因此被追踪的可能性降低, 使得安全查询的比率升高.而SpaceTwist方法由于仅对用户的位置进行保护, 存在查询内容关联推断风险, 安全的查询比例相对较低.

5.4 查询效率

本文主要从平均处理时间和平均数据包量两个指标来评测本方法的查询效率.通过第4.3节性能分析可知, 影响两个指标的因素较多.如图 12~图 19所示, 本节主要围绕这两个指标进行实验分析.

Fig. 12 APT (U, ranchor vary) 图 12 平均处理时间(U, ranchor变化)

Fig. 13 图 13 平均处理时间(U, Tk变化)

Fig. 14 Comparison of APT (U varies) 图 14 平均处理时间比较(U变化)

Fig. 17 Comparison of AP (U varies) 图 17 平均数据包量比较(U变化)

Fig. 18 Comparison of average packets (K varies) 图 18 平均数据包量比较(K变化)

Fig. 19 Comparison of average packets (f varies) 图 19 平均数据包量比较(f变化)

LBS服务端的处理速度直接影响用户的服务质量。在实际的查询中, LBS服务器需要面对大量用户的服务请求, 当用户总量增加时, 每个LBS服务器管辖区域内查询用户数量增加, 这使得平均处理时间增加.如第4.3节分析所述,当有更多用户使用固定锚点查询时, 查询效率显著提高.在图 12中, 当固定锚点查询占比ranchor不断增加时, LBS服务器的处理时间明显表现出降低趋势.当占比范围在80%~100%时, 随着用户数量的增加, 甚至出现了处理时间下降的情况.这是由于当固定锚点数量不多时, 用户每次查询都能以较高的概率在LBS数据库缓存找到查询结果, 而不必耗时地进行数据查询, 使得LBS服务器的处理时间显著降低.

兴趣点查询结果在LBS服务端缓存中保留时间Tk的长短也是影响平均处理时间的因素之一.如图 13所示, 当保留时间增长时, 可以有更多的兴趣点查询结果被保留在缓存中, 以此提高新查询在缓存中的命中率.当命中率升高时, 会减少数据库查询次数, 因此有如图 14所示的平均处理时间的减少.另外, 我们还分别选取了两个路网环境下保护用户隐私的查询方法PRI-KNN[26]和CR-KNN[27]来对比分析本方法在处理时间方法的优势.类似地, 本方法也分别在上述两种方法采用的两类真实路网数据集CA和NY上进行.如图 15所示, 由于PIR-KNN方法的查询方式决定用户在查询前首先要确定其所在的Voronoi单元格, 而本方法采用的路网和兴趣点组织结构无需此过程, 且查询过程中无需借助协处理器, 因此, 虽然同样在路网环境下都采用了PIR的查询处理方法, 但本方法所需处理时间稍短.当K增加时, 由于CR-KNN方法需要在更广范围内持续搜寻大量兴趣点信息, 因此其平均处理时间明显高于两外两种方法.同样, 如图 16所示, 在NY数据集上, 由于路段和顶点数量分布更为密集, 因此处理时间相对于CA数据集更长, 但总体趋势与图 15类似, 本方法依然能够保持较好的处理效率.

同时, 与其他经典方法相对比, 如图 17图 18所示.在图 17中, 由于Cloaking Region需要搜索邻近多个网格内的兴趣点信息, 并且该方法采用了较为复杂的秘密信息检索方法, 对位置和查询内容均做处理, 因此平均处理时间随用户数量增加而显著增长.本方法虽然也采用了秘密信息检索处理方式, 但由于兴趣点的组织形式影响, 使得本方法在查询兴趣点时无需额外搜索任何邻近区域的兴趣点, 极大地减小了LBS服务端的处理负担, 因此本方法的处理时间增长并不明显; 并且由于使用固定锚点查询提高了LBS数据库缓存命中率, 使得平均处理时间短暂出现了下降.SpaceTwist方法由于不采用秘密检索方法, 只利用一个随机锚点发起查询, 由于随机锚点重复查询率较低, 因此处理时间随用户数量的增加而增加, 但相对于秘密检索方法的处理时间要少很多.因此, 本方法能够以接近随机锚点的处理时间实现兴趣点信息的秘密检索.

对于平均数据包量, 如图 17所示, 本方法的平均数据包量随用户数量的增加保持相对稳定; 而Cloaking Region方法由于需要检索邻近网格内的兴趣点来确保精确的查询结果, 并将大量候选结果全部发送给用户, 因此会带来通信数据包量的显著增加.SpaceTwist同样是利用锚点查询, 虽然会返回一定量的候选结果, 但在查询过程中由于不采用私有信息检索方式, 因此隐私平均数据包量略低于本文方法.该方法在LBS服务器处理不出现明显瓶颈的条件下, 随用户数量的增加, 平均数据包数量表现出缓慢增长.

当兴趣点查询数量K增加时, 3种方法的平均数据包量均随之增加, 如图 18所示.由于本文方法采用了基于路网顶点的兴趣点分布信息组织方法, 使得在K增加时, 数据包量的增加并不明显; 然而, Cloaking Region方法在K增大时却需要搜索更多的邻近区域, 并将该候选结果发送给用户, 因此平均数据包量增加明显; SpaceTwist方法的平均数据包量与本方法接近.

在连续查询中, 用户位置更新频率f也是影响数据包量的重要因素之一, 如图 19所示.本方法受位置变换频率的影响较小, 平均数据包量变化不大.这是因为本文采用锚点查询, 仅需根据当前路段正方向顶点发起一次查询所获得的结果即可确保用户在该路段时无需再次发起查询, 因此极大地降低了连续查询中位置更新时的查询次数.而Cloaking Region方法由于需要查询邻近网格的兴趣点情况, 因此在位置更新频率从5s/次升高到30s/次时, 相应的数据包量会逐渐减少.这是由于相应的查询次数降低的原因.SpaceTwist方法数据包量的消涨情况与Cloaking Region方法接近.

6 结论及展望

本文提出了一种路网环境下能够同时保护用户位置隐私和查询内容隐私的K近邻兴趣点查询方法.该方法以路网顶点为基础组织路网兴趣点分布信息.这种组织方法便于用户以路网顶点为锚点发起兴趣点查询保护用户位置隐私; 同时, 该组织方法便于用户秘密检索目标兴趣点信息.进而, 本文基于Palillier密码系统给出了秘密检索的过程.最后, 我们对所提出方法的准确性、安全性及查询效率进行了分析, 并对其进行了有针对性的实验.性能分析和实验结果表明, 本方法具有良好的安全性能和查询效率.然而, 本方法也存在一些不足, 如对用户速度、兴趣点查询数量、路段剪枝方法、交通拥塞情况等其他时空影响因素考虑不够全面.我们将在今后的工作中针对此类问题继续展开研究.

参考文献
[1]
Zhang XJ, Gui XL, Wu ZD. Privacy preservation for location-based services:A survey. Ruan Jian Xue Bao/Journal of Software, 2015, 26(9): 2373-2395(in Chinese with English abstract). http://www.jos.org.cn/1000-9825/4857.htm [doi:10.13328/j.cnki.jos.004857]
[2]
Zhou AY, Yang B, Jin CQ, Ma Q. Location-based services:Architecture and progress. Chinese Journal of Computers, 2011, 34(7): 1155-1171(in Chinese with English abstract). http://d.old.wanfangdata.com.cn/Periodical/jsjxb201107001
[3]
Yi X, Paulet R, Bertino E, et al. Practical approximate k nearest neighbor queries with location and query privacy. IEEE Trans. on Knowledge and Data Engineering, 2016, 28(6): 1546-1559. [doi:10.1109/TKDE.2016.2520473]
[4]
Ni W, Gu M, Chen X. Location privacy-preserving k nearest neighbor query under user's preference. Knowledge-Based Systems, 2016, 103: 19-27. [doi:10.1016/j.knosys.2016.03.016]
[5]
Kim HI, Kim HJ, Chang JW. A kNN query processing algorithm using a tree index structure on the encrypted database. In: Proc. of the 2016 Int'l Conf. on Big Data and Smart Computing (BigComp). IEEE, 2016. 93-100.
[6]
Wernke M, Skvortsov P, Dürr F, et al. A classification of location privacy attacks and approaches. Personal and Ubiquitous Computing, 2014, 18(1): 163-175.
[7]
Wang YH, Zhang HL, Yu XZ. Research on location privacy in mobile Internet. Journal on Communications, 2015, 36(9): 230-243(in Chinese with English abstract). http://d.old.wanfangdata.com.cn/Periodical/txxb201509025
[8]
Ghinita G. Privacy for location-based services. Synthesis Lectures on Information Security, Privacy, & Trust, 2013, 4(1): 1-85. http://d.old.wanfangdata.com.cn/OAPaper/oai_doaj-articles_6bca2e6d779e14c7f95d00e771a9b162
[9]
Pan X, Xu J, Meng X. Protecting location privacy against location-dependent attacks in mobile services. IEEE Trans. on Knowledge and Data Engineering, 2012, 24(8): 1506-1519. [doi:10.1109/TKDE.2011.105]
[10]
Gao S, Ma JF, Yao QS, Sun C. Towards cooperation location privacy-preserving group nearest neighbor queries in LBS. Journal on Communications, 2015, 36(3): 146-154(in Chinese with English abstract). http://d.old.wanfangdata.com.cn/Periodical/txxb201503017
[11]
Niu B, Zhang Z, Li X, et al. Privacy-area aware dummy generation algorithms for location-based services. In: Proc. of the 2014 IEEE Int'l Conf. on Communications (ICC). IEEE, 2014. 957-962.
[12]
Niu B, Zhu X, Chi H, et al. 3PLUS: Privacy-preserving pseudo-location updating system in location-based services. In: Proc. of the 2013 IEEE Wireless Communications and Networking Conf. (WCNC). IEEE, 2013. 4564-4569.
[13]
Yiu ML, Jensen CS, Huang X, et al. Spacetwist: Managing the trade-offs among location privacy, query performance, and query accuracy in mobile services. In: Proc. of the IEEE 2008 24th Int'l Conf. on Data Engineering (ICDE 2008). IEEE, 2008. 366-375.
[14]
Yiu ML, Jensen CS, Møller J, et al. Design and analysis of a ranking approach to private location-based services. ACM Trans. on Database Systems (TODS), 2011, 36(2). http://www.wanfangdata.com.cn/details/detail.do?_type=perio&id=10.1177/088636879102300303
[15]
Gong Z, Sun GZ, Xie X. Protecting privacy in location-based services using k-anonymity without cloaked region. In: Proc. of the 2010 11th Int'l Conf. on Mobile Data Management (MDM). IEEE, 2010. 366-371.
[16]
Huang Y, Huo Z, Meng XF. CoPrivacy:A collaborative location privacy-preserving method without cloaking region. Chinese Journal of Computers, 2011, 34(10): 1976-1985(in Chinese with English abstract). http://d.old.wanfangdata.com.cn/Periodical/jsjxb201110023
[17]
Papadopoulos S, Bakiras S, Papadias D. Nearest neighbor search with strong location privacy. Proc. of the VLDB Endowment, 2010, 3(1-2): 619-629. [doi:10.14778/1920841.1920920]
[18]
Mouratidis K, Yiu ML. Shortest path computation with no information leakage. Proc. of the VLDB Endowment, 2012, 5(8): 692-703. [doi:10.14778/2212351.2212352]
[19]
Khoshgozaran A, Shahabi C, Shirani-Mehr H. Location privacy:Going beyond K-anonymity, cloaking and anonymizers. Knowledge and Information Systems, 2011, 26(3): 435-465. [doi:10.1007/s10115-010-0286-z]
[20]
Sakai K, Sun MT, Ku WS, et al. An analysis of onion-based anonymous routing for delay tolerant networks. In: Proc. of the 36th IEEE Int'l Conf. on Distributed Computing Systems (ICDCS 2016). 2016. 609-618.
[21]
Beresford AR, Stajano F. Mix zones: User privacy in location-aware services. In: Proc. of the PerCom Workshops. 2004. 127-131.
[23]
Ma CG, Zhou CL, Yang ST. Location privacy-preserving method in LBS based on Voronoi division. Journal on Communications, 2015, 36(5): 1-12(in Chinese with English abstract). http://www.cnki.com.cn/Article/CJFDTotal-TXXB201505001.htm
[24]
Zhou CL, Ma CG, Yang ST. Location privacy-preserving method for LBS Continuous KNN query in road networks. Journal of Computer Research and Development, 2015, 52(11): 2628-2644(in Chinese with English abstract). [doi:10.7544/issn1000-1239.2015.20140532]
[25]
Zheng B, Zheng K, Xiao X, et al. Keyword-aware continuous kNN query on road networks. In: Proc. of the 2016 IEEE 32nd Int'l Conf. on Data Engineering (ICDE). IEEE, 2016. 871-882.
[26]
Wang L, Ma R, Meng X. Evaluating k nearest neighbor query on road networks with no information leakage. In: Proc. of the Int'l Conf. on Web Information Systems Engineering. Springer Int'l Publishing, 2015. 508-521.
[27]
Um JH, Kim YK, Lee HJ, et al. k-nearest neighbor query processing algorithm for cloaking regions towards user privacy protection in location-based services. Journal of Systems Architecture, 2012, 58(9): 354-371. [doi:10.1016/j.sysarc.2012.05.003]
[28]
Yang ST, Ma CG, Zhou CL. LBS-oriented location privacy protection model and scheme. Journal on Communications, 2014, 35(8): 116-124(in Chinese with English abstract). [doi:10.3969/j.issn.1000-436x.2014.08.015]
[29]
Zhou CL, Tian H, Ma CG, et al. Research on LBS privacy preservation based on pseudorandom permutation in road network. Journal on Communications, 2017, 38(6): 19-29(in Chinese with English abstract). http://d.old.wanfangdata.com.cn/Periodical/txxb201706003
[30]
Paillier P. Public-key cryptosystems based on composite degree residuosity classes. In: Proc. of the Int'l Conf. on the Theory and Applications of Cryptographic Techniques. Berlin, Heidelberg: Springer-Verlag, 1999. 223-238.
[31]
Feng J, Zhang LX, Lu JM, Wang C. Review on moving objects query techniques in road network environment. Ruan Jian Xue Bao/Journal of Software, 2017, 28(6): 1606-1628(in Chinese with English abstract). http://www.jos.org.cn/1000-9825/5254.htm [doi:10.13328/j.cnki.jos.005254]
[32]
Goldwasser S, Micali S. Probabilistic encryption. Journal of Computer and System Sciences, 1984, 28(2): 270-299. http://d.old.wanfangdata.com.cn/Periodical/bjhkhtdxxb200801011
[33]
Pan X, Meng X, Xu J. Distortion-based anonymity for continuous queries in location-based mobile services. In: Proc. of the 17th ACM SIGSPATIAL Int'l Conf. on Advances in Geographic Information Systems. ACM Press, 2009. 256-265.
[34]
USGS. Maps, data publications. 2017. http://www.usgs.gov
[35]
Openstreetmap. Maps, data publications. 2017. http://www.openstreetmap.org
[36]
Brinkhoff T. Network-based generator of moving objects. 2005. http://iapg.jade-hs.de/personen/brinkhoff
[1]
张学军, 桂小林, 伍忠东. 位置服务隐私保护研究综述. 软件学报, 2015, 26(9): 2373-2395. http://www.jos.org.cn/1000-9825/4857.htm [doi:10.13328/j.cnki.jos.004857]
[2]
周傲英, 杨彬, 金澈清, 马强. 基于位置的服务:架构与进展. 计算机学报, 2011, 34(7): 1155-1171. http://d.old.wanfangdata.com.cn/Periodical/jsjxb201107001
[7]
王宇航, 张宏莉, 余翔湛. 移动互联网中的位置隐私保护研究. 通信学报, 2015, 36(9): 230-243. http://d.old.wanfangdata.com.cn/Periodical/txxb201509025
[10]
高胜, 马建峰, 姚青松, 孙聪. LBS中面向协同位置隐私保护的群组最近邻查询. 通信学报, 2015, 36(3): 146-154. http://d.old.wanfangdata.com.cn/Periodical/txxb201503017
[16]
黄毅, 霍峥, 孟小峰. CoPrivacy:一种用户协作无匿名区域的位置隐私保护方法. 计算机学报, 2011, 34(10): 1976-1985. http://d.old.wanfangdata.com.cn/Periodical/jsjxb201110023
[22]
周长利, 马春光, 杨松涛. 基于敏感位置多样性的LBS位置隐私保护方法研究. 通信学报, 2015, 36(4): 125-136. http://d.old.wanfangdata.com.cn/Periodical/txxb201504014
[23]
马春光, 周长利, 杨松涛, 赵蕴龙.基于Voronoi图预划分的LBS位置隐私保护方法.通信学报, 2015, 36(5): 1-12. http://www.cnki.com.cn/Article/CJFDTotal-TXXB201505001.htm
[24]
周长利, 马春光, 杨松涛. 路网环境下保护LBS位置隐私的连续KNN查询方法. 计算机研究与发展, 2015, 52(11): 2628-2644. [doi:10.7544/issn1000-1239.2015.20140532]
[28]
杨松涛, 马春光, 周长利. 面向LBS的隐私保护模型及方案. 通信学报, 2014, 35(8): 116-124. [doi:10.3969/j.issn.1000-436x.2014.08.015]
[29]
周长利, 田晖, 马春光, 等. 路网环境下基于伪随机置换的LBS隐私保护方法研究. 通信学报, 2017, 38(6): 19-29. http://d.old.wanfangdata.com.cn/Periodical/txxb201706003
[31]
冯钧, 张立霞, 陆佳民, 王冲. 路网环境下的移动对象查询技术研究综述. 软件学报, 2017, 28(6): 1606-1628. http://www.jos.org.cn/1000-9825/5254.htm [doi:10.13328/j.cnki.jos.005254]
保护位置隐私和查询内容隐私的路网K近邻查询方法
周长利 , 陈永红 , 田晖 , 蔡绍滨