一种保护用户地理位置隐私的在线打车方法

文档序号:32751411发布日期:2022-12-31 01:04阅读:29来源:国知局
一种保护用户地理位置隐私的在线打车方法

1.本技术涉及地理位置隐私保护技术领域,尤其是涉及一种对在线打车服务中出租车与乘客地理位置隐私的保护算法,该算法在不向服务提供商泄露用户地理位置的同时,第三方服务商仍然可以计算出司机与乘客的距离,该算法具有非常高的安全性,可以保护司机与乘客的地址位置信息不被第三方服务商获取,该算法具有较高的性能,智能手机可以实时地加密出租车与乘客的地理位置信息,第三方服务器在收到乘客发送的加密地址位置后,可以快速地为乘客匹配最近的空载出租车,从而为乘客提供良好的打车体验。


背景技术:

2.目前,用户对自己地理位置隐私的关注不断增加,许多工作都在研究保护隐私的位置查询。一些研究提出了一些非加密的解决方案来隐藏确切的位置。有人使用地理网格id来匹配乘客与出租车;还有人提出了一个基于希尔伯特曲线的算法来隐藏乘客与出租车的地理位置,然而,这些解决方案不能提供准确的服务,因为它们使用的是不精确的位置。也有人提出了基于密码学的解决方案来解决这个问题,例如有人提出了一个保护隐私的方案,该方案基于私有集交集来确定会面点。有人利用安全的knn来计算行程相似度,对乘客和出租车的确切位置进行加密,并根据同态加密和他们的欧氏距离找到最近的出租车。为了更好地表示道路网络中的距离,有人利用道路网络嵌入来转换位置。他们利用同态加密和garbledcircuit来计算距离并以保护隐私的方式找到最近的出租车。然而,它需要另一个服务器来帮助服务提供者进行乘车匹配。还有人提出了一个基于pph的方案,允许云服务器自己提供保护隐私的orh服务。然而,在这个系统中,服务器可以推断出某些情况下的明文。
3.即现有技术无法确保服务提供商可以精确匹配乘客与出租车的同时保护乘客与出租车的位置隐私。


技术实现要素:

4.本技术的目的在于提供一个保护用户位置隐私的在线打车匹配方法,以解决现有技术中存在的乘客与出租车位置暴露的技术问题。
5.为解决上述技术问题,本技术提供了一种保护用户地理位置隐私的在线打车方法,应用于运行在服务提供商上的打车调度系统,其特征在于:包含系统初始化,乘客信息加密,出租车信息加密,乘客与出租车匹配四个步骤。
6.所述系统初始化步骤获取道路网络的一组节点子集和区块大小;所述乘客信息加密步骤获取乘客设备根据所述道路网络生成并加密的道路网络嵌入向量;所述出租车信息加密步骤获取出租车设备根据所述道路网生成并加密的道路网络嵌入向量;所述乘客与出租车匹配步骤调用所述服务提供商的计算资源,匹配所述乘客道路网络嵌入向量和所述出租车道路网络嵌入向量,得到距离最近的匹配结果;向所述乘客设备和所述出租车设备发送所述匹配结果。
7.本技术还提供了一种保护用户地理位置隐私的在线打车装置,应用于运行在服务提供商上的打车调度系统,其特征在于:包含系统初始化,乘客信息加密,出租车信息加密,乘客与出租车匹配四个模块。
8.采用上述技术方案,本技术具有如下有益效果:
9.本技术提供的保护用户位置隐私的在线打车匹配系统,本技术在不向服务提供商泄露用户地理位置的同时,服务提供商仍然可以计算出司机与乘客的距离,为乘客匹配最近的出租车,从而为乘客提供良好的打车体验。
附图说明
10.为了更清楚地说明本技术具体实施方式或现有技术中的技术方案下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
11.图1为本技术实施例提供的系统架构概览图;
12.图2为本技术实施例提供的数值分块案例解释图;
13.图3为本技术实施例提供的向量差计算案例解释图;
14.图4为本技术实施例提供的在线打车匹配方法;
15.图5为本技术实施例提供的在线打车匹配装置。
具体实施方式
16.下面将结合附图对本技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
17.下面结合具体的实施方式对本技术做进一步的解释说明。
18.如图1所示,本实施例提供的系统架构概览图,系统由三个实体组成,即服务提供者、出租车和乘客。服务提供者是基于他们的加密位置进行出租车和乘客匹配的实体。它根据密码文本计算每辆出租车和入境乘客之间的大致距离,并通过选择最近的出租车来匹配他们。出租车是等待乘客的实体。他们对自己的位置进行加密,并定期向服务提供商上传密码文本,以寻找匹配的乘客。乘客是想叫到最近的出租车来开始他们的行程的实体。他们对自己的位置进行加密并上传密码文本到服务提供商寻找最近的出租车。
19.为了实现保护出租车与乘客的地理位置信息不被服务提供商所获取,还能够允许服务提供商计算两者的距离,本技术用到了道路嵌入,伪随机函数,属性保存哈希等技术。
20.a.道路网络嵌入(road network embedding,rne)是一种将道路网络转换为高维空间以计算两点之间近似距离的技术。在该方案中,可以为道路网络中的每个点分配一个向量。两点之间的距离可以通过使用它们的给定向量来估计。道路网可以定义为加权图g=(v,e),其中v是道路交叉口集,e是道路集。假设g是一个无向图,n为v 的大小,d(a,b)代表a和b之间最小加权路长。如下操作可以将一个节点u可以转换为0(log2n)维向量:设k=β=0(logn),将r定义为一个由v的β
·
k子集组成的集合,即r={s
1,1
…s1,k
…sβ,1
…ꢀsβ,k
}。每个子集s
i,j
是v的随机子集,具有2i个节点。例如,子集 s
1,1
…s1,k
各有2个节点,子集s
β,1
…sβ,k

有2
β
个节点。设d(u,s
i,j
) 表示u与s
i,j
中的节点之间的最小距离,即中的节点之间的最小距离,即
21.①
因此节点u的嵌入向量e(u)可以定义为:
22.e(u)=(e
1,1
…e1,k
…eβ,1
…eβ,k
)
ꢀꢀꢀ
(1)
23.其中,e
i,j
(u)=d(u,s
i,j
)。
24.②
现在考虑一个移动对象o在节点u和节点v之间的边缘上移动。它的嵌入向量e(o)的分量e
i,j
(o)可以定义为:
25.e
i,j
(o)=min{d(o,u)+d(u,s
i,j
),d(o,v)+d(v,s
i,j
)}
ꢀꢀꢀ
(2)
26.③
给定两点u和v的嵌入向量e(u)和e(v),可以通过计算e(u) 和e(v)之间的棋盘距离来估计u和v之间的最短距离δ(u,v):
27.δ(u,v)=max
i,j
(|e
i,j
(u)-e
i,j
(v)|)
ꢀꢀꢀ
(3)
28.b.伪随机函数(pseudo-random function)(prf)是函数 f:{0,1}n×
{0,1}s→
{0,1}m,其输出在计算上与随机数的输出不可区分。形式上,函数f:{0,1}n×
{0,1}s→
{0,1}m是一个(t,∈,q)-prf如果:
29.①
给定k∈{0,1}s和x∈{0,1}n,fk(x)=f(x,k)是有效计算
30.②
对于任何t-time oracle算法a,都有
[0031][0032]
其中f={f:{0,1}n→
{0,1}m}并且a最多向oracle发出q次查询。
[0033]
c.属性保留哈希(property-preserving hash)(pph)允许实体显示pph密文的顺序。给定两比特x和x

的pph密文x^,x^

。将属性p定义为:
[0034][0035]
具体而言,pph密文x^

包括x和x+1的两个可匹配密文。因此,给定x^,x^

,如果x^中x的可匹配密文与x^

中x

+1的密文匹配,则 p(x

,x^

)=1。通过属性p,可以确定两个密文之间的顺序。
[0036]
为匹配一名乘客最近的出租车,服务提供商应计算道路网络嵌入环境下所有候选出租车的近似距离。为了安全地解决这个问题,如理论中等式3所示,需要计算绝对差值,并选择最大值作为一辆出租车和乘客之间的距离,同时对该乘客和出租车的道路网络嵌入向量进行加密。然而,很难计算密文的可比差异。
[0037]
为此,本技术设计了一种新的安全道路网络嵌入距离计算方案:将地图分成几个方形分区,以便所有出租车和乘客都在分区内。分区id和记录密文生成时间的时间戳将嵌入到pph分组密码中,以便只能匹配来自同一分区且同时生成的密文。也可以选择更大的块大小。上述措施可以提高系统的安全性。
[0038]
由于pph中的匹配执行次数与块大小成指数关系,如果选择更大的块大小来提高安全性,同时希望确保可接受的计算开销,那么需要利用更高效的加密原语来代替双线性映射作为匹配方法。利用 prf作为pph中的匹配方法,它提供了更低的单元匹配开销。此外,算法还为分组密码添加了索引,以提高查询效率。因此,即使选择了较大的块大小,系统也
可以实现可接受的服务质量。细节原理在下面讨论。
[0039]
用ei(u)表示道路网络嵌入向量的第i个分量e(u),并且z表示地图中的分区id。假设路网中有一名乘客u
p
和一辆出租车u
t
。它们的道路网络嵌入向量是e(u
p
)和e(u
t
)。他们在分区z中,向量生成时间戳s。为了在道路网络嵌入环境中安全地计算u
p
和u
t
之间的距离,首先需要安全地计算第i对向量之间的差,即e(u
p
)-e(u
t
)。
[0040]
为了加密乘客的向量ei(u
p
),乘客首先把ei(u
p
)的二进制表示划分为具有相同块大小i的m个比特块。使用[ei(u
p
)]j表示ei(u
p
) 的第j个比特块,其中j从0开始计数,并从最小有效位开始索引。例如,假设ei(u
p
)是41(“二进制中的101001”),那么它将被划分为大小为2的3个比特块。正如下图所示,[ei(u
p
)]2是“10”,[ei(u
p
)]1是“10”,而[ei(u
p
)]0是“01”。计程车的向量ei(u
t
)也分为m个比特块。
[0041]
首先介绍如何加密[ei(u
p
)]j。因为分块大小为i,一个分块有2
l
个可能值,即从0到2
l-1。设q表示可能值,即q∈[0
…2l-1]。对于每个q∈[0
…2l-1],我们计算它和[ei(u
p
)]j的差。注意到我们需要将差值乘以分块权重,而不是直接计算。每个分块[ei(u
p
)]j具有其与位置相关的分块权重,类似于比特权重。使用wj表示第j个分块的权重,并定义wj=(2
l
)j。
[0042]
如图2中所示,[ei(u
p
)]2的权重为(22)2=16。图中展现出了一个分块划分的示例。权重代表一个分块中不同位置的贡献差异。设 [ei(u
p
)]
j,q
表示可能值q和[ei(u
p
)]j与q之间的加权差的元组。为了加密一个块[ei(u
p
)]j,系统加密所有可能的值q到pph中的可匹配密文及其相应的加权差值。为了保护加权差值,它应该被一个令牌屏蔽,这样它当且仅当存来自出租车分块密文的正确令牌时才取消屏蔽,稍后介绍细节。
[0043]
[ei(u
p
)]j需要被加密的集合如等式5所示:
[0044]
{[ei(u
p
)]
j,q
=(q,(q-[ei(u
p
)]j)*wj|q∈[0
…2l-1])}
ꢀꢀ
(5)
[0045]
为了加密计程车的分块[ei(u
t
)]j,为[ei(u
t
)]j本身生成可匹配密文,而不是乘客那一方的所有可能值。系统的基本思想是确保当且仅当[ei(u
t
)]j=q时[ei(u
t
)]j的可匹配密文与q的密文相匹配。因此当q和[ei(u
p
)]j之间的加权差等于[ei(u
t
)]j和[ei(u
p
)]j之间的加权差时显示正确。
[0046]
现在介绍如何基于pph加密一个可能的元组[ei(u
p
)]
j,q
。利用 prf作为匹配加密原语。设[ei(u^
p
)]
j,q
表示[ei(u
p
)]
j,q
的密文。
[0047]
它定义为:
[0048][0049]
其中||是字符串串联运算符,是异或运算符,h和f是prf 函数,γj是在分块[ei(u
p
)]j的所有密文之间共享的随机数,k1和k2是乘客和出租车之间共享的两个密钥。它们由一个密钥管理器分发,它未参与叫车服务。tag
i,j,q
是一个用来提高查询效率的标签。
[0050]
它定义为:
[0051]
tag
i,j,q
=f(h(k1,q||i||j||z||s),γj)&(2
θ-1)
ꢀꢀꢀ
(7)
[0052]
其中&是和运算符,θ是预定义的小于i的值,系统使用最后一个θ位作为该密文的标签。具有相同标签的密文可以分在一起。一组的密文顺序可以被洗牌。接下来介绍如何使用它来提高查询效率。
[0053]
使用[ei(u^
p
)]j表示分块[ei(u
p
)]j的密文。[ei(u^
p
)]j包含所有可能的[ei(u
p
)]
j,q
元组和随机数γj的密文,如等式8所示。
[0054]
[ei(u^
p
)]j={γj,[ei(u
p
)]
j,q
|q∈[0
…2l-1]}
ꢀꢀꢀ
(8)
[0055]
在上面的介绍中,已经介绍了如何生成的出租车分块本身的可匹配密文[ei(u
t
)]j。特别地,密文[ei(u^
t
)]j被定义为等式9。
[0056]
(h(k1,[ei(u
t
)]j||i||j||z||s),h(k2,[ei(u
t
)]j||i||j||z||s))
ꢀꢀꢀ
(9)
[0057]ei
(u
p
)和ei(u
t
)的密文各自由所有分块的密文组成,如等式10,等式11所示。
[0058]ei
(u^
p
)={[ei(u^
p
)]j|j∈[0
…2l-1]}
ꢀꢀꢀ
(10)
[0059]ei
(u^
t
)={[ei(u^
t
)]j|j∈[0
…2l-1]}
ꢀꢀꢀ
(11)
[0060]
因此,给定两个分块密文[ei(u^
p
)]j和[ei(u^
t
)]j,服务提供商可以在[ei(u^
p
)]j中扫描可能的密文。分块密文[ei(u^
t
)]j匹配一个可能的密文[ei(u^
p
)]
j,q
当且仅当等式12成立,即左侧来自[ei(u^
p
)]
j,q
,右侧为prf值带有[ei(u^
t
)]j的密文和[ei(u^
p
)]j的γj。
[0061]
f(h(k1,q||i||j||z||s),γj)?=f(h(k1,[ei(u^
t
)]
j ||i||j||z||s),γj)
ꢀꢀꢀ
(12)
[0062]
根据等式12,可以发现等式12成立当且仅当q=[ei(u
t
)]。prf 中的其他参数也可确保它们来自第i个向量中的第j个分块,来自相同的区域z,生成同样的时间戳s。
[0063]
为了提高查询效率,我们可以提取等式12右侧最后θ比特,如等式13所示。我们可以仅测试具有相同标签的可能密文 [ei(u^
p
)]
j,q
。即tag’=tag
i,j,q
。通过这种改进,我们可以降低匹配测试的数量成本。
[0064]
tag’=f(h(k1,[ei(u
t
)]j||i||j||z||s),γj)&(2
θ-1)
ꢀꢀꢀ
(13)
[0065]
一旦[ei(u^
t
)]j与一个[ei(u^
p
)]
j,q
匹配,我们就可以生成一个面具maskj用到来自[ei(u^
t
)]j的h(k2,[ei(u
t
)]j||i||j||z|| s)和[ei(u^
p
)]j的γj,如等式14所示。根据等式6,我们可以发现如果[ei(u
t
)]j=q则maskj等于加权差(q-[ei(u
p
)]j)*wj)即它们是匹配的。因此,通过使用异或运算,我们可以得到分块密文的加权差([ei(u
t
)]
j-[ei(u
p
)]j)*wj。
[0066]
maskj=f(h(k2,[ei(u
t
)]j||i||j||z||s),γj)
ꢀꢀꢀ
(14)
[0067]
在得到所有j∈[0

m]的([ei(u
t
)]
j-[ei(u
p
)]j)*wj后,第i 个向量之间的绝对差
[0068]
|ei(u
t
)-ei(u
p
)|可按公式15计算。
[0069]
|ei(u
t
)-ei(u
p
)|=|∑
j∈[0

m]
(([ei(u
t
)]
j-[ei(u
p
)]j)*wj)|
ꢀꢀꢀ
(15)
[0070]
图3展示了向量差计算的一个示例。在图3中,我们说明了 e1(u
t
)和e1(u
p
)差的计算,其中分区id和时间戳为1。左侧分块的 e1(u^
t
)1将匹配一个可能的密文e1(u^
p
)1,并得到相应的符号差。右边的e1(u^
t
)0也是如此。根据底部的表达式,我们可以发现加权差值之和等于e1(u
t
)和e1(u
p
)的差。
[0071]
设e(u^
t
)和e(u^
p
)分别表示道路网络嵌入向量e(u
t
)和e(u
p
) 的密文。出租车密文e(u^
t
)在等式16中定义。它由所有向量,时间戳和分区id的密文组成。
[0072]
e(u^
t
)={s,z,ei(u^
t
)|i∈[0

β*k]}
ꢀꢀꢀ
(16)
[0073]
乘客密文e(u^
p
)在等式17中定义。
[0074]
e(u^
p
)={s,z,ei(u^
p
)|i∈[0

β*k]}
ꢀꢀꢀ
(17)
[0075]
因为我们可以计算一对向量的绝对差,给定两个道路网络嵌入向量的密文时,一名乘客和一辆出租车之间的距离可以根据等式3 计算。
[0076]
总之,根据我们提出的设计,服务提供商可以安全地计算一名乘客和一辆出租车之间的道路网络嵌入距离如果它们来自同一分区,并且它们的密文生成相同的时间戳。
[0077]
b.乘客-司机匹配
[0078]
在第a节中,我们讨论了如何计算乘客与出租车之间的距离。让u
t
表示所有出租车的集合,e(u^
t
)
z,s
表示分区id为z和时间戳为s的出租车的密文。给定一个乘客的密文e(u^
p
),分区id z和时间戳s,因为分区id和时间戳是明确包含的,服务提供商可以选择具有相同分区id和时间戳的出租车来计算距离,即e(u^
p
)和 e(u^
t
)
z,s
的密文之间的距离。它可以减少候选出租车的数量,以提高查询效率。如果两个密文的分区id或时间戳不同,嵌入在prfs 中的这两个值还可以确保服务提供商无法计算两个密文之间的距离。在计算e(u^
p
)和e(u^
t
)
z,s
中密文之间的所有距离后,服务提供商可以选择距离最小的出租车作为最近的出租车。距离信息不会泄露乘客和出租车的位置信息。在上述设计中,只有同一分区内的乘客和出租车可以匹配。但是,一个分区中最近的出租车可能不是全地图中最近的出租车,为了提高准确度,我们让分区z中的出租车使用z的相邻分区z’生成其当前道路网络嵌入向量的另外8个密文。因此,出租车将参与其分区和相邻分区的匹配过程。相对而言,乘客的一个呼叫请求将由其分区和相邻分区的出租车提供。这种设计可以提高我们提出的系统的查询精度。
[0079]
c.提前停止距离计算
[0080]
在上述讨论中,我们计算所有部件的绝对差异,并选择最大值作为乘客与一辆出租车之间的距离。将选择距离最小的出租车作为最近的出租车。因为服务提供商需要逐个计算乘客与出租车之间的距离,当服务提供商计算乘客与出租车之间的距离时,我们用min 表示当前的最小距离。在这种情况下,我们有一个观察结果:假设服务提供商正在计算第i对人车之间的绝对差异,即|ei(u
t
)
‑ꢀei
(u
p
)|。u
t
不是最近的出租车如果|ei(u
t
)-ei(u
p
)|>min,因为根据公式3:u
p
和u
t
之间的距离不可能小于|ei(u
t
)-ei(u
p
)|。如果 |ei(u
t
)-ei(u
p
)|>min,则距离必然大于当前最小距离min。根据上述观察,u
p
和u
t
之间的距离计算可以终止,如果服务提供商发现 |ei(u
t
)-ei(u
p
)|>min。因此,可以避免不必要的计算。
[0081]
d.构造
[0082]
1)初始化:在这个过程中,服务提供商定义了道路网络g=(v, e)的一组节点子集r和区块大小i。因此,乘客和出租车可以基于 r和i生成并加密他们的道路网络嵌入向量,以享受叫车服务。乘客和出租车之间共享的密钥k1和k2由密钥管理器生成和管理,该密钥管理器不参与叫车服务,如a节所述。
[0083]
2)乘客信息加密:在此过程中,给定分区z和时间戳s中乘客 u
p
的道路网络嵌入向量e(u
p
),乘客运行以下算法来加密e(u
p
)。
[0084]
encpassbiock(k1,k2,z,s,[ei(u
p
)]j)是生成块密文[ei(u^
p
)]j的算法。它将密钥k1,k2、分区id z、时间戳s和块明文[ei(u
p
)]j作为输入,并返回块密文[ei(u^
p
)]j,见算法1。
[0085][0086]
算法1
[0087]
encpasscomp(k1,k2,z,s,[ei(u
p
)])是一种生成分量密文 ei(u^
p
)的算法。它获取密钥k1,k2、分区id z、时间戳s和乘客的道路网络嵌入向量的第i分量ei(u
p
),并返回密文ei(u^
p
),见算法2。
[0088][0089]
算法2
[0090]
encpassvec(k1,k2,z,s,[e(u
p
)])是一种为乘客u
p
的道路网络嵌入向量e(u
p
)生成密文e(u^
p
)的算法。它获取密钥k1,k2、分区idz、时间戳s和明文道路网络嵌入向量e(u
p
),并返回将用于打车的道路网络嵌入向量密文e(u^
p
),见算法3。
[0091][0092]
算法3
[0093]
3)出租车信息加密:在此过程中,给定分区z和时间戳s中出租车u
t
的道路网络嵌入向量e(u
t
),出租车运行以下算法,用分区z 及其相邻分区z’加密e(u
t
)。
[0094]
enctaxiblock(k1,k2,z,s,[ei(u
t
)]j)是生成块密文[ei(u^
t
)]j的算法。它将密钥k1,k2、分区id z、时间戳s和块明文[ei(u
t
)]j作为输入,并返回块密文[ei(u^
t
)]j,见算法4。
[0095][0096]
算法4
[0097]
enctaxicomp(k1,k2,z,s,[ei(u
t
)])是一种生成分量密文ei(u^
t
) 的算法。它获取
密钥k1,k2、分区id z、时间戳s和出租车的道路网络嵌入向量的第i分量ei(u
t
),并返回密文ei(u^
t
),见算法5。
[0098][0099]
算法5
[0100]
enctaxivec(k1,k2,z,s,[e(u
t
)])是一种为出租车u
t
的道路网络嵌入向量e(u
t
)生成密文e(u^
t
)的算法。用e(u^
t
)z表示分区id z的出租车的道路网络嵌入向量的密文。它获取密钥k1,k2、分区id z、时间戳s和明文道路网络嵌入向量e(u
t
),并返回分区id z的出租车的道路网络嵌入向量密文e(u^
t
)z,见算法6。
[0101][0102]
算法6
[0103]
genetaxi token(k1,k2,z,s,[e(u
t
)])是一种生成出租车令牌的算法,其中包括分区id为z的出租车密文e(u^
t
)z和附近分区id为z’的出租车密文e(u^
t
)z′
。是一辆出租车上传给服务提供商用于打车的数据。它获取密钥k1和k2、分区id z、时间戳s和明文道路网络嵌入向量e(u
t
),并返回出租车令牌见算法7。
[0104][0105]
算法7
[0106]
4)距离计算和出租车乘客匹配:当服务提供商收到乘客的查询e(u

p
)时,服务提供商将计算乘客up与具有相同分区id z和相同时间戳s的出租车之间的距离。然后,服务提供商将选择距离最小的出租车作为该乘客最近的出租车。
[0107]
blockdiff([ei(u^
p
)]j,[ei(u^
t
)]j)是计算两个分块 [ei(u^
p
)]j,[ei(u^
t
)]j之间差的算法。它获取分块密文[ei(u^
p
)]j和 [ei(u^
t
)]j,并返回差([ei(u
p
)]
j-[ei(u
t
)]j)*ωj。
它首先计算tagj,并尝试将可能的密文与[ei(u^
p
)]j中的相同tag匹配。一旦它们匹配,它将计算maskj,并通过maskj揭示加权差,见算法8。
[0108][0109]
算法8
[0110]
componentdiff(ei(u^
p
),ei(u^
t
))是一种算法,用于计算两个道路网络嵌入向量ei(u
p
)和ei(u
t
)的第i个分量之间的差的绝对值。它获取密文ei(u^
p
)和ei(u^
t
),并返回差绝对值|ei(u^
p
)-ei(u^t)|。它计算每一对区块的加权差,并将它们聚合为绝对差,见算法9。
[0111][0112]
算法9
[0113][0114]
算法10
[0115]
ridehailing(e(u
p
),e(u^
t
)
z,s
)是一种从具有相同分区id z和时间戳s的出租车中查找最近出租车的算法。它获取乘客e(u^
p
)的密文和具有相同分区id和时间戳e(u^
t
)
z,s
的出租车的密文,并返回最近出租车u^
t
,见算法10。
[0116]
图4示出了本公开实施例中提供的一种保护用户地理位置隐私的在线打车方法的流程示意图。如图4所示,该方法主要可以包括:
[0117]
步骤s110:系统初始化步骤获取道路网络的一组节点子集和区块大小;
[0118]
步骤s120:乘客信息加密步骤获取乘客设备根据所述道路网络生成并加密的道路网络嵌入向量;
[0119]
步骤s130:出租车信息加密步骤获取出租车设备根据所述道路网生成并加密的道路网络嵌入向量;
[0120]
步骤s140:乘客与出租车匹配步骤调用所述服务提供商的计算资源,匹配所述乘客道路网络嵌入向量和所述出租车道路网络嵌入向量,得到距离最近的匹配结果;向所述乘客设备和所述出租车设备发送所述匹配结果。
[0121]
图5示出了本公开实施例中提供的一种保护用户地理位置隐私的在线打车装置的流程示意图。如图5所示,该装置主要可以包括:
[0122]
模块210:系统初始化模块获取道路网络的一组节点子集和区块大小;
[0123]
模块220:乘客信息加密模块获取乘客设备根据所述道路网络生成并加密的道路网络嵌入向量;
[0124]
模块230:出租车信息加密模块获取出租车设备根据所述道路网生成并加密的道路网络嵌入向量;
[0125]
模块240:乘客与出租车匹配模块调用所述服务提供商的计算资源,匹配所述乘客道路网络嵌入向量和所述出租车道路网络嵌入向量,得到距离最近的匹配结果;向所述乘客设备和所述出租车设备发送所述匹配结果。
[0126]
最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1