一种基于区块链适用于V2I场景下量子组密钥分发方法

文档序号:36424931发布日期:2023-12-20 18:04阅读:44来源:国知局
一种基于区块链适用于的制作方法

本发明涉及密钥分发,具体是一种基于区块链适用于v2i场景下量子组密钥分发方法。


背景技术:

1、在车载自组网络场景下,通信对象通常是指车辆之间进行通信。为了确保车辆之间的通信不会泄露隐私信息,通常会对通信传输的信息进行加密处理。常见的加密方式有基于大数因子分解的公私钥加密方式、基于椭圆曲线的密钥算法等等。但是由于基于大数因子分解的公私钥加密方式较为复杂,计算成本较高,因此适用范围较窄。基于椭圆曲线的密钥算法相比大数因子分解在计算精度上有很大提高,但是随着量子计算的出现,导致公私钥加密的安全性出现裂缝,基于公私钥的加密方式安全性难以保证,基于椭圆曲线的密钥算法也逐渐被弃用。

2、为了避免上述现有技术中的问题,有学者提出用区块链代替云端,实现组密钥的分发;路端需要对每一辆车形成一份智能合约,每次组成员更新时,路端都需要对智能合约进行更新,这种密钥分发的方式虽然不需要可信服务器的参与,但是有效的解决了用户分布比较广的时候密钥的分配问题。但是当网络规模很大时,每个用户所要保存的主密钥的数量也就越多,这就导致车辆之间通信的计算负载大幅度增加,进而导致通信的效率和成本变高,因此亟待解决。


技术实现思路

1、为了避免和克服现有技术中存在的技术问题,本发明提供了一种基于区块链适用于v2i场景下量子组密钥分发方法。本发明能够有效减少车辆之间通信传输的计算负载,进而提高车辆之间的通信安全和通信效率。

2、为实现上述目的,本发明提供如下技术方案:

3、一种基于区块链适用于v2i场景下量子组密钥分发方法,包括以下操作步骤:

4、s1、注册阶段:分别为车辆和路端赋予唯一标志,并分别向车辆和路端中预充对应的注量子密钥,同时为路端颁发数字证书;

5、s2、初始化阶段:进行车辆与云端之间的身份互认,且为车辆获取匿名凭证,同时将该匿名凭证上传至区块链;

6、s3、组密钥获取阶段:车辆和路端之间通过密钥进行身份认证,并且路端向车辆下发组密钥参数,同时车辆通过组密钥参数计算得到组密钥;

7、s4、组密钥更新阶段:对组成员进行更新,以执行组成员更新和组密钥更换操作。

8、作为本发明的进一步技术方案:注册阶段的具体操作步骤如下:

9、s11、在车辆出厂时为车辆i赋予唯一标识码vini,同时向车辆i内的安全介质中预充注设定数量且与唯一标识码vini彼此一一对应的量子会话密钥与量子完整性校验密钥;

10、在路端出厂时为路端r赋予唯一标识码ridr,同时向路端r内的安全介质中预充注设定数量且与唯一标识码ridr彼此一一对应的量子会话密钥与量子完整性校验密钥;

11、s12、接着车辆i向云端上传唯一标识码vini,并将唯一标识码vini存储在云端的数据库中;同时路端r向云端上传唯一标识码ridr,并将唯一标识码ridr存储在云端的数据库中;

12、s13、当车辆i或路端r的安全介质中的量子会话密钥低于预设值时,车辆i或路端r向云端的密钥分发中心发出量子会话密钥补充申请,云端的密钥分发中心向车辆i或路端r补充量子会话密钥;

13、s14、通过第三方认证中心为路端r的唯一标识码ridr颁发包含路端r的公钥信息的数字证书dcr。

14、作为本发明的再进一步技术方案:初始化阶段的具体操作步骤如下:

15、s21、车辆i的量子随机数发生器产生n个真随机数rni-c,加上车辆i身份唯一标识码vini和车辆i的当前时间戳tsi后,使用车辆i预充注的量子会话密钥pfsktag进行加密,得到加密后的消息epfsk(vini,{rni-c}i=1n,tsi),其中{}i=1n表示n个参与者的集合;同时使用车辆i预充注的量子完整性验证密钥pfiktag计算加密后的消息epfsk(vini,{rni-c}i=1n,tsi)的消息验证码macpfik;接着对消息epfsk(vini,{rni-c}i=1n,tsi)进行拼接,以形成用于车辆i身份认证请求的消息体m1,m1={pfsktag,pfiktag,epfsk(vini,{rni-c}i=1n,tsi),macpfik,tsi},最后将消息体m1发送给云端;

16、s22、云端的身份认证服务器收到车辆i发送的消息体m1后,首先对当前时间戳tsi进行时效性判断,若当前时间戳tsi与当前判断时刻的差值大于设定的时间阈值,则云端的身份认证服务器对收到的消息体m1不进行下一步处理;反之,云端的身份认证服务器根据接收到的消息体m1里面的量子会话密钥pfsktag与量子完整性验证密钥pfiktag,在云端的安全介质内找到对应的预充注的量子会话密钥pfskv、量子完整性验证密钥pfikv,以及车辆i预存在云端数据库中的唯一标识码vini0;

17、判断消息验证码macpfik的完整性,若完整,则云端使用预充注的量子会话密钥pfskv对消息体m1进行解密,以使云端得到车辆i的唯一标识码vini与车辆i的真随机数{rni-c}i=1n;

18、云端的身份认证服务器对解密后得到的唯一标识码vini与在数据库中查询到的唯一标识码vini0进行比较,若两者相等,则云端的身份认证服务器产生n个真随机数,以形成真随机数集合{rnc-i}i=1n;

19、s23、云端对真随机数rni-c进行加一操作,并加上云端自己产生的真随机数rnc-i,和云端的当前时间戳tsc进行拼接后使用云端预充注的车辆i的量子会话密钥pfsktag’进行加密,以使云端得到加密后的消息epfsk’({rni-c+1,rnc-i}i=1n,tsc);同时使用云端预充注的车辆i的量子完整性验证密钥pfiktag’计算加密后的消息epfsk’({rni-c+1,rnc-i}i=1n,tsc)的消息验证码macpfik’;接着对消息epfsk’({rni-c+1,rnc-i}i=1n,tsc)进行拼接,以得到消息体m2,m2={pfsktag’,pfiktag’, epfsk’({rni-c+1,rnc-i}i=1n,tsc),macpfik’,tsc},并将消息体m2发送给车辆i;

20、s24、车辆i收到云端返还的消息体m2后,对消息体m2中的当前时间戳tsc进行判断,若当前时间戳tsc与当前判断时刻的差值大于设定的时间阈值,则车辆i对消息体不做下一步处理,反之,车辆i根据收到的消息体m2里面pfsktag’与pfiktag’,在车辆i的安全介质内找到对应的预充注的量子会话密钥pfskv’和完整性验证密钥pfikv’;

21、计算消息体m2中的消息验证码macpfik’,判断消息验证码macpfik’的完整性;若完整,则使用车辆i预充注的量子会话密钥pfskv’对消息体m2进行解密,以使车辆i得到云端返回的消息集合{rni-c+1,rnc-i}i=1n;

22、s25、车辆i根据真随机数rnc-i、真随机数rni-c,以及唯一标识vini,通过单向哈希函数h计算得到n个匿名凭证的哈希值,anci的哈希值计算结果为:anci=h(vini,rni-c,rnc-i);

23、s26、车辆i将匿名凭证anci上传至云端,以组装得到消息体m3,m3={pfsktag,pfiktag, epfsk(vini,{h(rni-c),h(anc)}i=1n,tsi),macpfik,tsi},并将消息体m3发送至云端;

24、s27、根据车辆i的匿名凭证anci,在云端查询到生成该匿名凭证anci的参数vini、rnc-i和rni-c;云端对查询到的rnc-i进行哈希计算,并将计算结果与车辆i的哈希值h(vini,rni-c,rnc-i)进行比对,若两者相同,则车辆i完成n个匿名凭证的计算;反之,则没有完成n个匿名凭证的计算,需要按照步骤s21到步骤s27重新处理;

25、s28、接着云端为车辆i的n个匿名凭证生成n个智能合约,并得到每个智能合约的唯一标识码pos,同时使用唯一标识码pos与每个匿名凭证的哈希值,以及对应的生成该匿名凭证的参数的哈希值,共同生成消息体m4,m4={pfsktag,pfiktag, epfsk({h(rnc-i),h(anc),pos }i=1n,tsc),macpfik,tsc},并将消息体m4发送至车辆i,以告知车辆i的匿名凭证已经上传至区块链,车辆i可以与路端r进行身份认证。

26、作为本发明的再进一步技术方案:组密钥获取阶段的具体步骤如下:

27、s31、路端r在其通讯范围内广播数字证书dcr;

28、s32、驶入路端r通信范围内的车辆i,通过pc5广播接收路端r的数字证书dcr;车辆i向路端r广播消息{addreq,pos,anci,h(rnc-i)};其中,h(rnc-i)为rnc-i的哈希值;

29、s33、路端r通过pos找到智能合约,并发生交易,以触发智能合约;智能合约向车辆i返还h(rnc-i)与量子会话密钥pfsktag;如果车辆i通过智能合约得到的h(rnc-i)与从消息{addreq,pos,anci,h(rnc-i)}中收到的h(rnc-i)相等,则车辆i身份合法;反之,则不合法;

30、当车辆i的身份合法时,路端r的随机数发生器产生一个随机数gsp-1,并使用触发智能合约得到的量子会话密钥pfsktag作为对称密钥对随机数gsp-1进行加密;

31、s34、所有车辆身份认证完成后,路端r计算当前所有合法车辆的匿名凭证的哈希值,并将该哈希值作为gsp-2,结合路端r的当前时间戳tsr和对比使用私钥对参数进行签名而得到signature,以构成消息{gsp-2,{anci,pfsktag,epfsk(gsp-1)}i=1n,signature,tsr},并将该消息通过组播的方式传输给当前所有车辆;

32、s35、车辆i接收组播的消息,并检查消息中是否存在车辆i自己的匿名凭证;若存在,则车辆i的身份验证成功,反之,车辆i的身份验证不成功;

33、对身份验证成功的车辆,首先截取消息中的gsp-2,并根据路端r的数字证书获得的公钥,进而通过公钥signature进行验证;然后根据得到的gsp-1与gsp-2,计算得到组密钥gsk,gsk=h(gsp-1,gsp-2)。

34、作为本发明的再进一步技术方案:组密钥更新阶段包括新成员加入阶段和组成员离开阶段;新成员加入阶段的具体操作步骤如下:

35、s4a1、路端r在其通讯范围内广播数字证书dcr;

36、s4a2、驶入路端r通信范围内的车辆j,通过pc5广播接收路端r的数字证书dcr;车辆j向路端r广播消息{addreq,pos,ancj,h(rnc-j)},其中,h(rnc-j)为rnc-j的哈希值;

37、s4a3、路端r通过pos找到智能合约,并发生交易,以触发智能合约,智能合约向车辆j返还h(rnc-j)与量子会话密钥pfsktag;如果车辆j通过智能合约得到的h(rnc-j)与从消息{addreq,pos,ancj,h(rnc-j)}中收到的h(rnc-j)相等,则车辆j身份合法;反之,则不合法;

38、当车辆j的身份合法时,使用触发智能合约得到的量子会话密钥pfsktag作为对称密钥对已经产生的随机数gsp-1进行加密,以使随机数gsp-1保持不变;

39、s4a4、所有新加入车辆的身份认证完成后,路端r重新计算当前所有合法车辆的匿名凭证的哈希值,并将该哈希值作为gsp-1,结合拼接时间戳tsr和对比使用私钥对参数进行签名而得到signature,以构成消息{gsp-2,{ancj, pfsktag, epfsk(gsp-1)}i=11,signature, tsr},并将该消息通过组播的方式传输给当前所有车辆;

40、s4a5、车辆j接收组播的消息,并检查消息中是否存在车辆j自己的匿名凭证;若存在,则车辆j的身份验证成功,反之,车辆j的身份验证不成功;

41、对身份验证成功的车辆,首先截取消息中的gsp-2,并根据路端r的数字证书获得的公钥,进而通过公钥signature进行验证;然后根据得到的gsp-1与gsp-2,计算得到组密钥gsk,gsk=h(gsp-1,gsp-2);

42、对于路端r通讯范围内原有成员,只需要按步骤s34重新得到gsp-2,并更新对应的gsk即可。

43、作为本发明的再进一步技术方案:组成员离开阶段的具体操作步骤如下:

44、s4b1、路端r在其通讯范围内广播数字证书dcr;

45、s4b2、驶入路端r通信范围内的车辆j,通过pc5广播接收路端r的数字证书dcr;车辆j向路端r广播消息{addreq,pos,ancj,h(rnc-j)},其中,h(rnc-j)为rnc-j的哈希值;

46、s4b3、路端r判断当前准备离开的车辆是否为当前组成员,如果是,路端r重新生成gsp-1,并使用步骤s33中触发智能合约得到的量子会话密钥pfsktag作为对称密钥对已经产生的随机数gsp-1进行加密,以使随机数gsp-1保持不变;

47、s4b4、路端r重新计算当前组内所有身份合法的车辆的匿名凭证的哈希值,并将该哈希值作为gsp-1,结合拼接时间戳tsr和对比使用私钥对参数进行签名而得到signature,以构成消息,并将该消息通过组播的方式传输给当前所有车辆;

48、s4b5、组内剩余车辆接收组播的消息,并检查是否存在自己的匿名凭证,若存在,则车辆还在当前组内,反之,则不在;

49、对还在当前组内的车辆,首先截取消息中的gsp-2,并根据路端r的数字证书获得的公钥,进而通过公钥进行验证;

50、然后通过量子会话密钥pfsktag对消息进行解密,以得到gsp-2;最后使用得到的gsp-1与gsp-2,计算得到组密钥gsk,gsk=h(gsp-1,gsp-2)。与现有技术相比,本发明的有益效果是:

51、1、本发明在集中式密钥分配方法中,每一个用户不需要保存大量的密钥,只需每一个参与者和密钥分发中心(kdc)之间共享密钥,密钥分配由kdc负责。但是,用户使用简单,对云端要求高,因此云端压力较大。集中式密钥分发方案在网络的规模很大时,kdc通常要保存大量的密钥,各个用户和kdc之间的通信量也会很大,会存在kdc负担过重的问题。同时存在单点攻击的可能性,即攻击者集中攻击kdc,使得kdc无法提供服务,匿名攻击者的目的就达到了。因为量子密钥的特殊性,不得不有一个量子密钥分发中心,但是通过使用私有链,将压力转移到区块链实现分布式,减少计算开销。因此本发明没有使用区块链用于组密钥的分发,而是使用区块链的智能合约实现了路端对车辆的快速身份认证,同时因为使用了区块链,实现了kdc的功能下沉到路端,减少了云端的计算,存储与并发压力。

52、2、本发明在集中式组密钥分发方案中,所有通信都需要通过中心实体进行。这意味着当参与者数量增加时,通信的复杂性和开销也会随之增加。大量的通信流量需要在中心实体上进行处理和调度,导致通信的延迟和瓶颈,通常需要中心实体承担大量的计算任务,包括密钥的生成、加密和解密操作。随着参与者数量的增加,中心实体需要处理更多的密钥生成和计算操作,增加了计算的复杂性和开销。分布式组密钥分发方案中,密钥的生成和分发过程由多个节点共同参与,可以根据需要灵活地增加或减少节点,以适应系统规模的变化。密钥的生成和分发过程需要多个节点共同协作,因此攻击者很难同时攻破多个节点以获取密钥。节点之间需要进行相互通信来共享信息和密钥,这可能增加通信开销和延迟。我们结合两种方式,将kdc的功能下沉到路端实现了组密钥的高效更新。

53、3、本发明现有的量子安全密钥分发方案可能在效率和可扩展性方面存在一定的局限性。由于有线传输的方式束缚了传统量子加密在车载自组网络中的应用,因此,在实际应用中,需要根据不同场景,设计不同的身份认证方式与组密钥分发方案来满足实时通信和大规模网络的需求。然而,目前仍缺乏量子安全的身份认证方与组密钥分发方案,需要解决这一问题以推动量子安全通信技术在车辆上的实际应用。

54、4、本发明提出了车辆随机数与云端随机数一次性生成多个车辆匿名凭证的方式,减少了车云之间的通讯次数,云端将每一个“匿名凭证-车辆真实身份-预充注密钥信息-生成匿名凭证参数”的映射关系以智能合约的形式发布在私有链上,实现了路端对车辆身份的计算。提出组密钥的两段式组密钥生成方式,路端使用量子随机数发生器产生随机数gsp-2,并通过智能合约得到车辆的一个密钥,使用这个密钥对gsp-2加密,并通过计算所有合法成员匿名凭证得到组密钥参数gsp-1,通过两段式的组密钥生成方案实现组密钥的快速更新。车辆新加入时,对组内成员只需更新gsp-1,实现了计算开销的减少,该策略在保证一次一密的前提下实现前向安全与后向安全。

55、5、本发明在v2x广播通讯的基础上,减少计算开销与信令开销。路端借助区块链智能合约实现了车路身份匿名互认,实现了隐私保护,并实现了去中心化,路端不再需要云端协助实现对车辆身份的认证。同时结合现有的证书体系,实现了车辆对路端的身份认证。实现了kdc去中心化,所有路端都可以对车辆进行身份认证。同时减少了车云匿名凭证产生的数量。由于没有单一的中心服务器,因此不存在单点故障问题。通过触发区块链智能合约获得组密钥参数gsp-1保证组密钥安全性,通过路端广播方式获得gsp-2组密钥参数实现了分发的高效率和实时性。在这个过程中保证组密钥的一次一密,同时保证了通信的前向安全与后向安全。

56、可追溯性:区块链上记录了路端对车辆的认证信息,由于是私有链,故路端没有权限,不可更改;当需要追溯时,可从云端获取认证记录,实现追溯。

57、可撤销性:由于是私有链,云端作为管理者可撤销路端的访问权限,路端无法访问智能合约,无法对车辆认证,路端节点失去功能。云端也可撤销智能合约,也无法对云端认证,因此不能获得v2v服务。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1