发明内容
本发明针对现有技术的缺陷,提供了一种基于v2p的泊车服务隐私保护系统和方法,解决了现有技术中存在的缺陷。
为了实现以上发明目的,本发明采取的技术方案如下:
一种基于v2p的泊车服务隐私保护系统,包括:盲签名证书生成处(PKI),停车场终端(PLT),停车场服务提供商(PSP),自动驾驶汽车(AV)和智能手机(SM)。
盲签名证书生成处(PKI):在本系统模型中,PKI负责审核用户的具体信息,具体表现在用户提交的注册文件的有效性。PKI能够接入公安部门的端口,将用户的身份信息以同态加密的方式提交给公安部门进行认证,如果认证通过,则PKI为该用户生成合适的盲签名证书,在这个过程中,PKI是不清楚何时生成了对某一用户身份的盲签名证书,也不知道某一次签名过程中具体签署了什么信息,从而更大限度的保护了用户的隐私。
自动驾驶汽车(AV):AV具有自主能力,并且还具有基于蜂窝网络的通信能力,使其可以直接与网络中的其他实体连接。AV可以接受用户的命令。
智能手机(SM):SM与AV绑定。SM由用户拥有并在用户的控制下,用户可以安装停车应用程序并使用该应用程序完成预订过程。
停车服务提供商(PSP):PSP是在线服务器,为用户提供按需停车服务,包括:查找附近的停车位、进行停车位预订和订阅服务。订阅服务是支付会员费的注册用户才能享受这些便捷的服务。服务能够作为智能手机应用程序发布给用户。
停车场终端(PLT):PLT是停车场拥有者部署的终端,负责通过IoT设备监视和管理停车场。另外,PLT将其停车场的实时状态上载到PSP,以吸引更多的车辆,实时状态包括:停车费、空置的停车位和高海拔地图。
用户应在其SM中下载停车应用程序并在PKI上进行注册。此外,有效停车位的公共信息由PSP实时收集。当用户打算找到停车位时,首先需要使用已安装的App通过注册用户身份验证,然后根据用户当前位置进行查询并根据用户的要求进行停车位预订。最终,用户将通过SM与AV通信,让其AV签入并停放在保留的空间,并在停车过程结束时得到确认。
本发明还公开了一种基于v2p的泊车服务隐私保护方法,包括以下步骤:
1.用户向PKI注册,注册通过后,PKI返回盲证书certuficate
2.PLT向PSP注册,注册成功后,PSP向PLT返回签名密钥Rab
3.用户通过SM向PSP提交申请服务请求,PSP验证成功后,向用户返回请求令牌SESS
4.用户使用SESS向PSP查询停车场信息,PSP根据用户的伪位置返回一定范围内的停车场。
5.用户选择一个停车场,并将预订请求Req及签名σ发送给PSP
6.PSP将Req||σ转发给对应的PLT,PLT验证后生成停车许可代码c,并将c发送给PSP
7.PSP对C进行签名,签名为Sigc,并将c||sigc返回给用户。
8.用户通过SM将c||Timestamp||SESS||Sigc发送给AV,AV到达指定的PLT,核对信息后,停车完成。
进一步地,所述泊车服务隐私保护方法中还包括:系统安装、注册、服务、停车和恶意用户揭露与密钥撤销功能;
使用的符号的定义:
λ为安全参数;G,G
T位双线性循环映射群;p为一个大质数其长度为λ;g
1为
的生成元;
为三个非加密哈希函数;
为PSP的私钥和公钥;X,Y,Z为
且x,y,z∈Z
p;e(.,.)为双线性映射配对函数μ;μ为每日验证密钥;Ω,Ξ,Ψ为三个数据存储集;
为PLT的私钥以及公钥;R
ab为PLT的签名密钥;certificate为用户盲签名证书;Timestamp为当前的时隙;SESS为每次进行停车时的凭证。
所述系统安装包括:
PKI初始化:PKI选择一个参数g作为自己的标识码,并利用RSA算法生成自己的公私钥对。根据RSA算法,PKI选择:随机的素数b,c,且b≥2
512,c≥2
512,令n=b×c,一个随机数
作为PKI自身公钥,其中
且
然后PKI计算通过同余式方程
得到d,把d作为自身的私钥。PKI公布系统参数(e,n,g),并秘密保存(b,c,d),PSP运行注册算法。一个大素数p>2λ的双线性映射组(G,G
T)被创建,其中λ是安全参数并且e(...)表示双线性映射例如e:G×G→G
T。形式上,g
1是G的生成元并且e(g
1,g
1)被定义为g
T。
H:{0,1}
*→Z
P,H':{0,1}
*→G以及
是三个加密的哈希函数。PSP的公钥被设为
a∈Z
p是随机选择的,且a是一个私钥。PSP随机选择素数p,q其中q|p-1,p≥2
512,q≥2
160,且p≥g。PSP选择x,y,z∈Z
p并且计算
以及
μ是由PSP选择且每日变化的一个密钥。
然后元组
作为公共参数被公布在系统中。最后,PSP使用布隆过滤器初始化三个空集
以及
注意,μ,Ω,Ξ,Ψ每天由PSP进行重置,以保证用户的预订凭证仅在当日有效。
所述注册包括:
1.用户注册:
(1.1)在使用由PSP提供的停车服务之前,用户通过身份证向指定的PKI登记注册;
(1.2)PKI核实用户信息后,返回用户一个由PKI颁发的盲证书certificate={(M',j),(Y',U',z',j',S'1,S'2),B}。
2.PLT注册:
(1.1)PLT创建用户名和密码,并在终端中进行注册;
(1.2)PLT将身份信息(例如,电子商业停车场许可证)上传到PSP,并且PSP验证停车场的资格;
(1.3)验证通过后,PLT将创建一个密钥对
其中b是在Z
P中随机选择的,计算签名密钥
并且将它的公钥B发送给PSP;
(1.4)PSP存储B,停车场信息并完成注册。
所述服务包括:
1.用户证书验证:
(1.1)车辆用户V
i向PSP提交其加入申请和证书,其中,1≤i≤s即这里共有s个车辆用户,且V
i代表第i个用户。首先,PSP验证盲证书的合法性,在证明过程中,用户充当证明者,PSP充当验证者:BV向PSP发送certificate,T
6,HMAC
k2(certificate||T
6),y
i,H(x
i)。其中
x
i是用户自己选择并储存在本地的私钥;
(1.2)如果证书是合法的且在有效期内,则验证成功,PSP在Ω中查找H(xi),若其不存在于Ω中,接收由SM发送的yi 1≤i≤s,允许车辆用户Vi加入群组,并生成一个临时会话令牌SESS,将其发送回用户,并且将其盲证书存储在数据库中;若存在Ω中,则让用户通过SM重新选择xi,直到H(xi)不存在于库中为止。对于车辆用户Vi,PSP向PKI安全发送(yi,certification),PKI将(yi,certification)保存在本地数据库中。否则,PSP将返回失败;
(1.3)用户存储会话令牌SESS。
(1.4)注意,PSP的用户并不是恒定不变的,在PSP提供服务的过程中,必然会不断的加入新的用户。新加入的用户需要使用算法6群公钥更新算法将自己的公钥加入PSP的群公钥中,详细算法见算法6。
2.停车查询:
(2.1)通过使用地理上无法区分的机制来干扰用户当前真实位置(纬度,经度,半径)(lat',lon',rng')=DP(lat,lon,rng,ε);
(2.2)用户通过向PSP发送(lat',lon',rng')和SESS来设置停车要求并请求附近的停车场信息;
(2.3)PSP筛选不符合条件的停车场,并返回查询范围内的停车场清单。
3.停车场预订:
(3.1)用户从返回的列表中选择一个停车场,将预订请求Req及其签名σ发送到PSP,其中Req=Info||SESS||Timestamp信息涉及琐碎的预订信息,timestamp表示当前时间戳;
(3.2)用户计算
作为预订令牌,将U发送给PSP,并与PSP进行非交互的零知识知识证明,其中用户扮演证明者,PSP扮演验证者:
(3.3)在收到请求后,如果证明成功并且令牌U不存在于Ξ中,则PSP接受请求并将U添加到Ξ中。否则,PSP拒绝该请求;
(3.4)PSP将Req||σ发送给对应的PLT;
(3.5)PLT通过签名σ以及公共参数(g,m,u,c,h)来验证签名的合法性,验证成功后PLT会生成一个唯一的随机字符串作为临时停车许可证代码c,将其存储在其本地数据库中,并将其发送回PSP;
(3.6)PSP将c标记为Sigc=H'(c||Timestamp||SESS)a将SESS存储在其令牌池中,并将c||sigc返回给用户。
所述停车包括:
1.停车请求:
(1.1)用户通过SM将c||Timestamp||SESS||Sigc和停车场信息发送到AV;
(1.2)AV切换到自动驾驶模式并根据接收到的信息驱动到所选的停车场。
2.停车检查:
(2.1)当连接到PLT时,AV将c||Timestamp||SESS||Sigc发送到PLT;
(2.2)PLT通过检查
来验证签名Sig
c。如果正确,则PLT在其数据库中搜索c并确保该AV是否已经预留了停车位。如果在其本地数据库中找到c,则PLT删除c并允许AV停放在其中。否则,PLT将返回失败并拒绝提供服务;
(2.3)PLT通过选择随机的θ∈Z
p重签名Sig
c为
并将Sig'
c作为确认收据发送给AV。
3.预订信息重置:
(3.1)AV将收据Sig'c转发给用户的SM,并在用户的SM上通知停车确认消息;
(3.2)在等待随机延迟之后,用户通过向PSP发送c||Timestamp||SESS||Sig'c||U来申请重置自己的预订信息,以实现第二次预订;
(3.3)PSP收到重置请求后,通过以下两个条件检查凭证重置请求的有效性条件:
条件1:PSP通过以下公式验证签名
如果方程式成立,则满足该条件;
条件2:PSP在Ξ和Ψ中搜索U。如果U存在于Ξ中,而不存在于Ψ,则PSP将U添加到Ψ中并删除Ξ中的U,则条件满足。如果其中任何一个未完成,则PSP拒绝该请求并返回失败。否则,PSP将成功返回,用户可以凭借U再次进行车位预订;
所述恶意用户揭露与密钥撤销是:
若匿名身份想PSP发起攻击,在这种情况下,PSP联合PLT向PKI申请打开恶意用户的身份,PSP收集恶意用户发送的相关预订请求(π,ζ,p,Req),利用同余式方程c≡yk(modpk)来计算恶意用户的公钥yk。搜索自身数据库找到恶意用户的盲签名证书certificate并将其提交给PKI。
PKI根据PSP提交的盲签名证书,在库中搜索恶意用户的真实身份,并对其做出惩罚,例如拒绝为其生成新的盲签名等。
进一步地,所述用户注册通过以下算法实现:
PKI盲签名生成用户证书,假设用户利用智能手机SM在PKI处注册,PKI随机·选择3个随机生成元R,R1,R2∈G1
1)SM选择一个随机数ξ
SM,并计算M=A
SM=ξ
SMR
1+R
2,ρ=e(R,Q
PKI),ρ
1=e(R
1,Q
PKI),ρ
2=e(R
2,Q
PKI),y=e(P
pub,Q
PKI)。然后SM向LTA发送
2)PKI选择随机数
并计算e=(M,Γ
PKI),a=e(R,Q),δ=e(M,Q),U=rR,Y=rQ
PKI。然后PKI向注册用户发送z,a,δ,U,Y,T
2 HMAC
K1(z||a||δ||U||Y||T
2)
3)SM选择随机数
并计算M'=αM,A=e(M',Q
PKI)
δ'=δ
uαA
v,z'=z
α,a'=a
uρ
v,Y'=λY+λμQ
PKI-γH
i(j),U'=λU+γP
publ=λ
-1H
2(M',Y',U',A,B,z',a',δ')+μ,j'=lu,k
1=e(Γ
SM,Q
PKI)然后SM向PKI发送l,T
3,HMAC
k1(l||T
3)
4)PKI计算S1=Q+lΓPKI,S2=(r+l)ΓPKI+rH1(j)并向SM发送S1,S2,T4,HMACk1(S1||S2||T4)。如果公式e(R,S1)=ayl,e(M,S1)=δzl成立,SM计算S'1=uS1+VQPKI S'2=αS2,则关于(M',j)的受限部分盲签名是(Y',U',z',j',S'1,S'2)并且给车辆用户SM生成的盲签名是certificate={(M',j),(Y',U',z',j',S'1,S'2),B}J为盲证书的到期时间,Ti为一个用来防止双重攻击的时间戳。
进一步地,所述用户证书验证通过以下算法实现:
PSP验证PKI发布的用户证书,并建立群组:
PSP建立由使用其服务的用户所构成的群组,并担任群管理员。根据中国剩余定理,基于群成员的公钥,PSP可以计算生成一个群公钥。PSP可以利用群公钥来验证停车服务请求时签名的合法性。当群组中有成员加入或者退出时,PSP根据中国剩余定理算法来更新群公钥,采用了Schnorr签名算法;
1)PSP计算A=e(M',QPKI)。如果A≠0,计算i=H4(A,B,QPSP,time)其中time是当前时间的二进制表示。PSP向SM发送challengei
2)SM计算r1=i(ξxα)+β,r2=iα+σ然后SM向PSP发送r1,r2
3)PSP分别计算式子a'=e(P,S'
1)y
-j',δ'=e(M',S'
1)z'
-j'如果式子e(S'
2,R)=e(Y'+H
3(M',Y',U',A,z',a',δ)Q
PKI,P
pub)×e(H
1(j),U')成立,则签名是合法的。当且仅当
时,PSP接受这个证书是合法的。
进一步地,所述PSP生成群公钥算法如下:
PSP利用已经收到的s个用户的公钥,通过同余式方程组计算群公钥:
同余式方程的值是
其中
且p
i'是满足同余式方程p
i'p
i≡1(modp
i)i=1,2…,s的正整数解。C为所求群公钥,RSU选择一个安全的hash函数h并公布参数(g,m,u,c,h)。
表1现有成员公钥
公钥 |
<![CDATA[y<sub>1</sub>]]> |
<![CDATA[y<sub>2</sub>]]> |
… |
<![CDATA[y<sub>i</sub>]]> |
… |
<![CDATA[y<sub>s</sub>]]> |
进一步地,所述停车场预订中(3.1)SM签名算法如下:
采用Scjnorr签名算法对消息进行签名,若用户SM想要对消息Req进行签名,首先,SM选择一个随机数
并计算f=g
ω(modp),π=h(f||Req),ζ=ω-x
kπ(modq),其中g是PKI的身份标识码,x
k是车辆用户SM的私钥,p,q是PSP为车辆用户SM选择的素数。则σ=(π,ζ,p
k)就是车辆用户对消息Req的签名。
进一步地,停车场预订中(3.5)PLT验证SM签名消息的算法如下:
PLT可以通过签名σ=(π,ζ,pk)以及公共参数(g,m,u,c,h)验证这个消息的合法性:
1)计算c≡yk(modpk),获得车辆用户Vk的公钥yk;
2)检查公钥yk是否在中,若是,执行步骤3
4)若式子π=h(f'||Req)成立,则认为该签名消息是由车辆用户Vk签名的,并打开消息;
5)结束。
进一步地,所述用户验证服务中(1.4)群公钥更新算法如下:
新用户Vs+1想要加入PSP的群组,获取其停车服务的支持:
1)对于通过用户证书验证的新用户Vs+1,PSP将车辆用户Vs+1和它对应的盲证书存储在数据库中,并更新表1为表2:
表2更新后的群成员公钥
公钥 |
<![CDATA[y<sub>1</sub>]]> |
<![CDATA[y<sub>2</sub>]]> |
… |
<![CDATA[y<sub>i</sub>]]> |
… |
<![CDATA[y<sub>s</sub>]]> |
<![CDATA[y<sub>s+1</sub>]]> |
2)PSP通过同余式方程组计算新的群公钥:
同余式方程的值为
其中P
new=p
1p
2…p
sp
s+1=Pp
s+1,P
inew和P'
inew的计算方如下:
输入:Pi,Pi',pi(1≤i≤s+1)
1)若1≤i≤s,则计算
其中
因为P'
inewP
inew≡1(modp
i)且P
iP
i'≡1(modp
i);
3)输出:Pinew与P'inew(1≤i≤s+1)
在该方案下,可以实现新成员的高效加入,同时不影响现有成员的密钥,只需要更新群公钥。更新后,PSP公布新的参数组(g,m,u,c,h)。
进一步地,所述恶意用户揭露与密钥撤销中具体成员撤销算法如下:
设当前群组共有s个车辆用户,Vk代表任意一个群成员。若车辆用户Vk(1≤k≤s)想要退出群组,Vk只需将退出申请发送给PSP。PSP更新数据库Vk的公钥yk为y'k,且使同余式方程y'k≡yk(modpk)不成立。并通过同余式方程组来计算一个新的群公钥:
同余式方程组的解为
更新后的现有成员公钥表如表3所示:
表3撤销后的群成员公钥
公钥 |
<![CDATA[y<sub>1</sub>]]> |
<![CDATA[y<sub>2</sub>]]> |
… |
|
<![CDATA[y<sub>k-1</sub>]]> |
<![CDATA[y<sub>k+1</sub>]]> |
… |
<![CDATA[y<sub>s+1</sub>]]> |
成员撤销完成后,同余式方程c'≡yk(modpk)与π=h(f||M)均不成立,用户的预订请求无法被验证,但在这一过程中,不会对原有的车辆用户的密钥发生改变。
进一步地,停车场预订(3.2)中知识证明算法如下:
证明者
1)公式重写为NIZK{(xi,μ)|Uxi=g-μ};
2)选择ρ,ρ
v∈Z
p,计算Δ=U
ρ,η=H(X,Y,Z),
验证者
所述安全模型中地理不可区分的算法如下:
给定参数
(即,默认隐私级别可以设置为低”=0:01,中“=0:004,高”=0:001),实际位置
经噪声机理(平面拉普拉斯算子)的概率密度函数处理后产生的任意点为
两者之间的欧式距离可表示为
也可以表示为极坐标模型
其中rad和θ是关于真实位置和模糊位置之间的距离和角度。为了模糊真实位置θ应该从[0,2π)中随机选取,rad最好被设为
其中W
-1是Lambert W函数(-1分支)并且p应该从[0;1)随机选取。另外,还需要两个转换函数:LatLonToCartesian和CartesianToLatLon。
实现
以及(x,y)→(lat',lon')的转换。因此,
和
另外,
其中τ是精度参数,默认值τ=0.95。
与现有技术相比,本发明的优点在于:
1.用户体验更好:用户只需要根据技术方案,进行操作指令后,即可实现停车操作。用户既不需要将AV停放在指定位置,也不需要呆在车辆附近进行操作,所有操作均可以通过网络完成。
2.对PSP来说更加安全,用户每次只能保留一个匿名凭证并订阅一个车位,防止了恶意用户或者竞争对手生成大量的匿名身份占据大量的停车位,损害PSP与PLT的合法利益。
3.更高的效率:使用基于中国剩余定理的群签名实现用户的加入与撤销,与其他群签名相比,当PSP中的用户数量发生改变时,PSP只需要改变群公钥即可保证系统的正常运行,而其他群签名则需要改变群公钥和群成员公钥才可以保证系统正常运行。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下根据附图并列举实施例,对本发明做进一步详细说明。
如图1所示,本发明的系统模型主要由以下五个实体组成:盲签名证书生成处(PKI),停车场终端(PLT),停车场服务提供商(PSP),自动驾驶汽车(AV)和智能手机(SM)。
盲签名证书生成处(PKI):在本系统模型中,PKI负责审核用户的具体信息,具体表现在用户提交的注册文件如身份证等有效的。它可以接入公安部门的端口,将用户的身份信息以同态加密的方式提交给公安部门进行认证,如果认证通过,则PKI为该用户生成合适的盲签名证书,在这个过程中,PKI是不清楚何时生成了对某一用户身份的盲签名证书,也不知道某一次签名过程中具体签署了什么信息,从而更大限度的保护了用户的隐私。
自动驾驶汽车(AV):对于AVP系统,自动驾驶汽车是关键且可移动的组件。借助自动驾驶技术,智能车辆可以实现自动停车操作。在自动驾驶和停车模式下,AV应该具有自主能力(根据不同情况从低到高),并且还具有基于蜂窝网络的通信能力(例如LTE V2)使其可以直接与网络中的其他实体连接。AV由驾驶员(也就是用户)拥有并在驾驶员的控制下,用户可以命令AV完成某些任务,例如自助泊车。
智能手机(SM):SM是一种智能便携式设备,其计算能力受到限制,并且与AV绑定。显然,任何设计良好的智能手机都可以通过互联网(例如WiFi)与他人进行通信。SM由驾驶员(也就是用户)拥有并在驾驶员的控制下,用户可以安装停车应用程序并使用该应用程序完成预订过程。
停车服务提供商(PSP):PSP是一堆在线服务器,它们为用户提供按需停车服务,包括查找附近的停车位,进行停车位预订和其他高级服务。由于停车管理公司提供的这些服务是订阅服务,所以只有支付会员费的注册用户才能享受这些便捷的服务。此外,这些服务可以作为智能手机应用程序(例如Android/IOS应用程序)发布给用户
停车场终端(PLT):PLT是停车场拥有者部署的终端,负责通过IoT设备(例如摄像机和传感器)监视和管理停车场,例如记录停车场状态和收取停车费。另外,PLT将其停车场的实时状态(例如,停车费,空置的停车位和高海拔地图)上载到PSP,以吸引更多的车辆。同时,PSP可以将该信息用于停车场推荐。
为了清楚地说明预订和停车的情况,本发明仅详细讨论一种类型(先预订,然后停车)的AVP停车服务,最重要的是,用户应在其SM中下载停车应用程序并在PKI上进行注册。此外,有效停车位的公共信息由PSP实时收集。当用户打算找到停车位时,他/她首先需要使用已安装的App通过注册用户身份验证,然后根据他/她的当前位置进行查询并根据他/她的要求进行停车位预订。最终,用户将通过SM与AV通信,让其AV签入并停放在保留的空间,并在停车过程结束时得到确认。本发明忽略了停车服务的接送过程,因为它不在本发明研究范围之内。
安全模型
PSP是诚实但好奇的,即严格遵循协议,但也会通过发起被动攻击而对用户的隐私感到好奇。专利以直观的方式为自动代客泊车服务明确定义了用户的隐私。具体来说,我们希望我们的隐私保留预订方案具有以下两个属性来保护用户的身份隐私:
地理不可区分性:用户使用的位置混淆机制满足“-地理不可区分性”从另一个角度看,用户不应该被完全信任,因为他们很容易发动由自身利益驱动攻击并获得一定利益。本发明的安全模型中,虽然他们只需要一个停车位,但由于他们是匿名用户并且无法跟踪,因此他们可能会故意一次预留/占用许多停车位。因此,在AVP系统的预留过程中,本发明引入了这个名为“双重保留攻击”的新原语。
此外,假设PLT不会与PSP勾结,以损害用户的隐私。由于这种共谋攻击已成为一种物理攻击,因此无法完全基于安全协议来解决。假设PLT与PSP配合使用时,可以使用摄像机记录用户的停车AV,那么无论提议采用何种协议来保护,它都会明确地将用户的真实身份(汽车的唯一执照编号)批准给PSP。在这种情况下,不仅应该设计安全协议,还应该应用隐私法来禁止停车公司在物理世界中的侵犯隐私行为,这超出了本发明的研究范围。
本发明的安全模型存在两个主要限制:1)可以链接用户的两个假名的确切概率取决于各种“边信息”。链接概率不仅取决于匿名性,还取决于用户的要求。这些“边信息”可以链接起来,以识别唯一的人。不过,请注意,常见的停车问题总是发生在人口最多的地区(很多车辆需要在附近停车并且无法轻易找到停车位)和离散方式(驾驶员通常不会连续两次停车/停车)要求),因此在短期内可能会在相邻位置出现大量类似的停车要求,这将有助于缓解这一限制;2)在本发明的安全模型之外,还有其他方法可能会侵犯用户的隐私。例如,蜂窝网络中的原始IP地址可以是用于识别用户的单个标签(也称为网络流量分析)。为了解决这个问题,本发明的可以与其他技术(例如匿名网络Tor)结合使用,以保证用户的隐私。
设计目标
在上述系统和安全模型下,我们的设计目标是提出一种用于自动代客泊车的隐私保护预订方案。特别是,应实现以下三个目标:
安全性:应满足上述安全性要求。即,不仅要保护用户的隐私,而且预订系统还必须只允许用户一次预订一个停车位,以防止“双重预订攻击”。
功能性:应实现支持预约AVP系统的基本功能。基本功能包括用户订阅,用户身份验证和停车预订/取消等。
效率:建议的方案应有效。为了实现可实用的AVP系统预留方案,应同时考虑安全性和效率性问题,以找到一个权衡解决方案。
提出的隐私保护方案
在本节中,我们首先定义隐私保护预订方案的各个部分,然后基于五个基本构建块提出建议的方案的构建:零知识证明,地理不可区分的机制代理重新签名,以及bloomlter数据结构。为了便于阅读,下面给出了在方案中使用的符号的定义:
λ为安全参数;G,G
T位双线性循环映射群;p为一个大质数其长度为λ;g
1为
的生成元;
为三个非加密哈希函数;
为PSP的私钥和公钥;X,Y,Z为
且x,y,z∈Z
p;e(.,.)为双线性映射配对函数μ;μ为每日验证密钥;Ω,Ξ,Ψ为三个数据存储集;
为PLT的私钥以及公钥;R
ab为PLT的签名密钥;certificate为用户盲签名证书;Timestamp为当前的时隙;SESS为每次进行停车时的凭证。
设计概述
如图2所示,AVP系统中建议方案的三个主要部分,包括系统设置,服务阶段和停车阶段。
系统设置:1PLT在PSP上注册自己,并定期更新PSP的实时停车条件;2用户在PKI上注册;3注册用户通过支付宝,支付宝等在线支付订阅服务,并通过智能手机获取匿名用户凭证
服务阶段:1用户通过智能手机以注册用户身份向PSP进行身份验证;2用户查询并搜索附近的停车场中的空车位,然后根据需要选择一个空车位;在图1中,用户向PSP发送预约请求,然后PSP在PLT进行停车预约,然后由PLT生成的停车许可被发送回用户。
停车阶段:1用户通过智能手机将许可证转发给AV,并命令该AV以自动驾驶模式在预留的停车位停车;2AV根据许可证进入停车场并获取确认收据;如图1所示,AV通过与SM的通信将收据转发给用户,并且用户使用收据在PSP处重置预订消息。
主要架构
为了便于理解结构,我们还将基于位置的查询数据(lat;lon;rng)上的地理上无法区分的机制表示为函数DP(lat;log;rng;ε),其中lat;lon是坐标,rng是查询范围,ε是与隐私相关的参数,细节将在后面讨论
系统安装
PKI初始化:PKI选择一个参数g作为自己的标识码,并利用RSA算法生成自己的公私钥对。根据RSA算法,PKI选择:随机的素数b,c,且b≥2
512,c≥2
512,令n=b×c,一个随机数
作为PKI自身公钥,其中
且
然后PKI计算通过同余式方程
得到d,把d作为自身的私钥。PKI公布系统参数(e,n,g),并秘密保存(b,c,d),PSP运行注册算法。一个大素数p>2
λ的双线性映射组(G,G
T)被创建,其中λ是安全参数并且e(...)表示双线性映射例如e:G×G→G
T。形式上,g
1是G的生成元并且e(g
1,g
1)被定义为g
T。
H:{0,1}
*→Z
P,H':{0,1}
*→G以及
是三个加密的哈希函数。PSP的公钥被设为
a∈Z
p是随机选择的,且a是一个私钥。PSP随机选择素数p,q其中q|p-1,p≥2
512,q≥2
160,且p≥g。PSP选择x,y,z∈Z
p并且计算
以及
μ是由PSP选择且每日变化的一个密钥。
然后元组
作为公共参数被公布在系统中。最后,PSP使用布隆过滤器初始化三个空集
以及
注意,μ,Ω,Ξ,Ψ每天由PSP进行重置,以保证用户的预订凭证仅在当日有效。
注册部分
1.用户注册:(1.1)在使用由PSP提供的停车服务之前,用户通过身份证向指定的PKI登记注册;(1.2)PKI核实用户信息后,返回用户一个由PKI颁发的盲证书certificate={(M',j),(Y',U',z',j',S'1,S'2),B}。注册算法(算法1)详见协议细节部分。
2.PLT注册:(1.1)PLT创建用户名和密码,并在终端中进行注册;(1.2)PLT将身份信息(例如,电子商业停车场许可证)上传到PSP,并且PSP验证停车场的资格;(1.3)验证通过后,PLT将创建一个密钥对
其中b是在Z
P中随机选择的,计算签名密钥
并且将它的公钥B发送给PSP(1.4)PSP存储B,停车场信息并完成注册。
服务部分
1.用户证书验证:
(1.1)车辆用户V
i向PSP提交其加入申请和证书,其中,1≤i≤s即这里共有s个车辆用户,且V
i代表第i个用户。首先,PSP验证盲证书的合法性,在证明过程中,用户充当证明者,PSP充当验证者(验证过程见算法2):BV向PSP发送certificate,T
6,HMAC
k2(certificate||T
6),y
i,H(x
i)。其中
x
i是用户自己选择并储存在本地的私钥;
(1.2)如果证书是合法的且在有效期内,则验证成功,PSP在Ω中查找H(xi),若其不存在于Ω中,接收由SM发送的yi 1≤i≤s,允许车辆用户Vi加入群组,并生成一个临时会话令牌SESS,将其发送回用户,并且将其盲证书存储在数据库中;若存在Ω中,则让用户通过SM重新选择xi,直到H(xi)不存在于库中为止。对于车辆用户Vi,PSP向PKI安全发送(yi,certification),PKI将(yi,certification)保存在本地数据库中。否则,PSP将返回失败;
(1.3)用户存储会话令牌SESS。
2.停车查询:
(2.1)通过使用地理上无法区分的机制来干扰用户当前基于位置的查询(纬度,经度,半径)(lat',lon',rng')=DP(lat,lon,rng,ε);
(2.2)用户通过向PSP发送(lat',lon',rng')和SESS来设置停车要求并请求附近的停车场信息;
(2.3)PSP筛选不符合条件的停车场,并返回查询范围内的停车场清单。
3.停车场预订:
(3.1)用户从返回的列表中选择一个停车场,将预订请求Req及其签名σ(签名方式见算法4)发送到PSP,其中Req=Info||SESS||Timestamp信息涉及琐碎的预订信息,timestamp表示当前时间戳;
(3.2)用户计算
作为预订令牌,将U发送给PSP,并与PSP进行非交互的零知识知识证明(算法8),其中用户扮演证明者,PSP扮演验证者:
(3.3)在收到请求后,如果证明成功并且令牌U不存在于Ξ中,则PSP接受请求并将U添加到Ξ中。否则,PSP拒绝该请求;
(3.4)PSP将Req||σ发送给对应的PLT;
(3.5)PLT通过签名σ以及公共参数(g,m,u,c,h)来验证签名的合法性(验证过程见算法5),验证成功后PLT会生成一个唯一的随机字符串作为临时停车许可证代码c,将其存储在其本地数据库中,并将其发送回PSP;
(3.6)PSP将c标记为Sigc=H'(c||Timestamp||SESS)a将SESS存储在其令牌池中,并将c||sigc返回给用户。
停车部分
1.停车请求:
(1.1)用户通过SM将c||Timestamp||SESS||Sigc和停车场信息发送到AV;
(1.2)AV切换到自动驾驶模式并根据接收到的信息驱动到所选的停车场。
2.停车检查:
(2.1)当连接到PLT时,AV将c||Timestamp||SESS||Sigc发送到PLT;
(2.2)PLT通过检查
来验证签名Sig
c。如果正确,则PLT在其数据库中搜索c并确保该AV是否已经预留了停车位。如果在其本地数据库中找到c,则PLT删除c并允许AV停放在其中。否则,PLT将返回失败并拒绝提供服务;
(2.3)PLT通过选择随机的θ∈Z
p重签名Sig
c为
并将Sig'
c作为确认收据发送给AV。
3.预订信息重置:
(3.1)AV将收据Sig'c转发给用户的SM,并在用户的SM上通知停车确认消息;
(3.2)在等待随机延迟之后,用户通过向PSP发送c||Timestamp||SESS||Sig'c||U来申请重置自己的预订信息,以实现第二次预订;
(3.3)PSP收到重置请求后,通过以下两个条件检查凭证重置请求的有效性条件:
(条件1)PSP通过以下公式验证签名
如果方程式成立,则满足该条件;
(条件2)PSP在Ξ和Ψ中搜索U。如果U存在于Ξ中,而不存在于Ψ,则PSP将U添加到Ψ中并删除Ξ中的U,则条件满足。如果其中任何一个未完成,则PSP拒绝该请求并返回失败。否则,PSP将成功返回,用户可以凭借U再次进行车位预订;
用户预订信息丢失找回方案:
系统在实际运行中,难免会因网络不畅等原因导致本应返回给用户的信息在传输过程中丢失。此时,PSP作为服务商存储了会话中的全部信息,因此用户可以根据临时会话令牌申请检查并下载此丢失的信息。由于临时会话令牌是唯一的,并且只有用户和PSP知道,因此只有已经发送“丢失信息找回”请求的授权匿名用户才能检查此保留会话的状态。然后,有两种情况;1)如果请求成功,则用户可以下载确认;2)如果请求不成功,则用户可以重新发送预订请求;
恶意用户揭露与密钥撤销
在PSP服务过程中,总存在一些恶意攻击,例如恶意用户短期内多次预订车位但不停车,并在预订时间截止前取消预订。在这种情况下,PSP可以联合PLT向PKI申请打开恶意用户的身份,PSP收集恶意用户发送的相关预订请求(π,ζ,p,Req),利用同余式方程c≡yk(modpk)来计算恶意用户的公钥yk,具体撤销算法与原理参见算法7。搜索自身数据库找到恶意用户的盲签名证书certificate并将其提交给PKI。
PKI根据PSP提交的盲签名证书,在库中搜索恶意用户的真实身份,并对其做出惩罚,例如拒绝为其生成新的盲签名等。
协议细节
算法1:PKI盲签名生成用户证书
假设用户利用智能手机SM在PKI处注册,PKI随机·选择3个随机生成元R,R1,R2∈G1
1)SM选择一个随机数ξSM,并计算M=ASM=ξSMR1+R2,ρ=e(R,QPKI),ρ1=e(R1,QPKI),ρ2=e(R2,QPKI),y=e(Ppub,QPKI)。然后SM向LTA发送IDSM,M,T1,SIGΓSM(H1(IDSM||M||T1))
2)PKI选择随机数
并计算e=(M,Γ
PKI),a=e(R,Q),δ=e(M,Q),U=rR,Y=rQ
PKI。然后PKI向注册用户发送z,a,δ,U,Y,T
2 HMAC
K1(z||a||δ||U||Y||T
2)
3)SM选择随机数
并计算M'=αM,A=e(M',Q
PKI)
δ'=δ
uαA
v,z'=z
α,a'=a
uρ
v,Y'=λY+λμQ
PKI-γH
i(j),U'=λU+γP
publ=λ
-1H
2(M',Y',U',A,B,z',a',δ')+μ,j'=lu,k
1=e(Γ
SM,Q
PKI)然后SM向PKI发送l,T
3,HMAC
k1(l||T
3)
4)PKI计算S1=Q+lΓPKI,S2=(r+l)ΓPKI+rH1(j)并向SM发送S1,S2,T4,HMACk1(S1||S2||T4)。如果公式e(R,S1)=ayl,e(M,S1)=δzl成立,SM计算S1'=uS1+VQPKI S'2=αS2,则关于(M',j)的受限部分盲签名是(Y',U',z',j',S1',S'2)并且给车辆用户SM生成的盲签名是certificate={(M',j),(Y',U',z',j',S'1,S'2),B}J为盲证书的到期时间,Ti为一个用来防止双重攻击的时间戳;
算法2:PSP验证PKI发布的用户证书,并建立群组:
PSP建立由使用其服务的用户所构成的群组,并担任群管理员。根据中国剩余定理,基于群成员的公钥(算法3),PSP可以计算生成一个群公钥。PSP可以利用群公钥来验证停车服务请求时签名的合法性。当群组中有成员加入或者退出时,PSP根据中国剩余定理算法来更新群公钥,并且不需要更新其他未发生变动的群成员密钥对,只需要相应的更新群公钥即可。即,不论成员是加入还是成员撤销,群中的旧成员的密钥对不需要发生改变,大大地提高了车联网中群签名方案的效率,降低了计算负载。为了提高安全性,本章采用了Schnorr签名算法;
1)PSP计算A=e(M',QPKI)。如果A≠0,计算i=H4(A,B,QPSP,time)其中time是当前时间的二进制表示。PSP向SM发送challengei
2)SM计算r1=i(ξxα)+β,r2=iα+σ然后SM向PSP发送r1,r2
3)PSP分别计算式子a'=e(P,S
1')y
-j',δ'=e(M',S
1')z'
-j'如果式子e(S'
2,R)=e(Y'+H
3(M',Y',U',A,z',a',δ)Q
PKI,P
pub)×e(H
1(j),U')成立,则签名是合法的。当且仅当
时,PSP接受这个证书是合法的。
算法3:PSP生成群公钥:
PSP利用已经收到的s个用户的公钥,通过同余式方程组计算群公钥:
同余式方程的值是
其中
且p'
i是满足同余式方程p'
ip
i≡1(modp
i)i=1,2…,s的正整数解。C为所求群公钥,RSU选择一个安全的hash函数h并公布参数(g,m,u,c,h)。
表1现有成员公钥
公钥 |
<![CDATA[y<sub>1</sub>]]> |
<![CDATA[y<sub>2</sub>]]> |
… |
<![CDATA[y<sub>i</sub>]]> |
… |
<![CDATA[y<sub>s</sub>]]> |
算法4:SM签名算法
本发明采用了Scjnorr签名算法对消息进行签名,若用户SM想要对消息Req进行签名,首先,SM选择一个随机数
并计算f=g
ω(modp),π=h(f||Req),ζ=ω-x
kπ(modq),其中g是PKI的身份标识码,x
k是车辆用户SM的私钥,p,q是PSP为车辆用户SM选择的素数。则σ=(π,ζ,p
k)就是车辆用户对消息Req的签名。
算法5:PLT验证SM签名消息
PLT可以通过签名σ=(π,ζ,pk)以及公共参数(g,m,u,c,h)验证这个消息的合法性:
6)计算c≡yk(modpk),获得车辆用户Vk的公钥yk;
7)检查公钥yk是否在中,若是,执行步骤3
9)若式子π=h(f'||Req)成立,则认为该签名消息是由车辆用户Vk签名的,并打开消息;
10)结束。
算法6:群成员加入:
在现实中,总有新用户Vs+1想要加入PSP的群组,获取其停车服务的支持:
1)对于通过算法2的新用户Vs+1,PSP将车辆用户Vs+1和它对应的忙证书存储在数据库中,并更新表1为表2:
表2更新后的群成员公钥
公钥 |
<![CDATA[y<sub>1</sub>]]> |
<![CDATA[y<sub>2</sub>]]> |
… |
<![CDATA[y<sub>i</sub>]]> |
… |
<![CDATA[y<sub>s</sub>]]> |
<![CDATA[y<sub>s+1</sub>]]> |
2)PSP通过同余式方程组计算新的群公钥:
同余式方程的值为
其中P
new=p
1p
2…p
sp
s+1=Pp
s+1,P
inew和P'
inew的计算方如下:
输入:Pi,Pi',pi(1≤i≤s+1)
4)若1≤i≤s,则计算
其中
因为P'
inewP
inew≡1(modp
i)且P
iP
i'≡1(modp
i);
6)输出:Pinew与P'inew(1≤i≤s+1)
在该方案下,可以实现新成员的高效加入,同时不影响现有成员的密钥,只需要更新群公钥。更新后,PSP公布新的参数组(g,m,u,c,h)。
算法7:成员撤销:
设当前群组共有s个车辆用户,Vk代表任意一个群成员。若车辆用户Vk(1≤k≤s)想要退出群组,Vk只需将退出申请发送给PSP。PSP更新数据库Vk的公钥yk为y'k,且使同余式方程y'k≡yk(modpk)不成立。并通过同余式方程组来计算一个新的群公钥:
同余式方程组的解为
更新后的现有成员公钥表如表3所示:
表3撤销后的群成员公钥
公钥 |
<![CDATA[y<sub>1</sub>]]> |
<![CDATA[y<sub>2</sub>]]> |
… |
<![CDATA[y<sub>k-1</sub>]]> |
<![CDATA[y<sub>k+1</sub>]]> |
… |
<![CDATA[y<sub>s+1</sub>]]> |
成员撤销完成后,同余式方程c'≡yk(modpk)与π=h(f||M)均不成立,用户的预订请求无法被验证,但在这一过程中,不会对原有的车辆用户的密钥发生改变。
本发明提出了在随机预言模型(Fiat-Shamir启发式)中安全的非交互式零知识知识证明(NIZK)。
证明者
2)选择ρ,ρ
v∈Z
p,计算Δ=U
ρ,η=H(X,Y,Z),
验证者
算法9:地理不可区分算法
给定参数
(即,默认隐私级别可以设置为低”=0:01,中“=0:004,高”=0:001),实际位置
经噪声机理(平面拉普拉斯算子)的概率密度函数处理后产生的任意点为
两者之间的欧式距离可表示为
也可以表示为极坐标模型
其中rad和θ是关于真实位置和模糊位置之间的距离和角度。为了模糊真实位置θ应该从[0,2π)中随机选取,rad最好被设为
其中W
-1是Lambert W函数(-1分支)并且p应该从[0;1)随机选取。另外,还需要两个转换函数:LatLonToCartesian和CartesianToLatLon。
实现
以及(x,y)→(lat',lon')的转换。因此,
和
另外,
其中τ是精度参数(默认值τ=0.95)。
其他补充
该构造需要对三组进行有效的组成员资格测试Ω,Ξ和Ψ,并且正确使用了标准BloomIter(BF)数据结构。此数据结构的特征与我们的构造要求非常吻合,其中包括大型数据集的压缩存储,零误报率和快速搜索算法:由于预留/停车请求的数量很大,BF有助于减少存储费用;由于每个预订令牌U只能使用一次,因此如果错误率为零,则BF不能将其遗漏;快速搜索算法可以加快测试速度并降低计算成本。通常,BF由m个单元的数组组成,每个单元是一个初始值为0的位,以及k个独立的随机哈希函数,其中m和k由BF支持的最大数据项数量。
本发明具有的特点:
匿名性:在本发明中,首先PKI利用盲签名对用户信息进行签名,生产盲签名证书,用户SM可以利用该盲签名向PSP申请匿名身份,并进行车位预订,在整个过程中,PSP无法得知用户的真实身份且保证了用户的身份是唯一且合法的;
可撤销性:PLT可以联合PSP对使用服务的恶意用户进行密钥撤销操作,当恶意用户的公钥被撤销后,其可以对自己发出的停车预订信息进行签名,但PLT由于其公钥不是PSP管理的群公钥的一部分,故PLT不会接受其预订请求,从而阻止了用户利用旧有的公钥实现车位预订。
地理不可区分性:“-地理不可区分性定义为
其中P是条件概率。每个观察值为
其中
是一组可能的报告位置,而d(pos,pos')是pos和pos'两者之间的欧几里得距离通过在提出的方案中将平面拉普拉斯噪声N=(rad,θ)添加到原始位置(lat,lon)(lat;lon),可以将报告的位置视为混淆的位置pos'=(lat',lon'),并且满足“地域可分辨性”。
保证用户的身份隐私和位置隐私,并防止恶意用户进行“双重保留攻击”。由驾驶员自己选择,这使得可以通过位置混淆机制轻松保护任何驾驶员的位置隐私。
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的实施方法,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。