一种物联网场景下基于位置服务的隐私保护方法
技术领域
本发明涉及一种物联网环境下的位置信息的隐私保护,并且提出一种相对于公共数据更偏向于保护个人隐私数据的方法,抵抗非法获取用户位置信息所造成的隐私侵犯,属于物联网、SMC(Secure Multi-party Computation,安全多方计算)的交叉领域。
背景技术
物联网概念起源于比尔盖茨1995年《未来之路》一书,在《未来之路》中,比尔盖茨已经提及物联网概念,只是当时受限于无线网络、硬件及传感设备的发展,并未引起重视。随着技术不断进步,国际电信联盟于2005年正式提出物联网概念,而今年奥巴马就职演讲后对IBM提出的“智慧地球”积极响应后,物联网再次引起广泛关注。而我国官方近期对传感网(物联网的另一称谓)的多次提议表示我国物联网的发展也正式提上议事日程,同时也表明我国物联网的发展将加快。
随着物联网技术的普及,诸如移动便携电话、GPS、RFID等位置探测设备的快速发展,使移动用户在任意时间、地点查询服务成为可能,也催生出很多基于位置的服务。例如,查询离自身距离最近的餐厅、加油站、医院、超市等,了解就近路况和交通报告,查询就近的商家活动咨询,这些都是基于位置信息的服务。这类型的服务最关键的就是需要用户当时的位置信息,用户需提供当前自己的位置信息给服务器,服务器根据用户的服务种类和查询需求,返回用户所需要查询的服务数据。这种类型的服务,与用户当前位置的关联极高,能使用户得到与自己位置相关联的信息。这种基于位置的服务虽然给用户带来了极大的便利,但是服务系统本身并没有防泄漏防隐私挖掘的功能,所以也给用户带来了很大的隐私安全隐患,用户的位置信息被暴露,有可能受到非法的跟踪或推销。
目前就这类问题提出的保护隐私的方法主要有两类:一类是保护用户的ID信息,这样即使是服务器也不知道用户的真实ID;第二类,是保护用户的位置数据,即并不是将用户的准确信息提供给服务器,而是提供一些模糊的位置信息或者是某一个区域的位置信息,从而无法直接跟踪到用户。
但是这两种方法都各自存在问题。第一类方法,虽然保护了用户的ID,因此也无法依据用户身份不同提供个性化的服务,并且匿名ID也对身份验证带来了困难。比如某些服务是只对实名制注册顾客开放或者是付费性质的服务,核对用户身份和收取费用依据都需要真实的用户ID,匿名使用户可能无法享受这些基于位置的服务。并且,如今的数据挖掘技术也已经成熟,从用户的准确位置信息有可能推算出用户的可能的身份信息。而对于第二类方法,由于位置信息不精确,相应所获得的返回服务信息就未必是精确的,有的需要用户对于返回信息加以筛选,有的则可能返回对于用户来说彻底不相干或者没有用的内容。比如,移动用户在使用这类服务的时候,需要不断地用便携的位置探测设备获悉自己的位置信息,不断传送给服务器,从而得到服务器更为精确的返回信息。所提供的位置信息越精确,得到的返回信息也越准确。
本发明针对上述两类方法所存在的问题,基于安全多方计算技术,提出了一种物联网场景下的位置信息隐私保护的方法。
发明内容
技术问题:本发明的目的主要是针对物联网中的位置隐私保护问题,提出一种基于物联网应用场景的基于位置服务的隐私保护方法。根据基于位置服务的特点和保护隐私的级别,设计了两种隐私保护方案:完美安全的绝对隐私保护(保护用户的位置隐私信息和查询结果),和有轻微泄密的查询隐私保护(只保护用户的位置隐私信息,不保护查询结果,效率更高)。最终目的是根据实际使用需要,保证用户在使用基于位置服务时既享受到精确和个性化的服务,避免位置隐私泄露的隐患。
技术方案:首先给出几个解释:
绝对隐私保护方案:在此方案中,服务器不知道用户查询的内容和结果,并且不知道回复给用户的内容,只是进行了一次加密的查询,从始至终只有用户知道自己的查询内容和查询结果,并且用户只得到需要查询的信息,对服务器的其他不符合查询条件的信息都无法得知,中间结果采用安全共享模式,对服务器和用户双方都进行了隐私保护,零信息泄露,是为完美安全的绝对隐私保护方案。
查询隐私保护方案:在此方案中,由于考虑到基于位置服务查询的特点,要保护的对象主要是提出基于位置服务的用户的位置信息,而查询结果往往是公共信息。例如用户想查询离自己最近的加油站,那么最需要保护的隐私信息是用户当前的位置,而不是所查询到的加油站的位置。在用户自身位置信息仍然是严格保护的前提下,虽然对于用户来说,有微量信息泄露(服务器知道查询结果),但是提高了查询效率和速度,并且对于普通用户来说,这样的轻微泄密是可以被接受的。
同态加密运算:明文空间M,对于任意的m1,m2属于空间M,c1,c2属于密文空间C,由c1、c2的进行运算直接得到明文m1、m2的密文运算结果,性质如下:Paillier加密算法具有加法同态的性质:本发明中将会用到这个性质。
不经意传输协议:密码学的一个基本协议,使得服务的接受方以不经意的方式得到服务发送方输入的某些消息,这样就可以保证接收者的隐私不被发送者知道。
方法流程
本方法,根据基于位置服务的特点和保护隐私的级别,设计了两种隐私保护方案,分别是针对安全级别较高的绝对隐私查询方案,针对安全级别较低的查询隐私方案。
根据基于位置服务的特点和保护隐私的级别,设计两种隐私保护方案,分别是针对安全级别较高的绝对隐私查询方案,针对安全级别较低的查询隐私方案;所谓安全级别高的应用场景解释为,服务器即被查询方拥有一个公有或私有的数据库C包含点客户端即查询方拥有一个私有点查询方希望在服务器的数据中查询到距离点最近的点并且出于隐私保护的考虑,服务器既不知道客户端的输入即私有点也不知道查询结果中间计算结果采用安全共享模式,服务器的数据也得到隐私保护,安全级别低的应用场景可以抽象为:服务器即被查询方拥有一个数据可以公开的数据库C包含点客户端即查询方拥有一个私有点查询方希望在服务器的数据中查询到距离点最近的点因为数据库C的信息是公开的,需要保护的是点的信息,不是数据库C,出于隐私保护和现实应用的考虑,服务器不知道客户端的输入即私有点但知道查询结果
针对安全级别高的绝对隐私查询方案和针对安全级别较低的查询隐私方案的具体方案流程如下:
一基于物联网位置服务的绝对隐私保护方案
步骤1)客户端即查询方向服务器即被查询方提出查询请求;
步骤2)服务器收到请求后,对于点产生6个随机数,
r10,r11,r12,m1,k1,u1.其中,r10和k1非零,并对点进行如下计算:
并利用随机数生成和p1
并将p1发送给客户端;
步骤3)客户端收到来自服务器的数据后,首先生成一个随机数r1,针对利用r1计算出两个向量:
并结合所接收到的数据计算:
s13=r1x+2r1y
将所得结果{s11,s12,s13}发送给服务器;
步骤4)服务器根据接收到的数据序列,计算:
t1=-(s11+k1s12-m1k1s13)/r10
并发送回客户端;
步骤5)客户端收到t1计算v1=2t1/r1+x2+y2,其中
服务器对于每个点均与客户端重复上述步骤2)~步骤5),即服务器获得序列{u1,u2,...,un},客户端获得序列{v1,v2,...,vn},对于其中i∈[1,n],满足
步骤6)服务器生成一对同态加密的公钥-私钥对,相应的加密和解密函数分别记为E(.)和D(.),公钥记为pk,私钥记为sk。使用公钥对私有数据-ui进行加密,将序列{Epk(-ui)}(i=1,2,..,n)连同公钥pk一起发送给客户端;
步骤7)客户端生成随机数r’,客户端利用接收到的公钥E依次加密私有数据-vi+r’,得到Epk(vi+r’),其中i=1,…n;由i=1,…n依次计算 客户端产生一个排列π,并对序列{Epk(di+r’)}进行排列,得到π({Epk(di+r’)}),其中i=1,…n,并发送给服务器端;
步骤8)服务器利用私钥sk对接收到的数据π({Epk(di+r’)})进行解密,计算:
Dsk(π({Epk(di+r’)}))=π({(di+r’)}),其中i=1,…n;对这组数据,求最小值,获取最小值数据的下标j’,这个j’是经过客户端排序后的坐标值,将这个坐标值发送给客户端;
步骤9)客户端根据排列π找出j’对应的排序前的坐标j,与服务器端一起运行不经意协议,得到服务器端中点Pj的坐标并可知相对距离dj;
二基于物联网位置服务的查询隐私保护方案
步骤1)客户端即查询方向服务器即被查询方提出查询请求;
步骤2)服务器收到请求后,对于点产生5个随机数,r10,r11,r12,m1,k1.其中,r10和k1非零,并对点进行如下计算:
并利用随机数生成和p1
并将p1发送给客户端;
步骤3)客户端收到来自服务器的数据后,首先生成一个随机数r1,针对利用r1计算出两个向量:
并结合所接收到的数据计算:
s13=r1x+2r1y
将所得结果{s11,s12,s13}发送给服务器;
步骤4)服务器根据接收到的数据序列,计算:
t1=-(s11+k1s12-m1k1s13)/r10
并发送回客户端;
步骤5)客户端收到t1计算v1=2t1/r1+x2+y2,其中
服务器对于每个点均与客户端重复上述步骤2)~步骤5),即客户端获得序列{v1,v2,...,vn},对于其中i∈[1,n],满足
步骤6)由于客户端对序列i=1,2,……n求出其中最小值:并生成一对公钥-私钥对,相应的加密和解密函数分别记为E(.)和D(.),公钥记为pk,私钥记为sk;将公钥pk和最小值坐标j发送给服务器;
步骤7)服务器收到公钥pk和最小值坐标j后,将点坐标用公钥pk加密后发送给客户端,客户端对接收到的数据利用私钥sk进行解密,并最终得到距离最近的点
有益效果:本发明提出了两个基于物联网位置服务的隐私查询方法,使用户在享受基于位置信息的服务时,不会暴露自己的位置隐私信息,既不会在传输过程中被俘获,服务器端也不知道用户的查询内容。与以往的位置隐私保护的方法不同的是,本发明在保证了用户位置信息的隐私安全的前提下,使用户不用隐匿真实ID,既可以享受到基于用户ID的个性化服务,也可以得到准确的基于位置的查询服务。本发明在执行过程中不涉及第三方,既可以减少第三方带来的安全隐患(第三方是否可靠),也减少了计算过程中的通信量,提高整个方案的执行效率。
除了地理信息数据库,此方法同时也适用于基于距离计算的其他隐私查询中,例如空间数据库、时间序列数据库等领域。
两种方案分别具有如下优点:
(1)基于物联网位置服务的绝对隐私查询方案,通过对安全添加随机数、对点积性质的应用、使用同态加密、不经意传输和安全共享模式等技术,使得服务器(被查询方)既无法得知客户端(查询方)的查询输入,也不知道查询结果,仅仅是进行了一次查询,而客户端也只是知道查询结果,除此之外的其他信息并不知晓,有效保护了服务器的隐私数据。在整个交互过程中,对私有数据进行保护,使得第三方无法从数据内容上推算出服务器与客户端双方的隐私数据。
(2)基于物联网位置服务的查询隐私查询方案,通过应用点积性质、安全添加随机数等技术,并考虑到现实应用中,服务器(被查询方)数据库中数据公开,并对安全级别要求不高的的情况下,着重保证客户端(查询方)的隐私数据安全,即服务器无法获知客户端的查询输入,并保证整个查询过程中,私有数据受到保护,服务器将查询结果加密后发送给客户端,第三方无法推算出私有数据的信息也无法知道查询结果,适当降低对服务器数据的保护程度,减少加密解密次数,提高查询效率。
附图说明
图1是绝对隐私保护方案算法示意图,显示了本发明在安全级别较高的场景中的算法过程。
图2是查询隐私保护方案算法示意图,显示了本发明在安全级别较低的场景中的算法过程。
具体实施方式
本发明包括针对不同安全应用场景提出的两种基于物联网位置服务的隐私保护查询方案,分别是针对安全级别较高的绝对隐私查询方案,针对安全级别较低的查询隐私方案。下面将通过对用户在物联网环境下两种安全应用场景的活动情况,进一步说明这两种方案。应当明确,以下内容仅仅用来描述本发明而不作为对本发明的限制。
应用场景一(安全级别高):用户A驾车到陌生城市的机构B执行紧急保密任务,B机构有很多分支机构,任务紧急,用户A需要查询距离当前位置最近的分支机构,由于是执行保密任务,不希望被跟踪,因此自身当前位置和查询结果需要保密,即使是B机构也不知道A会去哪个分支机构,同时,机构B的数据库属于保密数据库,除了最近分支机构信息之外,并不希望透露给A其他信息。
步骤1)用户A利用手机定位系统获得自身位置的经纬度信息通过手机(或其他移动智能终端)查询软件客户端向B机构查询服务器发出查询请求。
步骤2)B机构的查询服务器(后简称查询服务器)拥有保密数据库C,其中包括分支机构地址以经纬度表示,B机构同意了用户A的查询请求,对于私有数据库C中的第一个地址产生6个随机数,r10,r11,r12,m1,k1,u1.其中,r10和k1非零。并对进行如下计算:
并利用随机数生成和p1
并将p1发送给用户A查询客户端(后简称查询客户端)。
步骤3)查询客户端收到来自查询服务器的数据后,首先生成一个随机数r1,针对自身位置利用r1计算出两个向量:
并结合所接收到的数据计算:
s13=r1x+2r1y
将所得结果{s11,s12,s13}发送给查询服务器。
步骤4)查询服务器根据接受到的数据序列,计算:
t1=-(s11+ks12-mks13)/r10
并发送回查询客户端。
步骤5)查询客户端收到t1计算v1=2t1/r1+x2+y2,其中
查询服务器对于私有数据库C中的其余每个位置均与查询客户端重复上述步骤2-5,即查询服务器获得序列{u1,u2,...,un},查询客户端获得序列{v1,v2,...,vn},对于其中i∈[1,n],满足
步骤6)查询服务器生成一对同态加密的公钥-私钥对,相应的加密和解密函数分别记为E(.)和D(.),公钥记为pk,私钥记为sk。使用公钥对私有数据-ui进行加密,将序列{Epk(-ui}(i=1,2,..,n)连同公钥pk一起发送给查询客户端。
步骤7)查询客户端生成随机数r’,利用接收到的公钥E依次加密私有数据-vi+r’,得到Epk(vi+r’),其中i=1,…n。由i=1,…n依次计算 查询客户端产生一个排列π,并对序列{Epk(di+r’)}进行排列,得到π({Epk(di+r’)}),其中i=1,...n,并发送给查询服务器。
步骤8)查询服务器利用私钥sk对接收到的数据π({Epk(di+r’)})进行解密,计算:
Dsk(π({E(di+r’)}))=π({(di+r’)}),其中i=1,…n。对这组数据,求最小值,获取最小值数据的下标j’(这个j’是经过客户端排序后的坐标值),将这个坐标值发送给查询客户端;
步骤9)查询客户端根据排列π找出j’对应的排序前的坐标j,与查询服务器一起运行不经意协议,得到服务器端中点的坐标并可知相对距离dj。由此用户A通过手机查询客户端软件获得了B机构的分支机构中与自己当前位置最近的分支机构地址,并不知道其他地址以及其他分支机构与其的位置关系,而机构B的查询服务器不能获得用户A的位置信息,也不知道用户A最终的查询结果。
应用场景二(安全级别较低):用户A执行完任务之后,进行私人活动,用户A不喜欢收到无关的广告信息,希望查询到离他最近的商场,但是不希望泄露自己的位置。该城市商场信息数据库F中拥有各个大型商场的地址信息,这些信息是公开的,无需保密的。此应用场景的安全级别较应用场景一降低。
步骤1)用户A利用手机定位系统获得自身位置的经纬度信息Q(x,y),通过手机(或其他移动智能终端)查询软件客户端向商场位置查询服务器G发出查询请求。
步骤2)商场位置查询服务器G(后简称服务器G)拥有信息可公开的数据库F,其中包括各大商场地址以经纬度表示,服务器G同意了用户A的查询请求,对于数据库F中的第一个地址产生5个随机数,r10,r11,r12,m1,k1.其中,r10和k1非零。并对进行如下计算:
并利用随机数生成和p1
并将p1发送给用户A查询客户端(后简称查询客户端)。
步骤3)查询客户端收到来自服务器G的数据后,首先生成一个随机数r1,针对自身位置利用r1计算出两个向量:
并结合所接收到的数据计算:
s13=r1x+2r1y
将所得结果{s11,s12,s13}发送给服务器G。
步骤4)服务器G根据接收到的数据序列,计算:
t1=-(s11+ks12-mks13)/r10
并发送回查询客户端。
步骤5)查询客户端收到t1计算v1=2t1/r1+x2+y2,其中
服务器G对于数据库F中的其余每个位置均与查询客户端重复上述步骤2-5,即查询客户端获得序列{v1,v2,...,vn},对于其中i∈[1,n],满足
步骤6)查询客户端程序对序列(i=1,2,...,n)进行排序,求出最小值并生成一对公钥-私钥对,相应的加密和解密函数分别记为E(.)和D(.),公钥记为pk,私钥记为sk。将公钥pk和最小值坐标j发送给服务器G。
步骤7)服务器G收到公钥pk和最小值坐标j后,将点坐标用公钥pk加密后发送给查询客户端。查询客户端对接收到的数据利用私钥sk进行解密,并最终得到距离最近的点由此用户A得到距离他当前位置最近的商场信息,避免了自己当前位置的泄露,不会因此而收到骚扰信息,最后的查询结果,由于是以加密形式发送的,第三方无法推算出查询结果,也不用担心会被第三方获得目的的地址。