杨小东,裴喜祯,安发英,李 婷,王彩芬
(西北师范大学 计算机科学与工程学院,兰州 730070)
车载自组网(Vehicular Ad Hoc Network,VANET)是由车辆行驶信息构成的交互网络(包括车辆位置、车速和路线等)。车辆利用摄像头、传感器或全球定位系统等装置完成各种信息的采集,并通过互联网和计算机技术将所采集的信息传输到附近的车辆或交通管理中心等机构。交通管理中心收到传输来的消息后,对其进行分析和处理,可以有效解决交通拥堵等问题[1]。此外,车载自组网能提供综合的智能交通服务[2]。然而,车载自组网面临诸多安全问题[3]。在隐私保护和提高计算效率等需求下,利用密码学技术设计安全高效的消息认证方案是当前车载自组网领域的研究热点之一。
针对传统密码体制的密钥管理复杂等问题,文献[4]提出将身份信息作为公钥的基于身份的密码体制。文献[5]提出方案将多个消息的签名压缩成一个短签名,验证者只需对聚合后的签名进行验证,便可快速判断所有签名的有效性。随后,研究人员相继提出聚合签名方案[6-8]。文献[7]设计一个基于身份的聚合签名方案,具有较高的签名验证效率和较长的签名长度。文献[8-9]提出具有固定双线性对运算的基于身份的聚合签名方案,其存在签名长度随签名人数的增加而增长的问题。文献[10]设计一个高效的基于身份的聚合签名方案,由于该方案中的签名可以被伪造,因此安全性较低。文献[11]提出一个签名长度固定的聚合签名方案,其在签名开始前需要预先确定所有参与签名人的集合,不适用于动态车载自组网。文献[12]构造一个面向车联网的聚合签名方案,但签名验证需要大量的双线性对操作。文献[13]提出一个适用于智能电网的基于身份的聚合签名方案,解决了智能电网中存在的隐私泄露问题,但其计算效率和通信效率均较低。文献[14]提出一种新的聚合签名方案,但其无法抵抗联合攻击[15]。文献[16]设计一种适用于车载自组织网的聚合签名方案,但其无法抵抗伪造攻击。针对现有方案存在证书管理开销过大、签名验证效率过低等问题[17-19],本文利用基于身份的密码体制和聚合签名技术,构造一个新的车载自组网消息认证方案。
设q是一个大素数,G1和G2是阶为q的两个循环群,g为G1的生成元,e:G1×G1→G2表示一个双线性映射,且具有以下特性:
2)非退化性:e(g,g)≠1。
3)可计算性:对于任意g1,g2∈G1,存在一个有效的算法计算e(g1,g2)。
定义2若对于任意敌手Adversary,在多项式时间t内攻破群G1上的CDH问题的概率小于ε,则群G1上的(t,ε)-CDH假设成立。
可信的私钥生成中心(Private Key Generator,PKG)、车辆单元(On Board Unit,OBU)和路边单元(Road Side Unit,RSU)3个实体构成本文方案的系统模型(见图1)。PKG主要负责为车辆分发私钥,同时对于发布虚假消息的车辆,PKG可以追查其真实身份,以便对其作出具体的惩罚。OBU可以利用DSRC技术,完成与RSU或其他OBU之间的无线通信。RSU主要为安装在路边的基础设施(如电线杆等实体),负责验证车辆单元发送的通信消息的签名以及聚合多个消息的签名等。
图1 系统模型
基于身份聚合签名的VANET消息认证方案具体描述如下:
2)私钥提取。对于车辆单元OBUi(i=1,2,…,n)的身份IDi,PKG确认身份信息IDi的合法性后,计算dIDi=H1(IDi,s)+s,并通过安全信道将私钥dIDi发送给车辆单元OBUi。
3)签名。对于消息mi,车辆单元OBUi利用私钥dIDi进行如下操作:
(1)计算QIDi=gdIDi和hi=H2(mi,IDi,Ti,QIDi),其中Ti为当前时间戳;
(3)输出一个关于mi和Ti的签名δi=(Si,QIDi)。
4)签名验证。路边单元RSU在当前时间T′收到OBUi发送的关于消息mi和时间戳Ti的签名δi=(Si,QIDi)后,若T′-Ti>τ,则拒绝验证,其中τ表示规定时间差;否则,RSU计算hi=H2(mi,IDi,Ti,QIDi)。若等式e(Si,g)=e(hi,QIDi)成立,则接受(Si,QIDi)是一个合法的签名。
下文通过定理1证明2.2节提出方案的安全性可归约到CDH问题的困难性。
1)H1询问。当Adversary给Challenger发送一个身份IDi时,如果在列表ListH1中存在(IDi,ai),则Challenger将ai返回给Adversary;否则Challenger进行如下操作:
(1)当IDi=ID*时,Challenger终止询问,并输出“FAILURE”(该事件发生用Eevent1表示)。
2)私钥提取询问。当Adversary向Challenger提交一个身份IDi并对其进行私钥提取询问时,Challenger查询列表ListE(IDi,dIDi),如果在列表ListE中有对于身份IDi的私钥,则发送给Adversary;否则Challenger进行如下操作:
(1)当IDi=ID*时,Challenger终止询问,并输出“FAILURE”(该事件发生用Eevent2表示)。
(2)当IDi≠ID*时,Challenger从列表ListH1中获取(IDi,ai),并计算dIDi=ai+s,此时Ppub=gs;然后将(IDi,dIDi)增加到列表ListE中,发送私钥dIDi给Adversary。
3)H2询问。当Adversary询问关于身份IDi的H2哈希值时,如果列表ListH2中存在(IDi,mi,Ti,Qi,hi),则Challenger发送hi给Adversary;否则Challenger执行如下操作:
(1)当IDi=ID*时,Challenger设置Q*=gn和hi=H2(IDi,mIDi,Ti,QIDi)=gm,然后将gm发送给Adversary,并在列表ListH2中增加(IDi,mIDi,Ti,gn,gm)。
4)签名询问。当Adversary向Challenger询问关于消息mIDi和身份IDi的签名时,Challenger先从ListH2提取IDi对应的哈希值hi,然后进行以下操作:
(1)当IDi=ID*时,Challenger终止询问,输出“FAILURE”(该事件发生用Eevent3表示)。
下文分析Challenger成功解决CDH问题实例的时间和优势:
2)只有当3个事件Eevent1、Eevent2和Eevent3都不发生时,Challenger才能完成整个询问,进而解决CDH问题实例。
本文方案与文献[12-13]方案都利用了基于身份的聚合签名技术,下文对这3个方案的通信开销和计算开销进行对比分析。
通信开销主要集中在私钥提取、签名和聚合签名阶段。将本文方案与文献[12-13]方案在私钥提取阶段、签名阶段和聚合签名阶段的通信开销进行对比分析。为便于比较,假设3个方案都选取阶为同一个素数q的群G1和G2。在文献[13]方案中,私钥提取阶段需要的通信开销为(n+2)G1+GT;签名阶段对n个消息进行加密需要的通信开销是2nG1,对n个密文进行签名需要的通信开销是nG1,所以在签名阶段总的通信开销是3nG1;聚合阶段聚合密文需要的通信开销是2G1,同时对聚合密文进行签名需要的通信开销是2G1,所以在聚合阶段总的通信开销是4G1。在文献[12]方案中,私钥提取阶段需要的通信开销是2nG1,签名阶段需要的通信开销是2nG1,聚合阶段需要的通信开销是2G1。在本文方案中,私钥提取阶段需要的通信开销是nG1,签名阶段需要的通信开销是2nG1,聚合阶段需要的通信开销是G1。各方案的通信开销对比结果如表1所示。由此可知,本文方案优化了私钥提取、签名和聚合签名阶段的算法,有效降低了通信开销。
表1 基于身份的聚合签名方案通信开销比较
Table 1 Comparison of communication costs of identity-based aggregate signature schemes
方案私钥提取阶段签名阶段聚合签名阶段文献[12]方案2nG12nG12G1文献[13]方案(n+2)G1+GT3nG14G1本文方案nG12nG1G1
本文方案、文献[12-13]方案的计算开销比较结果如表2所示,其中,Exp表示1次幂运算、Mul表示1次乘法运算、Add表示1次加法运算、H表示1次哈希运算、P表示1次双线性配对运算,n表示车辆数量。
由表2可知,在文献[12]方案中,签名阶段执行4n次乘法运算,签名验证阶段执行3n次双线性配对运算和n次乘法运算,聚合签名验证阶段执行(n+2)次双线性配对运算、(n-1)次乘法运算和加法运算;在文献[13]方案中,签名阶段执行4(n+1)次幂运算和2(n+1)次乘法运算,签名验证阶段执行(3n+3)次双线性配对运算,聚合签名验证阶段执行3n次双线性配对运算。但在本文方案中,签名阶段执行2n次幂运算,签名验证阶段执行2n次双线性配对运算,聚合签名验证阶段执行(n+1)次双线性配对运算。因此,本文方案具有较低的签名验证开销和聚合签名验证开销,可以在较短的时间内验证通信消息的有效性。
表2 基于身份的聚合签名方案计算开销比较
实验环境:CPU为Intel Core i7-5500U,内存为4 GB。基于版本号为0.4.7的PBC库,对本文方案和文献[12-13]方案进行仿真实验。
图2展示了RSU在仿真实验中执行签名验证所需的计算开销。仿真实验模拟了从10辆~100辆车辆生成消息后,RSU执行签名验证所需的计算开销。3个方案随着车辆数量的增加,对多个消息进行签名验证所需的时间也逐渐增多。然而,相比文献[12-13]方案,本文方案在签名验证阶段计算开销最小。
图2 签名验证过程中计算时间与车辆数量的关系
Fig.2 Relationship between the calculation time and the number of vehicles during signature verification
图3展示了RSU在仿真实验中执行聚合签名验证所需的计算开销。仿真实验模拟了从10辆~100辆车辆生成消息后的聚合签名验证所需的计算开销。由图3可知,本文方案在聚合签名验证阶段具有更高的计算效率。
图3 聚合签名验证过程中计算时间与车辆数量的关系
Fig.3 Relationship between the calculation time and the number of vehicles during aggregate signature verification
为降低车辆对通信消息的认证响应时间,本文设计一个基于身份聚合签名的车载自组网消息认证方案,将多个消息的多个签名聚合为一个短签名进行验证。分析结果表明,本文方案具有较高的安全性及较低的通信与计算开销。然而,由于本文方案的安全性规约于计算Diffie-Hellman困难问题,无法抵抗量子计算攻击,因此下一步将设计基于格困难问题的车载自组网消息认证方案。