1.一种基于无证书聚合签名的车联网认证与密钥协商方法,其步骤是:
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、生成完整私钥和公钥
车载单元将车辆随机数承诺XO与车辆身份IDO进行哈希运算,得到的哈希值再与系统公钥Ppub进行基于椭圆曲线的倍点运算,再将倍点值与车辆随机数承诺XO相加得到车载单元算出的车辆部分公钥 然后车载单元将车辆部分私钥sO与椭圆曲线的生成元P进行基于椭圆曲线的倍点运算,将倍点值与车载单元算出的车辆部分公钥 进行比较;如果不一致,进行F步操作;否则,车载单元选取一随机数作为车载秘密值x′O,再将车载秘密值x′O与椭圆曲线的生成元P进行基于椭圆曲线的倍点运算,生成车载秘密值承诺X′O;然后用车辆部分私钥sO与车载秘密值x′O构建出车辆完整私钥s′O;随后,用车载单元算出的车辆部分公钥 与车载秘密值承诺X′O构建出车辆完整公钥P′O;
所述的用车辆部分私钥sO与车载秘密值x′O构建出车辆完整私钥s′O的具体方法是:将车载秘密值承诺X′O与车辆身份IDO进行哈希运算,得到的哈希值再与车辆部分私钥sO进行乘法运算,再将乘积值与车载秘密值x′O相加得到车辆完整私钥s′O;
所述的用车载单元算出的车辆部分公钥 与车载秘密值承诺X′O构建出车辆完整公钥P′O的具体方法是:将车载秘密值承诺X′O与车辆身份IDO进行哈希运算,得到的哈希值再与车载单元算出的车辆部分公钥 进行基于椭圆曲线的倍点运算,再将倍点值与车载秘密值承诺X′O相加得到车辆完整公钥P′O;
云服务器将云随机数承诺XC与云服务器身份IDC进行哈希运算,得到的哈希值再与系统公钥Ppub进行基于椭圆曲线的倍点运算,再将倍点值与云随机数承诺XC相加得到云服务器算出的云服务器部分公钥 然后云服务器将云服务器部分私钥sC与椭圆曲线的生成元P进行基于椭圆曲线的倍点运算,将倍点值与云服务器算出的云服务器部分公钥 进行比较;如果不一致,进行F步操作;否则,云服务器选取一随机数作为云秘密值x′C,再将云秘密值x′C与椭圆曲线的生成元P进行基于椭圆曲线的倍点运算,生成云秘密值承诺X′C;然后用云服务器部分私钥sC与云秘密值x′C构建出云服务器完整私钥s′C;随后,用云服务器算出的云服务器部分公钥 与云秘密值承诺X′C构建出云服务器完整公钥P′C;
所述的用云服务器部分私钥sC与云秘密值x′C构建出云服务器完整私钥s′C的具体方法是:将云秘密值承诺X′C与云服务器身份IDC进行哈希运算,得到的哈希值再与云服务器部分私钥sC进行乘法运算,再将乘积值与云秘密值x′C相加得到云服务器完整私钥s′C;
所述的用云服务器算出的云服务器部分公钥 与云秘密值承诺X′C构建出云服务器完整公钥P′C的具体方法是:将云秘密值承诺X′C与云服务器身份IDC进行哈希运算,得到的哈希值再与云服务器算出的云服务器部分公钥 进行基于椭圆曲线的倍点运算,再将倍点值与云秘密值承诺X′C相加得到云服务器完整公钥P′C;
注册追踪中心将追踪随机数承诺XT与注册追踪中心身份IDT进行哈希运算,得到的哈希值再与系统公钥Ppub进行基于椭圆曲线的倍点运算,再将倍点值与追踪随机数承诺XT相加得到注册追踪中心算出的注册追踪中心部分公钥 然后,注册追踪中心将注册追踪中心部分私钥sT与椭圆曲线的生成元P进行基于椭圆曲线的倍点运算,将倍点值与注册追踪中心算出的注册追踪中心部分公钥 进行比较;如果不一致,进行F步操作;否则,注册追踪中心选取一随机数作为追踪秘密值x′T,再将追踪秘密值x′T与椭圆曲线的生成元P进行基于椭圆曲线的倍点运算,生成追踪秘密值承诺X′T;然后用注册追踪中心部分私钥sT与追踪秘密值x′T构建出注册追踪中心完整私钥s′T;随后,用注册追踪中心算出的注册追踪中心部分公钥 与追踪秘密值承诺X′T构建出注册追踪中心完整公钥P′T;
所述的用注册追踪中心部分私钥sT与追踪秘密值x′T构建出注册追踪中心完整私钥s′T的具体方法是:将追踪秘密值承诺X′T与注册追踪中心身份IDT进行哈希运算,得到的哈希值再与注册追踪中心部分私钥sT进行乘法运算,再将乘积值与追踪秘密值x′T相加得到注册追踪中心完整私钥s′T;
所述的用注册追踪中心算出的注册追踪中心部分公钥 与追踪秘密值承诺X′T构建出注册追踪中心完整公钥P′T的具体方法是:将追踪秘密值承诺X′T与注册追踪中心身份IDT进行哈希运算,得到的哈希值再与注册追踪中心算出的注册追踪中心部分公钥 进行基于椭圆曲线的倍点运算,再将倍点值与追踪秘密值承诺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、认证未通过,终止认证。
2.根据权利要求1所述的一种基于无证书聚合签名的车联网认证与密钥协商方法,其特征在于,所述的步骤B2中:
对车辆临时身份TID进行验证的具体方法是:将注册追踪中心对注册申请中的密文信息eOT解密得到的车辆申请用随机数rOT与车辆完整公钥P′O进行基于椭圆曲线的倍点运算,得到的倍点值再与注册申请中的车辆临时身份TID进行比较,如果不一致,则验证未通过,否则,验证通过;
利用注册追踪中心完整私钥s′O以及追踪签名随机数rTO,对车辆临时身份TID、追踪签名承诺RTO组成的消息,进行签名得到车辆的签名消息VTO的具体方法是:将车辆临时身份TID与追踪签名承诺RTO进行哈希运算,得到的哈希值再与注册追踪中心完整私钥s′T进行乘法运算,再将乘积值与追踪签名随机数rTO相加,得到车辆的签名消息VTO。
3.根据权利要求1所述的一种基于无证书聚合签名的车联网认证与密钥协商方法,其特征在于:
所述的步骤B3中,车载单元对车辆的签名消息VTO进行验证的具体方法是:将车辆临时身份TID与追踪签名承诺RTO进行哈希运算,得到的哈希值再与注册追踪中心完整公钥P′T进行基于椭圆曲线的倍点运算,再将倍点值与追踪签名承诺RTO相加得到车载单元算出的求和值;然后将车辆的签名消息VTO与椭圆曲线的生成元P进行基于椭圆曲线倍点运算,得到的倍点值再与车载单元算出的求和值进行比较,如果不一致,则验证未通过,否则,验证通过。
4.根据权利要求1所述的一种基于无证书聚合签名的车联网认证与密钥协商方法,其特征在于:
所述的步骤C1中,车载单元利用车辆的签名消息VTO、车辆临时私钥rOC以及车辆完整私钥s′O对车辆服务明文消息进行签名,得到车辆服务签名VOC的具体方法是:将车辆临时身份TID、追踪签名承诺RTO、车辆服务承诺ROC以及当前生成的车辆时间戳二TO2进行哈希运算,得到的哈希值再与车辆临时私钥rOC以及车辆完整私钥s′O进行乘法运算,再将乘积值与车辆的签名消息VTO相加得到车辆服务签名VOC。
5.根据权利要求1所述的一种基于无证书聚合签名的车联网认证与密钥协商方法,其特征在于:
所述的步骤C3中,利用累加承诺R、注册追踪中心完整公钥P′T以及所有的车辆服务承诺ROC对聚合签名V进行验证的具体方法是:将车辆临时身份TID与追踪签名承诺RTO进行哈希运算得到车辆的哈希值,并将所有车辆的哈希值进行累加运算得到累加哈希值,再将累加哈希值与注册追踪中心完整公钥P′T进行基于椭圆曲线的倍点运算,得到的倍点值再与累加承诺R相加,得到车载签名部分求和值;
将车辆临时身份TID、追踪签名承诺RTO、车辆服务承诺ROC以及车辆时间戳二TO2进行哈希运算得到车载哈希值,再将车载哈希值与车辆服务承诺ROC,进行基于椭圆曲线的倍点运算,得到车载倍点值;将所有的车载倍点值进行累加,得到的累加倍点值再与所述的车载签名部分求和值,相加得到车载签名完整求和值;
将聚合签名V和椭圆曲线的生成元P进行基于椭圆曲线的倍点运算,再将得到的倍点值与车载签名完整求和值进行比较;如果不一致,验证未通过,否则,验证通过。
6.根据权利要求1所述的一种基于无证书聚合签名的车联网认证与密钥协商方法,其特征在于:
所述的步骤C3中,利用云服务器临时私钥rCO、云服务器完整私钥s′C,对车辆临时身份TID、云服务器承诺RCO、当前生成的云服务器时间戳TC组成的消息,进行签名得到云服务器签名VCO的具体方法是:将车辆临时身份TID、云服务器承诺RCO、云服务器时间戳TC组成的消息,进行哈希运算,得到的哈希值再与云服务器完整私钥s′C进行乘法运算得到哈希乘积值;然后将云服务器临时私钥rCO和云服务器完整私钥s′C进行乘法运算得到私钥乘积值,再将私钥乘积值与哈希乘积值相加,即完成签名,得到云服务器签名VCO。
7.根据权利要求1所述的一种基于无证书聚合签名的车联网认证与密钥协商方法,其特征在于:所述的步骤C4中,车载单元利用云服务器完整公钥P′C和收到的云服务器认证信息,对云服务器认证信息中的云服务器签名VCO进行验证的具体方法是:车载单元将收到的云服务器认证信息中的车辆临时身份TID、云服务器承诺RCO、云服务器时间戳TC进行哈希运算,得到的哈希值再与云服务器完整公钥P′C进行基于椭圆曲线的倍点运算,再将倍点值与云服务器承诺RCO相加得到车辆求和值;然后将云服务器签名VCO和椭圆曲线的生成元P进行基于椭圆曲线的倍点运算,得到的倍点值再与车辆求和值进行比较,如果不一致,则验证未通过;否则,验证通过。