吴甜甜,杨亚芳,赵运磊
(复旦大学 计算机科学技术学院,上海 200433)
随着经济的发展,全球的汽车保有量呈逐渐增长趋势。车联网(Internet of Vehicles,IoV)的产业化[1]和普及对于构建和谐的汽车社会具有重要意义[2],但车联网通信中的隐私泄露问题[3]严重阻碍了其应用落地[4]。车辆在行驶过程中需要定期生成安全信息发送给其他车辆或设备,附近的车辆可以根据收到的交通信息及时做出反应以避免交通混乱,如交通拥堵、交通事故等。在这种情况下,如果恶意车辆篡改他人发送的消息、冒充其他车辆发送信息或是故意发送虚假信息,都会造成严重的交通事故甚至人员伤亡[5]。对此,许多研究者设计了面向车联网V2X(Vehicle to Everything)安全通信的条件隐私保护认证协议。然而,现有协议大多只考虑车辆的可认证性而忽略了用户的可认证性,不能适用于单车多用户或单用户多车的应用场景,并且在发生纠纷时只能追溯到车辆的真实身份,不能追溯到用户的真实身份。
本文提出一种面向车联网安全通信的条件隐私保护认证协议。该协议根据用户身份信息和车辆身份信息生成车与用户绑定的生物密钥,适用于单车多用户或单用户多车的场景。同时,协议支持车辆及用户的条件隐私保护,即消息认证时不暴露车辆和用户的身份信息,在特定情况下可追溯到用户和车辆。此外,协议中消息批量验证的功能也可满足车联网低延时通信的要求。
许多研究者提出了不同的面向车联网V2X的隐私保护认证方案,其中一部分方案是基于公钥基础设施(Public Key Infrastructure,PKI)设计的,如IEEE 1609.2中PKI 被标准化,用于V2X 的安全应用。在传统基于PKI 的密码体制中,由证书机构(Certification Authority,CA)为用户颁发证书,通信双方可以通过消息的数字签名来保证消息来源的可靠性。在文献[6]提出的方案中,车辆会在一定的时间间隔内向CA 请求短期假名。为减少与CA 的通信开销,文献[7]提出了车辆自我生成假名的机制。文献[8]提出一种假名变更策略,避免了同一假名使用时间过长而被跟踪的问题。文献[9]提出的MixGroup 隐私保护方案通过使用假名交互策略和集成群组签名机制构造扩展的假名更改区域,允许该区域内的车辆连续交换其假名,更大程度上保护了车辆的位置隐私。尽管PKI 针对车联网可以提供认证性和不可否认性等安全特性,但存在一些不足,其中最重要的是证书管理带来的巨大通信和计算开销。文献[10]通过改进现有的车辆PKI 并引入布隆过滤器压缩证书撤销列表,在保证隐私的前提下提出了有效的假名撤销方案。
此外,对称加密方案也被广泛应用于V2X 通信。相比于PKI,使用MAC 码进行消息认证的对称密码具有更高的计算效率和更低的通信负载,因而更为高效。文献[11]首次提出了基于对称密码的车联网认证协议,而在文献[12]提出的协议中,车辆在没有中央授权的情况下保留用于认证的随机密钥集,以便在零信任策略下保护用户的隐私。文献[13-14]提出了双重认证和密钥托管技术,一方面利用双重认证机制提供更高的安全性,防止未授权的车辆进入到网络中,另一方面利用双重认证的群组密码管理机制有效地将群组密钥分发给所有成员。文献[15]提出一种基于对称密码的轻量级认证协议,使用存储在防篡改设备中的哈希链,通过不断更新密钥种子实现了系统密钥的更新。然而,基于对称密码的认证协议因存在密钥管理问题而易受攻击,并且会导致通信和存储的开销,同时此类协议缺乏不可否认性,无法为每辆车都提供认证。
除上述两类方案外,许多基于身份的方案也被相继提出。在基于身份基签名(Identity-Based Signature,IBS)的方案中,节点的身份被作为公钥,基于身份生成的私钥被用于对消息进行签名,从而避免为公钥分配证书,省去了繁重的证书管理工作。文献[16]设计一种基于椭圆曲线密码的身份基签名,并将其应用在V2X 通信中。文献[17]提出的方案能够支持批量验证,文献[18-19]提出的方案则在效率上取得了提高。文献[20]提出一种不需要任何限制的身份认证协议,其不依赖于任何路侧单元(Road Side Unit,RSU)、假名和防篡改设备,可实现车辆间的相互认证。文献[21]提出一种结合PKI 和身份基的混合条件隐私保护认证协议。在该协议中,基于身份的签名避免了证书撤销列表的检查和复杂的双线性配对操作。同时,可信任第三方可以通过撤销唯一的长期证书为车辆撤销身份。
此外,一些无证书签名方案也被应用到车联网环境中。文献[22]提出一种名为CLMA 的无证书匿名认证机制。该机制基于环上容错学习问题和支持口令认证的密钥交换技术,在车辆通过路侧单元访问车辆云服务时,能够提供相互认证功能。文献[23]提出一种基于Schnorr 的隐式证书认证方案SCMS,其将验证签名者公钥有效性和验证签名的过程相结合,相比于现有基于公钥的方案进一步提高了V2X 通信的效率。文献[24]提出一种名为SE-CLASA 的基于无证书的认证协议。该协议不依赖于完全受信任的第三方,且签名方案支持聚合,能够抵抗信息注入攻击。
传统场景假设一辆车仅供一个合法用户使用,在用户登录车辆之前并不对用户的身份进行认证,存在安全隐患,而实际中存在单车多用户或单用户多车的场景。单车多用户场景指的是同一辆车可能需要被不同的用户驾驶;单用户多车场景指的是同一个用户可能拥有多辆车的使用权。此时,需要在用户登录车辆前对用户身份的合法性进行验证,只有具有权限的合法用户才能登录车辆并拒绝非法用户。目前大部分方案由于不具备用户可认证性,因此并不适用于单车多用户或单用户多车的场景。
传统方案将车辆行驶通信时的车和用户看作一个整体,当发生纠纷时仅可追溯到发送消息的车辆而不能确定消息的来源用户。例如,在单车多用户场景中,某用户驾驶车辆超速行驶,交通监管部门需要对驾驶车辆的用户进行处罚,此时,该用户可能会否认驾驶过该车辆或声称是其他用户驾驶从而逃避处罚。因此,在确定消息来源时,不仅需要追溯发送该消息的车辆的真实身份,而且还需要追溯发送该消息的用户的真实身份。
设G1、G2和GT为大素数p阶的乘法循环群,g1和g2分别是G1和G2中的元素。双线性映射e:G1×G2→GT具有以下特点:
1)双线性:对任意的g1∊G1,g2∊G2,∀a,b∊,e(,)=e(g1,g2)ab。
2)非退化性:令g1和g2分别 是G1和G2的生成元,e(,)≠1。
3)可计算性:对所有的g1∊G1和g2∊G2,e(g1,g2)都是可以高效计算的。
椭圆曲线离散对数问题(Elliptic Curve Discrete Logarithm Problem,ECDLP)描述如下:令G为有限域上的椭圆曲线群,P为G的生成元,给定椭圆曲线中的元素P,Q∊G,对于任意概率多项式时间的算法,计算未知的a,使得Q=aP。
输入任意长度的消息x,哈希函数h可以输出一个短的、定长的比特串y作为其消息摘要。如果一个哈希函数满足以下3 个性质,则称该哈希函数是安全的:
1)单向性:对任意输入x,计算h(x)是容易的;对给定y,计算x使得y=h-1(x)是困难的。
2)弱抗碰撞性:给定x1,计算出x2且x1≠x2使得h(x1)=h(x2)是困难的。
3)强抗碰撞性:找到一组x1≠x2使得h(x1)=h(x2)是困难的。
生物信息即生物特征,每个人都具有独特的生物特征,分为身体特征和行为特征两种。身体特征是与生俱来的先天特征,主要包括指纹、虹膜、面容、声纹等;行为特征是后天形成的具有个人特色的行为和习惯,主要包括签名、语音等。可以用于身份验证的生物特征应具有以下特点:
1)普遍性:每个人都拥有该生物特征。
2)唯一性:每个人的该生物特征都是唯一的。
3)不易变性:该生物特征很难发生变化。
4)可采集性:在现有技术下,该生物特征容易采集并储存。
5)安全性:该生物特征很难被伪造。
在车联网环境中,可使用生物特征对用户进行身份验证,通过生物特征识别技术将生物传感器获取到的生物信息转换为可直接计算的数据。车联网中的生物信息主要被用于注册阶段和用户认证阶段。注册阶段利用传感器收集用户的生物信息,将其转换为计算机可识别的信息并进行存储;用户认证阶段利用传感器收集用户生物信息并与数据库中存储的信息进行比对,从而验证用户的合法性。
如图1 所示,本文协议中包含4 种实体,即用户、车载单元(On-Board Uint,OBU)、路侧单元(RSU)和可信任第三方(Trusted Authority,TA)。
图1 系统模型Fig.1 System model
1)用户是车辆的驾驶员,协议使用用户的生物信息代表其身份信息。在单车多用户或单用户多车场景中,同一用户可能拥有多辆汽车,同一车辆可能由多个用户使用。
2)OBU 包括生物设备(Biometric Device,BD)和防篡改设备(Tamper Proof Device,TPD)。BD 用于存储生物信息;TPD 用于存储密码材料。现有技术可保证TPD 不可篡改且不可通过暴力手段获取其中信息。所有联网汽车均安装电子单元OBU。
3)RSU 为路侧单元,可以与RSU 辖区内的车辆进行通信。
4)TA 为完全可信任的第三方认证机构,拥有无限的计算资源和存储空间。
V2X 通信主要包括V2V(Vehicle to Vehicle)通信和V2I(Vehicle to Infrastructure)通信两类。V2V通信是指车辆与车辆之间的通信;V2I 通信是指车辆与RSU 之间的通信。
一个安全的面向车联网通信的条件隐私保护认证协议应满足以下要求:
1)匿名性:在通信过程中,除TA 以外的任何人不能获得车辆的真实身份信息。
2)不可伪造性:任意攻击者不能伪造出合法的签名。
3)强可追溯性:在发生纠纷时,TA 不仅可以追溯到发送信息的车辆的真实身份,而且还可以追溯到发送该消息的用户的真实身份。
4)不可链接性:任意车辆不能确认接收的不同信息是否来源于同一车辆。
5)抵御中间人攻击:攻击者不能实现中间人攻击。
本文提出的面向车联网安全通信的条件隐私保护认证协议由8 个算法组成,具体如下:
1)系统初始化算法Setup。该算法由TA 执行,输入安全参数λ,输出系统私钥和公共参数params。
2)注册算法Register。该算法由TA 执行,输入车辆Vi的真实身份RIDi、用户的身份信息pu和车辆的相关信息Infoi,u,完成车辆和用户的注册功能。在此阶段,TA 生成车辆和用户绑定的生物密钥和初始匿名身份,并为OBU 配置必要的参数。
3)用户认证算法UserVerify。该算法由车辆的BD 单元执行,输入未经验证的用户身份信息,完成用户车辆身份认证功能。
4)离线匿名身份生成算法PidGen。该算法由车辆的TPD 单元执行,输入车辆的初始匿名身份,为车辆生成签名需要的匿名身份和私钥
5)消息签名算法MesSign。该算法由消息的发送方执行,输入签名消息Mi,输出对应消息的签名。
6)消息验证算法MesVerify。该算法由消息的接收方执行,输入(PIDi,Mi,Ts,σi)。输出一位b。若签名合法,则b=1,否则b=0,完成对消息的认证。
7)批量验证算法BatchVerify。该算法由消息的接收方执行,输入需要验证的多条消息签名,输出一位b。若签名合法,则b=1,否则b=0,完成对消息的批量验证。
8)追溯算法Trace。该算法由可信任第三方执行,输入车辆的匿名身份PIDi,输出用户和车辆的真实身份信息。
本文协议的安全性由定义在挑战者C 和敌手A之间的游戏(Game)进行界定。游戏过程如下:
1)Setup 阶段。挑战者C 输入安全参数λ,运行Setup 算法生成系统私钥和公共参数params,并将params 发送给敌手A。
2)Query 阶段。敌手A 可以任意询问以下预言机:
(1)哈希询问h-Oracle:敌手A 输入任意数据x,挑战者C 将对应的h(x)输出给A。
(2)哈希询问H-Oracle:敌手A 输入任意数据x,挑战者C 将对应的H(x)输出给A。
(3)签名询问Sign-Oracle:敌手A 输入需要签名的消息M*,挑战者C 将生成的签名消息{PID*,M*,Ts*,σ*}返回给A。
3)Forge 阶段。敌手A 输入M*,输出伪造的消息签名{PID*,M*,Ts*,σ*}。
定义敌手赢得游戏当且仅当{PID*,M*,Ts*,σ*}是一个有效的签名且签名预言机从未收到过签名询问M*。
定义1选择消息攻击下存在性不可伪造性
如果敌手A 赢得Game 的概率是可忽略的,那么本文协议中的签名方案在适应性选择消息攻击下是存在性不可伪造的。
本文协议中的符号和参数定义如表1 所示。
表1 符号和参数定义Table 1 Definition of symbols and parameters
本文协议中的算法描述如下:
1)Setup(1λ)→params
输入安全参数λ,TA 的具体操作如下:
(1)TA 随机选取两个大素数p、q和非平凡的椭圆曲线E:y2=x3+ax+bmodp,其 中a,b∊Fp。令G为椭圆曲线E上的所有点和无穷远点O构成的群,随机选取群G中阶为q的生成元P。
(2)TA 随机选取x∊,s∊,设置系统私钥SK=x和身份设置私钥sk=s,以及系统公钥PK=xP和身份设置公钥pk=sP。
(3)TA 选取安全的抗碰撞哈希函数hl、h、H,函数形式分别为:hl:(0,1)*→(0,1)l,h:G→(0,1)l,H:(0,1)*→。
设置系统公共参数params=(G,p,q,P,PK,pk,hl,h,H)。
2)Register(RIDi,pu,Infoi,u)
TA 完成系统初始化后,车辆和用户即可注册。用户将生物信息录入车辆传感器中,生成身份信息pu。注册时,车辆将(RIDi,pu,Infoi,u)发送给TA,TA对信息的正确性进行验证后执行以下操作:
(1)计算生物密钥pwi,u=hl(RIDi⊕pu)。
(2)随机生成车辆Vi和用户pu绑定的初始匿名身份。
(3)添加(number,RIDi,pu,pwi,u,,Infoi,u)到维护的注册信息列表,其中,number 为条目的编号。
(4)分别计算keeperi.u=(RIDi⊕pwi,u)和verifieri,u=hl(pwi,u)。
(5)为BD单元配置参数(pwi,u,keeperi,u,verifieri,u),为TPD单元配置参数
需要登录车辆的未经验证的用户向车辆传感器输入生物信息,生成用户身份,由车辆的BD 单元执行UserVerify 算法验证用户的身份合法性。具体操作如下:
(2)查询是否存在pwi,u=。若不存在,则拒绝;否则根据存储结果获取pwi,u所对应的keeperi,u和verifieri,u,继续下述操作。
该算法由OBU中的TPD执行,输入UserVerifer()中经过验证后获得的初始化匿名身份,离线生成匿名身份和签名私钥。具体操作如下:
(1)随机选取wi∊。
(2)计算PIDi=
(3)设置PIDi对应的签名私钥ski=wi。
(4)输出
5)MesSign(Mi,
该算法输入需要签名的消息Mi,由TPD 单元执行。具体操作如下:
(1)在上述过程中离线生成的匿名身份和密钥对中随机选取一组
(2)计算fi=H(PIDi||Mi||Ts)。
(3)计算σi=ski+fi˙SK modq。
(4)输出{PIDi,Mi,Ts,σi}并进行广播。
6)MesVerify(PIDi,Mi,Ts,σi)→b
该算法由接收方完成,对接收信息{PIDi,Mi,Ts,σi}进行验证,输出一位b。若b=1,则表示接收消息签名,若b=0,则表示拒绝消息签名。具体操作如下:
(1)设当前系统的时间为Tcur,有效时间差为Δ。若|Tcur-Ts|>Δ,则当前消息失效,丢弃;否则继续下述步骤。
(2)计算fi=H(PIDi||Mi||Ts)。
(3)验证σi˙P=PIDi,1+fi˙PK 是否成立。若等式成立,输出b=1,否则输出b=0。
7)BatchVerify({PID1,M1,Ts1,σ1},{PID2,M2,Ts2,σ2},…,{PIDn,Mn,Tsn,σn})→b
为提高通信效率,车辆在同一时间收到其通信范围内的多条签名信息后,使用批量验证提高验证的效率。输入车辆接收到的多条信息{PID1,M1,Ts1,σ1},{PID2,M2,Ts2,σ2},…,{PIDn,Mn,Tsn,σn},输出一位b。若b=1,则表示接收这些消息签名,若b=0,则表示拒绝这些消息签名。具体操作如下:
(1)接收方检验所有信息中的时间Tsi是否有效,若无效则拒绝接收该消息,其中,i=1,2,…,n。
(2)随机选取一组由随机整数构成的向量c={c1,c2,…,cn},其中,ci∊[1,2t],t为一个小整数。
8)Trace(PIDi)→(RIDi,pu)
该算法输入匿名身份PIDi,实现对真实身份的追溯。具体操作如下:
(1)计算α=sk ˙PIDi,1=s˙PIDi,1。
(3)查询(number,RIDipu,pwi,u,,Infoi,u),输出车辆初始化匿名身份对应的车辆真实身份RIDi和用户真实身份pu。
本文协议中的签名方案满足计算正确性,其单条消息验证和批量验证过程如下:
对本文协议的安全性从匿名性、不可伪造性、强可追溯性、不可链接性和抵御中间人攻击这5 个方面进行形式化证明。
定理1(匿名性)除了TA,没有人可以知道发送消息的车辆真实身份。
证明车辆的真实身份RIDi仅在车辆注册阶段通过安全信道发送给TA,只有TA 维护表格(number,RIDi,pu,pwi,u,,Infoi,u)。在此阶段,除了车辆和TA 之外,任何第三方均不能获得车辆的真实身份。车辆在后续消息的签名验证过程中使用匿名身份。该匿名身份在注册阶段由TA 为车辆生成,即使攻击者对签名消息窃听,也不能获取车辆的真实身份RIDi。
定理2(不可伪造性)假设ECDLP 问题是困难的,在随机预言机模型下,本文方案是适应性选择消息攻击下存在性不可伪造的。
证明在随机预言机模型下,假设存在敌手A能够在多项式时间t内以不可忽略的概率在游戏中获胜,则存在算法C 能够以不可忽略的概率解决ECDLP困难问题。
假设算法C 是一个关于ECDLP 的有效算法,输入为(P,Q)∊G,其中Q=aP且a未知,则C 的目标是计算出a。定义敌手A 可以伪造出本文协议中的消息签名{PID*,M*,Ts*,σ*},算法C 可以充当游戏的挑战者,运行敌手A 作为子程序解决ECDLP 困难问题。挑战者C 和敌手A 之间的游戏交互过程如下:
1)Setup 阶段。挑战者C 设置系统公钥为PK=Q,任意选取s∊,设置sk=s,pk=sP,并将公共参数params 发送给敌手A,params=(G,p,q,P,pk,PK,hl,h,H)。
2)Query 阶段。C 建立初始为空的列表Lh和LH。Lh中存储元组<Γ,τ>,Γ∊G,τ∊{0,1}l;LH中存储元组{PIDi,Mi,Ts,βi},βi∊。当敌手A 进行询问时,C 做出对应的回答:
(1)h-Oracle。敌手A 输入数据Γ时,C 查询Lh。若存在元组<Γ,τ>,则将τ返回给A;否则,任意选取τ∊{0,1}l,存储<Γ,τ>到列表Lh,并将τ返回给A。
(2)H-Oracle。当敌手A 输入任意元组{PIDi,Mi,Ts}时,C 查询LH。若存在元组{PIDi,Mi,Ts,βi},则将βi返回给A;否则,任意选取βi∊,存储{PIDi,Mi,Ts,βi}到列表LH,并将βi返回给A。
(3)Sign-Oracle。敌手A 输入需要签名的消息Mi,挑战者C 任意选取σi,βi∊,任意选取PIDi,2∊{0,1}l。计算PIDi,1=σi˙P-βi˙PK,将生成的签名消息{PIDi,Mi,Ts,σi}返回给A。
3)Forge 阶段。敌手A 输入M*,输出伪造的消息签名{PID*,M*,Ts*,σ*}。
对于敌手A 而言,可以很容易地验证σi˙P=PIDi,1+βi˙PK,因此,挑战者C 模拟的环境与真实的环境是不可区分的。
假设敌手以不可忽略的概率ε赢得游戏。根据分叉引理[25],挑战者C 在相同的预言机询问下设置H-Oracle下不同的回答,敌手A 可以伪造出2 个不同的合法签名,分别为{PIDi,Mi,Ts,σi}和{PIDi,Mi,Ts,}。此时,σi˙P=PIDi,1+βi˙PK 和˙P=PIDi,1+˙PK 成立,由此可以得到:
则挑战者C 可以以不可忽略的概率ε′输出a=(σi-)·(βi-)-1作为ECDLP 问题的答案,这与假设的ECDLP问题是困难这一前提相矛盾。因此,本文协议中的签名方案在随机预言机模型下是适应性选择消息攻击下存在性不可伪造的。
定理3(强可追溯性)本文方案允许TA 对车辆和用户的真实身份进行追踪。
证明假设系统中存在恶意车辆发送的虚假消息{PIDi,Mi,Ts,σi},此时,TA 可以通过执行算法Trace(PIDi)来获取车辆和用户的真实身份信息。因此,本文方案可以实现对车辆和用户身份的可追溯性。
定理4(不可链接性)除了TA,任何人无法通过接收到的多条信息来确定这些信息是否来自同一辆车。
证明假设车辆接收到的多条信息分别为{PID1,M1,Ts1,σ1},{PID2,M2,Ts2,σ2},…,{PIDn,Mn,Tsn,σn},对于其中的任意两条消息,唯一包含车辆身份信息的部分为PIDi,并且PIDi仅使用1 次。对于任意的PID1和PID2,只有获取到其对应的才可链接到同一车辆。而除了TA 之外,任何人无法获得执行Trace 需要的私钥sk。因此,任何人无法通过接收到的多条信息链接到同一车辆。
定理5(抵御中间人攻击)攻击者无法执行中间人攻击。
证明对发送方和接收方而言,攻击者可能作为中间人对消息进行窃听和篡改。UserVerify 算法能够保证恶意用户无法登录任意的车辆进入到系统中。MesSign 算法能够保证恶意车辆无法对消息进行篡改,因为对消息的篡改意味着攻击者必须解决ECDLP 困难问题。因此,本文协议可以抵御中间人攻击。
为验证本文协议的性能优势,在Intel i5、12 GB内存、Ubuntu 操作系统的实验环境下,借助GMP(The GNU MP Bignum Library)、PBC(Pairing-Based Cryptography)[26]和RELIC 密码库,使用C 语言实现本文协议和一系列基于椭圆曲线的协议及基于双线性配对的协议,并分别从计算开销和通信开销两方面进行对比。
对比本文协议与CPAS[16]、JMLO[17]、SASV[18]、CPPA[19]、NEAS[20]和HCPA[21]协议在签名、单条消息验证和批量验证中的计算开销。这些对比协议都是基于身份的协议。
对于双线性配对的方案,选取双线性配对e:G1×G1→G2来实现80 bit 的安全等级。G1是阶为qˉ的定义在E:y2=x3+xmod上的椭圆曲线加法群,其中为512 bit 的素数为160 bit 的Solinas 素数,且有。对于基于椭圆曲线群设计的方案,为实现80 bit 的安全等级,同样选取定义在E:y2=x3+ax+bmodp上的椭圆曲线加法群G,其中,P为群G的阶为q的生成元,p和q为160 bit 的素数,a,b∊。为方便表示,给出各操作的符号定义和平均时间,如表2 所示。
表2 操作定义与平均时间Table 2 Operation definition and average time
对比不同协议进行单条消息签名验证时的操作数,如表3 所示。可以看出:在CPAS 协议中,签名需要执行3 次双线性配对相关的点乘操作、2次双线性相关的点加操作和1 次一般的哈希操作,因此,该协议签名阶段的操作数为3Bp(sm)+2Bp(pa)+Hash;在本文协议中,签名仅需要执行2 次ECC 相关的点乘操作和2次一般的哈希操作,因此,本文协议签名阶段的操作数为2Ecc(sm)+2Hash。同理可得其他协议的操作数。
由表2 和表3 的结果绘制本文协议与其他对比协议的消息签名验证计算开销对比图,如图2 所示。可以看出,本文协议签名验证阶段的计算量小于所有对比协议。
图2 消息签名验证计算开销对比Fig.2 Comparison of computational cost for message signature and verification
表3 消息签名验证操作数对比Table 3 Comparison of number of operations for message signature and verification
每秒执行本文协议和其他协议所得的签名和验证消息的数目如表4 所示。可以看出,本文协议相较于其他对比协议在单位时间内可签名和验证的消息数量更多,表明其效率更高,这是因为本文协议是基于ECC 设计的,与基于双线性配对的方案相比更为高效。
表4 消息签名验证效率对比Table 4 Comparison of efficiency of message signature and verification
将本文协议与支持批量验证的基于身份的协议进行对比,如表5 所示,其中,n为批量验证的消息数目,同时对比批量认证中本文协议与对比协议的时间消耗,如图3 所示。可以看出,本文方案在批量验证阶段的效率高于其他对比协议。
表5 批量验证操作数对比Table 5 Comparison of number of operations for batch verification
图3 批量验证时间对比Fig.3 Comparison of time for batch verification
分析本文协议与其他对比协议的通信开销。由于选取的pˉ和p分别为512 bit和160 bit,因此群G1和群G中的元素分别为128 Byte和40 Byte。此外,一般的哈希函数输出为20 Byte,时间戳为4 Byte。对各协议中的签名消息长度进行分析可知:在CPAS方案中,车辆广播的匿名身份和消息签名为(AIDi,Ti,Ui,Vi,Wi),AIDi=(AIDi.1,AIDi,2),其中,,Ui,Vi,Wi∊G1,Ti为时间戳,因此,CPAS 广播的长度为128 Byte×5 Byte+4 Byte=644 Byte;而在本文方案中,广播的身份和签名部分为{PIDi,Ts,σi},PIDi,1,PIDi,2∊G,Ts 为时间戳,σi∊,所以,本文方案的通信开销为40 Byte×2 Byte+20 Byte+4 Byte=104 Byte。其他方案的通信开销计算同理。
对不同协议的通信负载进行对比,如表6 所示。可以看出,对比协议大多基于双线性配对来实现,通信负载较高,而本文协议发送单条消息的负载相对较低。
表6 通信开销对比Table 6 Comparison of communication overhead Byte
对本文协议与现有协议进行功能对比。除基于身份设计的方案之外,还将本文协议与基于PKI 的协议IFAL[27]、基于对称密码的协议DLAP[15]和基于无证书的协议SE-CLASA[24]进行对比,如表7 所示,其中,√表示满足该性质,×表示不满足该性质。可以看出,本文协议在满足匿名性、不可伪造性、强可追溯性、不可链接性和抵御中间人攻击这5 个安全目标的前提下,同时还适用于单车多用户和单用户多车的应用场景,并且还可抵御重放攻击,具备不可否认性。本文协议是表7 所有协议中唯一满足匿名性、不可伪造性、强可追溯性、不可链接性、不可否认性、抵御中间人攻击、抵御重放攻击,并且适用于单车多用户或单用户多车应用场景的协议。
表7 协议功能对比Table 7 Comparison of protocol function
针对现有V2X 通信认证协议不支持用户认证的问题,本文提出一种面向车联网安全通信的条件隐私保护认证协议。该协议适用于单车多用户和单用户多车的应用场景,更具实用性。同时协议支持条件隐私保护,通信过程中保护了车辆的真实身份信息,并且允许TA 在特定情况下追溯到车辆的真实身份信息。形式化的安全性分析结果证明了协议的安全性,性能评估结果验证了协议的高效性。下一步将在本文协议中增加系统密钥更新和安全身份撤销功能,使其适用于更多应用场景。