车联网中具有强隐私保护的无证书签名方案

2022-11-08 12:42朱栋殷新春宁建廷
计算机应用 2022年10期
关键词:私钥公钥攻击者

朱栋,殷新春,2*,宁建廷

(1.扬州大学 信息工程学院,江苏 扬州 225127;2.扬州大学 广陵学院,江苏 扬州 225000;3.福建师范大学 计算机与网络空间安全学院,福州 350117)

0 引言

随着汽车保有量的快速增长,交通运输所面临的压力也日益增加。如何实现车、路、人的智能交互以提高通行效率,减少交通拥堵和事故已成为当下亟待解决的问题。车联网(Internet of Vehicles,IoV)作为物联网和移动互联网在交通领域的衍生,正是在这个背景下出现的。车联网以车辆为主要载体可以实现多种方式的智能交互,包括车与车(Vehicle to Vehicle,V2V)、车与基础设施(Vehicle to Infrastructure,V2I)和车与网络(Vehicle to Network,V2N)。为了优化交通网络、保障驾驶安全,车辆通过专用短程通信(Dedicated Short Range Communication,DSRC)[1]或蜂窝车联网(Cellular Vehicle to Everything,C-V2X)[2]技术周期性地向车载单元(On Board Unit,OBU)和路边单元(Road Side Unit,RSU)广播车辆的行驶状态信息(速度、路况、位置及是否有突发事件)。

由于车辆与其他实体之间的通信都是在无线网络环境下进行的,信息在传输过程中极易被监听、篡改或伪造[3-4],所以确保消息的完整性和认证性尤为重要。同时,若车辆的身份标识被截获,车辆的隐私将难以保证,攻击者可以利用监听到的行驶状态信息定位车辆,从而威胁车主的个人安全。因此,需要采取技术手段保障通信安全和隐私。匿名接入认证[5]可以利用假名身份代替身份标识进行通信,即使攻击者窃听到某车辆的行驶状态信息,也无法识别出车辆的身份标识,因此,可以保障车辆的身份隐私以及传输消息的完整性、认证性。然而匿名接入认证方案存在通信和存储开销大、隐私保护效果差的问题,如何在加强隐私保护的同时减少计算及通信开销是值得研究的问题。

为解决车联网的通信安全和隐私问题,文献[6]中提出了一种基于身份的匿名批量认证方案,该方案利用防篡改设备(Tamper-Proof Device,TPD)存储系统主密钥,由于车辆每次与RSU 通信前可以生成一次动态的假名身份,因此攻击者无法确定不同消息的发送者是否为同一车辆,从而降低车辆被追踪的风险,该方案实现了强隐私保护;文献[7]中提出了一种无双线性配对运算的匿名认证方案,该方案的假名身份生成机制与文献[6,8-9]类似,它们的安全性都基于TPD 不可入侵、不可篡改的假设。但是,文献[10]中提出了差分功率分析的统计方法,如果攻击者使用侧信道攻击就有可能获取TPD 中存储的系统主密钥,因此文献[6-9]中的方案面临潜在的安全风险。

为了避免车辆依赖TPD 计算假名身份而带来的密钥泄露问题,许多学者采用可信中心生成假名身份的思路设计方案[11-16]。文献[11]中提出了一种具有条件隐私保护的无证书聚合签名方案,该方案被指出无法抵抗恶意但被动的密钥生成中心(Key Generation Center,KGC)攻击[12]。文献[13]中提出了一种具有完全聚合功能的匿名认证方案,该方案采用预签名的方式减少了实际签名时所需的计算开销;但该方案无法抵抗恶意的KGC 攻击[14]。文献[15]中提出了适用于车联网的高效且安全的无证书聚合签名方案,由于该方案未使用双线性配对运算,所以相较于文献[11-14]中的方案,其通信和计算开销较小;但是,文献[11-13,15]每次通信使用的假名身份是相同的,而静态的假名身份会导致车辆被追踪的风险增加,这使得方案的隐私保护能力较弱。为了加强隐私保护能力,文献[14]中提出了一种改进的无证书聚合签名方案,可信中心一次性为车辆生成一组假名身份,通过频繁更换假名身份的方式避免了车辆被追踪的问题,实现了强力的隐私保护。文献[16]在提出了一种无双线性配对运算的无证书聚合签名方案,利用加载假名身份池的方式频繁更换假名身份以实现强力的隐私保护,但是该方案无法抵抗恶意的KGC 攻击[17]。文献[18]中提出了一种适用于V2V 的无证书短签名方案,与文献[16]中的方案类似,该方案同样通过加载TPD 中存储的假名身份池使车辆每次都能使用不同的假名身份。文献[14,16,18]中的方案存在着共同的问题,即假名身份的动态改变会导致对应私钥的频繁更新;此外,接收和存储多个假名身份和部分私钥也会加重系统的通信开销以及车辆的存储开销。

在文献[19-21]所提的方案中,车辆向RSU 请求假名身份,从而避免可信中心为车辆生成大量的假名身份和部分私钥;但是,若攻击者沿途广播RSU 的消息诱使车辆请求假名身份,车辆的行驶路线还是会被泄露,导致无法实现强力的隐私保护。如果车辆为逃避追踪,向RSU 提供虚假的身份信息,RSU 将无法验证[20-21]。此外,文献[19]中的方案还存在过分依赖TPD 的问题[10]。文献[22]中提出了一种适用于车联网的无证书聚合签名认证密钥协商方案,该方案引入临时身份实现了对车辆的强力隐私保护,车辆不再需要接收、存储多个临时身份及对应的部分私钥。在文献[17]中,车辆利用时间函数和可信中心发送的随机因子生成假名身份,在避免多余的通信开销的同时,还实现了不可链接性,但是该方案无法抵抗签名伪造攻击[23]。总的来说,文献[17-21]中的方案还需要进一步的完善。

为了解决上述问题并避免公钥信息成为攻击者的追踪诱因,本文提出了一种适用于车联网的无证书聚合签名方案,该方案既可以实现强隐私保护又能缓解私钥频繁更新带来的通信和存储开销高的问题。

1 预备知识

1.1 困难性问题

1)椭圆曲线离散对数(Elliptic Curve Discrete Logarithm,ECDL)问题。取阶为大素数q的加法群G,P为群G的一个生成元。已知P,aP∈G,ECDL 问题的目标是计算a∈。

2)计算性Diffie-Hellman(Computational Diffie-Hellman,CDH)问题。取阶为大素数q的加法群G,P为群G的一个生成元。已知aP,bP∈G,对于任意未知的a,b∈,CDH 问题的目标是计算abP∈G。

1.2 车联网系统模型

车联网系统模型主要包括4 个参与者:可信中心(Trusted Authority,TA)、KGC、RSU 和车辆。车联网系统模型的通信分为上、下两层,TA、KGC 和RSU 之间的通信处于上层,车辆和车辆、车辆和RSU 的通信处于下层,上层通信通过安全的有线网络实现,下层通信通过安全系数较低的无线网络实现。

1)TA:通常为交通管理部门,主要负责车辆和RSU 的注册,并且在必要时刻,TA 可以根据车辆的伪身份恢复出其真实身份。

2)KGC:是半可信的第三方机构,主要负责生成系统参数,并为车辆生成部分私钥。

3)车辆:能够与RSU 及其他车辆进行通信,进而获得相应的交通信息。同时,车辆可以生成假名身份、公钥和消息的签名。

4)RSU:指安装在道路两侧的基础设施。RSU 通过无线通信向监管范围内的车辆广播自己的身份和公钥,验证车辆发送的消息签名。然后,它会将有效的消息动态聚合并转发给TA。最后,RSU 将从TA 处接收的信息以广播的形式传递给周围的车辆。若RSU 周边出现事故,RSU 有权向TA 举报并协助TA 追踪车辆。

1.3 安全需求

1)认证性和完整性:消息接收者要确认接收的消息来自注册过的车辆,即消息来源是可靠的,且消息在传输过程中未被篡改。

2)匿名性:除TA外,其他实体无法通过车辆的假名身份识别出车辆的真实身份。

3)可追踪性:若RSU 的监管范围内发生恶意事件,如车辆提供虚假交通信息,RSU 将协助TA 追踪恶意车辆的真实身份。

4)强隐私保护:在保证车辆匿名性的同时,保证攻击者无法根据假名身份信息得知车辆的行驶轨迹。

1.4 本文方案的定义

本文方案由9 个多项式时间算法构成,具体的算法描述如下:

1)系统初始化算法:该算法由KGC 和TA 执行。输入安全参数λ,输出系统主密钥α∈、TA 的私钥β∈,系统公共参数params。KGC 秘密保存α并公开params,TA秘密保存β。

2)路边单元注册算法:该算法由RSUj和TA 执行。输入RSUj身份的Pj∈{0,1}l,输出RSUj的公钥Yj、私钥yj。RSUj将(Pj,Yj)发送给TA,审核通过后,TA 公布合法的RSU 的信息

3)车辆注册算法:该算法由车辆Vi和TA 执行。输入params、当前时间戳TOiT和车辆Vi的真实身份RIDi∈{0,1}l,输出对称密钥KOiT、车辆Vi的伪身份Qi和Xi。车辆Vi利用KOiT加密Qi为eOiT,并通过周边的RSUj将(eOiT,Xi,TOiT)发送给TA。然后,TA 解密eOiT为Qi,验证Qi的有效性,若有效,则设置Qi的有效期为Tendi,将(Qi,Xi,Tendi)发送给KGC。

4)提取部分私钥算法:该算法由KGC 执行。输入params、α、Qi、Xi和Tendi,输出车辆Vi的部分私钥的转换值ki和Ri。KGC 通过RSUj将(ki,Ri,Tendi)发送给车辆Vi。车辆Vi根据ki计算出部分私钥di,验证di是否有效。

5)假名身份生成算法:该算法由车辆Vi执行。输入params、Qi、车辆Vi的当前时间戳Ti、RSUj的身份Pj和公钥Yj,输出车辆Vi的假名身份IDi,公钥PKi=(X'i,R'i)。

6)签名算法:该算法由车辆Vi执行。输入params、Qi、IDi、Tendi、xi、di和消息mi||ti,输出签名σi。车辆Vi将请求消息Req=(m‖iti,σi,IDi,PKi,Tendi)发送给周边的RSUj。

7)单个签名验证算法:该算法由RSUj执行。输入params、mi‖ti、σi、IDi、PKi和Tendi,RSUj验证σi是否有效,若签名有效,输出VALID;否则,输出INVALID。

8)聚合签名算法:该算法由RSUj执行。输入(m‖iti,σi,IDi,PKi,Tendi)i∈[1,2,…,k](k≤n),输出聚合签名σagg和(Qi,Xi,Ri)i∈[1,2,…,k],RSUj将{(m‖iti,σi,IDi,PKi,Tendi)i∈[1,2,…,k],σagg}通过安全信道发送给TA。

9)聚合签名验证算法:该算法由TA 执行。输入{(m‖iti,σi,IDi,PKi,Tendi)i∈[1,2,…,k],σagg},TA 验证聚合签名σagg是否有效,若签名有效,输出VALID;否则,输出INVALID。

2 相关方案分析

本章对文献[15]方案进行了介绍,此外,还对文献[14-15,18]方案进行了安全性分析。

2.1 文献[15]方案介绍

1)系统初始化算法:输入安全参数λ,TA 和KGC 选取两个大素数p和q,选取P作为群G的生成元。KGC 随机选取s∈作为系统主密钥并计算系统公钥Ppub=sP。TA 随机选取b∈并计算公钥Tpub=bP。KGC 和TA 选取3 个安 全的哈希函数:H1,H2,H3:{0,1}*→,公开系统参数params=(P,p,q,G,H1,H2,H3,Ppub,Tpub)。系统内的车辆Vi向TA 发送真实身份RIDi进行注册,然后获取系统参数params并将其存储在OBU 内。RSU 也在该阶段注册并获取系统参数params。

2)假名身份生成算法:车辆Vi随机选取ti∈,计算PIDi,1=tiP,Ki=tiTpub⊕RIDi,将(PIDi,1,Ki)发送给TA。TA收到车辆Vi发送的(PIDi,1,Ki)后,计算RIDi=Ki⊕bPIDi,1,检验RIDi是否已注册,若未注册,TA 拒绝执行;否则,TA 为假名身份设置有效期ΔTi,计算PIDi,2=RIDi⊕H1(bPIDi,‖1ΔTi)并向KGC 发送假名身份PIDi=(PIDi,1,PIDi,2,ΔTi)。

3)提取部分私钥算法:KGC 随机选取ri∈Z*q,计算Ri=riP,h1i=H1(PIDi‖Ri‖Ppub) 和车辆Vi的部分私钥pski=(ri+sh1i) modq。然后,KGC 通过安全通道将(Ri,pski,PIDi)发送给车辆Vi。车辆Vi验证等式pskiP=Ri+h1iPpub是否成立:若成立,则将(Ri,pski,PIDi)存储在OBU 内;否则,拒绝并重新申请部分私钥。

4)设置秘密值算法:车辆Vi随机选取xi∈作为秘密值并计算Xi=xiP。

5)密钥生成算法:车辆Vi计算h2i=H2(PIDi‖Xi),部分公钥Qi=Ri+h2iXi,设置公钥PKi=(Qi,Ri),私钥SKi=(pski,xi)。

6)签名算法:车辆Vi获取当前时间戳Ti并随机选取ui∈,计算Ui=uiP,h2i=H2(PIDi‖Xi),h3i=H3(PID‖im‖iPK‖iU‖iTi),Si=[ui+h3i(pski+h2ixi)]modq,设置签名σi=(Ui,Si)。然后,车辆Vi向周边的RSU 发送请求消息(PIDi,PKi,mi,Ti,σi)。

7)验证算法:接收到来自车辆Vi的请求消息(PIDi,PKi,mi,Ti,σi)后,RSU 首先检查假名身份的有效期ΔTi和签名的时间戳Ti是否有效:若无效,则不接收该消息;否则,计算h1i=H1(PID‖iR‖iPpub),h3i=H3(PID‖im‖iPK‖iU‖iTi)。验证等式SiP=Ui+h3i(Qi+h1iPpub)是否成立:若成立,则接收该消息;否则,拒绝该消息。

2.2 文献[15]方案分析

恶意车辆伪造攻击的步骤如下:

1)恶意车辆在无线通道中截获车辆Vi发送的请求消息(PIDi,PKi,mi,Ti,σi),其中σi=(Ui,Si);

3)恶意车辆选取一个消息m*≠mi,选取和新的时间戳,计算,

RSU 首先检查假名身份PIDi的有效期ΔTi和签名的时间戳T'i是否有效:若无效,则不接收该消息签名;否则,计算验证等式是否成立:若成立,则接收该消息;否则,拒绝接收该消息。

正确性伪造签名的正确性证明如下:

2.3 伪造成功的原因以及隐私保护分析

1)安全性方面。在2.2 节中,文献[15]方案不能抵抗恶意车辆的攻击,即攻击者可以通过替换公钥的方法伪造签名[24]。恶意车辆拥有替换车辆公钥的能力,通过选取新的公钥替换旧的公钥PKi,线性消除部分私钥对应的系统公钥hiPpub,由于Ppub=sP,消除验证等式的hiPpub就代表消除了主密钥s的影响,攻击者无需解决ECDL 问题即可伪造一个有效的签名。

恶意的KGC 不可以使用类似替换公钥的方式伪造签名,但是它可以知道主密钥s以及车辆的部分私钥(部分私钥由KGC 计算)。在文献[18]方案的签名阶段,车辆Vi随机选取ai∈,计算Ai=aiPpub,δi=H2(m‖iAID‖ipk‖iA‖iPpub),ηi=δi(ai+ui+λi) modq。车辆Vi设置Θi=(ηi,Ai)为消息mi上的签名,其中Ppub=βP是系统公钥,AIDi是车辆Vi的假名身份,pki=Xi+Yi是车辆Vi的公钥(Xi=uiPpub,Yi=λiPpub),而ui、λi分别是车辆Vi的秘密值、部分私钥。然后,任何RSU 都可以通过验证等式ηiPpub=δi(Ai+pki)判断签名的有效性。

2)隐私保护方面。在文献[14]方案中,车辆向TA 请求一组假名身份前,车辆需向TA 传输m个PIDi,1,TA 完成假名身份生成算法后,向KGC 传输m个假名身份PSUIDi={PSUIDi,j=(PSUIDi,1,j,PSUIDi,2,j,TPi,j)}j∈[1,2,…,m],然后,KGC生成m个对应的部分私钥并将它们传输给车辆。可以看出,假名身份的动态改变完全基于部分私钥的频繁更新,每次车辆发送消息时,将从一组假名身份中选取一个假名身份及对应的部分私钥用于生成签名,使用完便将其删除。通过这种方式无疑可以避免因静态假名身份带来的轨迹泄露问题,但也加重了系统的通信开销以及车辆的存储代价,所以不宜用于资源受限的车联网环境。

在文献[15]方案中,PIDi是TA 一次生成的。因此,当车辆在不同的地点、不同的时间段向RSU 发送请求消息(PIDi,PKi,mi,Ti,σi)时,所用的PIDi是不变的。攻击者可以识别出源自同一车辆的不同消息,从而获取该车辆的行驶路线,据此分析,攻击者可以得出车主的驾驶习惯,车主的隐私和安全会遭受到威胁。同时,若公钥PKi是静态的,这也将会成为攻击者探视车辆隐私的重要线索。由文献[14-15]方案可以看出,强隐私保护和低系统开销是一对矛盾,很难同时实现。

3 本文方案

为了抵抗公钥替换攻击和恶意KGC 的攻击,保护车辆隐私并维持较低的系统开销,本文提出了一种适用于车联网的具有强隐私保护的无证书聚合签名方案。本文方案的部分符号说明如表1 所示。

表1 本文方案的部分符号Tab.1 Some symbols used in the proposed scheme

3.1 具有强隐私保护的无证书聚合签名方案

1)系统初始化算法:该算法由KGC 和TA 执行。输入安全参数λ,KGC 和TA 运行该算法生成两个大素数p和q,生成阶为q的加法循环群G,选取P为群G的生成元。然后,KGC随机选取α∈为系统主密钥,计算系统公钥Ppub=αP。TA 随机选取β∈并计算其公钥Tpub=βP。KGC 选取5 个安全的哈希函数:H:G×{0,1}*→{0,1}l,H0:G→,H1:{0,1}l×G×G×{0,1}*×G→,H2:{0,1}l×G×G×G×{0,1}*×{0,1}*→,H':G×{0,1}*×{0,1}l→{0,1}l,选取对称加解密算法:Ek,DECk。最后,KGC 公开系统参数params=(q,G,P,Ppub,Tpub,Ek,DECk,H,H0,H1,H2,H')。系 统内的车辆Vi(i∈[1,2,…,n]) 向 TA 发送真实身份RIDi∈{0,1}l进行登记,然后获取系统参数params并将其存储在车辆Vi的设备内。

2)路边单元注册算法:该算法由RSUj和TA 执行。RSUj随机选取yj∈为私钥,计算公钥Yj=yjP,然后RSUj将身份Pj∈{0,1}l和公钥Yj通过安全通道发送给TA。TA 审核RSUj的身份信息,确认后公布合法RSU 的信息(Pj,Yj)j∈[1,2,…,m]。

3)车辆注册算法:该算法由车辆Vi和TA 执行。车辆Vi随机选取秘密值xi∈,计算Xi=xiP,伪身份Qi=RIDi⊕H(xiTpu‖bTOiT),对称密钥kOiT=H(xiTpu‖bTOiT)(TOiT是当前设备的时间戳),车辆Vi利用kOiT对Qi加密:eOiT=然后,车辆Vi通过周边的RSUj将(eOiT,Xi,TOiT)发送给TA。TA 接收到车辆Vi发送的(eOiT,Xi,TOiT)后,首先验证TOiT的有效性:若无效,则拒绝接收;否则,TA 计算kTOi=H(βX‖iTOiT)。然后,TA 利用kTOi解密:Qi=(eOiT),计算RIDi=Qi⊕H(βX‖iTOiT),检验记录是否存在RIDi的信息:若不存在,TA 终止执行该算法;否则,TA 保存(RIDi,Qi)并将(Qi,Tendi,Xi)通过安全通道发送给KGC(Tendi是伪身份的有效期,当Tendi到期后,车辆Vi需要再次申请伪身份的授权)。

4)提取部分私钥算法:该算法由KGC 执行。接收到TA发送的(Qi,Tendi,Xi)后,KGC 随机选取ri∈,计算Ri=riP,h1i=H1(Qi‖Ri‖Ppub‖Tendi‖Xi),部分私钥的转换值ki=ri+αh1i-H0(αXi) modq。然后,KGC 通过RSUj将(ki,Ri,Tendi)发送给车辆Vi。车辆Vi接收到(ki,Ri,Tendi)后,计算部分私钥di=ki+H0(xiPpub) modq,h1i=H1(Qi‖Ri‖Ppub‖Tendi‖Xi),验证等式diP=Ri+h1iPpub是否成立:若成立,则接收;否则,重新注册并申请部分私钥。

5)假名身份生成算法:该算法由车辆Vi执行。假设车辆Vi每当驶入某RSU 的范围内都会执行该算法。当车辆Vi驶入RSUj的区域内会接收到RSUj广播的身份和公钥信息,若车辆Vi根据TA 公布的合法RSU 信息,检查出RSUj的身份与公钥信息不匹配,则不执行该算法;否则,车辆Vi获取当前的时间戳Ti,选取zi∈,计算Zi=ziP,Fi=ziYj,=Fi+Xi,=Fi+Ri,设置公钥PKi=计算IDi1=Qi⊕H'(F‖iT‖iPj),令IDi2=Zi,设置车辆Vi的假名身份IDi=(IDi1,IDi2,Ti)。

6)签名算法:该算法由车辆Vi执行。车辆Vi随机选取ui∈,计算Ui=uiP,选取当前时间戳ti和待提交的消息mi,计算h2i=H2(Qi‖Xi‖Ri‖Ui‖mi‖ti),vi=ui+h2i(di+xi) modq,设置签名σi=(Ui,vi)。车辆Vi将请求消息Req=(σi,PKi,Tendi,m‖iti,IDi)发送给周边的RSUj。

7)单个签名验证算法:该算法由RSUj执行。接收到车辆Vi发送的请求消息后,RSUj检查Tendi、Ti和ti是否有效:若无效,则拒绝接收;否则,RSUj计算Fi=IDi2yj,Qi=IDi1⊕H'(Fi‖Ti‖Pj),Xi=-Fi,Ri=-Fi,h1i=H1(Q‖iR‖iPpu‖bTend‖iXi),h2i=H2(Q‖iX‖iR‖iU‖im‖iti),验证等式viP=Ui+h2i(Ri+h1iPpub+Xi)是否成立:若成立,则输出VALID;否则,输出INVALID。

3.2 正确性证明

本文方案的正确性证明如下:

聚合签名验证算法的正确性证明如下:

4 安全性分析

4.1 安全模型

根据文献[25]中的安全模型,无证书公钥密码体系内有两类具备不同能力的攻击者AΙ和AΙΙ。AΙ模拟一个恶意的车辆,而AΙΙ模拟一个恶意但被动的KGC。

1)攻击者AΙ:由AΙ发动的攻击又可称为类型I(Type I)攻击,这类攻击者无法获取系统主密钥及车辆的部分私钥,但可以通过重新选取秘密值的方式替换合法车辆的公钥。

2)攻击者AΙΙ:由AΙΙ发动的攻击又可称为类型II(Type II)攻击,这类攻击者拥有系统主密钥,可获取合法车辆的部分私钥,但不能替换合法车辆的公钥。

4.2 安全性证明

定理1在随机预言模型中,若存在一个恶意的车辆AΙ能在概率多项式时间内以ε的优势成功伪造一个签名,那么存在一个挑战者CΙ能够在概率多项式时间内以ε1的优势解决ECDL 问题。

其中:ε1≥(qppk+qsig+k)e,qppk表示部分私钥询问次数,qsig表示部分签名询问次数,k表示构成聚合签名的签名者的数量,e 表示 自然对数的底数,ε表示AΙ能成功伪造一个签名的优势。

证明 假设CΙ是一个ECDL 问题的解决者,AΙ通过与CΙ交互,从而在多个消息上伪造有效的聚合签名,CΙ调用AΙ作为子程序求解ECDL 问题。ECDL 问题的输入为(P,Q=αP),其中α∈,P,Q∈G,CΙ的目标是通过与AΙ交互计算出α。

CΙ维护列表L1、L2、Lppk、Luser分别用于跟踪AΙ对预言机H1、H2的哈希询问、部分私钥询问以及创建用户询问。初始化时各列表均为空,AΙ和CΙ之间的交互如下:

1)初始化阶段:CΙ运行系统初始化算法,将系统参数params=(q,G,P,Ppub,Tpub,Ek,DECk,H1,H2) 发送给AΙ。然后,AΙ挑选车辆作目标用户。2)询问阶段:AΙ适应性地向CΙ提交最多多项式有界次的询问。

①H1询问:当CΙ收到AΙ的H1(Qi‖Ri‖Ppub‖Tendi‖Xi) 询问时,若列表L1中包含(Qi,Ri,Ppub,Tendi,Xi,h1i),则CΙ返回h1i给AΙ;否则,CΙ随机选取h1i∈,将(Qi,Ri,Ppub,Tendi,Xi,h1i)加入列表L1并返回h1i给AΙ。

②H2询问:当CΙ收到AΙ的H2(Qi‖Xi‖Ri‖Ui‖mi‖ti) 询问时,若列表L2中包含(Qi,Xi,Ri,Uimi,ti,h2i),则CΙ返回h2i给AΙ;否则,CΙ随机选取h2i∈,将(Qi,Xi,Ri,Ui,mi,ti,h2i)加入列表L2并返回h2i给AΙ。

③部分私钥询问:当CΙ收到AΙ的部分私钥询问时,若列表Lppk中包含(IDi,di,Ri),则CΙ返回(di,Ri)给AΙ。否则,CΙ执行以下操作:若IDi=,CΙ终止操作;若IDi≠,CΙ随机选取ai,h1i∈,令di=ai,H1(Qi‖Ri‖Ppub‖Tendi‖Xi=h1i),计算Ri=diP-h1iPpub,将(Qi,Ri,Ppub,Tendi,Xi,h1i)、(IDi,di,Ri)分别加入列表L1、Lppk,返回(di,Ri)给AΙ。

通过解3k+1 个线性无关方程,CΙ会计算出α作为ECDL 问题的有效解,从而解决ECDL 问题。

CΙ能够在概率多项式时间内以ε1的优势解决ECDL 问题需要满足下列3 个条件:

条件1(E1)AΙ提交部分私钥和签名询问而不被终止。

条件2(E2)AΙ能够成功伪造一个签名。

条件3(E3)AΙ能够成功伪造一个签名且CΙ不会终止游戏。

CΙ在概率多项式时间内解决ECDL 问题的优势为:

定理2在随机预言模型中,若存在一个类型II 攻击者AΙΙ能在概率多项式时间内以ε的优势成功伪造一个签名,那么存在一个挑战者CΙΙ能够在概率多项式时间内以ε2的优势解决ECDL 问题。

其中,ε2≥ε/(qsv+qsig+k)e,qsv表示秘密值询问次数,k表示构成聚合签名的签名者的数量,e 表示自然对数的底数,ε表示AΙΙ能成功伪造一个签名的优势。

证明 假设CΙΙ是一个ECDL 问题的解决者,AΙΙ通过与CΙΙ交互,从而对消息伪造有效的聚合签名,CΙΙ调用AΙΙ作为子程序求解ECDL 问题。ECDL 问题的输入为(P,Q=xP),其中x∈,P,Q∈G,CΙΙ的目标是通过与AΙΙ交互计算出x。

CΙΙ维护列表L1、L2、Luser分别用于跟踪AΙΙ对预言机H1,H2的哈希询问以及创建用户询问。初始化时各列表均为空,AΙΙ和CΙΙ之间的交互如下:

1)初始化阶段:CΙΙ运行系统初始化算法,将系统参数params=(q,G,P,Ppub,Tpub,Ek,DECk,H1,H2)和主密钥α发送给AΙΙ。然后,AΙΙ挑选车辆作目标用户。2)询问阶段:AΙΙ适应性地向CΙΙ提交最多多项式有界次的询问。

①H1询问:当CΙΙ收到AΙΙ的H1(Qi‖Ri‖Ppub‖Tendi‖Xi) 询问时,若列表L1中包含(Qi,Ri,Ppub,Tendi,Xi,h1i),则CΙΙ返回h1i给AΙΙ;否则,CΙΙ随机选取h1i∈,将(Qi,Ri,Ppub,Tendi,Xi,h1i)加入列表L1并返回h1i给AΙΙ。

②H2询问:当CΙΙ收到AΙΙ的H2(Qi‖Xi‖Ri‖Ui‖mi‖ti) 询问时,若列表L2中包含(Qi,Xi,Ri,Ui,mi,ti,h2i),则CΙΙ返回h2i给AΙΙ;否则,CΙΙ随机选取h2i∈,将(Qi,Xi,Ri,Ui,mi,ti,h2i)加入列表L2并返回h2i给AΙΙ。

③创建用户询问:当CΙΙ收到AΙΙ的创建用户询问时,若列表Luser中包含(IDi,Xi,Ri,di,xi),则CΙΙ返回(Xi,Ri)给AΙΙ。否则,CΙΙ执行以下操作:若IDi=,CΙΙ随机选取bi,h1i∈,令H1(Qi‖Ri‖Ppub‖Tendi‖Xi)=h1i,计算Ri=biP,Xi=Q=xP,di=bi+αh1imodq,将(Qi,Ri,Ppub,Tendi,Xi,h1i)、(IDi,Xi,Ri,di,⊥)分别加入列表L1、Luser,返回(Xi,Ri)给AΙΙ;若IDi≠,CΙΙ随机选取ri,h1i,xi∈,令H1(Q‖iR‖iPpu‖bTend‖iXi)=h1i,计算Xi=xiP,Ri=riP,将(Qi,Ri,Ppub,Tendi,Xi,h1i)、(IDi,Xi,Ri,di,xi)分别加入列表L1、Luser,返回(Xi,Ri)给AΙΙ。

④秘密值询问:当CΙΙ收到AΙΙ的秘密值询问时,CΙΙ执行以下操作:若IDi=,CΙΙ终止操作;若IDi≠,CΙΙ从列表Luser中获取(IDi,Xi,Ri,di,xi)并返回xi给AΙΙ,如果列表Luser中不包含(IDi,Xi,Ri,di,xi),CΙΙ先提交关于IDi的创建用户询问并将(xi,Xi)加入列表Luser,最后,CΙΙ返回xi给AΙΙ。

通过解k+1 个线性无关方程,CΙΙ会计算出x作为ECDL问题的有效解,从而解决ECDL 问题。

CΙΙ能够在概率多项式时间内以ε2的优势解决ECDL 问题需要满足下列3 个条件:

条件4(E4)AΙΙ提交秘密值询问和签名询问而不被终止。

条件5(E5)AΙΙ能够成功伪造一个签名。

条件6(E6)AΙΙ能够成功伪造一个签名且CΙΙ不会终止游戏。

CΙΙ在概率多项式时间内解决ECDL 问题的优势为:

在询问阶段,若IDi=,CΙΙ会终止操作。假 设Pr [IDi=]=δ,则CΙΙ不终止操作的概率为(1 -δ),从而CΙΙ提交qsv、qsig次秘密值、签名询问而不被终止的概率为(1 -,即Pr [E4]≥。AΙΙ能够成功伪造一个签名的优势为ε,所以Pr [E5|E4]≥ε。在E4和E5都满足的情况下,当IDi=(i=1),IDi≠(i∈[2,3,…,k])时,CΙΙ不终止操作,则Pr [E6|E4∧E5]=δ(1 -δ)k-1。因此得到:

4.3 安全需求分析

4.3.1 认证性和完整性

这两种性质可从定理1 和定理2 的不可伪造性证明中得到。在本文方案中,无论类型I、类型II 攻击者都无法通过伪造签名的方式通过验证,只有已注册车辆发送的签名能够得到有效验证,而消息被篡改,导致签名的变化,签名将无法被验证为有效。所以,本文方案满足这两种性质。

4.3.2 匿名性

在本文方案中,车辆的真实身份被完全隐藏,除了TA 和车辆,其他实体或攻击者都无法还原出车辆的真实身份。车辆的匿名性以如下方式实现:伪身份Qi=RIDi⊕H(xiTpu‖bTOiT),假名身份IDi1=Qi⊕H'(F‖iT‖iPj),其中Fi=ziYj=yjZi=ziyjP,而zi、yj分别为车辆、RSU 的私有值。基于CDH 问题,除车辆以及与之通信的RSU外,其他实体无法计算出ziyjP。若攻击者采用入侵RSU 的方式获取yj,它也无法计算出xiTpub,从而不能根据伪身份Qi还原出真实身份RIDi。因此,本文方案实现了匿名通信。

4.3.3 可追踪性

出于隐私保护的考虑,需要保证车辆的匿名性;但是,在某些情况下(例如:交通事故、肇事逃逸),TA 应拥有追查车辆身份的能力。车辆的可追踪性以如下方式实现:事故周边的RSU 可在第一时间内获知目标车辆的假名身份IDi=(IDi1,IDi2,Ti),然后 RSU 根据私钥yj,计算Qi=IDi1⊕H'(yjIDi‖2T‖iPj)并将伪身份Qi提交给TA。最终,TA查找Qi对应的RIDi还原出肇事车辆的真实身份。

4.3.4 强隐私保护

车辆每当驶入RSU 的监管范围内都会重新选取秘密值zi∈,计算Fi=ziYj,利用其作为输入参数更新假名身份IDi1=Qi⊕H'(yjIDi2‖Ti‖Pj) 和公钥PKi=(Xi,Ri)(=Xi+Fi,=Ri+Fi)。因此,车辆的假名身份和公钥信息可以随着RSU 划分区域的不同而动态改变,基于CDH 问题,任何实体都无法根据假名身份或公钥信息实现跨区域追踪。若在一段区域内发送多个消息,车辆可以不改变其假名身份和公钥信息,待进入下一RSU 所处区域内再更新其假名身份和公钥信息,这样既可以保证攻击者无法获取车辆的行驶轨迹,同时也可以减少不必要的系统开销。

5 性能分析

本章将从计算开销、通信开销和安全性3 个方面进行性能分析。在计算开销方面,本文采用文献[7]的实验结果,各种密码学运算的运行时间[7]如表2 所示。在通信开销方面,各个参数及其长度规格参考文献[15]中的数据,对比了Bilinear Pairing 和椭圆曲线密码学(Elliptic Curve Cryptography,ECC),具体如表3 所示,另外规定时间戳长度为32 bit,用符号|T|表示。

表2 运算操作的时间Tab.2 Operation time

表3 Bilinear Pairing和ECC中参数的长度Tab.3 Length of parameters in Bilinear Pairing and ECC

在计算开销方面,本文主要统计签名算法、验证算法和聚合验证算法的计算开销。由于文献[13-14]中的方案需要执行复杂的双线性对和映射到点运算,而文献[19]中的方案需要执行较多的乘法运算,所以这些方案的总计算开销(签名+验证)较大。如表4 所示,相较于文献[13-14,19]中的方案,本文方案的总计算开销分别减少了91.3%、93.8%和28.4%。同时本文方案采用聚合签名技术进行认证,如图1所示,当需要验证的请求消息数量较大时,相较于文献[13-14,19]中的方案,本文方案的计算性能提升明显。虽然文献[15-16,18]中所提方案的总计算开销较本文方案稍低,但在聚合验证算法方面,本文方案的计算开销与文献[15]基本持平。此外,尽管文献[16,18]的聚合验证算法开销比本文方案稍低,但这些方案无法抵抗恶意KGC 的攻击,难以保证车联网对通信安全的基本要求。总体而言,本文方案的计算开销具有一定的优势。

表4 不同方案的计算开销对比Tab.4 Comparison of computational cost for different schemes

在通信开销方面,本文主要衡量签名传输所需元素的长度,包括假名身份、公钥、签名和时间戳。由于文献[18-19]采用批处理而非聚合技术,所以不统计其聚合签名长度和传输聚合签名的通信开销。以文献[15]方案和本文方案为例,在文献 [15] 中,Req=(PIDi,PKi,σi,Ti),PIDi=(PIDi,1,PIDi,2,ΔTi),公钥PKi=(Qi,Ri),签名σi=(Ui,Si),PIDi,1,PKi,Ui∈G,PIDi,2∈{0,1}l,Si∈,Ti和ΔTi的长度为|T|,传输单个签名通信开销为4 |G|++2 |T|=1 504 bit,Reqagg=(PIDi,PKi,Ti,σagg)i∈[1,2,…,k],其中聚合签名σagg=(U1,U2,,…,Uk,S),传输聚合签名 的通信开销为=134 560 bit(k取100)。在 本文方案中,Req=(IDi,PKi,σi,Tendi,ti),假名身份IDi=(IDi1,IDi2,Ti),公钥PKi=签名σi=(Ui,vi),其中IDi2,PKi,Ui∈G,IDi1∈{0,1}l,vi∈,Tendi,ti和Ti的长度为|T|,传输单个签名通信开销为 4 |G|+|+3 |T|=1 536 bit,Reqagg=(Qi,Xi,Ri,Tendi,Ti,ti,σagg)i∈[1,2,…,k],其中σagg=(U1,U2,,…,Uk,v),传输聚合签名 的通信开销为3k|G|++3k|T|=105 760 bit。

通信开销如表5 所示,其中符号“—”表示未涉及该要求。结合表3 和表5,相较于文献[13-14,19]中的方案,本文方案的签名长度分别减小了76.6%、76.6%和50.0%。相较于文献[15-16,18]中的方案,本文方案在传输单个签名时耗费的通信开销稍大,但本文方案在RSU 转发聚合签名时,只需要传输伪身份Qi,无需传输假名身份IDi,减少了k个群元素的传输。如图2 所示,相较于文献[13-16],在传输聚合签名时,本文方案需要耗费的通信开销较小。另外,在文献[14,16,18]的方案中,可信中心需要一次性为车辆生成多个假名身份和部分私钥,无可避免地会导致系统的通信开销增大。总体而言,本文方案的通信开销具有一定的优势。

表5 不同方案的通信开销对比Tab.5 Comparison of communication overhead for different schemes

在安全性方面,如表6 所示,其中,符号“√”表示满足该要求,“×”表示不满足该要求。文献[13,16,18]方案无法抵抗Type II 攻击,文献[15]方案无法抵抗Type I 攻击,而本文方案在随机预言模型下被证明是可以抵抗Type I 和Type II攻击。在文献[13,15]方案中,车辆每次通信使用的假名身份是相同的,而攻击者可以根据静态的假名身份追踪车辆,因此文献[13,15]方案只具备较弱的隐私保护能力。虽然文献[19]方案的假名身份不是静态的,但是无法抵抗伪装RSU的攻击,因此该方案的隐私保护能力较弱。文献[14,16,18]方案满足强力的隐私保护,但需要可信中心一次性为车辆生成和发送多个假名身份及相对应的部分私钥,这会增加额外的通信开销,同时车辆设备需要存储多个假名身份和部分私钥,相应地会加重车辆的存储代价。另外,在文献[13-16,18-19]方案中,车辆向验证者提供的公钥PKi是不变的,可能会成为攻击者获取车辆行驶路线的信息。在本文方案中,车辆的假名身份和公钥随着RSU 区域的变化而动态更新。基于CDH 问题,车辆利用随机因子zi和RSU 的公钥Yj更新假名身份和公钥信息,无需接收和存储多个假名身份和部分私钥,解决了私钥频繁更新的问题,避免了额外的存储代价和通信开销。

表6 不同方案的安全性能对比Tab.6 Comparison of security performance for different schemes

综上所述,与文献[13-14,19]方案相比,本文方案的计算、通信和安全性能更佳。另外,相较于文献[15-16,18]方案,本文方案的通信和安全性能也具有一定的优势,而计算开销则与对比方案基本处于同一水平。

6 结语

本文对Thumbur等[15]和Mei等[14]的无证书聚合签名方案进行了分析,发现他们的方案无法同时满足强隐私保护和低系统开销的要求。因此,本文提出了一种具有强隐私保护能力且计算高效的无证书聚合签名方案。在本文方案中,车辆的假名身份和公钥信息可以随着RSU 所处区域的变化而动态更新,不仅满足了车辆的匿名性,还避免了车辆被追踪的风险。基于ECDL 问题,在随机预言模型下证明了本文方案可以抵抗公钥替换攻击和恶意KGC 的攻击。性能分析表明,与其他对比方案相比,本文方案在计算开销、通信开销和安全性方面都具有一定优势。在未来工作中,将在SUMO(Simulation of Urban MObility)、OMNET++(ObjectiveModular NEtwork Testbed in C++)仿真平台上深入、完善地模拟本文方案。

猜你喜欢
私钥公钥攻击者
基于贝叶斯博弈的防御资源调配模型研究
比特币的安全性到底有多高
Spatially defined single-cell transcriptional profiling characterizes diverse chondrocyte subtypes and nucleus pulposus progenitors in human intervertebral discs
程序员把7500枚比特币扔掉损失巨大
神奇的公钥密码
正面迎接批判
正面迎接批判
一种基于虚拟私钥的OpenSSL与CSP交互方案
国密SM2密码算法的C语言实现
基于身份的聚合签名体制研究