一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

车辆ECU密钥的确定方法、装置、设备及存储介质与流程

2021-11-22 17:33:00 来源:中国专利 TAG:

车辆ecu密钥的确定方法、装置、设备及存储介质
1.本公开是申请号为201810864422.1的申请的分案申请。
技术领域
2.本发明实施例涉及ecu密钥管理技术,尤其涉及一种车辆ecu密钥的确定方法、装置、设备及存储介质。


背景技术:

3.汽车中的ecu(electronic control unit,电子控制单元)是控制车辆电子系统的最重要的部件,车辆电子系统由很多ecu组成,分别负责实现不同的功能,例如动力、车门、转向等,这些ecu通过不同的通信网络互联,如can(controller area network,控制器局域网络)。如果攻击者在ecu中注入非法控制信息,将影响车辆正常运行,直接威胁乘客的生命安全。目前的ecu安全防护机制会涉及到安全启动、安全通信、身份验证和消息认证等,其核心是使用密钥来保证车内网的安全。
4.现有的汽车ecu的密钥管理,有如下两种方案:
5.(1)基于传统的公钥的密钥管理,借助pki(public key infrastructure,公钥基础设施)体系完成ecu的密钥生成、分发和使用。但由于ecu计算资源有限,该方法在ecu中占用太多资源,同时耗时太久,甚至有些ecu不能满足公私钥体制的计算。
6.(2)基于预先分配到ecu的对称密钥体制,在车辆出厂前预先分配并存储密钥到ecu中。虽然对称算法能在ecu中进行计算,但车厂和tier

1(一级供应商)需要针对其车辆及车辆上的ecu,在云端保存大量密钥,以记录密钥与汽车ecu的对应关系,不便于管理维护。


技术实现要素:

7.本发明实施例提供一种车辆ecu密钥的确定方法、装置、设备及存储介质,以在占用计算资源较少的情况下,通过ecu自主协商密钥,保证ecu通信安全。
8.第一方面,本发明实施例提供了一种车辆ecu密钥的确定方法,包括:
9.本端ecu广播密钥协商报文,并接收车辆内至少一个对端ecu广播的密钥协商报文,其中,所述本端ecu广播密钥协商报文的方式包括广播一次密钥协商报文或分阶段广播多次密钥协商报文;在所述本端ecu广播密钥协商报文的方式包括广播一次密钥协商报文的情况下,各ecu广播的密钥协商报文分别携带有该ecu自身的特性信息,在所述本端ecu广播密钥协商报文的方式包括分阶段广播多次密钥协商报文的情况下,各ecu广播的密钥协商报文分别携带有该ecu自身的特性信息和阶段标识信息;
10.所述本端ecu根据本端ecu的特性信息和各个对端ecu的特性信息计算自身所使用的加密密钥并存储;
11.所述本端ecu根据各个对端ecu的特性信息分别计算与各所述对端ecu交互所用的各解密密钥并存储,其中所述加密密钥与每个解密密钥均为对称密钥。
12.第二方面,本发明实施例还提供了一种车辆ecu密钥的确定装置,应用于ecu中,包括:
13.报文收发模块,用于广播密钥协商报文,并接收车辆内至少一个对端ecu广播的密钥协商报文,其中,所述本端ecu广播密钥协商报文的方式包括广播一次密钥协商报文或分阶段广播多次密钥协商报文;在所述本端ecu广播密钥协商报文的方式包括广播一次密钥协商报文的情况下,各ecu广播的密钥协商报文分别携带有该ecu自身的特性信息,在所述本端ecu广播密钥协商报文的方式包括分阶段广播多次密钥协商报文的情况下,各ecu广播的密钥协商报文分别携带有该ecu自身的特性信息和阶段标识信息;
14.加密密钥计算模块,用于根据本端ecu的特性信息和各个对端ecu的特性信息计算自身所使用的加密密钥;
15.解密密钥计算模块,用于根据各个对端ecu的特性信息分别计算与各所述对端ecu交互所用的各解密密钥;
16.密钥存储模块,用于存储自身所使用的加密密钥及与各所述对端ecu交互所用的各解密密钥;
17.其中,所述加密密钥与每个解密密钥均为对称密钥。
18.第三方面,本发明实施例还提供了一种计算机设备,所述计算机设备包括:
19.一个或多个处理器;
20.存储器,用于存储一个或多个程序;
21.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所述的车辆ecu密钥的确定方法。
22.第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所述的车辆ecu密钥的确定方法。
23.本发明实施例的技术方案,在无干预情况下,车辆内的各ecu之间通过多种可用的广播方式广播密钥协商报文,根据密钥协商报文中携带的ecu特性信息自主协商密钥并进行安全存储,车厂和一级供应商云端无需存储及管理密钥,同时协议交互少,算法简单,能够在计算能力较弱的ecu中完成计算。同一ecu的加密密钥(存储于自身)和相应的解密密钥(分别存储于车辆内其他ecu中)相同,能够保证ecu间所传输的数据内容的对称加解密,以进行安全通信。
附图说明
24.图1是本发明实施例一提供的车辆ecu密钥的确定方法的流程图;
25.图2是本发明实施例二提供的车辆ecu密钥的确定方法的流程图;
26.图3是本发明实施例三提供的车辆ecu密钥的确定方法的流程图;
27.图4是本发明实施例五提供的车辆ecu密钥的确定装置的结构示意图;
28.图5是本发明实施例六提供的计算机设备的结构示意图。
具体实施方式
29.下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便
于描述,附图中仅示出了与本发明相关的部分而非全部结构。
30.实施例一
31.图1是本发明实施例一提供的车辆ecu密钥的确定方法的流程图,本实施例可适用于确定车辆ecu的通信密钥的情况,尤其是车辆内各ecu之间自主协商密钥的情况,该方法可以由车辆ecu密钥的确定装置来执行,该装置可以由软件和/或硬件来实现,一般可集成在具备计算处理功能的计算机设备中,如车辆的ecu。如图1所示,该方法具体包括:
32.s110,本端ecu广播密钥协商报文,并接收车辆内至少一个对端ecu广播的密钥协商报文,其中各ecu广播的密钥协商报文分别携带有该ecu自身的特性信息。
33.其中,车辆内各ecu通过can总线连接,以实现ecu间的广播通信。车辆内的各ecu广播密钥协商报文,是为了通过密钥协商报文将自己的特性信息告知其他ecu以及获取其他ecu的特性信息,以根据各ecu的特性信息计算通信密钥并存储。
34.ecu的特性信息包括计算通信密钥所需的信息。示例性的,ecu的特性信息包括:本端ecu标识信息、密钥因子和目标通信ecu标识信息等,ecu标识信息是唯一标识ecu的信息,可以是车辆内每个ecu的唯一编号,如ecu1、ecu2、
……
ecun等,也可以是预先为每个ecu分配的uds身份(即udsid),uds是unified diagnostic service的缩写,翻译为统一诊断服务,是诊断服务的规范化标准,比如,读取故障码应该向ecu发什么指令,读数据流应该发什么指令。密钥因子可以是至少一个随机数,增加密钥的随机性,进而增加安全性。本端ecu的目标通信ecu是指与本端ecu有通信需求的ecu,本端ecu在can总线上广播报文,但是并非其余所有ecu均需要处理该报文,例如,共有5个ecu,ecu1的目标通信ecu是ecu3和ecu5,ecu2的目标通信ecu是ecu3、ecu4和ecu5,具体以车速超过20km/h则自动锁车门的场景为例,负责动力的ecu发出车速超过20km/h的消息(也可称为can指令或报文),can总线上的其余ecu均可接收到该消息,负责车门的ecu(属于动力ecu的目标通信ecu之一)会根据该消息控制锁车门,其余ecu知道该消息与自身无关,不作任何处理。
35.需要说明的是,可以仅广播一次密钥协商报文,完成ecu特性信息的传输。也可以根据计算密钥的不同,分阶段完成ecu特性信息的传输,例如,每个ecu均广播两次密钥协商报文,其中,第一次广播报文(即第一阶段)为了传输计算自身所使用的加密密钥所需的信息,第二次广播报文(即第二阶段)为了传输计算与对端ecu交互所用的解密密钥所需的信息;相应的,密钥协商报文中还可以携带阶段标识信息,用于表示当前所处的协商密钥过程中的具体阶段,例如,0表示第一阶段,1表示第二阶段。
36.s120,所述本端ecu根据本端ecu的特性信息和各个对端ecu的特性信息计算自身所使用的加密密钥并存储。
37.s130,所述本端ecu根据各个对端ecu的特性信息分别计算与各所述对端ecu交互所用的各解密密钥并存储,其中所述加密密钥与每个解密密钥均为对称密钥。
38.本实施例基于对称密钥机制,即,本端使用一密钥对待发数据进行加密并发送加密后的消息,通信对端使用相同的密钥对来自本端的消息进行解密。本实施例中,本端ecu计算并存储的通信密钥包括自身所使用的加密密钥以及与各对端ecu交互所用的各解密密钥,其中,加密密钥用于在本端ecu发送消息时对所发送的数据内容进行加密,因此加密密钥也可称为发送密钥;解密密钥用于在接收到相应的对端ecu发送的消息时,对所接收的消息进行解密以获取其中的数据内容,因此解密密钥也可称为接收密钥。也就是说,需要发送
消息时,ecu利用自身的加密密钥对所发数据内容进行加密,以发送密文,保证通信安全;接收到消息时,ecu利用与相应对端ecu交互所用的解密密钥对该消息进行解密,以获取消息中数据内容的明文。由此实现ecu间的密文通信,保证通信安全。
39.需要说明的是,上述ecu自主协商密钥的过程,可以在车辆组装完成后通过命令触发,以保证车辆投入使用后ecu间的安全通信。ecu的密钥可以根据需求设置为定时更新,也可以根据需求设置为在特殊情况下进行更新,如车辆发生故障送去维修时,维修人员通过命令触发密钥的更新。密钥的更新是指ecu重新执行自主协商密钥的过程,以新的密钥替代已存储的旧密钥。
40.本实施例的技术方案,在无干预情况下,车辆内的各ecu之间通过广播密钥协商报文,根据密钥协商报文中携带的ecu特性信息自主协商密钥并进行安全存储,车厂和一级供应商云端无需存储及管理密钥,同时协议交互少,算法简单,能够在计算能力较弱的ecu中完成计算。同一ecu的加密密钥(存储于自身)和相应的解密密钥(分别存储于车辆内其他ecu中)相同,能够保证ecu间所传输的数据内容的对称加解密,以进行安全通信,满足ecu安全性的需求。
41.可选的,为了保证密钥的安全存储,可以在ecu中设置硬件安全模块,将加密密钥和解密密钥存储到ecu的硬件安全模块中。硬件安全模块可以使用现有的模块或芯片,例如,hsm(hardware security module,硬件安全模块)或se(secure element,安全模块)等。
42.可选的,在车辆内所有ecu均存储有自身所使用的加密密钥及与各对端ecu交互所用的解密密钥之后,上述方法还可以包括:各ecu删除计算过程所使用的中间变量信息。其中,中间变量信息是指整个密钥协商过程中用于计算密钥的中间过程变量。及时删除中间变量信息,既能够节省存储空间,也能够避免中间变量信息泄露导致密钥泄露的问题。
43.实施例二
44.图2是本发明实施例二提供的车辆ecu密钥的确定方法的流程图,本实施例在上述实施例的基础上,对ecu计算自身所使用的加密密钥的过程进行了优化说明。具体的,ecu的特性信息包括随机数信息,s120包括:本端ecu根据本端ecu的随机数信息及各个对端ecu的随机数信息,计算自身所使用的加密密钥。如图2所示,该方法具体包括:
45.s210,本端ecu广播密钥协商报文,并接收车辆内至少一个对端ecu广播的密钥协商报文,其中各ecu广播的密钥协商报文分别携带有该ecu自身的特性信息。
46.其中,ecu的特性信息包括随机数信息,随机数信息可以是利用预设随机数生成算法生成的至少一个随机数(可称为随机数向量),参与通信密钥的计算。每个ecu中可预置随机数生成算法,在广播密钥协商报文之前,利用该算法生成随机数向量,通过密钥协商报文发送给车辆内至少一个对端ecu。可选的,为了保证随机数不泄露,可以使用预设密钥对生成的随机数向量进行加密后再通过报文进行发送,其中预设密钥可以是预先约定的车辆内所有ecu均知道的统一的密钥。
47.s220,所述本端ecu利用预设密钥对各个对端ecu的随机数信息进行解密,得到各个对端ecu的随机数向量。
48.其中,本端ecu利用统一的预设密钥解密得到来自于各对端ecu的随机数向量,示例性的,共有5个ecu,那么本端ecu可以获取来自于其余4个对端ecu的4个随机数向量。需要说明的是,若随机数信息为随机数向量明文,则可以不执行操作s220,在s230中直接使用对
端ecu广播的密钥协商报文中携带的随机数向量。
49.s230,所述本端ecu将本端ecu的随机数向量与解密得到的随机数向量存储为第一随机数矩阵。
50.其中,仍以5个ecu为例,本端ecu将自身生成的随机数向量和解密得到的4个随机数向量,按照预设顺序(例如,ecu的编号从小到大)组成第一随机数矩阵,第一随机数矩阵的行数是车辆内所有ecu的个数,列数是随机数向量中随机数的个数。车辆内所有ecu所存储的第一随机数矩阵是相同的。
51.s240,所述本端ecu根据所述第一随机数矩阵计算自身所使用的加密密钥并存储。
52.可选的,所述本端ecu根据第一随机数矩阵计算自身所使用的加密密钥包括:所述本端ecu按照所述本端ecu对应的目标通信ecu,从所述第一随机数矩阵中抽取所述目标通信ecu的随机数向量,得到第二随机数矩阵;所述本端ecu按照预设规则将所述第二随机数矩阵转换为第一计算矩阵;所述本端ecu利用所述预设密钥对所述第一计算矩阵进行预设运算,得到自身所使用的加密密钥。
53.其中,预设规则可以是按照行数大小依次将第二随机数矩阵中的元素排列成一行,即按照ecu编号大小或ecu对应的udsid的大小进行排列。按照预设规则将第二随机数矩阵中的各行随机数向量,排列成一行,得到第一计算矩阵。预设运算可以是加密运算,例如使用md5、sha1等哈希算法进行哈希运算。
54.s250,所述本端ecu根据各个对端ecu的特性信息分别计算与各所述对端ecu交互所用的各解密密钥并存储。其中加密密钥与每个解密密钥均为对称密钥。
55.车辆内的每个ecu通过执行上述s210至s250的操作,计算自身所使用的加密密钥,并存储计算得到的加密密钥;还计算与各对端ecu交互所用的各解密密钥,并存储计算得到的各解密密钥。
56.本实施例的技术方案,在无干预情况下,车辆内的各ecu之间通过广播密钥协商报文,根据密钥协商报文中携带的ecu特性信息自主协商密钥并进行安全存储,车厂和一级供应商云端无需存储及管理密钥;同时通过ecu生成的随机数向量计算密钥,协议交互少,算法简单,能够在计算能力较弱的ecu中完成计算,且提升安全性。
57.实施例三
58.图3是本发明实施例三提供的车辆ecu密钥的确定方法的流程图,本实施例在上述各实施例的基础上,对本端ecu计算与各对端ecu交互所用的各解密密钥的过程进行说明。如图3所示,该方法具体包括:
59.s310,本端ecu广播密钥协商报文,并接收车辆内至少一个对端ecu广播的密钥协商报文,其中各ecu广播的密钥协商报文分别携带有该ecu自身的特性信息。
60.s320,本端ecu根据本端ecu的特性信息和各个对端ecu的特性信息计算自身所使用的加密密钥并存储。
61.s330,针对每个对端ecu,本端ecu按照该对端ecu的目标通信ecu标识信息,从本地存储的第一随机数矩阵中抽取该对端ecu的目标通信ecu的随机数向量,并按照预设规则得到该对端ecu的第二计算矩阵。
62.其中,ecu的特性信息包括ecu的目标通信ecu标识信息。即,本端ecu要将自己的目标通信ecu告知车辆内各对端ecu,以供各对端ecu计算与本端ecu交互所用的解密密钥;本
端ecu还获取各对端ecu的目标通信ecu,以计算与各对端ecu交互所用的解密密钥。
63.s340,本端ecu利用预设密钥对第二计算矩阵进行预设运算,得到与该对端ecu交互所用的解密密钥。
64.其中,第二计算矩阵的获取过程与实施例二中第一计算矩阵的获取过程类似,此处不再赘述。理论上,第二计算矩阵与第一计算矩阵应该是相同的。预设密钥和预设运算参见实施例二中的解释,此处不再赘述。
65.可选的,ecu的特性信息还可以包括校验信息,所述校验信息是ecu利用自身使用的加密密钥对其广播的密钥协商报文中的预设字符串进行预设处理得到的。校验信息用于对数据进行完整性校验。
66.s350,本端ecu利用与所述对端ecu交互所用的解密密钥对所述对端ecu广播的密钥协商报文中的预设字符串进行预设处理,得到处理结果。
67.其中,密钥协商报文中的预设字符串可以包括目标通信ecu标识信息。预设处理可以是与数据校验相关的处理,例如,crc(cyclic redundancy check,循环冗余校验)、md5校验、hmac(hash

based message authentication code,哈希消息认证码)校验等。可选的,预设字符串还可以包括阶段标识信息。
68.s360,本端ecu比较处理结果与所述对端ecu广播的密钥协商报文中携带的校验信息。若一致,则校验通过,执行s370;若不一致,则校验未通过,报文中的数据可能被篡改,返回s310,重新广播密钥协商报文以协商密钥。
69.上述s350至s360为可选的校验操作,以保证密钥可靠性。
70.s370,本端ecu存储计算得到的与所述对端ecu交互所用的解密密钥。
71.其中,针对各个对端ecu均执行操作s330至s370(其中s350至s360为可选操作)之后,本端ecu中就存储有与各对端ecu交互所用的各解密密钥。
72.s380,在车辆内所有ecu均存储有自身所使用的加密密钥及与各对端ecu交互所用的各解密密钥之后,各ecu删除计算过程所使用的中间变量信息。
73.具体的,中间变量信息可以包括:第一随机数矩阵、第二随机数矩阵、第一计算矩阵、第二计算矩阵等计算密钥过程所涉及的中间变量。
74.本实施例的技术方案,在无干预情况下,车辆内的各ecu之间通过广播密钥协商报文,根据密钥协商报文中携带的ecu特性信息自主协商密钥并进行安全存储,车厂和一级供应商云端无需存储及管理密钥;同时通过ecu生成的随机数向量计算密钥,协议交互少,算法简单,能够在计算能力较弱的ecu中完成计算,且提升安全性。另外,利用校验信息来验证同一ecu的解密密钥与加密密钥是否一致,保证密钥的可靠性。
75.实施例四
76.在上述各实施例的基础上,本实施例结合具体实例对车辆ecu密钥的确定方法进行说明。
77.本实施例中,假设车辆内共有n个带有hsm芯片的ecu,其中,hsm芯片用于保证密钥的安全存储以及加快加解密的处理速度。车辆内各ecu之间自主协商密钥的整个流程可分为三个阶段:广播信息阶段、密钥交换协商阶段以及删除中间信息阶段。
78.第一阶段:广播信息阶段(mode=0)
79.本阶段中,车辆内各ecu均广播第一报文,主要是为了将自己产生的随机数向量发
送给其他ecu。
80.(1)ecu
i
广播随机数,can总线上广播报文格式如下:
81.m1=(mode,udsid
i
,encrypt
netkey
(a
i1
,a
i2
,a
i3
,

a
ik
))
82.其中,mode是阶段标识信息,mode取值为0时,表示ecu处于广播信息阶段,mode取值为1时,表示ecu处于密钥交换协商阶段。udsid
i
是ecu
i
对应的身份标识信息,是预先分配给各ecu的。(a
i1
,a
i2
,a
i3
,

a
ik
)表示ecu
i
生成的随机数向量,k表示ecu生成的随机数的个数,k的取值可以根据计算需求自定义,车辆内各ecu的k值一致。netkey是车辆内各ecu都知道的统一的预设密钥,例如,可以是hsm芯片中预置的网络密钥。encrypt
netkey
(a
i1
,a
i2
,a
i3
,

a
ik
)表示利用预设密钥netkey对随机数向量(a
i1
,a
i2
,a
i3
,

a
ik
)进行加密。
83.(2)ecu
i
在can总线上接收车辆内其他ecu(记为ecu
j
,j≠i)广播的报文,接收的报文格式与ecu
i
广播的报文m1格式一致,如下:
84.m2=(mode,udsid
j
,encrypt
netkey
(a
j1
,a
j2
,a
j3
,

a
jk
))
85.其中,(a
j1
,a
j2
,a
j3
,

a
jk
)表示ecu
j
生成的随机数向量,udsid
j
是ecu
j
的唯一身份标识信息。
86.(3)ecu
i
利用netkey对接收到的报文m2中的随机数信息进行解密后,得到一维随机数向量。ecu
i
接收到指定数量(如n

1)的报文个数后,ecu
i
将自身的随机数向量及得到的车辆内其他ecu对应的随机数向量,存储为如下矩阵格式:
[0087][0088]
最终,车辆内每个ecu都会存储有上述矩阵a。
[0089]
第二阶段:密钥交换协商阶段(mode=1)
[0090]
(1)ecu
i
按照车厂的实际通信矩阵,从矩阵a中抽取ecu
i
的目标通信ecu对应的随机数向量,得到矩阵a’。
[0091]
具体的,车厂的实际通信矩阵是指车厂设定的车辆内各ecu的通信需求关系,根据实际通信矩阵可以获知各ecu的目标通信ecu。示例性的,ecu2的目标通信ecu是ecu3、ecu4和ecu5,从矩阵a中抽取第3至5行,构成矩阵a’,如下:
[0092][0093]
(2)ecu
i
按照预设规则将矩阵a’转为一维矩阵b。示例性的,对于上述得到的三行k列的矩阵a’,按照ecu编号从小到大,依次将各行排成一行,得到矩阵b,如下:
[0094]
b=(a
31 a
32 a
33
ꢀ…ꢀ
a
3k a
41 a
42 a
43
ꢀ…ꢀ
a
4k a
51 a
52 a
53
ꢀ…ꢀ
a
5k
)
[0095]
(3)ecu
i
根据矩阵b计算自己的发送密钥k
txi
,并将该发送密钥k
txi
安全存储到ecu
i
的hsm芯片中,计算公式如下:
[0096]
k
txi
=h(netkey,b)
[0097]
其中,h(netkey,b)表示利用netkey对b进行哈希运算。由于车辆内ecu对应的目标通信ecu可能不同,因此车辆内不同ecu对应的矩阵b也可能是不同的,进而不同ecu的发送密钥k
txi
也不同。
[0098]
(4)车辆内各ecu均广播第二报文,主要是为了将自己的目标通信ecu标识信息发送给其他ecu。具体的,ecu
i
广播自己的目标通信ecu标识信息,can总线上广播报文格式如下:
[0099]
m3=((mode,udsid1,udsid2,

udsid
m
),hmac(k
txi
,(mode,udsid1,udsid2,

udsid
m
)))
[0100]
其中,m表示e c
i
的目标通信ecu的个数,hmac(k
txi
,(mode,udsid1,udsid2,

udsid
m
))表示利用k
tx
对预设字符串(mode,udsid1,udsid2,

udsid
m
)进行hmac运算,以对预设字符串进行完整性校验,从而验证ecu
i
的发送密钥k
txi
与接收密钥k
rxi
的一致性。
[0101]
(5)ecu
j
收到ecu
i
广播的m3报文后,根据报文中的ecu
i
的目标通信ecu标识信息,从本地保存的a矩阵中抽取对应的随机数向量拼接得到一维矩阵b’。理论上来讲,针对同一个ecu的b’与b应该是一样的。
[0102]
(6)ecu
j
根据矩阵b’计算ecu
i
的接收密钥k
rxi
,计算公式如下:
[0103]
k
rxi
=h(netkey,b')
[0104]
(7)ecu
j
校验hmac值,具体的,ecu
j
利用计算的k
rxi
对报文m3中的预设字符串进行hmac运算,得到hmac值;将该hmac值与报文m3中携带的校验值进行比较,若二者一致,则校验通过,报文中的数据没有被篡改,密钥协商成功,将ecu
i
的接收密钥k
rxi
,安全存储到ecu
j
的hsm芯片中;若二者不一致,则校验未通过,更改mode模式,重新进入广播信息阶段,执行上述操作以重新协商密钥。
[0105]
第三阶段:删除中间信息阶段
[0106]
在车辆内各ecu之间协商好密钥之后,每个ecu均删除整个过程中产生的中间变量,以免数据泄露。
[0107]
最终经过上述ecu间的自主密钥协商流程,车辆内每个ecu都存储有自身的发送密钥和其他ecu的接收密钥,ecu可以利用自身的发送密钥对要发送的数据内容进行加密,也可以利用相应ecu的接收密钥对来自于该ecu的报文进行解密。同一个ecu的发送密钥和接收密钥是相同的,以实现对称加解密。
[0108]
实施例五
[0109]
图4是本发明实施例五提供的车辆ecu密钥的确定装置的结构示意图,该装置可以应用于ecu中。如图4所示,该装置包括:
[0110]
报文收发模块410,用于广播密钥协商报文,并接收车辆内至少一个对端ecu广播的密钥协商报文,其中各ecu广播的密钥协商报文分别携带有该ecu自身的特性信息;
[0111]
加密密钥计算模块420,用于根据本端ecu的特性信息和各个对端ecu的特性信息计算自身所使用的加密密钥;
[0112]
解密密钥计算模块430,用于根据各个对端ecu的特性信息分别计算与各所述对端ecu交互所用的各解密密钥;
[0113]
密钥存储模块440,用于存储自身所使用的加密密钥及与各对端ecu交互所用的各解密密钥;
[0114]
其中,所述加密密钥与每个解密密钥均为对称密钥。
[0115]
可选的,ecu的特性信息包括随机数信息,加密密钥计算模块420具体用于:根据本端ecu的随机数信息及各个对端ecu的随机数信息,计算自身所使用的加密密钥。
[0116]
可选的,加密密钥计算模块420包括:
[0117]
第一信息解密单元,用于利用预设密钥对各个对端ecu的随机数信息进行解密,得到各个对端ecu的随机数向量;
[0118]
信息存储单元,用于将本端ecu的随机数向量与解密得到的随机数向量存储为第一随机数矩阵;
[0119]
第一密钥计算单元,用于根据所述第一随机数矩阵计算自身所使用的加密密钥。
[0120]
可选的,上述第一密钥计算单元具体用于:
[0121]
按照本端ecu对应的目标通信ecu,从所述第一随机数矩阵中抽取所述目标通信ecu的随机数向量,得到第二随机数矩阵;
[0122]
按照预设规则将所述第二随机数矩阵转换为第一计算矩阵;
[0123]
利用所述预设密钥对所述第一计算矩阵进行预设运算,得到自身所使用的加密密钥。
[0124]
可选的,ecu的特性信息包括ecu的目标通信ecu标识信息,解密密钥计算模块430包括:
[0125]
第二信息解密单元,用于针对每个对端ecu,按照该对端ecu的目标通信ecu标识信息,从本地存储的第一随机数矩阵中抽取该对端ecu对应的目标通信ecu的随机数向量,并按照预设规则得到该对端ecu的第二计算矩阵;
[0126]
第二密钥计算单元,用于利用预设密钥对所述第二计算矩阵进行预设运算,得到与该对端ecu交互所用的解密密钥。
[0127]
可选的,ecu的特性信息还包括校验信息,所述校验信息是ecu利用自身所使用的加密密钥对其所广播的密钥协商报文中的预设字符串进行预设处理得到的,上述装置还可以包括:
[0128]
校验模块,用于在所述本端ecu根据对端ecu的特性信息计算与所述对端ecu交互所用的解密密钥之后,利用与所述对端ecu交互使用的解密密钥对所述对端ecu广播的密钥协商报文中的预设字符串进行预设处理,得到处理结果;比较所述处理结果与所述对端ecu广播的密钥协商报文中的校验信息;若一致,则校验通过,存储与所述对端ecu交互所用的解密密钥;若不一致,则校验未通过,重新广播密钥协商报文以协商加密密钥和解密密钥。
[0129]
可选的,密钥存储模块440是硬件安全模块。
[0130]
可选的,上述装置还可以包括:删除模块,用于在车辆内所有ecu均存储有自身所使用的加密密钥及与各对端ecu交互所用的各解密密钥之后,删除计算过程所使用的中间变量信息。
[0131]
本发明实施例所提供的车辆ecu密钥的确定装置可执行本发明任意实施例所提供的车辆ecu密钥的确定方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的车辆ecu密钥的确定方法。
[0132]
实施例六
[0133]
本实施例提供了一种计算机设备,包括:
[0134]
一个或多个处理器;
[0135]
存储器,用于存储一个或多个程序;
[0136]
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所述的车辆ecu密钥的确定方法。
[0137]
本实施例中的计算机设备可以是汽车的电子控制单元。图5是本发明实施例六提供的计算机设备的结构示意图。图5示出了适于用来实现本发明实施方式的示例性计算机设备12的框图。图5显示的计算机设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0138]
如图5所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
[0139]
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。
[0140]
计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
[0141]
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd

rom,dvd

rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。系统存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
[0142]
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如系统存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
[0143]
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图5所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括
但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
[0144]
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的车辆ecu密钥的确定方法。
[0145]
实施例七
[0146]
本发明实施例七提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所述的车辆ecu密钥的确定方法。
[0147]
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0148]
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0149]
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。
[0150]
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如”c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0151]
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献