当前位置: 首页 > 专利查询>安徽大学专利>正文

基于代理重加密机制的自动驾驶车车内消息重加密方法技术

技术编号:31708152 阅读:17 留言:0更新日期:2022-01-01 11:10
本发明专利技术公开一种基于代理重加密机制的自动驾驶车车内消息重加密方法,包括系统初始化、密钥生成、重加密密钥生成、消息加密、一级消息解密、消息重加密、二级消息解密等过程。本发明专利技术基于自动驾驶汽车中ECU和总线的双冗余环境,使用代理重加密技术保证消息的机密性以及单点故障或网络攻击情况下消息的安全性,另外,当自动驾驶汽车出现单点故障或遭受网络攻击时,能够实现加密条件下消息的转发与处理;另外本发明专利技术中的重加密部分不需要完全可信的第三方来充当代理,整个技术方案实用性更强。整个技术方案实用性更强。整个技术方案实用性更强。

【技术实现步骤摘要】
基于代理重加密机制的自动驾驶车车内消息重加密方法


[0001]本专利技术属于车辆通信技术,具体涉及一种基于代理重加密机制的自动驾驶车车内消息重加密方法。

技术介绍

[0002]为使人们可以更智能、安全、舒适的出行,自动驾驶汽车研发应运而生,随之而来地,自动驾驶的安全性也受到了广泛的关注。
[0003]自动驾驶汽车的车内通信与普通汽车相比更加复杂与繁忙,其中具有许多通过不同总线(如控制器局域网(CAN)、FlexRay等)互连的电子控制单元(ECU)。不同总线之间由网关作为协议桥以促进子网间的数据传输。
[0004]在车内,CAN总线是最常用的一种总线,CAN具有广播性质,没有任何加密,也不包含验证字段,数据包将通过总线被广播到所有节点,入侵车内网的恶意节点因此可以侦听所有通信,或将携带恶意代码的数据包广播到其他组件,这些入侵可能导致极严重的后果,甚至对车上的乘客来说可能是致命的。此外,自动驾驶车辆需要有应对单点故障或网络攻击的冗余设计,冗余配置应确保在任何情况下都保持车辆的最低控制权,从而保证乘客的人身安全。
[0005]因此,自动驾驶汽车上通常会安装一组备用ECU(如加速ECU、转向ECU、制动ECU等)和一种冗余总线,这种通信方式对车内网消息通信来说存在不安全性。
[0006]目前,已经有一些方案在车内网中使用密码学技术对消息进行加密和认证。遗憾的是,传统的车内网密码学方案没有考虑到自动驾驶车辆中总线和ECU双冗余的配置,这使得传统方案并不适用于自动驾驶车辆。此外,还没有专门针对自动驾驶车辆双冗余车内网环境的安全保护机制。
[0007]当针对某个ECU的单点故障或网络攻击发生,需要备份ECU处理故障ECU相关消息时,如何保证备份ECU解密已加密的消息,同时安全地隔离骨干网和备份网是个亟待解决的问题。

技术实现思路

[0008]专利技术目的:本专利技术的目的在于解决现有技术中存在的不足,提供一种基于代理重加密机制的自动驾驶车车内消息重加密方法,本专利技术基于自动驾驶车辆总线和ECU双冗余环境,实现加密条件下消息的安全转发与处理,提高保证数据的机密性和完整性,并且不需要完全可信的第三方代理(网关ECU,即GECU)来执行重加密过程,通信开销较低。
[0009]技术方案:本专利技术的一种基于代理重加密机制的自动驾驶车车内消息重加密方法,包括以下步骤:
[0010](1)准备过程:
[0011](1.1)初始化:由制造商OEM生成所需公共参数(G,g,q,n1,n2,h1,h2,h3,h4,h5),并由所有电子控制单元ECU保存公共参数;
[0012]其中,G为循环乘法群,也是Zq的子群;g是G的生成元,κ为预设安全参数,q为G的阶且是长度为κ的质数,n1和n2是由κ确定的两个安全参数,h1,h2,h3,h4和h5为对应的哈希函数;
[0013](1.2)密钥生成:所述电子控制单元ECU包括没有备份的ECU和有备份的ECU,所有电子控制单元ECU均生成生成各自公钥pk和私钥sk,其中有备份的ECU通过密钥推导函数KDF计算加密密钥CK和认证密钥AK,通过加密密钥CK和认证密钥AK便于与网关电子控制单元GECU通信;
[0014](1.3)生成重加密密钥:有备份的ECU预先生成将来使用的重加密密钥,并以安全的方式将其发送给GECU,GECU对收到的重加密密钥进行验证和保存;
[0015]并不是车内网络中的所有ECU都执行这个过程;只有能够与备份ECU通信且传输的消息为关键消息的ECU才需要执行此步骤;没有备份的ECU则跳过本步骤直接执行步骤(2);
[0016](2)通信过程:
[0017](2.1)加密消息:ECU未出现故障的情况下,发送方ECU
i
向接收方ECU
j
发送消息前先对该消息进行加密,得到一级密文;
[0018](2.2)解密一级密文:在正常情况下,接收方ECU
j
对接收到的消息进行解密,得到明文;
[0019](2.3)重加密:若判断为异常,则GECU对收到的消息进行重加密;
[0020](2.4)解密二级密文:接收方ECU
j
对应的备份ECU
k
收到GECU发来的重加密消息后,首先用任意一个哈希函数H()检查报文的完整性,如果没有被篡改,则判断时间戳和身份是否满足要求;在所有需求都得到验证的情况下,解密二级密文;ECU
k
与冗余系统中的其他ECU通信,做出安全停车的决策。
[0021]进一步地,所述步骤(1.1)中相应参数具体如下:
[0022]制造商选择五个哈希函数制造商选择五个哈希函数消息空间为{0,1}
n1

[0023]GECU以及需预先定义重加密密钥的ECU内均存储由密钥推导函数KDF,且所有ECU均有一个长期密钥LK,而GECU则存储所有ECU的长期密钥和其对应的身份ID,例如<ID
i
,LK
i
>;
[0024]公共参数中还有另一个质数p满足q|p

1。
[0025]进一步地,所述步骤(1.2)生成密钥的具体方法为:
[0026](1.2.1)每次启动车辆时,任一ECU
i
选择则该ECU
i
的私钥为sk
i
=(sk
i1
,sk
i2
),ECU
i
计算其公钥公钥被公开,私钥由ECU安全保存;
[0027](1.2.2)每次车辆运行时,任一拥有备份的ECU(例如ECU
j
)立即选择一个随机数nonce并公开它;然后该ECU
j
使用KDF计算其加密密钥CK和认证密钥AK:此处则为:KDF(LK
j
||nonce)=AK
j
||CK
j

[0028](1.2.3)GECU接收随机数nonce,并使用存储的LK
j
和KDF生成AK
j
和CK
j

[0029]进一步地,所述步骤(1.3)中重加密密钥生成的具体方法为:
[0030](1.3.1)ECU
j
选择随机数σ∈R{0,1}
n1
,随机数w∈R{0,1}
n2
;每次发送重新加密密钥后,ECU
j
将重新选择这两个随机数;
[0031](1.3.2)ECU
j
计算重加密密钥的第一个值随机值s=h(3σ,w),重加密密钥的第二个值重加密密钥的第三个值令ECU
j
到ECU
k
的重加密密钥为rk
j

k
=(rk1,rk2,rk3);rk1,rk2,rk3本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于代理重加密机制的自动驾驶车车内消息重加密方法,其特征在于:包括以下步骤:(1)准备过程:(1.1)初始化:由制造商OEM生成所需公共参数(G,g,q,n1,n2,h1,h2,h3,h4,h5),并由所有电子控制单元ECU保存公共参数;其中,G为循环乘法群,也是Zq的子群;g是G的生成元,κ为预设安全参数,q为G的阶且是长度为κ的质数,n1和n2是由κ确定的两个安全参数,h1,h2,h3,h4和h5为对应的哈希函数;(1.2)密钥生成:所述电子控制单元ECU包括没有备份的ECU和有备份的ECU,所有电子控制单元ECU均生成生成各自公钥pk和私钥sk,其中有备份的ECU通过密钥推导函数KDF计算加密密钥CK和认证密钥AK;(1.3)生成重加密密钥:有备份的ECU预先生成将来使用的重加密密钥,并以安全的方式将其发送给GECU,GECU对收到的重加密密钥进行验证和保存;(2)通信过程:(2.1)加密消息:ECU未出现故障的情况下,发送方ECU
i
向接收方ECU
j
发送消息m前先对该消息m进行加密,得到密文c;(2.2)解密一级密文:在正常情况下,接收方ECU
j
对接收到的消息进行解密,得到明文payload;(2.3)重加密:若判断为异常,则GECU对收到的消息进行重加密;(2.4)解密二级密文:接收方ECU
j
对应的备份ECU
k
收到GECU发来的重加密消息后,首先哈希函数检查报文的完整性,如果没有被篡改,则判断时间戳T5和身份是否满足要求;若均验证通过,则解密c

得到明文,ECU
k
与冗余系统中的其他ECU通信。2.根据权利要求1所述的基于代理重加密机制的自动驾驶车车内消息重加密方法,其特征在于:所述步骤(1.1)中相应参数具体如下:制造商选择五个哈希函数制造商选择五个哈希函数消息空间为GECU以及需预先定义重加密密钥的ECU内均存储由密钥推导函数KDF,且所有ECU均有一个长期密钥LK,而GECU则存储所有ECU的长期密钥和其对应身份ID;公共参数中还有另一个质数p满足q|p

1。3.根据权利要求1所述的基于代理重加密机制的自动驾驶车车内消息重加密方法,其特征在于:所述步骤(1.2)生成密钥的具体方法为:(1.2.1)每次启动车辆时,任一ECU
i
选择则该ECU
i
的私钥为sk
i
=(sk
i1
,sk
i2
),ECU
i
计算其公钥(1.2.2)每次车辆运行时,任一拥有备份的ECU立即选择一个随机数nonce并公开它;并使用KDF计算其加密密钥CK和认证密钥AK:KDF(LK||nonce)=AK||CK;(1.2.3)GECU接收随机数nonce,并使用存储的LK和KDF生成AK和CK。4.根据权利要求1所述的基于代理重加密机制的自动驾驶车车内消息重加密方法,其特征在于:所述步骤(1.3)中重加密密钥生成的具体方法为:
(1.3.1)ECU
j
选择随机数σ∈
R
{0,1}
n1
,随机数w∈
R
{0,1}
n2
;每次发送重新加密密钥后,ECU
j
将重新选择这两个随机数;(1.3.2)ECU
j
计算重加密密钥的第一个值随机值s=h(3σ,w),重加密密钥的第二个值重加密密钥的第三个值令ECU
j
到ECU
k
的重加密密钥为rk
j

k
=(rk1,rk2,rk3);(1.3.3)ECU
j
将自己的重加密密钥rk
j

k
发送给GECU,并进行相互认证,确保GECU接收到正确的重加密密钥;然后GECU将ECU
j
的ID,ECU
k
的ID,ECU
j
的重加密密钥列表<ID
j
、ID
k
、rk
j

k
>安全存储;该过程使用AES作为加密算法,使用SHA作为密钥哈希算法;(1.3.4)ECU
j
用CK
j
加密rk
j

k
,生成密文σ
j
=E
CKj
(rk
j

k
);(1.3.5)ECU
j
得到当前时间戳T1,生成消息认证码MAC1=H
AKj
(ID
j
||σ
j
||T1||I
k
)D,并与请求Req
j
=σ
j
||MAC1一起广播给GECU;(1.3.6)GECU收到请求Req
j
后,首先用ID
j
、σ
j
、T1、ID
k
计算新的MAC值MAC1’
来验证消息;如果MAC1’
和MAC1相等,则判断消息为真实可靠的;然后GECU检查当前时间T...

【专利技术属性】
技术研发人员:崔杰沈韵仲红许艳张静应作斌陈志立
申请(专利权)人:安徽大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1