基于无证书聚合签名的车联网认证与密钥协商方法
技术领域
本发明涉及一种基于无证书聚合签名的车联网认证与密钥协商方法。
背景技术
车联网是物联网在交通系统领域中的典型应用,已成为缓解现有交通问题以及满足舒适驾驶需求的关键。车联网主要由以下通信实体组成:配备车载单元(OBU)的车辆、路边设施(RSU)、云服务器以及作为可信机构的密钥生成中心(KGC)和注册追踪中心。首先,密钥生成中心(KGC)为各通信实体生成密钥,然后在注册追踪中心的监督控制下,通过专用短程通信协议,车辆与路边设施(RSU)建立通信,并由路边设施(RSU)通过有线链路将车辆信息转发至云服务器,实现车辆与云服务器之间的安全互联互通。为了保证车辆与云服务器之间的身份真实可靠并且车辆享有云服务器提供的私有服务,需要进行安全的身份认证以及密钥协商。同时,为了防止攻击者对车辆的恶意追踪,要求设计的协议为车辆提供强隐私保护。然而,隐私保护是一把双刃剑,车辆可能会产生可疑的危险行为,还需要实现注册追踪中心对车辆的事后追查,满足车辆的条件匿名性要求。此外,在保证通信安全的同时,云服务器面对大量车辆的认证请求信息,为提高消息的响应效率,应提供对车辆的批量认证。因此,针对车联网环境下的安全性、条件匿名性以及批认证要求,需要开发出安全高效的车联网批认证与密钥协商方法。
目前实现车联网认证与密钥协商的方法有:文献1“面向车联网的多服务器架构的匿名双向认证与密钥协商协议”(谢永,吴黎兵,张宇波,叶璐瑶.计算机研究与发展,2016,53(10),2323-2333.)采用一种身份基密码体制实现车辆与云服务器之间的认证与密钥协商方法。由于身份基密码体制中的密钥生成中心知道车辆、云服务器等通信实体的长期私钥,可以伪造这些通信实体进行签名,从而该方法存在密钥托管问题。此外,该方法中云服务器能够通过临时身份推导出车辆的真实身份;因此,无法提供对车辆的强隐私保护。并且该方法没有提供对可疑车辆的事后追查,难以满足条件匿名性要求。面对大量车辆的认证信息请求,该方法只能对车辆进行逐个认证,造成消息响应效率低下。而且,在会话密钥安全性方面,该方法难以抵抗临时私钥泄露攻击,一旦双方临时私钥发生泄露,攻击者可以计算出车辆与云服务器共享的会话密钥。
文献2“面向车联网安全高效的消息认证方案”(吴黎兵,谢永,张宇波.通信学报,2016,37(11),1-10.)采用无双线性对的椭圆曲线密码实现对车辆的高效批量认证。虽然该方法实现了车辆的条件匿名性以及对车辆的批量认证,但是该方法中车辆的临时身份与车辆公私钥对具有一定绑定关系,车辆公私钥对会随其临时身份改变进行频繁更新,从而大幅增加了系统的额外开销。
发明内容
本发明的目的是提供一种基于无证书聚合签名的车联网认证与密钥协商方法,该方法具备条件匿名性、能够抵抗临时私钥泄露攻击、安全性高、认证效率高并且系统开销小。
本发明实现其发明目的所采用的技术方案是,一种基于无证书聚合签名的车联网认证与密钥协商方法,其步骤是:
A、建立密钥
A1、部分私钥的生成
密钥生成中心为车辆的车载单元选取车辆随机数xO,并与椭圆曲线的生成元P进行基于椭圆曲线的倍点运算,得到车辆随机数承诺XO;再将车辆随机数承诺XO与车辆身份IDO进行哈希运算,得到的哈希值再与系统主密钥x进行乘法运算,再将乘积值与车辆随机数xO相加得到车辆部分私钥sO;然后,将车辆部分私钥sO和车辆随机数承诺XO通过安全信道发送给车载单元;
密钥生成中心为云服务器选取云随机数xC、并与椭圆曲线的生成元P进行基于椭圆曲线的倍点运算,得到云随机数承诺XC;再将云随机数承诺XC与云服务器身份IDC进行哈希运算,得到的哈希值再与系统主密钥x进行乘法运算,再将乘积值与云随机数xC相加得到云服务器部分私钥sC;然后,将云服务器部分私钥sC和云随机数承诺XC通过安全信道发送给云服务器;
密钥生成中心为注册追踪中心选取追踪随机数xT,并与椭圆曲线的生成元P进行基于椭圆曲线的倍点运算,得到追踪随机数承诺XT;再将追踪随机数承诺XT与注册追踪中心身份IDT进行哈希运算,得到的哈希值再与系统主密钥x进行乘法运算,再将乘积值与追踪随机数xC相加得到注册追踪中心部分私钥sT;然后,将注册追踪中心部分私钥sT和追踪随机数承诺XT通过安全信道发送给注册追踪中心;
A2、部分公钥的生成
密钥生成中心将车辆部分私钥sO、云服务器部分私钥sC和注册追踪中心部分私钥sT分别与椭圆曲线的生成元P进行椭圆曲线的倍点运算,得到车辆部分公钥PO、云服务器部分公钥PC和注册追踪中心部分公钥PT;
A3、生成完整私钥和公钥
车载单元将车辆随机数承诺X
O与车辆身份ID
O进行哈希运算,得到的哈希值再与系统公钥P
pub进行基于椭圆曲线的倍点运算,再将倍点值与车辆随机数承诺X
O相加得到车载单元算出的车辆部分公钥
然后车载单元将车辆部分私钥s
O与椭圆曲线的生成元P进行基于椭圆曲线的倍点运算,将倍点值与车载单元算出的车辆部分公钥
进行比较;如果不一致,进行F步操作;否则,
车载单元选取一随机数作为车载秘密值x′
O,再将车载秘密值x′
O与椭圆曲线的生成元P进行基于椭圆曲线的倍点运算,生成车载秘密值承诺X′
O;然后用车辆部分私钥s
O与车载秘密值x′
O构建出车辆完整私钥s′
O;随后,用车载单元算出的车辆部分公钥
与车载秘密值承诺X′
O构建出车辆完整公钥P′
O;
云服务器将云随机数承诺X
C与云服务器身份ID
C进行哈希运算,得到的哈希值再与系统公钥P
pub进行基于椭圆曲线的倍点运算,再将倍点值与云随机数承诺X
C相加得到云服务器算出的云服务器部分公钥
然后云服务器将云服务器部分私钥s
C与椭圆曲线的生成元P进行基于椭圆曲线的倍点运算,将倍点值与云服务器算出的云服务器部分公钥
进行比较;如果不一致,进行F步操作;否则,
云服务器选取一随机数作为云秘密值x′
C,再将云秘密值x′
C与椭圆曲线的生成元P进行基于椭圆曲线的倍点运算,生成云秘密值承诺X′
C;然后用云服务器部分私钥s
C与云秘密值x′
C构建出云服务器完整私钥s′
C;随后,用云服务器算出的云服务器部分公钥
与云秘密值承诺X′
C构建出云服务器完整公钥P′
C;
注册追踪中心将追踪随机数承诺X
T与注册追踪中心身份ID
T进行哈希运算,得到的哈希值再与系统公钥P
pub进行基于椭圆曲线的倍点运算,再将倍点值与追踪随机数承诺X
T相加得到注册追踪中心算出的注册追踪中心部分公钥
然后,注册追踪中心将注册追踪中心部分私钥s
T与椭圆曲线的生成元P进行基于椭圆曲线的倍点运算,将倍点值与注册追踪中心算出的注册追踪中心部分公钥
进行比较;如果不一致,进行F步操作;否则,
注册追踪中心选取一随机数作为追踪秘密值x′
T,再将追踪秘密值x′
T与椭圆曲线的生成元P进行基于椭圆曲线的倍点运算,生成追踪秘密值承诺X′
T;然后用注册追踪中心部分私钥s
T与追踪秘密值x′
T构建出注册追踪中心完整私钥s′
T;随后,用注册追踪中心算出的注册追踪中心部分公钥
与追踪秘密值承诺X′
T构建出注册追踪中心完整公钥P′
T;
B、注册与授权
B1、注册临时身份
由车载单元随机选取的车辆申请用随机数rOT与车辆完整公钥P′O进行基于椭圆曲线的倍点运算得到车辆临时身份TID;
车载单元将车辆申请用随机数rOT、车辆完整私钥s′O以及注册追踪中心完整公钥P′T,进行基于椭圆曲线的倍点运算,再进行哈希运算得到的二进制哈希值,作为车辆与注册追踪中心共享的加密密钥KOT;随后,车载单元用加密密钥KOT,对由车辆真实身份IDO、车辆申请用随机数rOT、车辆时间戳一TO1组成的消息进行加密,得到密文信息eOT;
车载单元将密文信息eOT和车辆临时身份TID组成车辆临时身份的注册申请,并将该注册申请通过路边设施发送给注册追踪中心;
B2、授权颁发
注册追踪中心收到车载单元发送的注册申请,找出注册申请中的车辆临时身份TID,再利用车辆临时身份TID和注册追踪中心完整私钥s′T,进行基于椭圆曲线的倍点运算,再进行哈希运算得到二进制哈希值,得到车辆与注册追踪中心共享的解密密钥KTO;再用所述的解密密钥KTO对注册申请中的密文信息eOT进行解密,得到车辆真实身份IDO、车辆申请用随机数rOT、车辆时间戳一TO1;再对车辆临时身份TID以及车辆时间戳一TO1进行验证,如果验证未通过,则进行F步操作;否则,注册追踪中心将车辆申请用随机数rOT和车辆的真实身份IDO,保存至临时身份索引数据库列表LO中;
注册追踪中心选取追踪签名随机数rTO,并与椭圆曲线的生成元P进行基于椭圆曲线的倍点运算,得到追踪签名承诺RTO;再利用注册追踪中心完整私钥s′O以及追踪签名随机数rTO,对车辆临时身份TID、追踪签名承诺RTO组成的消息,进行签名得到车辆的签名消息VTO;再利用加密密钥KOT对车辆的签名消息VTO、追踪签名承诺RTO、注册追踪中心时间戳TT组成的消息,进行加密得到授权密文信息,并将授权密文信息通过路边设施发给车载单元;
B3、验证授权
车载单元收到路边设施转发的授权密文信息,利用解密密钥KTO,解密授权密文信息,得到车辆的签名消息VTO、追踪签名承诺RTO以及注册追踪中心时间戳TT;车载单元对车辆的签名消息VTO和注册追踪中心时间戳TT进行验证,如果验证未通过,则进行F步操作;
C、认证与密钥协商
C1、申请服务
当车载单元需要云服务器提供服务时,车载单元选取一随机数作为车辆临时私钥rOC,再将车辆临时私钥rOC、车辆完整私钥s′O与椭圆曲线的生成元P,进行基于椭圆曲线的倍点运算得到车辆服务承诺ROC;之后,车载单元生成车辆时间戳二TO2,并由车辆临时身份TID、追踪签名承诺RTO、车辆服务承诺ROC以及车辆时间戳二TO2组成车辆服务明文消息;最后,车载单元利用车辆的签名消息VTO、车辆临时私钥rOC以及车辆完整私钥s′O对车辆服务明文消息进行签名,得到车辆服务签名VOC;最后,将含有车辆临时身份TID、追踪签名承诺RTO、车辆服务承诺ROC、车辆时间戳二TO2和车辆服务签名VOC的认证请求信息发送给路边设施;
C2、聚合签名信息
路边设施将设定时间内所有收到的认证请求信息中的车辆服务签名VOC,进行累加运算得到聚合签名V;然后,路边设施将所有收到的车辆临时身份TID、追踪签名承诺RTO、车辆服务承诺ROC、车辆时间戳二TO2以及聚合签名V发送给云服务器;
C3、认证车辆身份和计算会话密钥
云服务器对收到的车辆时间戳二TO2进行验证,如果验证未通过,则进行F步的操作;否则,将所有验证通过的追踪签名承诺RTO进行累加运算得到累加承诺R;利用累加承诺R、注册追踪中心完整公钥P′T以及所有的车辆服务承诺ROC对聚合签名V进行验证;如果验证未通过,则进行F步的操作;否则,验证通过:
云服务器选取一随机数作为云服务器临时私钥rCO,将云服务器临时私钥rCO、云服务器完整私钥s′C与椭圆曲线的生成元P,进行基于椭圆曲线的倍点运算得到云服务器承诺RCO;然后,利用云服务器临时私钥rCO、云服务器完整私钥s′C以及车辆服务承诺ROC,进行基于椭圆曲线的倍点运算,生成云服务器算出的会话密钥KCO;最后,利用云服务器临时私钥rCO、云服务器完整私钥s′C,对车辆临时身份TID、云服务器承诺RCO、当前生成的云服务器时间戳TC组成的消息,进行签名得到云服务器签名VCO;随后将车辆临时身份TID、云服务器承诺RCO、云服务器时间戳TC以及云服务器签名VCO组成的云服务器认证信息,通过路边设施发送给车载单元;
C4、验证云服务器身份和计算会话密钥
车载单元对收到的云服务器认证信息中的云服务器时间戳TC进行验证,如果验证未通过,则进行F步的操作;否则,车载单元利用云服务器完整公钥P′C和收到的云服务器认证信息,对云服务器认证信息中的云服务器签名VCO进行验证,若验证未通过,则进行F步的操作;否则,利用车辆临时私钥rOC、车辆完整私钥s′O以及云服务器承诺RCO,进行基于椭圆曲线的倍点运算得到车载单元算出的会话密钥KOC;
D、车辆获得服务
云服务器利用云服务器算出的会话密钥KCO对服务进行加密得到加密的私有服务消息,再将私有服务消息发送给车载单元;车载单元利用车载单元算出的会话密钥KOC对私有服务消息进行解密,获得私有服务;直至车辆临时身份过期,重复B、C、D步的操作;
F、认证未通过,终止认证。
与现有技术相比,本发明的有益效果是:
一、本发明利用密钥生成中心为实体(车载单元、云服务器、注册追踪中心)生成的部分私钥和实体自己选取的秘密值得到实体完整私钥构成无证书密码体制,较之PKI密码体制需要另外的授权中心对实体完整公钥进行签名生成证书,本发明消除了对证书的管理开销,从而降低了系统的开销。同时,本发明的密钥生成中心不知道实体选取的秘密值,因此无法伪造实体进行签名,从而解决了身份基密码体制的密钥托管问题,安全性高。
二、本发明所有签名均是基于椭圆曲线的倍点运算得到的,较之双线性对运算的签名,其计算复杂度低、认证效率高。较之车辆服务签名逐一转发和处理,本发明路边设施对设定时间内的所有的车辆服务签名进行累加得到聚合签名,然后转发给云服务器,降低了签名传递的通信量以及云服务器的验证开销,能够实现云服务器对车辆的批量认证,也明显提高了认证效率。
二、本发明利用临时身份的方式提供车辆的隐私保护,并通过构建临时身份索引数据库实现注册追踪中心对可疑车辆的事后追查,满足车辆的条件匿名性要求。而且,本发明中车辆公、私钥是与车辆的真实身份绑定,与车辆临时身份不存在绑定关系,因此车辆公私钥不随临时身份动态更新,解决了现有协议中因公私钥频繁更新带来系统开销增加的问题,并通过引入随机参数以及秘密预签名,实现云服务器对车辆的匿名认证。
三、本发明的会话密钥由双方的临时私钥以及完整长期私钥共同参与生成,即使双方的临时私钥发生泄露,仍然可以通过双方的完整长期私钥对会话密钥的安全性加以保证,能够抵抗临时私钥泄露攻击。
进一步,本发明的步骤A3中:
用车辆部分私钥sO与车载秘密值x′O构建出车辆完整私钥s′O的具体方法是:将车载秘密值承诺X′O与车辆身份IDO进行哈希运算,得到的哈希值再与车辆部分私钥sO进行乘法运算,再将乘积值与车载秘密值x′O相加得到车辆完整私钥s′O;
用车载单元算出的车辆部分公钥
与车载秘密值承诺X′
O构建出车辆完整公钥P′
O的具体方法是:将车载秘密值承诺X′
O与车辆身份ID
O进行哈希运算,得到的哈希值再与车载单元算出的车辆部分公钥
进行基于椭圆曲线的倍点运算,再将倍点值与车载秘密值承诺X′
O相加得到车辆完整公钥P′
O;
用云服务器部分私钥sC与云秘密值x′C构建出云服务器完整私钥s′C的具体方法是:将云秘密值承诺X′C与云服务器身份IDC进行哈希运算,得到的哈希值再与云服务器部分私钥sC进行乘法运算,再将乘积值与云秘密值x′C相加得到云服务器完整私钥s′C;
用云服务器算出的云服务器部分公钥
与云秘密值承诺X′
C构建出云服务器完整公钥P′
C的具体方法是:将云秘密值承诺X′
C与云服务器身份ID
C进行哈希运算,得到的哈希值再与云服务器算出的云服务器部分公钥
进行基于椭圆曲线的倍点运算,再将倍点值与云秘密值承诺X′
C相加得到云服务器完整公钥P′
C;
用注册追踪中心部分私钥sT与追踪秘密值x′T构建出注册追踪中心完整私钥s′T的具体方法是:将追踪秘密值承诺X′T与注册追踪中心身份IDT进行哈希运算,得到的哈希值再与注册追踪中心部分私钥sT进行乘法运算,再将乘积值与追踪秘密值x′T相加得到注册追踪中心完整私钥s′T;
用注册追踪中心算出的注册追踪中心部分公钥
与追踪秘密值承诺X′
T构建出注册追踪中心完整公钥P′
T的具体方法是:将追踪秘密值承诺X′
T与注册追踪中心身份ID
T进行哈希运算,得到的哈希值再与注册追踪中心算出的注册追踪中心部分公钥
进行基于椭圆曲线的倍点运算,再将倍点值与追踪秘密值承诺X′
T相加得到注册追踪中心完整公钥P′
T。
这种将部分私钥与秘密值基于哈希运算构建完整公私钥,其方法成熟、简单,后续对其签名的验证者的计算开销小。
进一步,本发明的步骤B2中:
对车辆临时身份TID进行验证的具体方法是:将注册追踪中心对注册申请中的密文信息eOT解密得到的车辆申请用随机数rOT与车辆完整公钥P′O进行基于椭圆曲线的倍点运算,得到的倍点值再与注册申请中的车辆临时身份TID进行比较,如果不一致,则验证未通过,否则,验证通过;
利用注册追踪中心完整私钥s′O以及追踪签名随机数rTO,对车辆临时身份TID、追踪签名承诺RTO组成的消息,进行签名得到车辆的签名消息VTO的具体方法是:将车辆临时身份TID与追踪签名承诺RTO进行哈希运算,得到的哈希值再与注册追踪中心完整私钥s′T进行乘法运算,再将乘积值与追踪签名随机数rTO相加,得到车辆的签名消息VTO。
进一步,本发明的步骤B3中,车载单元对车辆的签名消息VTO进行验证的具体方法是:将车辆临时身份TID与追踪签名承诺RTO进行哈希运算,得到的哈希值再与注册追踪中心完整公钥P′T进行基于椭圆曲线的倍点运算,再将倍点值与追踪签名承诺RTO相加得到车载单元算出的求和值;然后将车辆的签名消息VTO与椭圆曲线的生成元P进行基于椭圆曲线倍点运算,得到的倍点值再与车载单元算出的求和值进行比较,如果不一致,则验证未通过,否则,验证通过;
进一步,本发明的步骤C1中,车载单元利用车辆的签名消息VTO、车辆临时私钥rOC以及车辆完整私钥s′O对车辆服务明文消息进行签名,得到车辆服务签名VOC的具体方法是:将车辆临时身份TID、追踪签名承诺RTO、车辆服务承诺ROC以及当前生成的车辆时间戳二TO2进行哈希运算,得到的哈希值再与车辆临时私钥rOC以及车辆完整私钥s′O进行乘法运算,再将乘积值与车辆的签名消息VTO相加得到车辆服务签名VOC。
进一步,本发明的步骤C3中,利用累加承诺R、注册追踪中心完整公钥P′T以及所有的车辆服务承诺ROC对聚合签名V进行验证的具体方法是:
将车辆临时身份TID与追踪签名承诺RTO进行哈希运算得到车辆的哈希值,并将所有车辆的哈希值进行累加运算得到累加哈希值,再将累加哈希值与注册追踪中心完整公钥P′T进行基于椭圆曲线的倍点运算,得到的倍点值再与累加承诺R相加,得到车载签名部分求和值;
将车辆临时身份TID、追踪签名承诺RTO、车辆服务承诺ROC以及车辆时间戳二TO2进行哈希运算得到车载哈希值,再将车载哈希值与车辆服务承诺ROC,进行基于椭圆曲线的倍点运算,得到车载倍点值;将所有的车载倍点值进行累加,得到的累加倍点值再与所述的车载签名部分求和值,相加得到车载签名完整求和值;
将聚合签名V和椭圆曲线的生成元P进行基于椭圆曲线的倍点运算,再将得到的倍点值与车载签名完整求和值进行比较;如果不一致,验证未通过,否则,验证通过;
进一步,本发明的步骤C3中,利用云服务器临时私钥rCO、云服务器完整私钥s′C,对车辆临时身份TID、云服务器承诺RCO、当前生成的云服务器时间戳TC组成的消息,进行签名得到云服务器签名VCO的具体方法是:
将车辆临时身份TID、云服务器承诺RCO、云服务器时间戳TC组成的消息,进行哈希运算,得到的哈希值再与云服务器完整私钥s′C进行乘法运算得到哈希乘积值;然后将云服务器临时私钥rCO和云服务器完整私钥s′C进行乘法运算得到私钥乘积值,再将私钥乘积值与哈希乘积值相加,即完成签名,得到云服务器签名VCO;
进一步,本发明的步骤C4中,车载单元利用云服务器完整公钥P′C和收到的云服务器认证信息,对云服务器认证信息中的云服务器签名VCO进行验证的具体方法是:
车载单元将收到的云服务器认证信息中的车辆临时身份TID、云服务器承诺RCO、云服务器时间戳TC进行哈希运算,得到的哈希值再与云服务器完整公钥P′C进行基于椭圆曲线的倍点运算,再将倍点值与云服务器承诺RCO相加得到车辆求和值;然后将云服务器签名VCO和椭圆曲线的生成元P进行基于椭圆曲线的倍点运算,得到的倍点值再与车辆求和值进行比较,如果不一致,则验证未通过;否则,验证通过。
采用以上基于椭圆曲线的倍点运算的签名与验证方法,与采用双线性对运算的签名与验证相比,提高了验证者的计算效率。
下面结合具体实施方式对本发明作进一步的详细说明。
具体实施方式
实施例
本发明的一种具体实施方式是,一种基于无证书聚合签名的车联网认证与密钥协商方法,其步骤是:
A、建立密钥
A1、部分私钥的生成
密钥生成中心为车辆的车载单元选取车辆随机数xO,并与椭圆曲线的生成元P进行基于椭圆曲线的倍点运算,得到车辆随机数承诺XO;再将车辆随机数承诺XO与车辆身份IDO进行哈希运算,得到的哈希值再与系统主密钥x进行乘法运算,再将乘积值与车辆随机数xO相加得到车辆部分私钥sO;然后,将车辆部分私钥sO和车辆随机数承诺XO通过安全信道发送给车载单元;
密钥生成中心为云服务器选取云随机数xC、并与椭圆曲线的生成元P进行基于椭圆曲线的倍点运算,得到云随机数承诺XC;再将云随机数承诺XC与云服务器身份IDC进行哈希运算,得到的哈希值再与系统主密钥x进行乘法运算,再将乘积值与云随机数xC相加得到云服务器部分私钥sC;然后,将云服务器部分私钥sC和云随机数承诺XC通过安全信道发送给云服务器;
密钥生成中心为注册追踪中心选取追踪随机数xT,并与椭圆曲线的生成元P进行基于椭圆曲线的倍点运算,得到追踪随机数承诺XT;再将追踪随机数承诺XT与注册追踪中心身份IDT进行哈希运算,得到的哈希值再与系统主密钥x进行乘法运算,再将乘积值与追踪随机数xC相加得到注册追踪中心部分私钥sT;然后,将注册追踪中心部分私钥sT和追踪随机数承诺XT通过安全信道发送给注册追踪中心;
A2、部分公钥的生成
密钥生成中心将车辆部分私钥sO、云服务器部分私钥sC和注册追踪中心部分私钥sT分别与椭圆曲线的生成元P进行椭圆曲线的倍点运算,得到车辆部分公钥PO、云服务器部分公钥PC和注册追踪中心部分公钥PT;
A3、生成完整私钥和公钥
车载单元将车辆随机数承诺X
O与车辆身份ID
O进行哈希运算,得到的哈希值再与系统公钥P
pub进行基于椭圆曲线的倍点运算,再将倍点值与车辆随机数承诺X
O相加得到车载单元算出的车辆部分公钥
然后车载单元将车辆部分私钥s
O与椭圆曲线的生成元P进行基于椭圆曲线的倍点运算,将倍点值与车载单元算出的车辆部分公钥
进行比较;如果不一致,进行F步操作;否则,
车载单元选取一随机数作为车载秘密值x′
O,再将车载秘密值x′
O与椭圆曲线的生成元P进行基于椭圆曲线的倍点运算,生成车载秘密值承诺X′
O;然后用车辆部分私钥s
O与车载秘密值x′
O构建出车辆完整私钥s′
O;随后,用车载单元算出的车辆部分公钥
与车载秘密值承诺X′
O构建出车辆完整公钥P′
O;
云服务器将云随机数承诺X
C与云服务器身份ID
C进行哈希运算,得到的哈希值再与系统公钥P
pub进行基于椭圆曲线的倍点运算,再将倍点值与云随机数承诺X
C相加得到云服务器算出的云服务器部分公钥
然后云服务器将云服务器部分私钥s
C与椭圆曲线的生成元P进行基于椭圆曲线的倍点运算,将倍点值与云服务器算出的云服务器部分公钥
进行比较;如果不一致,进行F步操作;否则,
云服务器选取一随机数作为云秘密值x′
C,再将云秘密值x′
C与椭圆曲线的生成元P进行基于椭圆曲线的倍点运算,生成云秘密值承诺X′
C;然后用云服务器部分私钥s
C与云秘密值x′
C构建出云服务器完整私钥s′
C;随后,用云服务器算出的云服务器部分公钥
与云秘密值承诺X′
C构建出云服务器完整公钥P′
C;
注册追踪中心将追踪随机数承诺X
T与注册追踪中心身份ID
T进行哈希运算,得到的哈希值再与系统公钥P
pub进行基于椭圆曲线的倍点运算,再将倍点值与追踪随机数承诺X
T相加得到注册追踪中心算出的注册追踪中心部分公钥
然后,注册追踪中心将注册追踪中心部分私钥s
T与椭圆曲线的生成元P进行基于椭圆曲线的倍点运算,将倍点值与注册追踪中心算出的注册追踪中心部分公钥
进行比较;如果不一致,进行F步操作;否则,
注册追踪中心选取一随机数作为追踪秘密值x′
T,再将追踪秘密值x′
T与椭圆曲线的生成元P进行基于椭圆曲线的倍点运算,生成追踪秘密值承诺X′
T;然后用注册追踪中心部分私钥s
T与追踪秘密值x′
T构建出注册追踪中心完整私钥s′
T;随后,用注册追踪中心算出的注册追踪中心部分公钥
与追踪秘密值承诺X′
T构建出注册追踪中心完整公钥P′
T;
B、注册与授权
B1、注册临时身份
由车载单元随机选取的车辆申请用随机数rOT与车辆完整公钥P′O进行基于椭圆曲线的倍点运算得到车辆临时身份TID;
车载单元将车辆申请用随机数rOT、车辆完整私钥s′O以及注册追踪中心完整公钥P′T,进行基于椭圆曲线的倍点运算,再进行哈希运算得到的二进制哈希值,作为车辆与注册追踪中心共享的加密密钥KOT;随后,车载单元用加密密钥KOT,对由车辆真实身份IDO、车辆申请用随机数rOT、车辆时间戳一TO1组成的消息进行加密,得到密文信息eOT;
车载单元将密文信息eOT和车辆临时身份TID组成车辆临时身份的注册申请,并将该注册申请通过路边设施发送给注册追踪中心;
B2、授权颁发
注册追踪中心收到车载单元发送的注册申请,找出注册申请中的车辆临时身份TID,再利用车辆临时身份TID和注册追踪中心完整私钥s′T,进行基于椭圆曲线的倍点运算,再进行哈希运算得到二进制哈希值,得到车辆与注册追踪中心共享的解密密钥KTO;再用所述的解密密钥KTO对注册申请中的密文信息eOT进行解密,得到车辆真实身份IDO、车辆申请用随机数rOT、车辆时间戳一TO1;再对车辆临时身份TID以及车辆时间戳一TO1进行验证,如果验证未通过,则进行F步操作;否则,注册追踪中心将车辆申请用随机数rOT和车辆的真实身份IDO,保存至临时身份索引数据库列表LO中;
注册追踪中心选取追踪签名随机数rTO,并与椭圆曲线的生成元P进行基于椭圆曲线的倍点运算,得到追踪签名承诺RTO;再利用注册追踪中心完整私钥s′O以及追踪签名随机数rTO,对车辆临时身份TID、追踪签名承诺RTO组成的消息,进行签名得到车辆的签名消息VTO;再利用加密密钥KOT对车辆的签名消息VTO、追踪签名承诺RTO、注册追踪中心时间戳TT组成的消息,进行加密得到授权密文信息,并将授权密文信息通过路边设施发给车载单元;
B3、验证授权
车载单元收到路边设施转发的授权密文信息,利用解密密钥KTO,解密授权密文信息,得到车辆的签名消息VTO、追踪签名承诺RTO以及注册追踪中心时间戳TT;车载单元对车辆的签名消息VTO和注册追踪中心时间戳TT进行验证,如果验证未通过,则进行F步操作;
C、认证与密钥协商
C1、申请服务
当车载单元需要云服务器提供服务时,车载单元选取一随机数作为车辆临时私钥rOC,再将车辆临时私钥rOC、车辆完整私钥s′O与椭圆曲线的生成元P,进行基于椭圆曲线的倍点运算得到车辆服务承诺ROC;之后,车载单元生成车辆时间戳二TO2,并由车辆临时身份TID、追踪签名承诺RTO、车辆服务承诺ROC以及车辆时间戳二TO2组成车辆服务明文消息;最后,车载单元利用车辆的签名消息VTO、车辆临时私钥rOC以及车辆完整私钥s′O对车辆服务明文消息进行签名,得到车辆服务签名VOC;最后,将含有车辆临时身份TID、追踪签名承诺RTO、车辆服务承诺ROC、车辆时间戳二TO2和车辆服务签名VOC的认证请求信息发送给路边设施;
C2、聚合签名信息
路边设施将设定时间内所有收到的认证请求信息中的车辆服务签名VOC,进行累加运算得到聚合签名V;然后,路边设施将所有收到的车辆临时身份TID、追踪签名承诺RTO、车辆服务承诺ROC、车辆时间戳二TO2以及聚合签名V发送给云服务器;
C3、认证车辆身份和计算会话密钥
云服务器对收到的车辆时间戳二TO2进行验证,如果验证未通过,则进行F步的操作;否则,将所有验证通过的追踪签名承诺RTO进行累加运算得到累加承诺R;利用累加承诺R、注册追踪中心完整公钥P′T以及所有的车辆服务承诺ROC对聚合签名V进行验证;如果验证未通过,则进行F步的操作;否则,验证通过:
云服务器选取一随机数作为云服务器临时私钥rCO,将云服务器临时私钥rCO、云服务器完整私钥s′C与椭圆曲线的生成元P,进行基于椭圆曲线的倍点运算得到云服务器承诺RCO;然后,利用云服务器临时私钥rCO、云服务器完整私钥s′C以及车辆服务承诺ROC,进行基于椭圆曲线的倍点运算,生成云服务器算出的会话密钥KCO;最后,利用云服务器临时私钥rCO、云服务器完整私钥s′C,对车辆临时身份TID、云服务器承诺RCO、当前生成的云服务器时间戳TC组成的消息,进行签名得到云服务器签名VCO;随后将车辆临时身份TID、云服务器承诺RCO、云服务器时间戳TC以及云服务器签名VCO组成的云服务器认证信息,通过路边设施发送给车载单元;
C4、验证云服务器身份和计算会话密钥
车载单元对收到的云服务器认证信息中的云服务器时间戳TC进行验证,如果验证未通过,则进行F步的操作;否则,车载单元利用云服务器完整公钥P′C和收到的云服务器认证信息,对云服务器认证信息中的云服务器签名VCO进行验证,若验证未通过,则进行F步的操作;否则,利用车辆临时私钥rOC、车辆完整私钥s′O以及云服务器承诺RCO,进行基于椭圆曲线的倍点运算得到车载单元算出的会话密钥KOC;
D、车辆获得服务
云服务器利用云服务器算出的会话密钥KCO对服务进行加密得到加密的私有服务消息,再将私有服务消息发送给车载单元;车载单元利用车载单元算出的会话密钥KOC对私有服务消息进行解密,获得私有服务;直至车辆临时身份过期,重复B、C、D步的操作;
F、认证未通过,终止认证。
本例的步骤A3中:
用车辆部分私钥sO与车载秘密值x′O构建出车辆完整私钥s′O的具体方法是:将车载秘密值承诺X′O与车辆身份IDO进行哈希运算,得到的哈希值再与车辆部分私钥sO进行乘法运算,再将乘积值与车载秘密值x′O相加得到车辆完整私钥s′O;
用车载单元算出的车辆部分公钥
与车载秘密值承诺X′
O构建出车辆完整公钥P′
O的具体方法是:将车载秘密值承诺X′
O与车辆身份ID
O进行哈希运算,得到的哈希值再与车载单元算出的车辆部分公钥
进行基于椭圆曲线的倍点运算,再将倍点值与车载秘密值承诺X′
O相加得到车辆完整公钥P′
O;
用云服务器部分私钥sC与云秘密值x′C构建出云服务器完整私钥s′C的具体方法是:将云秘密值承诺X′C与云服务器身份IDC进行哈希运算,得到的哈希值再与云服务器部分私钥sC进行乘法运算,再将乘积值与云秘密值x′C相加得到云服务器完整私钥s′C;
用云服务器算出的云服务器部分公钥
与云秘密值承诺X′
C构建出云服务器完整公钥P′
C的具体方法是:将云秘密值承诺X′
C与云服务器身份ID
C进行哈希运算,得到的哈希值再与云服务器算出的云服务器部分公钥
进行基于椭圆曲线的倍点运算,再将倍点值与云秘密值承诺X′
C相加得到云服务器完整公钥P′
C;
用注册追踪中心部分私钥sT与追踪秘密值x′T构建出注册追踪中心完整私钥s′T的具体方法是:将追踪秘密值承诺X′T与注册追踪中心身份IDT进行哈希运算,得到的哈希值再与注册追踪中心部分私钥sT进行乘法运算,再将乘积值与追踪秘密值x′T相加得到注册追踪中心完整私钥s′T;
用注册追踪中心算出的注册追踪中心部分公钥
与追踪秘密值承诺X′
T构建出注册追踪中心完整公钥P′
T的具体方法是:将追踪秘密值承诺X′
T与注册追踪中心身份ID
T进行哈希运算,得到的哈希值再与注册追踪中心算出的注册追踪中心部分公钥
进行基于椭圆曲线的倍点运算,再将倍点值与追踪秘密值承诺X′
T相加得到注册追踪中心完整公钥P′
T;
本例的步骤B2中:
对车辆临时身份TID进行验证的具体方法是:将注册追踪中心对注册申请中的密文信息eOT解密得到的车辆申请用随机数rOT与车辆完整公钥P′O进行基于椭圆曲线的倍点运算,得到的倍点值再与注册申请中的车辆临时身份TID进行比较,如果不一致,则验证未通过,否则,验证通过;
利用注册追踪中心完整私钥s′O以及追踪签名随机数rTO,对车辆临时身份TID、追踪签名承诺RTO组成的消息,进行签名得到车辆的签名消息VTO的具体方法是:将车辆临时身份TID与追踪签名承诺RTO进行哈希运算,得到的哈希值再与注册追踪中心完整私钥s′T进行乘法运算,再将乘积值与追踪签名随机数rTO相加,得到车辆的签名消息VTO;
本例的步骤B3中,车载单元对车辆的签名消息VTO进行验证的具体方法是:将车辆临时身份TID与追踪签名承诺RTO进行哈希运算,得到的哈希值再与注册追踪中心完整公钥P′T进行基于椭圆曲线的倍点运算,再将倍点值与追踪签名承诺RTO相加得到车载单元算出的求和值;然后将车辆的签名消息VTO与椭圆曲线的生成元P进行基于椭圆曲线倍点运算,得到的倍点值再与车载单元算出的求和值进行比较,如果不一致,则验证未通过,否则,验证通过;
本例的步骤C1中,车载单元利用车辆的签名消息VTO、车辆临时私钥rOC以及车辆完整私钥s′O对车辆服务明文消息进行签名,得到车辆服务签名VOC的具体方法是:将车辆临时身份TID、追踪签名承诺RTO、车辆服务承诺ROC以及当前生成的车辆时间戳二TO2进行哈希运算,得到的哈希值再与车辆临时私钥rOC以及车辆完整私钥s′O进行乘法运算,再将乘积值与车辆的签名消息VTO相加得到车辆服务签名VOC;
本例的步骤C3中,利用累加承诺R、注册追踪中心完整公钥P′T以及所有的车辆服务承诺ROC对聚合签名V进行验证的具体方法是:
将车辆临时身份TID与追踪签名承诺RTO进行哈希运算得到车辆的哈希值,并将所有车辆的哈希值进行累加运算得到累加哈希值,再将累加哈希值与注册追踪中心完整公钥P′T进行基于椭圆曲线的倍点运算,得到的倍点值再与累加承诺R相加,得到车载签名部分求和值;
将车辆临时身份TID、追踪签名承诺RTO、车辆服务承诺ROC以及车辆时间戳二TO2进行哈希运算得到车载哈希值,再将车载哈希值与车辆服务承诺ROC,进行基于椭圆曲线的倍点运算,得到车载倍点值;将所有的车载倍点值进行累加,得到的累加倍点值再与所述的车载签名部分求和值,相加得到车载签名完整求和值;
将聚合签名V和椭圆曲线的生成元P进行基于椭圆曲线的倍点运算,再将得到的倍点值与车载签名完整求和值进行比较;如果不一致,验证未通过,否则,验证通过;
本例的步骤C3中,利用云服务器临时私钥rCO、云服务器完整私钥s′C,对车辆临时身份TID、云服务器承诺RCO、当前生成的云服务器时间戳TC组成的消息,进行签名得到云服务器签名VCO的具体方法是:
将车辆临时身份TID、云服务器承诺RCO、云服务器时间戳TC组成的消息,进行哈希运算,得到的哈希值再与云服务器完整私钥s′C进行乘法运算得到哈希乘积值;然后将云服务器临时私钥rCO和云服务器完整私钥s′C进行乘法运算得到私钥乘积值,再将私钥乘积值与哈希乘积值相加,即完成签名,得到云服务器签名VCO;
本例的步骤C4中,车载单元利用云服务器完整公钥P′C和收到的云服务器认证信息,对云服务器认证信息中的云服务器签名VCO进行验证的具体方法是:
车载单元将收到的云服务器认证信息中的车辆临时身份TID、云服务器承诺RCO、云服务器时间戳TC进行哈希运算,得到的哈希值再与云服务器完整公钥P′C进行基于椭圆曲线的倍点运算,再将倍点值与云服务器承诺RCO相加得到车辆求和值;然后将云服务器签名VCO和椭圆曲线的生成元P进行基于椭圆曲线的倍点运算,得到的倍点值再与车辆求和值进行比较,如果不一致,则验证未通过;否则,验证通过。