本发明涉及移动网络计算的技术领域,尤其涉及一种车载网络环境下的车辆认证与消息验证方法,基于公钥密码算法实现车辆认证与消息认证,基于双线性对车辆进行认证、基于临时伪随机标识符进行消息认证。
背景技术:
近年来,随着通信技术和微电子技术的快速发展,出现了许多基于无线通信的智能应用。一种利用无线通信技术构建的智能交通系统:车联网(vehicularad-hocnetwork,vanet)正越来越受到关注。车联网vanet是在交通领域中使用的一种特殊自组织移动网络。一般来说,车联网vanet主要包含信任机构(trustedauthority,ta)、车载单元(on-board-unit,obu)以及路边单元(road-side-unit,rsu)三个部分。这其中,信任机构ta主要负责系统的初始化、为车载单元obu和路边单元rsu提供必要的网络连接并保存所有车载单元obu和路边单元rsu的信息。嵌入在车辆中的车载单元obu主要负责提供车辆相关的信息并与其它车载单元obu或者路边单元rsu进行通信。而路边单元rsu是部署在路边的为车载单元obu通信提供必要支持的基础设施。在车联网vanet中,车辆可以通过无线的方式完成车辆与车辆之间的通信(v2v)或者车辆与路边单元rsu之间的通信(v2r)以完成信息的交互与共享。
在目前的车联网vanet实践中,无论是v2v还是v2r,目前所使用的通信方式基本都是基于专用短程通信技术协议(dedicatedshortrangecommunications,dsrc)。根据dsrc协议,每个车辆都会定期广播与交通安全相关的各类信息,包括位置、速度、交通状况等。借助于嵌入车内的车载单元obu以及dsrc协议,每个车辆都可以与其它车辆或者信任机构ta进行通讯。然而,dsrc协议所传递的消息基本都是明文的方式。由于无线网络的开放特性,通过dsrc协议所传递的各类消息都有被窃听或者篡改的可能。攻击者可以通过窃听dsrc协议的通信,轻松获取车辆相关的各类私人信息,比如身份信息、行驶轨迹、个人偏好等等。因此,车联网vanet能否成功应用并推广的关键之一是其能否为所传递的消息提供安全和隐私保障。所以,在部署车联网vanet应用的过程中,在允许车辆在车联网vanet中传递信息前,应该对车辆进行身份验证并协商生成通信密钥。此外,信任机构ta必须具备检测车辆所交互的信息的完整性的能力,这将有助于防止信息被攻击者所篡改。再一个,在车联网vanet中对车辆进行身份验证的过程中必须注意用户隐私的保护,否则,攻击者只需捕获车辆的消息即可轻松获得车辆的行驶路线等信息。为了隐藏车辆的真实身份,在车联网vanet中可以通过匿名或随机假名等技术实现。
与其他自组织移动网络不同,车辆所具备的高机动性是车联网vanet的显著特征。因为这个原因,在车联网vanet中留给路边单元rsu和车辆的通信时间非常短。因此,其它自组织网络或其他类型的网络中所提出的安全或者隐私保护的解决方案并不能直接应用于车联网vanet。另外,由于车辆的数量众多,必须有能够对认证消息进行批处理的方法,才能保证不会出现认证拥塞的情况。
技术实现要素:
针对现有车联网中路边单元和车辆的通信时间较短,不能实现用户隐私保护的技术问题,本发明提出一种车载网络环境下的车辆认证与消息验证方法,由无线通信技术实现了车联网环境下的车辆的安全接入,保护了车辆的隐私,提高了车辆认证的效率,使得车辆在车联网vanet中能够安全、高效地传递各类信息。
为了达到上述目的,本发明的技术方案是这样实现的:一种车载网络环境下的车辆认证与消息验证方法,其步骤如下:
步骤一:信任机构对系统进行初始化:信任机构在椭圆曲线上选择一个基点,基于基点选择双线性映射;初始化三个安全hash函数,利用生成自己的私钥和两个秘密值,利用自己的私钥计算出公钥;将系统的初始化参数公开给车联网中所有的车载单元和路边单元;
步骤二:车载单元的注册:装载有车载单元的第j辆汽车vj通过车载单元将自身的身份标识符和密钥组成消息发送给信任机构,信任机构生成中间变量及汽车vj的私钥和公钥并写入汽车vj的防篡改设备中,信任机构将汽车vj的公钥和身份标识符保存在追踪列表中;路边单元的注册:信任机构生成第i个路边单元rsui的私钥和公钥,信任机构利用一个秘密值和分配给路边单元rsui的身份标识符生成数字签名,并将数字签名和路边单元rsui的私钥和公钥保存在路边单元rsui的防篡改设备中;
步骤三、路边单元临时密钥发布:路边单元rsui生成随机数并利用其私钥计算临时主密钥,利用临时主密钥计算临时公钥,在其所在区域内定期广播临时公钥和随机数;
步骤四:车辆认证阶段:汽车vj的车载单元验证用户输入的身份标识符及密钥是否正确,如果不正确继续输入;否则,生成时间戳tvj并将其与汽车vj的身份标识符和公钥组成的消息m1发送给路边单元rsui,路边单元rsui接收到消息m1后检测消息m1的新鲜性,然后将接收消息m1的时间及路边单元rsui的公钥和身份标识符组成的消息发送给信任机构;
步骤五:车辆验证阶段:信任机构收到路边单元rsui发送的消息后检查消息的新鲜性,通过数字签名验证路边单元rsui的合法性,信任机构提取消息m1并验证汽车的合法性,信任机构将包含汽车vj的身份标识符的信息发送给路边单元rsui,路边单元rsui将包含路边单元rsui的私钥和临时主密钥的信息发送给汽车vj,汽车vj从接收的消息中提取临时主密钥;
步骤六:消息签名阶段:汽车vj利用路边单元rsui的临时主密钥计算自己的临时标识符和临时私钥,生成一个包含当前路况和时间戳的交通消息ms;汽车vj利用临时私钥对交通消息ms进行签名,并将签名、临时标识符、交通消息ms和路边单元的身份标识符ridri组成消息进行广播;
步骤七:消息验证阶段:当其他汽车收到汽车vj广播的消息后,通过双线性映射验证汽车vj广播消息的有效性。
所述步骤一系统进行初始化的实现方法为:
步骤i1:选择一个大的素数p,并选择一个构建在由素数p构成的有限域gf(p)上的椭圆曲线ep(a,b):y12=x13+ax1+b且满足4a3+27b2≠0(modp);信任机构在椭圆曲线ep(a,b)上选取一个阶为q的基点p,基于基点p分别构建一个循环加法群g和一个循环乘法群gt,信任机构双线性映射
步骤i2:信任机构选择三个安全hash函数h(·)、h(·)以及h1(·),且函数
步骤i3:信任机构生成一个随机数
步骤i4:信任机构将步骤i1-步骤i3中的初始化参数作为公共参数{ep(a,b),q,p,g,gt,h(·),h(·),h1(·),ppub}进行公开,系统中的所有车载单元和路边单元通过公开途径获取公共参数。
所述步骤二中车载单元注册的方法为:
步骤vr1:汽车vj通过车载单元选择身份标识符idvj及对应的密钥pwvj,汽车vj生成随机数
步骤vr2:接收到消息{idvj,bvj}后,信任机构生成随机数
步骤vr3:信任机构将信息{cvj,dvj,rvj,h(·),h(·),q,uprkvj,upukvj}写入到汽车vj的防篡改设备中,并将信息<idvj,upukvj>保存在汽车vj的追踪列表中。
所述步骤二中路边单元注册的方法为:
步骤rr1:信任机构生成随机数
步骤rr2:信任机构利用所保存的秘密值y计算数字签名signri=h(ridri||y),信任机构将消息{ridri,signri,rprki,rpuki}注入到路边单元rsui的防篡改设备中;其中,ridri是信任机构分配给路边单元rsui的身份标识符。
所述步骤三中的路边单元rsui生成随机数δi并计算临时主密钥
所述步骤四中车辆认证的方法为:
步骤a1:汽车vj的使用者将身份标识符idvj及密钥pwvj输入到其车载单元中,汽车vj的车载单元计算中间变量:
步骤a2:车载单元生成时间戳tvj并计算中间变量
步骤a3:接收到消息m1后,路边单元rsui首先检查tc1-tvj≤δt是否成立,若tc1-tvj≤δt成立,路边单元rsui计算中间变量
所述步骤五中车辆验证的方法为:
步骤v1:收到消息{m1,certri,ridri,rpuki,tc1}后,信任机构检查tc2-tc1≤δt是否成立;如果tc2-tc1≤δt成立,信任机构计算中间变量
步骤v2:信任机构提取消息m1并计算中间变量
步骤v3:随后,信任机构计算中间变量
步骤v4:收到消息c1后,汽车vj计算
所述步骤六消息签名的方法为:
步骤s1:汽车vj生成随机数
步骤s2:汽车vj生成一个包含当前路况和时间戳的交通消息ms,汽车vj对交通消息ms进行签名:
步骤s3:汽车vj生成消息{pidj,θj,ms,ridi}并将消息{pidj,θj,ms,ridi}进行广播;其中,ridi是路边单元rsui的身份标识符。
所述步骤七的实现方法是:当其他车辆接收到消息{pidj,θj,ms,ridi}后,能够获取基点p、路边单元rsui的临时公钥rpki、随机数δi、交通消息及签名θj和汽车vj的临时标识符pidj,通过判断等式
当一个接收者同时接收到来自同一个路边单元中的n辆汽车所发送过来的消息{{pid1,θ1,ms1,ridi},{pid2,θ2,ms2,ridi},…,{pidn,θn,msn,ridi}}时,采取批量的方式验证这些消息的有效性,验证公式为:
其中,pid1、pid2…pidn分别为n辆汽车的临时标识符;θ1、θ2…θn分别为n辆汽车发送的交通消息ms1、ms2…msn的签名。
本发明的有益效果:基于椭圆曲线加密和双线性对的车辆认证方法,在保证车辆合法接入的同时,保护车辆相关隐私信息不被泄露,使得车辆在车联网vanet中能够安全、高效地传递各类信息;基于临时伪随机标识符的交通信息验证方法,保证所有经过认证的车辆所发出的交通信息的完整性和可验证性,防止车联网中的通信消息遭受安全攻击,保护车辆的隐私;为了提高车辆认证的效率,还给出了一种既可以采用单一方式验证车辆,也可以采用批量方式验证的方法,使得消息的接收者能够同时验证多个消息而不需要一个接一个地进行验。另外,在本发明的认证协议中,信任机构ta和路边单元rsu能够跟踪和撤销已经被攻击者所捕获的车辆信息。本发明能够保证在车联网环境下的车辆接入安全性的同时,也保证了合法车辆所发出的交通信息的安全性。本发明主要适用于城市智能交通体系中的基于车联网vanet的通信安全,在移动车载网环境下的应用环境中具有较大的应用价值。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的车载网的系统模型图。
图2为本发明车辆认证的流程图。
图3为本发明的消息验证的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明所使用的车联网vanet的系统模型如图1所示,车联网vanet主要包括信任机构ta、车载单元obu以及路边单元rsu三个部分。在本发明所涉及的系统模型中,所有路边单元rsu都通过internet与信任机构ta相连接。本发明共包含两个大的部分,分别是车辆的身份验证以及车辆所发出的消息的认证。这两部分共包含系统的初始化、车辆和路边单元rsu的注册、路边单元rsu临时密钥发布、车辆的验证、消息的签名和消息的验证等几个不同的阶段。
步骤一:信任机构ta对系统进行初始化:信任机构ta在椭圆曲线上选择一个基点,基于基点选择双线性映射;信任机构初始化三个安全hash函数,信任机构利用随机数生成算法生成自己的私钥和两个秘密值,利用自己的私钥计算出对应的公钥;信任机构将系统的初始化参数公开给车联网中所有的车载单元和路边单元。
该阶段主要完成基于车联网vanet的车辆验证与消息验证所需要的各种加密算法的选择、初始值的设定等工作。如前面所述,信任机构ta被视为车联网vanet的可信的管理中心,整个初始化工作由车联网的信任机构ta来实施。本发明所使用的各种符号如表1所示。
表1本发明所使用的符号及含义
步骤i1:选择一个大的素数p,并选择一个构建在由素数p构成的有限域gf(p)上的椭圆曲线ep(a,b):y12=x13+ax1+b且满足4a3+27b2(modp)≠0,其中,a和b表示椭圆曲线ep(a,b)的两个参数,a和b为有限域
步骤i2:信任机构ta选择三个安全hash函数h(·)、h(·)以及h1(·)。其中,
步骤i3:信任机构ta利用随机数生成算法生成一个随机数
步骤i4:信任机构ta将步骤i1-步骤i3中初始化参数作为系统所使用的公共参数{ep(a,b),q,p,g,gt,h(·),h(·),h1(·),ppub}进行公开,系统中的任何参与者包括所有的车载单元obu和路边单元rsu都能够通过公开途径获取上述公共参数。
步骤二:车载单元obu的注册:装载有车载单元的第j辆汽车vj通过车载单元obu将自身的身份标识符和密钥组成消息发送给信任机构ta,信任机构ta生成中间变量及汽车vj的私钥和公钥并写入汽车vj的防篡改设备中,信任机构ta将汽车vj的公钥和身份标识符保存在车辆的追踪列表中;路边单元rsu的注册:信任机构ta利用随机数生成算法生成第i个路边单元rsui的私钥并计算路边单元rsui的公钥,信任机构ta利用一个秘密值和分配给路边单元rsui的身份标识符生成数字签名,并将数字签名和路边单元rsui的私钥和公钥保存在路边单元rsui的防篡改设备中。
该阶段包括车载单元obu的注册以及路边单元rsu的注册,它们的注册过程分别叙述如下:
车载单元obu的注册:为了完成后续的认证工作,每辆需要利用车联网vanet服务的任一汽车vj都需要在信任机构ta处进行注册,第j辆汽车vj上装载有车载单元,j的最大取值为车联网内汽车的总数量,为具体步骤如下:
步骤vr1:汽车vj选择一个具有唯一性的身份标识符idvj以及对应的密钥pwvj。为了满足唯一性要求,汽车vj的身份标识符可以利用车辆发动机号、车架号、购车时间等信息通过安全hash函数来生成。密钥pwvj由用户依据自己的习惯和喜好选择。随后,汽车vj利用随机数生成算法产生随机数
步骤vr2:接收到消息{idvj,bvj}后,信任机构ta利用随机数生成算法生成随机数
avj=h(x||rvj),
dvj=h(idvj||bvj||avj)。
随后,信任机构ta再次利用随机数生成算法生成随机数
步骤vr3:信任机构ta将信息{cvj,dvj,rvj,h(·),h(·),q,uprkvj,upukvj}写入到汽车vj的防篡改设备(tamperproofdevice,tpd)中,并将信息<idvj,upukvj>保存在车辆自己的追踪列表(trackinglist,一个数据库表)中。
路边单元rsu的注册:每个路边单元rsu部署在路边在参与车联网vanet的工作之前,都需要在信任机构ta处进行注册。第i个路边单元rsui的注册过程描述如下:
步骤rr1:信任机构ta利用随机数生成算法生成随机数
步骤rr2:随后,信任机构ta利用自己所保存的秘密值y计算signri=h(ridri||y)。其中,ridri是信任机构ta分配给路边单元rsui的具有唯一性的身份标识符。随后,信任机构ta将消息{ridri,signri,rprki,rpuki}注入到路边单元rsui的防篡改设备tpd中。
步骤三、路边单元rsu临时密钥发布:路边单元rsui利用随机数生成算法生成随机数并利用其私钥计算临时主密钥,利用临时主密钥计算临时公钥,在其所在区域内定期广播临时公钥和随机数。
为了提高车辆的认证效率,路边单元rsu负责为进入其通信范围的汽车定期分配其本地临时密钥。当汽车在行驶的过程中进入到一个新的路边单元rsu的范围时,其需要请求获得本地路边单元rsu的主密钥用以以生成其具备匿名性质的临时身份标识符。进而,该汽车可以利用该临时身份标识符发布与交通相关的信息。
首先,路边单元rsui利用随机数生成算法生成随机数δi并计算其临时主密钥
步骤四:车辆认证阶段:汽车vj的车载单元obu验证用户输入的身份标识符及口令是否正确,如果不正确继续输入;否则,生成时间戳tvj并将其与汽车vj的身份标识符和公钥组成的消息m1发送给路边单元rsui,路边单元rsui接收到消息m1后检测消息m1的新鲜性,然后将接收消息m1的时间及路边单元rsui的公钥和标识符组成的消息发送给信任机构ta。
如图2所示,当一辆汽车vj行驶到一个路边单元rsui所覆盖的区域时,首先检测路边单元rsui的身份标识符是否曾经记录过。如果是一个新的,则汽车vj需要在该路边单元rsui处进行身份验证并获取该路边单元rsui的临时主密钥。随后汽车vj利用该临时主密钥生成其具备匿名性质的临时身份标识符用以发布相关消息。在该阶段,汽车vj的车载单元obu首先需要生成一个临时身份标识符,目的是进行身份隐私保护,避免汽车vj的真实身份信息泄露,并利用临时身份标识符构造身份认证所需要的身份验证请求消息。详细的认证过程如下所述:
步骤a1:汽车vj的使用者将汽车vj的身份标识符idvj以及对应的口令pwvj输入到车辆的车载单元obu中。汽车vj的车载单元obu进行如下计算中间变量:
其中,bvj是汽车vj注册过程中利用随机数生成算法产生的随机数,cvj是汽车vj的防篡改设备中存储的中间变量。
随后,汽车vj的车载单元obu比较等式
步骤a2:若等式
步骤a3:接收到消息m1后,路边单元rsui首先检查tc1-tvj≤δt是否成立。其中,tc1是路边单元rsui收到该消息的时间,δt是系统所允许的最大间隔。若tc1-tvj≤δt不成立,则重新获取消息。若上式成立,则路边单元rsui计算中间变量
步骤五:车辆验证阶段:信任机构ta收到路边单元rsui发送的消息后检查消息的新鲜性,然后通过数字签名验证路边单元rsui的合法性,信任机构ta提取出消息m1并验证汽车的合法性,路边单元rsui将包含汽车vj的身份标识符的信息发送给路边单元rsui,路边单元rsui将包含路边单元rsui的私钥和临时主密钥的信息发送给汽车vj,汽车vj从接收的消息中提取临时主密钥。
步骤v1:收到消息{m1,certri,ridri,rpuki,tc1}后,信任机构ta首先检查tc2-tc1≤δt是否成立。其中,tc2是信任机构ta收到该消息的时间。如果tc2-tc1≤δt不成立,则终止本次验证过程。如果满足,信任机构ta进行如下计算中间变量:
随后,信任机构ta从上式中提取出signri并判断等式
步骤v2:紧接着,信任机构ta提取出消息m1并继续计算中间变量:
随后,信任机构ta检查等式
步骤v3:随后,信任机构ta计算中间变量
步骤v4:收到消息c1后,汽车vj计算
步骤六:消息签名阶段:汽车vj计算临时标识符并利用临时标识符计算临时私钥,然后生成一个包含当前路况和时间戳的交通消息ms。然后,汽车vj利用临时私钥对交通消息ms进行签名,并将签名、临时标识符、交通消息ms和路边单元的身份标识符ridri组成消息进行广播。
如图3所示,根据dsrc协议,在道路上行驶的车联网vanet环境下的车辆需要定期广播交通安全相关消息。为了保护发送者的身份隐私,交通信息的发送者需要利用其具备匿名性质的临时身份标识符来对自己所发送的消息进行签名。在本发明中,车辆认证和消息认证分别是为了保证车辆得身份合法性和消息的完整性和消息源的可验证性。验证车辆所发送的交通信息的完整性在增强车联网vanet的安全性方面起着非常重要的作用。因此,交通信息的认证也被认为是车联网vanet中最重要的安全措施之一。
交通信息的接收方主要通过验证签名正确性来确保所接收到的交通信息的完整性和有效性。该阶段的详细步骤可以描述如下:
步骤s1:汽车vj首先利用随机数生成算法生成以随机数
步骤s2:汽车vj生成一个包含当前路况和时间戳的交通消息ms。然后,汽车vj对交通消息ms采用如下方法进行签名:
步骤s3:汽车生成消息{pidj,θj,ms,ridi}并将该消息进行广播。其中,ridi是路边单元rsui的身份标识符。
步骤七:消息验证阶段:当其他汽车收到汽车vj广播的消息后,通过双线性映射验证汽车vj广播消息的有效性。
当其他车辆接收到消息{pidj,θj,ms,ridi}后,它们可以通过判断下面等式是否成立来验证消息的有效性:
该等式能够成力的原因如下:该消息的验证者(接收者)能够获取系统参数基点p、路边单元rsui的临时公钥rpki和随机数δi。在接收到车辆vj的安全相关消息后,它们可以获得安全相关消息ms、该消息的签名θj以及发送者的匿名身份pidj。该等式可以通过如下方式推导:
另外,如果一个接收者同时接收到来自同一个路边单元rsu中的n辆汽车所发送过来的消息{{pid1,θ1,ms1,ridi},{pid2,θ2,ms2,ridi},…,{pidn,θn,msn,ridi}}时,其也可以采取批量的方式来验证这些消息的有效性,验证公式为:
该公式的推导方式如上面的类似,此处省略推导过程。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。