一种面向在线打车服务的隐私保护系统及方法与流程

文档序号:15497799发布日期:2018-09-21 22:02阅读:535来源:国知局

本发明属于信息安全技术领域,尤其涉及一种面向在线打车服务的隐私保护系统及方法。



背景技术:

目前,业内常用的现有技术是这样的:随着移动互联网的快速发展和带有位置感知功能的移动终端的不断普及,在线打车服务出现在了人们的日常生活中。利用在线打车服务,用户能够随时随地的寻找到乘车点附近的可用车辆,为出行带来了很大的便利。在传统的在线打车服务中,用户需要将自己的精确位置信息发送给服务提供方。服务提供方通过收集的位置信息为打车用户匹配符合条件的车辆,之后为用户提供在线打车服务。在服务过程中,用户终端精确位置信息和服务提供方敏感数据(例如空间划分数据)并未得到保护,这些信息存在泄露的风险。为了找出一种解决上述问题的方法,人们提出了一些解决方案,其中:安徽大学申请的专利“一种基于同态加密的位置隐私查询方法”(申请号cn201711282361.x申请公布号cn107749865a)公开了一种基于paillier同态加密技术的隐私保护位置查询方案,能够实现在lbs查询过程中不泄露用户的精确位置信息。该发明的不足之处在于:数据处理过程中包含较多的复杂运算,导致其计算开销较大。而移动终端存在计算资源有限等问题,因此该发明不能很好地应于存在大量移动用户的场景中。湖南科技大学申请的专利“一种基于缓存和位置预测机制的轨迹隐私保护方法”(申请号cn201711085881.1申请公布号cn107707566a)公开了一种基于匿名化技术和多级缓存机制的轨迹隐私保护方法,降低了多用户连续lbs查询过程中与位置服务提供商之间的交互次数,确保了用户轨迹隐私的安全。该发明的不足之处在于:一方面,多级缓存机制只能存储静态位置信息,当位置数据不断变化时,该发明所提的多级缓存机制就会失效。另一方面,当用户进行匿名化查询时,需要通过匿名服务器生成一个匿名空间代替自己的精确位置,会导致较大的通信开销。

综上所述,现有技术存在的问题是:现存的位置隐私保护方案,存在数据处理慢、通信开销大和应用场景局限等问题。因此,现存的位置隐私方案应用于在线打车服务中,会过度消耗移动终端资源,影响用户体验。

解决上述技术问题的难度和意义:

传统的同态加密,安全多方计算等技术无法很好的平衡隐私保护和数据处理效率的问题,而匿名化技术又会带来较大的通信开销。使用上述技术无法满足在线打车服务中用户量大,位置动态变化的特点。因此,需要为在线打车服务设计一种新型高效隐私保护的动态位置探测方法,该方法能够在不影响用户使用在线打车服务,以及服务提供商能够正常运营的前提下实现隐私保护,打消用户以及服务提供方对敏感数据泄露的顾虑。



技术实现要素:

针对现有技术存在的问题,本发明提供了一种面向在线打车服务的隐私保护系统及方法。

本发明是这样实现的,一种面向在线打车服务的隐私保护方法,所述面向在线打车服务的隐私保护方法将服务空间进行区域划分,通过密文的多项式聚合计算动态分析用户的打车行为分布和车辆的密度分布,转发用户之间的打车请求和响应,为用户提供在线打车服务;用户终端发送加密的车查询以及打车请求,获得乘车点附近的可用车辆;车辆终端动态更新密文位置信息,提供位置探测数据支持,对打车用户终端的打车请求做出响应。

进一步,所述面向在线打车服务的隐私保护方法包括以下步骤:

步骤一,系统初始化及用户注册,在线打车服务器选择数据处理过程中所需要的安全参数,生成交互过程中的密钥;用户在使用在线打车服务之前,在服务器中进行注册以获取安全参数;

步骤二,空间划分以及数据预处理;在线打车服务器将服务空间依照多叉树数据结构进行区域划分,并将所划分的子区域数据存储在多叉树节点中;在线打车服务器利用随机隐藏技术将区域划分数据进行加密,生成密文多叉树,发送至用户终端;

步骤三,车辆用户位置动态探测,车辆用户终端利用随机数将精确位置信息进行扰乱,与密文多叉树进行混合计算之后生成密文车辆探测响应返回给在线打车服务器;在线打车服务器不进行解密,直接对密文车辆探测响应进一步计算,判断车辆用户终端所在的子区域;

步骤四,打车用户查询乘车点附近车辆,打车用户终端选取乘车点,设置乘车点附近的圆形查询区域,利用随机隐藏技术将查询区域进行加密,生成密文车辆查询请求并发送给在线打车服务器;在线打车服务器通过初步筛选减小车辆查询范围,并将查询请求发送给车辆用户终端;车辆用户终端利用随机数将精确位置信息进行扰乱,与密文的查询区域数据进行混合计算生成密文车辆查询响应,通过在线打车服务器返回给打车用户终端;打车用户终端通过对密文车辆查询响应进一步计算,得到乘车点附近的车辆;

步骤五,用户使用打车服务,打车用户终端选取目的点,利用随机数将精确目的点位置信息进行扰乱,与密文多叉树进行混合计算之后生成目的点密文位置信息,构成密文打车请求发送给在线打车服务器;在线打车服务器判断目的点所在子区域,对打车请求进行信息补充,之后转发给乘车点附近的车辆用户终端;车辆用户终端判断是否接受本次打车任务,并通过在线打车服务器将打车响应发送给该打车用户终端;打车用户通过在线打车服务器返回的可用车辆列表选取合适的车辆,并与其交换精确的行程信息,完成本次打车任务。

进一步,所述系统初始化具体包括:

1)在线打车服务器选择一个安全参数κ,安全参数κ越大,则系统的安全性能越好,同时系统的计算开销也越大;

2)在线打车服务器通过运行生成双线性映射群的函数gen(κ),得到双线性映射参数其中q是一个κ比特的素数,g是一个生成元为g、阶为q的循环群,gt是一个生成元为阶为q的循环群,为双线性映射函数;

3)在线打车服务器随机选择skrs∈zq*作为自己的私钥,同时根据生成元g计算与其私钥skrs对应的公钥表示阶为q的整数群中的非零集合;

4)在线打车服务器选择安全参数k1,k2,k3,k4,满足k4+2k2<k1,k2+k3<k1,k3+k4<k2;

5)在线打车服务器选择两个大素数|p|=k1,|α|=k2,随机数|aji|=k3,i=1,2,…,6;j=1,2,…,4;

6)在线打车服务器选择一个安全的非对称加密算法e()和一个安全的杂凑函数h();

7)在线打车服务器保存自己的私钥skrs,公开系统参数

进一步,所述步骤一的进行用户注册具体包括:

1)打车用户终端注册:

打车用户终端rck在注册时,随机选择作为自己的私钥,同时根据生成元g计算与其私钥对应的公钥并将该公钥发送给在线打车服务器;

打车用户终端rck选择两个大素数|p′|=k1,|α′|=k2,随机数|di|=k3i=1,2,…,4;

打车用户终端rck和在线打车服务器根据对方的公钥协商会话密钥

2)车辆用户终端注册:

车辆用户终端rvk在注册时,随机选择作为自己的私钥,同时根据生成元g计算与其私钥对应的公钥并将该公钥发送给在线打车服务器;

车辆用户终端rvk选择随机数|rk|=k4,在位置探测中,k=ij,i是表示服务空间划分多叉树的节点数,j=1,2,…,4;在车辆查询中,k=1,2,…,5;

车辆用户终端rvk和在线打车服务器根据对方的公钥协商会话密钥

进一步,所述步骤二进行空间划分数据加密具体包括:

1)在线打车服务器按照逆时针方向选取多叉树节点ni的两个顶点(xnij,ynij)和(xnij′,ynij′),计算:

enij1=s(xnij·α+aj1)modp

enij2=s(ynij·α+aj2)modp

enij3=s(xnij′·α+aj3)modp

enij4=s(ynij′·α+aj4)modp

enij5=s(xnij·ynij′·α+aj5)modp

enij6=s(xnij′·ynij·α+aj6)modp;

其中,i=1,2,...,m,j=1,2,...,n,j′=(j+1)modn;

2)对节点ni,在线打车服务器得到enij=enij1||enij2||enij3||enij4||enij5||enij6,eni=eni1||eni2||…||enin,针对所有节点执行上述操作,在线打车服务器生成密文多叉树en={en1,en2,…,enm}。

进一步,所述步骤三车辆用户终端利用随机数将精确位置信息进行扰乱,与密文多叉树进行混合计算之后生成密文位置信息返回给在线打车服务器具体包括:

1)定义车辆用户终端rvk的精确位置为(xv,yv),车辆用户终端执行运算:

aij1=rij·α(xv·enij4+yv·enij1+enij6)modp

aij2=rij·α(xv·enij2+yv·enij3+enij5)modp;

其中i=1,2,...,m,j=1,2,...,n。车辆用户终端得到aij=aij1||aij2;

2)车辆用户终端对aij执行随机置换函数π(aij)打乱j的顺序,之后生成ai=ai1||ai2||…||ain,a={a1,a2,…,am};a为车辆用户终端对应多叉树节点所产生的加密位置信息;

所述步骤三在线打车服务器不进行解密,直接对车辆用户终端的密文位置信息进一步计算,判断车辆用户终端所在的子区域具体包括:

(1)在线打车服务器针对每一个节点,计算:

bij1=s-1·aij1modp

=s-1·rij·α(xv·enij4+yv·enij1+enij6)modp

=s-1·rij·s[α2(xv·ynij′+yv·xnij+xnij′·ynij)+α(xv·aj4+yv·aj1+aj6)]modp

bij2=s-1·aij2modp

=s-1·rij·α(xv·enij2+yv·enij3+enij5)modp

=s-1·rij·s[α2(xv·ynij+yv·xnij′+xnij·ynij′)+α(xv·aj2+yv·aj3+aj5)]modp

bij=bi′j2-bi′1=ri[(xv·ynij+yv·xnij′+xnij·ynij′)-(xv·ynij′+yv·xnij+xnij′·ynij)];

对于j=1,2,...,n,如果所有的bij≥0,在线打车服务器可以判断该车辆用户终端在子区域ni中,否则该车辆用户终端不在子区域ni内;

(2)在线打车服务器从多叉树根节点开始,判断该车辆用户终端所在的非叶子节点,并递归进入该节点,到叶子节点终止;通过对所有的车辆用户终端执行此操作,在线打车服务器可以得到所有已注册车辆用户终端在服务空间中的密度分布。

进一步,所述步骤四打车用户终端选随机隐藏技术将车辆查询区域进行加密,生成查询请求并发送给在线打车服务器具体包括:

1)打车用户终端选择乘车地点(xcp,ycp),设置查询半径r,生成圆形查询区域crc;将圆形查询区域crc的任意外切正方形表示为src,其顶点坐标为<(xs1,ys1),(xs2,ys2),(xs3,ys3),(xs4,ys4)>;打车用户终端针对src的每一个顶点执行步骤四中与车辆用户终端相同的操作,生成加密的顶点位置信息cs=c1||c2||c3||c4,其中之后打车用户终端进行如下计算,将车辆查询区域进行加密:

d1=s′(xcp·α′+d1)modp′

d2=s′(ycp·α′+d2)modp′

d3=s′·d3modp′

d4=s′·d4modp′

d=d1||d2||d3||d4

2)打车用户终端生成车辆查询信息vsp=α′||p′||d||e,其中α′,p′为打车用户终端生成的查询区域加密参数,d,e为车辆查询区域;

车辆用户终端利用随机数将精确位置信息进行扰乱,与密文的查询区域数据进行混合计算生成密文车辆查询响应具体包括:

车辆用户终端获取当前位置<xsv,ysv>,计算加密的车辆查询响应:

f1=xsv·α·d1modp′

f2=ysv·α·d2modp′

f3=r3·d3modp′

f4=r4·d4modp′

车辆用户终端生成加密的车辆查询响应<i||f>。

进一步,所述步骤四打车用户终端通过对密文车辆查询响应进一步计算,得到乘车点附近的车辆具体包括:

打车用户终端首先将数据包进行解密得到i,f,之后计算:

j=s′-1·fmodp′

=s′-1·s′·r5[α′2(xcp·xsv+ycp·ysv)+α(xsv·d1+ysv·d2)+r3·d3+r4·d4]modp′

打车用户终端通过k的符号判断车辆用户终端是否在查询区域crc内,若k≤0,判断该车辆用户终端在所查询区域内,否则在所查询区域外。

本发明的另一目的在于提供一种所述面向在线打车服务的隐私保护方法的面向在线打车服务的隐私保护系统,所述面向在线打车服务的隐私保护系统包括:

在线打车服务器,完成系统初始化,并为用户提供注册,对服务空间进行区域划分,分析打车行为分布以及车辆密度分布,转发用户的打车请求以及响应;

打车用户终端,发送密文车辆查询请求以及打车请求给在线打车服务器,使用在线打车服务;

车辆用户终端,动态更新密文位置信息,为在线打车服务器提供实时数据支持,对打车用户终端的密文车辆查询以及打车请求作出响应。

进一步,所述在线打车服务器包括:

系统初始化及注册模块,用于完成系统初始化,生成系统的安全参数,为用户终端提供注册;

位置探测模块,用于对服务空间进行区域划分,获取车辆用户终端的密度分布以及打车用户终端的打车行为分布;

服务器安全支持模块,用于提供打车服务器所需的加密算法和哈希算法;

在线打车服务器,位置探测模块包括空间划分及加密子模块、密文车辆位置信息处理子模块、密文车辆查询请求处理子模块和密文打车请求处理子模块;

其中空间划分及加密子模块用于将服务空间依照多叉树数据结构进行区域划分,并对空间划分数据进行加密,生成密文多叉树;

密文车辆位置信息处理子模块用于对车辆用户终端生成的密文车辆探测响应进行计算,判断车辆用户终端所处的子区域,获取车辆用户终端的密度分布;

密文车辆查询请求处理子模块用于预处理打车用户终端的密文车辆查询请求,减小查询范围,获取打车用户终端的打车行为分布;

密文打车请求处理子模块用于获取打车用户终端目的位置所在子区域,对打车请求进行信息补充;

在打车用户终端包括:

车辆查询模块,用于生成乘车点附近的圆形查询区域,对该区域内的车辆用户终端进行查询;

打车请求模块,用于根据具体行程产生打车请求,通过在线打车服务器转发送给乘车区域中的车辆,并通过车辆用户终端的打车响应获取可用车辆列表;

打车用户安全支持模块,用于提供打车用户终端所需的加密算法和哈希算法;

车辆查询模块包括查询区域加密子模块和密文车辆查询响应读取模块,其中查询区域加密子模块用于加密生成的圆形查询区域,构成密文车辆查询请求;

密文车辆查询响应读取模块用于对车辆用户终端生成的密文车辆查询响应进行计算,获取所查询区域内的车辆;

打车请求模块包括目的点加密子模块和打车响应读取子模块,其中

目的点加密子模块用于对目的位置数据进行加密,构成密文打车请求;

打车响应读取子模块用于获取本次打车任务的可用车辆;

所述在打车用户终端包括:

动态位置更新模块,用于向在线打车服务器动态提交密文车辆探测响应,向打车用户终端提交密文车辆查询响应;

打车响应模块,用于根据打车用户的行程,生成打车响应;

车辆用户安全支持模块,用于提供车辆用户终端所需的加密算法和哈希算法;

车辆用户终端,动态位置更新模块包括密文车辆查询响应生成子模块和密文车辆探测响应生成子模块,其中

密文车辆查询响应生成子模块用于根据加密的查询区域生成实时密文车辆查询响应;

密文车辆探测响应生成子模块用于根据密文多叉树生成实时密文车辆探测响应。

综上所述,本发明的优点及积极效果为:实现了动态场景下用户精确位置信息和服务提供方敏感数据的隐私保护;本发明中用户终端所有实时的位置相关信息在发送给在线打车服务器之前,首先通过轻量级的随机隐藏技术进行加密,使得用户的精确位置信息不会被在线打车服务器和敌手得到,确保了用户精确位置信息的安全,同时,服务提供方的空间划分数据在发送给用户之前也会进行加密处理,确保了其机密性。在隐私保护的前提下,服务提供方能够获得商业运营所需数据,在确保数据安全的前提下,服务提供方可以通过密文计算获取车辆用户终端的密度分布以及打车用户终端的打车行为分布。计算效率高,适用于存在大量移动终端的场景,本发明中所涉及的运算大多数为多项式聚合运算,具有较高的计算效率,能够支持大量用户、高动态的场景。本发明能够在正常提供在线打车服务的前提下,实现对用户终端精确位置信息和服务提供方敏感数据的有效隐私保护。实验表明,在所提方案中,在线打车服务器进行2000次密文位置查询所需时间为70ms,与基于同态加密paillier的方案相比,效率提高了近300倍。同时,在线打车服务器与用户终端,打车用户终端与车辆用户终端进行通信一次的开销分别为26kb和1.7kb,能够保证所提方案在真实环境中的可用性。

附图说明

图1是本发明实施例提供的面向在线打车服务的隐私保护系统结构示意图;

图中:1、在线打车服务器;2、打车用户终端;3、车辆用户终端。

图2是本发明实施例提供的面向在线打车服务的隐私保护方法流程图。

图3是本发明实施例提供的车辆位置探测子流程图。

图4是本发明实施例提供的车辆查询子流程图。

图5是本发明实施例提供的用户打车子流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明具体涉及一种在线打车用户和服务提供方隐私保护技术,可用于在大数据环境下为用户提供准确高效的在线打车服务,并在确保服务提供方能够获取正常运营信息的同时,实现用户终端精确位置信息和服务提供方敏感数据的有效隐私保护。

如图1所示,本发明实施例提供的面向在线打车服务的隐私保护系统包括在线打车服务器1,打车用户终端2以及车辆用户终端3三个组成部分,其中:

在线打车服务器1,完成系统初始化,并为用户提供注册,对服务空间进行区域划分,分析打车行为分布以及车辆密度分布,转发用户的打车请求以及响应。

打车用户终端2,发送密文车辆查询请求以及打车请求给在线打车服务器1,使用在线打车服务。

车辆用户终端3,动态更新密文位置信息,为在线打车服务器1提供实时数据支持,对打车用户终端的密文车辆查询以及打车请求作出响应。

如图2所示,本发明实施例提供的面向在线打车服务的隐私保护方法包括如下步骤:

步骤1,系统参数初始化。

1.1)在线打车服务器选择一个安全参数κ,该安全参数κ越大,则系统的安全性能越好,同时系统的计算开销也越大;

1.2)在线打车服务器通过运行生成双线性映射群的函数gen(κ),得到双线性映射参数其中q是一个κ比特的素数,g是一个生成元为g、阶为q的循环群,gt是一个生成元为阶为q的循环群,为双线性映射函数;

1.3)在线打车服务器随机选择skrs∈zq*作为自己的私钥,同时根据生成元g计算与其私钥skrs对应的公钥表示阶为q的整数群中的非零集合;

1.4)在线打车服务器选择安全参数k1,k2,k3,k4,满足k4+2k2<k1,k2+k3<k1,k3+k4<k2;

1.5)在线打车服务器选择两个大素数|p|=k1,|α|=k2,随机数|aji|=k3,i=1,2,…,6;j=1,2,…,4;

1.6)在线打车服务器选择一个安全的非对称加密算法e()和一个安全的杂凑函数h();

1.7)在线打车服务器保存自己的私钥skrs,公开系统参数

步骤2,用户终端注册。

2.1)打车用户终端注册:

2.1.1)打车用户终端rck在注册时,随机选择作为自己的私钥,同时根据生成元g计算与其私钥对应的公钥并将该公钥发送给在线打车服务器;

2.1.2)打车用户终端rck选择两个大素数|p′|=k1,|α′|=k2,随机数|di|=k3i=1,2,…,4;

2.1.3)打车用户终端rck和在线打车服务器根据对方的公钥协商会话密钥

2.2)车辆用户终端注册:

2.2.1)车辆用户终端rvk在注册时,随机选择作为自己的私钥,同时根据生成元g计算与其私钥对应的公钥并将该公钥发送给在线打车服务器;

2.2.2)车辆用户终端rvk选择随机数|rk|=k4,在服务器车辆位置探测过程中,k=ij,i为服务器空间划分多叉树的节点数,j=1,2,…,4;在打车用户终端车辆查询过程中,k=1,2,…,5;

2.2.3)车辆用户终端rvk和在线打车服务器根据对方的公钥协商会话密钥

步骤3,空间划分及划分数据加密。

3.1)在线打车服务器将服务空间根据多叉树数据结构将服务空间进行区域划分,定义所划分的多叉树为n={n1,n2,…,nm},每个节点表示一个凸多边形,将节点ni的顶点表示为<(xni1,yni1),(xni2,yni2),…,(xnin,ynin)>,其中,i=1,2,…,m,n为该节点所表示的凸多边形边数;

3.2)在线打车服务器按照逆时针方向选取ni的两个顶点(xnij,ynij)和(xnij′,ynij′),计算:

enij1=s(xnij·α+aj1)modp

enij2=s(ynij·α+aj2)modp

enij3=s(xnij′·α+aj3)modp

enij4=s(ynij′·α+aj4)modp

enij5=s(xnij·ynij′·α+aj5)modp

enij6=s(xnij′·ynij·α+aj6)modp;

其中,i=1,2,...,m,j=1,2,...,n,j′=(j+1)modn;

3.3)针对节点ni,在线打车服务器得到enij=enij1||enij2||enij3||enij4||enij5||enij6,eni=eni1||eni2||…||enin,在对所有节点执行上述操作后,在线打车服务器生成密文多叉树en={en1,en2,…,enm}。最后,在线打车服务器使用私钥生成签名其中α,p为系统参数,en加密的空间划分多叉树,rs为在线打车服务器的身份标识,ts为时间戳,si为会话号;

3.4)在线打车服务器保持s-1modp的隐私性,并将加密的空间划分数据公布给用户。

步骤4,车辆用户终端位置探测。

如图4所示,本步骤的具体实现如下,以车辆用户终端rvk为例进行说明。

4.1)车辆用户终端在收到加密的空间划分数据后,使用会话密钥将数据包解密得到之后判断等式是否成立,若成立,说明数据包esd是有效的,否则,车辆用户终端要求在线打车服务器重发esd。定义车辆用户终端rvk的精确位置为(xv,yv),之后车辆用户终端执行运算:

aij1=rij·α(xv·enij4+yv·enij1+enij6)modp

aij2=rij·α(xv·enij2+yv·enij3+enij5)modp;

其中i=1,2,...,m,j=1,2,...,n。车辆用户终端得到aij=aij1||aij2;

4.2)车辆用户终端对aij执行随机置换函数π(aij)打乱j的顺序,之后生成ai=ai1‖ai2‖…‖ain,a={a1,a2,…,am}。a为车辆用户终端对应密文多叉树节点所生成的加密位置信息;

4.3)车辆用户终端生成签名并将密文车辆探测响应发送给在线打车服务器;

4.4)在线打车服务器首先将数据包解密得到验证其可用性,若验证不成功,要求车辆用户终端重发密文车辆位置信息evl,之后针对每一个节点,计算:

bij1=s-1·aij1modp

=s-1·rij·α(xv·enij4+yv·enij1+enij6)modp

=s-1·rij·s[α2(xv·ynij′+yv·xnij+xnij′·ynij)+α(xv·aj4+yv·aj1+aj6)]modp

bij2=s-1·aij2modp

=s-1·rij·α(xv·enij2+yv·enij3+enij5)modp

=s-1·rij·s[α2(xv·ynij+yv·xnij′+xnij·ynij′)+α(xv·aj2+yv·aj3+aj5)]modp

bij=bi′j2-bi′1=ri[(xv·ynij+yv·xnij′+xnij·ynij′)-(xv·ynij′+yv·xnij+xnij′·ynij)];

对于j=1,2,...,n,如果所有的bij≥0,在线打车服务器可以判断该车辆用户终端在子区域ni中,否则该车辆用户终端不在子区域ni内;

4.5)在线打车服务器从多叉树根节点开始,判断该车辆用户终端所在的非叶子节点,并递归进入该节点,到叶子节点终止。通过对所有的车辆用户终端执行此操作,在线打车服务器可以得到所有已注册车辆用户终端在服务空间中的密度分布。

步骤5,打车用户终端对乘车点附近的车辆进行查询。

如图4所示,本步骤的具体实现如下。

5.1)打车用户终端产生车辆查询请求

5.1.1)打车用户终端选择乘车地点(xcp,ycp),设置查询半径r(规定其最小值为1km),生成圆形查询区域crc;将圆形查询区域crc的任意外切正方形表示为src,其顶点坐标为<(xs1,ys1),(xs2,ys2),(xs3,ys3),(xs4,ys4)>。打车用户终端针对src的每一个顶点执行步骤4中与车辆用户终端相同的操作,生成加密的顶点位置信息cs=c1‖c2‖c3‖c4,其中之后打车用户终端进行如下计算,将车辆查询区域进行加密:

d1=s′(xcp·α′+d1)modp′

d2=s′(ycp·α′+d2)modp′

d3=s′·d3modp′

d4=s′·d4modp′

d=d1‖d2‖d3||d4

5.1.2)打车用户终端生成密文车辆查询信息其中α′,p′为打车用户终端生成的查询区域加密参数,d,e为车辆查询区域,其中rc为打车用户身份标识,为打车用户终端生成的车辆查询信息签名。之后,打车用户终端生成密文辆查询请求其中为打车用户终端生成的打车请求签名。打车用户终端保持s′-1modp′的私密性,并将esr发送给在线打车服务器。

5.2)减小车辆查询范围,获取用户打车行为分布。

5.2.1)在线打车服务器将加密的车辆查询请求解密得到<cs||vsp||rc||tssr||sisr>,并验证数据包的可用性,若验证不成功,则要求打车用户终端重发密文车辆查询请求esr。之后,在线打车服务器可以通过cs探测覆盖该打车用户终端车辆查询区域的子区域csrc。在线打车服务器对所有的打车用户终端执行该操作,可以获取服务空间的打车行为分布;

5.2.2)在上述步骤中,在线打车服务器可以获取所有车辆用户终端所在的子区域,因此,在线打车服务器可以获取csrc内的车辆用户终端,记为srvs。车辆查询范围由整个服务空间缩小至csrc;

5.2.3)在线打车服务器将加密的车辆查询信息转发给csrc内的车辆用户终端。

5.3)车辆查询响应生成

csrc内的车辆用户终端首先对数据包进行解密得到并验证数据包的可用性。csrc内的车辆用户终端获取自己的位置数据<xsv,ysv>,之后计算:

f1=xsv·α·d1modp′

f2=ysv·α·d2modp′

f3=r3·d3modp′

f4=r4·d4modp′

csrc内的车辆用户终端生成签名并将密文车辆查询响应通过在线打车服务器返回给打车用户终端。

5.4)读取车辆查询响应。

打车用户终端首先将数据包进行解密得到并验证数据包的可用性,若验证不成功,要求车辆用户终端重发密文车辆查询响应evdsrv,之后计算:

j=s′-1·fmodp′

=s′-1·s′·r5[α′2(xcp·xsv+ycp·ysv)+α(xsv·d1+ysv·d2)+r3·d3+r4·d4]modp′

打车用户终端通过k的符号判断csrc内的车辆用户终端是否在查询车辆查询区域crc内,若k≤0,可以判断该车辆用户终端在所查询区域内,否则在所查询区域外。将在车辆查询区域内的车辆用户终端表示为crvs。若在查询区域内没有车辆,打车用户可以更改查询区域后重新发起车辆查询请求。

步骤6,用户在线打车。

如图5所示,本步骤的具体实现如下。

6.1)打车用户终端生成打车请求。

打车用户终端获得乘车点附近的车辆之后,设置目的点(xct,yct),执行步骤4中与车辆用户终端相同的操作,生成加密的目的点位置信息将加密的打车请求发送给在线打车服务器,其中为打车用户终端生成的签名。

6.2)车辆用户终端生成打车响应

6.2.1)在线打车服务器将打车请求解密,得到并验证数据包的可用性,若验证不成功,要求打车用户终端重发密文打车请求err。然后根据c5判断打车用户终端目的点所在的子区域,并在该子区域中随机选择一点atp。在线打车服务器将打车用户终端的乘车信息转发给乘车点附近的车辆,其中为在线打车服务器生成的签名;

6.2.2)车辆用户终端将打车用户终端的乘车信息解密,并根据atp(该行程的大致目的地),判断是否接受该用户的行程,将打车响应返回给在线打车服务器。

6.3)选择可用车辆,完成打车任务

在线打车服务器在收到车辆用户终端的打成响应之后,生成本次打车任务的“可用车辆列表”,并将该列表发送给打车用户终端;若没有可用车辆,打车用户终端可将乘车信息更改后重新发起打车请求。

步骤七,完成本次打车任务。

打车用户终端在“可用车辆列表”选择车辆,表示为crvk,并生成与crvk之间的会话密钥打车用户终端发送给该车辆用户终端,其中,pcp为精确的上车点信息,pi为身份信息(电话号码,信誉分等),为打车用户终端签名。车辆用户终端与该打车用户终端取得联系,完成本次打车任务。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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