1.一种基于区块链的车联网车车快速通信认证方法,其特征在于:依次包括以下步骤:S1、参数初始化
车辆通过第三方权威机构TPA获取车辆加密后的ID、线下密钥fsk和线下公钥fpk,然后TPA对车辆的ID依次进行加密和签名,车辆将加密信息Eid和签名信息σfsk后存储于车载单元OBU;
S2、车辆获取证书
车辆通过向通信范围内的路侧单元RSU发送注册申请 当RSU收到注册申请后,对依次车辆的当前状态、签名和公钥进行确认和验证,并通过TPA确认车辆的真实性;若均验证成功,RSU则生成新的交易并广播到车联网中,然后RSU作为矿工通过区块链的共识机制将该新交易加入新区块;
S3、车车通信认证
在车车通信中,车辆A向车辆B发送验证请求,完成车辆A和车辆B之间的验证;
S4、车辆更新证书
车辆通过向通信范围内的RSU发送更新申请U,RSU验证车辆的合法性后生成新交易并广播到车联网中,然后RSU作为矿工通过区块链的共识机制将验证后的新交易新区块;
S5、车辆注销证书
车辆通过向通信范围内的RSU发送更新申请V,RSU验证车辆的合法性后生成新交易并广播到车联网中,然后车辆作为矿工通过区块链的共识机制将该新交易加入新区块。
2.根据权利要求1所述的基于区块链的车联网车车快速通信认证方法,其特征在于:所述步骤S1的详细步骤为:车辆通过第三方权威机构TPA获取车辆加密后的ID:TPA选择并公布一个椭圆曲线E:y2=x3+Ax+B(modp),P>5且为素数4a3+27b2≠0;E(Zp)代表椭圆曲线上的点:E(Zp)={(x,y)|x,y∈E(Zp)and y2=x3+Ax+B mod p}∪{O};其中,O为无穷远点;
基于以上参数,TPA秘密地产生线下秘钥fsk∈E(Zp),计算出其线下公钥fpk:fpk=fsk×E(Zp);通过线下公私钥对TPA对车辆的ID进行加密得到Eid=Encrypt(ID,fpk),接着对车辆加密后的ID进行签名得到σfsk=sig(Eid,fsk);最后,TPA将Eid、线下公钥fpk和基于Eid的签名σfsk发送给车辆,车辆将其存储在OBU里。
3.根据权利要求1所述的基于区块链的车联网车车快速通信认证方法,其特征在于:所述步骤S2中车辆获取证书的具体过程为:S2.1、车辆首先产生线上公钥npk和线上私钥nsk,产生证书失效时间Texpired,利用nsk对Eid签名获得nnsk=Sig(Eid,nsk),然后车辆将元组 发送给通信范围内的RSU请求注册,Register代表注册申请;
S2.2、RSU收到车辆的区块注册申请 后,首先确认该申请是否已经被申请过,通过智能合约的函数SearchBalance来确认;
SearchBalance函数内嵌在智能合约内,共有四种输入值,分别是注册、更新、注销和等待判断,根据不同的输入值,获取对于的输入值,具体对应关系如下:若确认该车辆的Eid没有被注册过,则RSU向TPA确认该车辆是否是合法拥有ID的车辆,即确认等式Check(fpk,σfsk,Eid)=1是否成立,若成立即Check函数返回值是1,则代表该车辆拥有合法身份;
S2.3、RSU将向区块链提交元组 区块链将生成包含元组 的交易并存放在交易池内;
RSU确认Ver(npkchain,σnsk,Eid)=1是否成立,当验证成立通过后,该交易将被存入区块中,利用Mapping函数将车辆的Eid和TXid进行键值对应,返回交易hash值TXid;车辆将TXid存入OBU中;
Mapping函数内嵌在区块链智能合约内,根据四种不同的输入值,生成键值对;具体的对应关系如下:当交易区块的TranType类型是注册register时,将Eid对应于区块的交易hash值TXid;当交易区块的TranType类型是更新update时,将Eid对应于区块的交易hash值TXid;当交易区块的TranType类型是注销revoke时,将Eid对应于字符串revoke;
当Eid未被TPA验证是,将Eid对应于字符串pend;
4.根据权利要求1所述的基于区块链的车联网车车快速通信认证方法,其特征在于:所述步骤S3中车车通信认证的具体过程为:S3.1、车辆A向车辆B发送一个包含 的信息;
S3.2、车辆B利用函数SearchBalance在链上查找车辆A的线上公钥 并确认等式是否成立,如果成立,将执行步骤S3.3,如果不成立,将中止认证程序;
S3.3、车辆B向车辆A发送随机数R和时间戳TB;
S3.4、车辆A用自己的线上私钥对车辆B发送的(R,TB)进行签名,σ=Sig(nskA,R||TB+1);
S3.5、车辆B利用智能合约对车辆A发送的信息进行检查,即确认等式是否成立,如果成立确认返回值为1,则代表车车通信认证
成功。
5.根据权利要求1所述的基于区块链的车联网车车快速通信认证方法,其特征在于:所述步骤S4中车辆证书更新的具体过程为:S4.1、车辆生成一组新线上公钥npkt+1和线上私钥nskt+1,用t时刻的线上私钥nskt对t+1时刻的线上公钥npkt+1和Eid签名,生成 该签名用于验证申请证书更新车辆的真实可靠性,同时生成t+1时刻的签名 该签名将被包含
在车辆的更新元组中,用于下一时刻车辆身份的验证,最后车辆生成一个更新元组并发送给附近的RSU;
S4.2、RSU收到车辆的更新申请后,先确认该车辆的Eid的状态是否已经注册,即确认等式 是否成立,如果成立,则确认该车辆的状态是正常的;接着确认该车辆拥有t时刻的线上私钥,即申请证书更新和证书注册的是同一辆车,即确认等式是否成立,当函数SearchBalance返回值为pend时,RSU将向TPA查询车辆的身份信息;
S4.3、RSU将向区块链提交元组U,区块链将生成一个包含元组U的交易并存放在交易池内,充当矿工的RSU确认验证等式Ver(npkchain,σnsk,Eid)=1是否成立,当验证确认通过后,该交易将被存入区块中,利用Mapping函数将车辆的Eid和TXid进行键值对应,该交易将被存入区块中,并返回交易hash值;车辆将TXid存入OBU中。
6.根据权利要求1所述的基于区块链的车联网车车快速通信认证方法,其特征在于:所述步骤S5中车辆证书注销的具体过程为:S5.1、当车辆申请证书注销时,首先利用t时刻的线上私钥nskt对Eid和Texpired进行签名随后,车辆向附近的RSU发送证书注销申请元组S5.2、RSU收到注销申请后,首先利用SearchBalance检查该车辆的证书目前的状态,完成状态检查后,进行车辆证书所有权的检查:即验证等式是否成立,确保申请证书注销的车辆拥有该证书;
S5.3、RSU将向区块链提交元组V,区块链将生成一个包含元组V的交易并存放在交易池chain nsk内,充当矿工的RSU确认等式Ver(npk ,σ ,Eid)=1是否成立,当验证成立通过后,该交易将被存入区块中,利用Mapping函数将车辆的Eid和revoke进行键值对应,该交易将被存入区块中,并返回交易hash值。
7.一种用于实现如权利要求1至6任意一项所述的基于区块链的车联网车车快速通信认证方法的系统,其特征在于:包括区块链、路侧单元RSU、车辆和第三方权威机构TPA;车辆向第三方权威机构TPA申请注册,第三方权威机构TPA获取该车辆的秘钥并进行相应验证,验证成功后,车辆向RSU申请证书注册,RSU将向区块链提交证书注册申请并生成证书。