一种汽车电子控制单元的安全算法管理方法及系统与流程

文档序号:14518462阅读:355来源:国知局

本发明涉及汽车技术领域,尤其涉及一种汽车电子控制单元的安全算法管理方法及系统。



背景技术:

汽车电子控制单元(ecu)的安全算法是保护汽车ecu内部信息的重要途径,拥有该安全算法,可以对ecu进行相关信息的修改或配置,安全算法的具体算法是一项重要而且保密的内容,该算法由主机厂来管控。

但是在汽车行业内部,同一个ecu可能由多个供应商来供货,在对多个供应商进行安全算法管控时,主机厂往往面临着一个矛盾的局面:如果给供应商a和供应商b释放同样的安全算法,那么难以保证安全算法的保密性,也即多个供应商都知道对方ecu的安全算法;如果给供应商a和供应商b释放不同的安全算法,虽然保密性能够保证,但是给主机厂的管控带来了很大的麻烦,主机厂在管理安全算法时会比较混乱。更为麻烦的是,如果在诊断设备开发完成以后再增加供应商,诊断设备软件全部需要更新并长期维护,工作量非常大。



技术实现要素:

本发明所要解决的技术问题在于,提供一种汽车电子控制单元的安全算法管理方法及系统,既确保各供应商的目标电子控制单元之间的安全算法的保密性,又能便于主机厂管理各目标电子控制单元的安全算法。

为了解决上述技术问题,本发明提供一种汽车电子控制单元的安全算法管理方法,包括:

获取为多个目标电子控制单元分别设置的互不相同的常数值,并生成所述多个目标电子控制单元的公开安全算法,其中,所述公开安全算法的密钥值为中间变量加上种子值,所述中间变量通过将目标电子控制单元对应的常数值采用内部安全算法计算获得;

将所述公开安全算法分别配置到所述多个目标电子控制单元,并将每一目标电子控制单元的诊断数据标识符的取值设置为所述目标电子控制单元对应的常数值。

其中,将所述目标电子控制单元对应的常数值采用所述内部安全算法计算获得的中间变量均不相同。

其中,所述安全算法管理方法还包括:

通过诊断设备从所述目标电子控制单元获取其对应的常数值和种子值;以及将所述常数值采用所述内部安全算法计算获得中间变量;以及根据所述中间变量和所述种子值识别出所述目标电子控制单元的公开安全算法。

其中,所述常数值的获取方式是:通过诊断设备向所述目标电子控制单元发送诊断指令,从所述目标电子控制单元反馈获得。

其中,所述种子值的获取方式是:通过诊断设备向所述目标电子控制单元发送请求种子指令,从所述目标电子控制单元反馈获得。

本发明还提供一种汽车电子控制单元的安全算法管理系统,包括:

算法生成模块,用于获取为多个目标电子控制单元分别设置的互不相同的常数值,并生成所述多个目标电子控制单元的公开安全算法,其中,所述公开安全算法的密钥值为中间变量加上种子值,所述中间变量通过将目标电子控制单元对应的常数值采用内部安全算法计算获得;

算法配置模块,用于将所述公开安全算法分别配置到所述多个目标电子控制单元,并将每一目标电子控制单元的诊断数据标识符的取值设置为所述目标电子控制单元对应的常数值。

其中,将所述目标电子控制单元对应的常数值采用所述内部安全算法计算获得的中间变量均不相同。

其中,所述安全算法管理系统还包括:

诊断设备,用于从所述目标电子控制单元获取其对应的常数值和种子值,并将所述常数值采用所述内部安全算法计算获得中间变量,再根据所述中间变量和所述种子值识别出所述目标电子控制单元的公开安全算法。

其中,所述常数值的获取方式是:通过所述诊断设备向所述目标电子控制单元发送诊断指令,从所述目标电子控制单元反馈获得。

其中,所述种子值的获取方式是:通过所述诊断设备向所述目标电子控制单元发送请求种子指令,从所述目标电子控制单元反馈获得。

本发明实施例的有益效果在于:通过公开安全算法和内部安全算法双重加密,对于供应商而言,各个供应商获得的公开安全算法不同,实现了保密性;对主机厂诊断设备而言,可以通过内部安全算法获得所有供应商的公开安全算法,管理方便,易用性强。

具体实施方式

以下各实施例的说明是用以示例本发明可以用以实施的特定实施例。

本发明实施例一提供一种汽车电子控制单元的安全算法管理方法,包括:

获取为多个目标电子控制单元分别设置的互不相同的常数值,并生成所述多个目标电子控制单元的公开安全算法,其中,所述公开安全算法的密钥值为中间变量加上种子值,所述中间变量通过将目标电子控制单元对应的常数值采用内部安全算法计算获得;

将所述公开安全算法分别配置到所述多个目标电子控制单元,并将每一目标电子控制单元的诊断数据标识符的取值设置为所述目标电子控制单元对应的常数值。

具体地,本实施例中,常数值设计为const,该常数值可以通过诊断指令从ecu处读取出来,诊断数据标识符(did)以0x02ff为例。

对供应商a而言,设置其目标ecu的常数值const_a=0xabcdef12;对供应商b而言,设置其目标ecu的常数值const_b=0x12345678。相应地,供应商a的目标ecu的诊断did设置为did0x02ff=0xabcdef12,供应商b的目标ecu的诊断did设置为did0x02ff=0x12345678。可以理解的是,前述为供应商a、供应商b的目标ecu设置的常数值仅为举例,实际应用中可以设置为任意值。

由于给各个目标ecu设置的常数值互不不同,内部安全算法也不会提供给供应商,将各个目标ecu对应的常数值采用内部安全算法计算获得的中间变量便各不相同,因此,将要提供给各个供应商的目标ecu的公开安全算法的密钥值也各不相同,这就使得各个供应商的目标ecu的公开安全算法各不相同,达到了保密性的目的。

内部安全算法由主机厂掌握,不会提供给各个供应商。如前所述,为多个目标ecu生成的公开安全算法的密钥值需要通过将各个目标ecu对应的常数值采用内部安全算法计算获得的中间变量,因此,实际上公开安全算法是基于内部安全算法而得。

将每一目标ecu的诊断数据标识符的取值设置为其对应的常数值的作用在于,主机厂的诊断设备通过诊断指令从所述目标ecu读出其诊断数据标识符的取值,就相当于主机厂的诊断设备获得了该目标ecu的常数值。如前所述,将该常数值采用内部安全算法计算可得该目标ecu的公开安全算法的中间变量,而该目标ecu的公开安全算法的种子值可以通过向该目标ecu发送请求种子指令,然后从该目标ecu反馈获得,这样,该目标ecu的公开安全算法即可被主机厂的诊断设备所识别,进而可以进行下一步的解锁操作。不同供应商提供的目标ecu接入时,主机厂诊断设备均可如前所述自动识别。这就实现了尽管配置到各个目标ecu的公开安全算法各不相同,但在诊断设备上能保证安全算法的唯一性,诊断设备对各个目标ecu都可以调用同一个安全算法,不需要去识别是哪个供应商提供的ecu。

当然,为各个供应商的目标ecu设置的常数值设计为可读,是为了售后诊断设备能够读取,那么供应商也可以读取,即供应商可以获知其目标ecu的具体常数值,但是供应商并不知道常数值到中间变量temp的内部安全算法。

以下再结合前述举例具体说明。内部安全算法可以设计为其密钥值key=temp+seed,其中中间变量temp=const×3。可以理解的是,此处中间变量的计算为便于描述仅为举例,实际上的内部安全算法会设计得非常复杂。通过上述内部安全算法计算得到中间变量temp,其中用于供应商a的ecu的公开安全算法的中间变量temp_a=const_a×3=0x0369cd36,用于供应商b的ecu的公开安全算法的中间变量temp_b=const_b×3=0x39d369b6。

最终提供给供应商a的目标ecu的公开安全算法的密钥值key=0x0369cd36+seed,其诊断数据标识符did0x02ff=0xabcdef12,提供给供应商b的目标ecu的公开安全算法的密钥值key=0x39d369b6+seed,其诊断数据标识符did0x02ff=0x12345678。这样,供应商a的目标ecu和供应商b的目标ecu获得的公开安全算法不同,达到了保密性的目的,而且从其常数值到中间变量temp的这个算法(即内部安全算法)各供应商均不知道,也无法反推破解。

以供应商a提供的目标ecu接入为例,主机厂的诊断设备发送请求种子(requestseed)指令,ecu在接收到请求种子指令以后,反馈一个种子值(seed),该种子值为随机值;同样地,主机厂的诊断设备向ecu发送诊断指令,ecu要返回其did的值(0x02ff=0xabcdef12),然后诊断设备将该did的值放入到内部安全算法中计算,密钥值key=(0xabcdef12×3)+seed,得到供应商a的公开安全算法为:密钥值key=0x0369cd36+seed。有了这个算法,主机厂的诊断设备就可以对供应商a的ecu进行解锁。

还需说明的是,对于目标ecu,如果后期新增供应商,例如供应商c,则同样为其设置一个常数值const_c=0x22222222,将其诊断did设置为did0x02ff=0x22222222,公开安全算法中的中间变量temp=const_c×3=0x66666666,那么主机厂的诊断设备通过诊断指令获取seed和did的值之后,就能知道供应商c的ecu的公开安全算法,无需更改诊断设备软件。

相应于本发明实施例一,本发明实施列二提供一种汽车电子控制单元的安全算法管理系统,包括:

算法生成模块,用于获取为多个目标电子控制单元分别设置的互不相同的常数值,并生成所述多个目标电子控制单元的公开安全算法,其中,所述公开安全算法的密钥值为中间变量加上种子值,所述中间变量通过将目标电子控制单元对应的常数值采用内部安全算法计算获得;

算法配置模块,用于将所述公开安全算法分别配置到所述多个目标电子控制单元,并将每一目标电子控制单元的诊断数据标识符的取值设置为所述目标电子控制单元对应的常数值。

其中,将所述目标电子控制单元对应的常数值采用所述内部安全算法计算获得的中间变量均不相同。

其中,所述安全算法管理系统还包括:

诊断设备,用于从所述目标电子控制单元获取其对应的常数值和种子值,并将所述常数值采用所述内部安全算法计算获得中间变量,再根据所述中间变量和所述种子值识别出所述目标电子控制单元的公开安全算法。

其中,所述常数值的获取方式是:通过所述诊断设备向所述目标电子控制单元发送诊断指令,从所述目标电子控制单元反馈获得。

其中,所述种子值的获取方式是:通过所述诊断设备向所述目标电子控制单元发送请求种子指令,从所述目标电子控制单元反馈获得。

通过上述说明可知,本发明实施例的有益效果在于:通过公开安全算法和内部安全算法双重加密,对于供应商而言,各个供应商获得的公开安全算法不同,实现了保密性;对主机厂诊断设备而言,可以通过内部安全算法获得所有供应商的公开安全算法,管理方便,易用性强。

以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

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