车载程序文件下载方法和装置与流程

文档序号:15281269发布日期:2018-08-28 23:34阅读:350来源:国知局

本发明涉及电子电气领域,尤其涉及一种车载程序文件下载方法和装置。



背景技术:

电子控制单元(electroniccontrolunit,ecu)在车辆上的应用非常广泛。电子控制单元可以根据采集的各项参数信息,结合存储在电子控制单元的程序进行运算。将运算的结果转变为控制信号,从而实现电子控制单元对车辆的整体控制。

为了满足用户对车辆控制功能的各种要求,电子控制单元需要下载各类程序。电子控制单元下载的程序文件的格式开放,内容属于明文,比较容易被篡改。比如,不法分子仿造控制器局域网络(can,controllerareanetwork)的通信服务,对程序文件中的数据进行篡改。若电子控制单元下载了经过篡改后的程序文件,则会对车辆的安全造成隐患,降低了车辆控制的安全性。



技术实现要素:

本发明实施例提供了一种车载程序文件下载方法和装置,能够提高车辆控制的安全性。

第一方面,本发明实施例提供了一种车载程序文件下载方法,包括:利用密钥和高级加密标准aes对车载程序文件进行加密;下载加密的车载程序文件至汽车电子控制单元。

第二方面,本发明实施例提供了一种车载程序文件下载装置,包括:加密模块,被配置为利用密钥和高级加密标准aes对车载程序文件进行加密;下载模块,被配置为下载加密的车载程序文件至汽车电子控制单元。

本发明实施例提供一种车载程序文件下载方法和装置。利用密钥和高级加密标准对车载程序文件进行加密,并将加密的车载程序文件下载至汽车电子控制单元。高级加密标准难以破解,经过加密后的车载程序文件在传输过程中难以篡改。汽车电子控制单元下载经过加密的车载程序文件,保证了车载程序文件的安全性。从而降低了车辆的安全隐患,提高了车辆控制的安全性。

附图说明

从下面结合附图对本发明的具体实施方式的描述中可以更好地理解本发明其中,相同或相似的附图标记表示相同或相似的特征。

图1为本发明一实施例中的一种车载程序文件下载方法的流程图;

图2为本发明另一实施例中的一种车载程序文件下载方法的流程图;

图3为本发明再一实施例中一种车载程序文件下载方法的流程图;

图4为本发明实施例一示例中的车载程序文件的结构示意图;

图5为本发明又一实施例中的一种车载程序文件下载方法的流程图;

图6为本发明一实施例中一种车载程序文件下载装置的结构示意图;

图7为本发明另一实施例中一种车载程序文件下载装置的结构示意图;

图8为本发明再一实施例中一种车载程序文件下载装置的结构示意图;

图9为本发明又一实施例中一种车载程序文件下载装置的结构示意图。

具体实施方式

下面将详细描述本发明的各个方面的特征和示例性实施例。在下面的详细描述中,提出了许多具体细节,以便提供对本发明的全面理解。但是,对于本领域技术人员来说很明显的是,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明的更好的理解。本发明决不限于下面所提出的任何具体配置和算法,而是在不脱离本发明的精神的前提下覆盖了元素、部件和算法的任何修改、替换和改进。在附图和下面的描述中,没有示出公知的结构和技术,以便避免对本发明造成不必要的模糊。

本发明实施例提供了一种车载程序文件下载方法和装置。在一个示例中,可应用于汽车中的汽车电子控制单元(electroniccontrolunit,ecu)通过车载终端从远端服务器下载车载程序文件的场景中。或者,应用于具有汽车电子控制单元的车载终端从远端服务器下载车载程序文件的场景中。其中,车载终端与远端服务器可无线通信连接。比如,车载终端与远端服务器通过数据网络、无线保真(wirelessfidelity,wifi)、蓝牙或紫蜂等无线通信技术进行通信,实现数据传输。车载终端与汽车电子控制单元可通过有线通信或无线通信实现数据传输。

在另一个示例中,本发明实施例提供的车载程序文件下载方法和装置,也可应用于携带有车载程序文件的硬件设备与车载终端有线连接,将车载程序文件传输给车载终端,将车载程序文件从车载终端下载至汽车电子控制单元。车载终端与汽车电子控制单元可通过有线通信或无线通信实现数据传输。

图1为本发明一实施例中的一种车载程序文件下载方法的流程图。如图1所示,车载程序文件下载方法可包括步骤101和步骤102。

在步骤101中,利用密钥和高级加密标准对车载程序文件进行加密。

其中,高级加密标准(advancedencryptionstandard,aes)是一种对称密钥加密算法。在一个示例中,可以采用aes128算法、aes192算法或aes256算法进行加密。对应的,密钥也可使用128位、192位或256位的密钥。高级加密标准算法可以采用硬件实施,也可采用软件实施,在此并不限定。

对车载程序文件进行aes加密,可将车载程序文件形成字节矩阵;对字节矩阵依次进行轮密钥加变换、字节代换(又称s盒变换)、行移位变换和列混淆变换。在一个示例中,可对车载程序文件中的有效程序部分进行aes加密。有效程序部分可包括车载程序文件的程序数据,或者,有效程序部分可包括车载程序文件的程序数据和车载程序文件的数据地址。

在一个示例中,车载程序文件可以是汽车新下载的控制应用的程序文件,也可以是汽车已有的控制应用的更新程序文件。从形式上来说,车载程序文件可以为s19文件或hex文件等。

在一个示例中,可将密钥加入车载程序文件进行传输,以便于下载车载程序文件后,利用密钥对加密的车载程序文件进行解密。

在步骤102中,下载加密的车载程序文件至汽车电子控制单元。

在一个示例中,若车载程序文件较小,则可以将整个车载程序文件进行加密,形成一个加密的数据包。将这一个加密的数据包下载至汽车电子控制单元。具体的,可下载至电子控制单元的闪存中。

在另一个示例中,若车载程序文件较大,则可以将加密的车载程序文件分割为多个数据包,多个数据包可合成加密的车载程序文件。将多个数据包依次下载至汽车电子控制单元。下载了所有数据包即下载的加密的车载程序文件。

本发明实施例提供一种车载程序文件下载方法。利用密钥和高级加密标准对车载程序文件进行加密,并将加密的车载程序文件下载至汽车电子控制单元。高级加密标准难以破解,因此,经过加密后的车载程序文件在传输过程中难以篡改。汽车电子控制单元下载经过加密的车载程序文件,保证了车载程序文件的安全性。从而降低了车辆的安全隐患,提高了车辆控制的安全性。而且,即使加密的车载程序文件被截获,也难以破解,保证车载程序文件的原始内容不会泄露,从而达到保护车载程序文件的目的。

图2为本发明另一实施例中的一种车载程序文件下载方法的流程图。图2与图1的不同之处在于,图1中的步骤101可具体细化为图2中的步骤1011至步骤1013。

在步骤1011中,将车载程序文件中的有效程序部分划分为多个数据片段。

其中,车载程序文件包括数据地址(也可称为程序地址)和程序数据(也可称为程序)。车载程序文件还可包括标识符以及校验和等内容。标识符可包括数据类型和数据长度等。

对于较大的车载程序文件来说,车载程序文件中的有效程序部分较多,则可将有效程序部分划分为多个数据片段。有效程序部分可包括数据,或者,有效程序部分可包括数据和数据地址。为了便于传输,可以将加密的车载程序文件拆分成多个数据包,数据包可包括加密的有效程序部分,也可包括标识符以及校验和等内容。比如,若车载程序文件为s19文件,s19文件包括多行子文件,每行子文件可包括标识符、有效程序部分和校验和。对每行子文件中的有效程序部分划分数据片段,并对数据片段加密。加密的每行子文件包括标识符、加密的有效程序部分和校验和。可将加密的每行子文件作为一个数据包。

每个数据片段的比特数为预设的加密分割比特数的正整数倍。比如,加密分割比特数为128比特,则每个数据片段的比特数均为128比特的整数倍,可表示为n×128bits。各个数据片段的比特数可以相同,也可以不同。

若车载程序文件在预先划分时,出现有效程序部分的比特数不足以实现数据片段的比特数为加密分割比特数的正整数倍的情况,则可对车载程序文件进行补位,添加不影响车载程序文件的比特数,从而实现每个数据片段的比特数均为加密分割比特数的正整数倍。

在步骤1012中,利用密钥和aes,对每个数据片段进行加密。

也就是说,利用密钥和aes,对车载程序文件中的有效程序部分进行分段加密,每段为一个数据片段。

比如,若车载程序文件为s19文件,s19文件包括多行子文件,可将每行子文件中的有效程序部分划分为一个以上的数据片段。s19文件的每行子文件包括标识符、数据地址、数据和校验和。可对s19文件的每行子文件中的数据地址和数据进行加密。

在步骤1013中,根据加密的数据片段在车载程序文件中的位置,组合得到加密的车载程序文件。

在一个示例中,可将车载程序文件中未加密的有效程序部分用加密的数据片段替换,从而组合成加密的车载程序文件。其中,在加密的车载程序文件中加密的数据片段的位置,与未加密的车载程序文件中划分的数据片段一致。

在一个示例中,若车载程序文件为s19文件或hex文件,则组合后的加密的车载程序文件即为加密的s19文件或加密的hex文件。

在一个实施例中,可使用无线传输技术将车载程序文件下载至汽车电子控制单元,不需要专业操作人员将携带有车载程序文件的硬件设备与汽车的接口连接,从而提高车载程序文件下载的效率。上述实施例中下载加密的车载程序文件至汽车电子控制单元,具体可以实现为通过车载终端,从远端服务器下载加密的车载程序至汽车电子控制单元。也就是说,车载终端可从远端服务器下载加密的车载程序文件,汽车电子控制单元可从车载终端下载加密的车载程序文件。比如,汽车电子控制单元可通过统一诊断服务(uds,unifieddiagnosticservice)与车载终端进行通信。

在另一个实施例中,由于下载的加密的车载程序文件可能在传输过程中出错,造成下载的加密的车载程序文件并不完整或出现错误。因此,在下载了加密的车载程序文件后,可对车载程序文件进行完整性和准确性的检查。不能够立刻将下载的车载程序文件写入到汽车电子控制单元中。可在汽车电子控制单元中设置程序下载区,使程序下载区独立于汽车电子控制单元中运行程序文件的部分。上述实施例中下载加密的车载程序文件至汽车电子控制单元,具体可以实现为下载加密的程序文件至汽车电子控制单元中的程序下载区。对车载程序文件的解密以及检查都可在程序下载区中进行。

图3为本发明再一实施例中一种车载程序文件下载方法的流程图。图3与图1的不同之处在于,图3所示的车载程序文件下载方法还包括步骤103至步骤105。

在步骤103中,基于加密的车载程序文件中每行子文件,计算加密的车载程序文件中每行子文件的校验和。

在一个示例中,车载程序文件可包括多行子文件,每行子文件可包括数据长度、数据地址和程序数据。加密的车载程序文件中每行子文件的校验和等于目标加和的补码。若有效程序部分包括程序数据,则目标加和为数据长度、数据地址与加密的程序数据的加和。若有效程序部分包括程序数据和数据地址,则目标加和为数据长度、加密的数据地址与加密的程序数据的加和。

比如,图4为本发明实施例一示例中的车载程序文件中子文件的结构示意图。车载程序文件中的一行子文件如图4所示,以十六进制为例,若车载程序文件中的一行子文件为“s2200800c07060e0051c630c1470000000780004087060e0051c630c14700000010a”。则该行子文件的校验和=0xff-(0x20+0x08+0x00+0xc0+0x70+0x60+…+0x00+0x1)=0xff-(0xf5)=0x0a。

在步骤104中,在下载加密的车载程序文件至汽车电子控制单元后,基于下载的加密的车载程序文件中每行子文件,计算下载的加密的车载程序文件中每行子文件的校验和。

由于在下载的传输过程中,加密的车载程序文件可能会有数据丢失或数据传输错误,因此在下载得到加密的车载程序文件后,需要计算下载的加密的车载程序文件中每行子文件的校验和。从而根据加密的车载程序文件中每行子文件的校验和,以及下载的加密的车载程序文件中每行子文件的校验和,来确定加密的车载程序文件是否完整和准确。

在步骤105中,根据加密的车载程序文件中每行子文件的校验和,以及下载的加密的车载程序文件中每行子文件的校验和,确定下载的加密的车载程序文件是否完整和准确。

在一个示例中,可对比加密的车载程序文件中每行子文件的校验和,与下载的加密的车载程序文件中每行子文件的校验和。若加密的车载程序文件中每行子文件的校验和,与下载的加密的车载程序文件中每行子文件的校验和一致,则确定下载的加密的车载程序文件完整和准确。若加密的车载程序文件中每行子文件的校验和,与下载的加密的车载程序文件中每行子文件的校验和不一致,则确定下载的加密的车载程序文件不完整和/或不准确。

图5为本发明又一实施例中的一种车载程序文件下载方法的流程图。图5与图1的不同之处在于,图5所示的车载程序文件下载方法还包括步骤106至步骤110。

在步骤106中,利用密钥和aes,对加密的车载程序文件进行解密,恢复车载程序文件。

在一个示例中,密钥可存储在汽车电子控制单元中,比如,密钥可存储在汽车电子控制单元的程序运行区中,在进行解密时,可从程序运行区中获取密钥,利用高级加密标准进行解密。利用密钥和高级加密标准,对加密的车载程序文件解密,得到恢复的车载程序文件。加密和解密使用的密钥相同。

在一个示例中,若加密的车载程序文件由一个数据包组成,则可直接对这一个数据包进行解密,得到恢复的车载程序文件。

在另一个示例中,若加密的车载程序文件由两个以上的数据包组成,则分别对这两个以上的数据包解密。按照划分数据包时数据包在车载程序文件中的排列顺序,将解密后的数据包组合,得到恢复的车载程序文件。

在步骤107中,根据恢复的车载程序文件,得到恢复的车载程序文件的循环冗余校验码。

循环冗余校验码(cyclicredundancycheck,crc)主要用来检测或校验数据传输或者保存后可能出现的错误。为了避免下载得到的车载程序文件不完整或不准确,可对解密后的恢复的车载程序文件进行循环冗余校验。对解密后的恢复的车载程序文件进行循环冗余校验可在汽车电子控制单元中的程序下载区进行。

在车载程序文件中包括车载程序文件的循环冗余校验码,该循环冗余校验码是加密前的车载程序文件的循环冗余校验码。

在下载得到加密的车载程序文件,并对加密的车载程序文件进行解密,得到恢复的车载程序文件之后,根据恢复的车载程序文件,计算得到恢复的车载程序文件的循环冗余校验码。

在步骤108中,若恢复的车载程序文件的循环冗余校验码与加密前车载程序文件的循环冗余校验码一致,将下载至汽车电子控制单元的随机存取存储器中恢复的车载程序文件写入汽车电子控制单元中的程序下载区。

在一个示例中,加密的车载程序文件可先下载至汽车电子控制单元中的随机存取存储器(randomaccessmemory,ram)中,在ram中进行车载程序文件的解密以及循环冗余校验。恢复的车载程序文件的循环冗余校验码与加密前车载程序文件的循环冗余校验码一致,表示恢复的车载程序文件与加密前原始的车载程序文件一致。也就是说,恢复的车载程序文件是完整且准确的。

汽车电子控制单元包括程序下载区和程序运行区,程序下载区与程序运行区是相互独立的两个区域。其中,程序运行区运行当前汽车使用的程序文件。若恢复的车载程序文件是完整且准确,则可将ram中存储的恢复的车载文件写入到程序下载区中。

在步骤109中,擦除汽车电子控制单元中程序运行区中的程序文件,并将程序下载区中恢复的车载程序文件写入程序运行区。

若确定恢复的车载程序文件是完整、准确的,在需要运行恢复的车载程序文件之前,可将恢复的车载程序文件写入程序运行区。若程序运行区中运行有程序文件,则将程序运行区中运行的程序文件擦除,再将恢复的车载程序文件写入程序运行区。可在汽车需要运行恢复的车载程序文件时,在程序运行区运行恢复的车载程序文件。

在步骤110中,若恢复的车载程序文件的循环冗余校验码与加密前车载程序文件的循环冗余校验码不一致,则重新下载加密的车载程序文件至汽车电子控制单元。

恢复的车载程序文件的循环冗余校验码与加密前车载程序文件的循环冗余校验码不一致,表示恢复的车载程序文件与加密前原始的车载程序文件不一致。也就是说,恢复的车载程序文件是不完整和/或不准确的。

若确定恢复的车载程序文件是不完整和/或不准确的,则需要重新下载加密的车载程序文件至汽车电子控制单元。而且,不将恢复的车载程序文件写入程序运行区。还可直接删除不完整和/或不准确恢复的车载程序文件。

在本发明实施例中,若恢复的车载程序文件完整且准确,将恢复的车载程序文件投入使用,使恢复的车载程序文件在汽车中运行。避免将不完整和/或不准确的车载程序文件在汽车中运行,避免了汽车由于错误的车载程序文件运行产生的风险,从而进一步提高了汽车控制的安全性。

图6为本发明一实施例中一种车载程序文件下载装置200的结构示意图。如图6所示,车载程序文件下载装置200可包括加密模块201和下载模块202。

加密模块201,被配置为利用密钥和高级加密标准aes对车载程序文件进行加密。

下载模块202,被配置为下载加密的车载程序文件至汽车电子控制单元。

在本发明实施例中,汽车电子控制单元下载经过加密的车载程序文件,保证了车载程序文件的安全性。从而降低了车辆的安全隐患,提高了车辆控制的安全性。而且,即使加密的车载程序文件被截获,也难以破解,保证车载程序文件的原始内容不会泄露,从而达到保护车载程序文件的目的。

图7为本发明另一实施例中一种车载程序文件下载装置200的结构示意图。图7与图6的不同之处在于,图6中的加密模块201可包括图7中的划分子模块2011、加密子模块2012和组合子模块2013。

拆分子模块2011,被配置为将车载程序文件中的有效程序部分划分为多个数据片段,有效程序部分包括程序数据,每个数据片段的比特数为预设的加密分割比特数的正整数倍。

加密子模块2012,被配置为利用密钥和aes,对每个数据片段进行加密。

组合子模块2013,被配置为根据加密的数据片段在车载程序文件中的位置,组合得到加密的车载程序文件。

上述实施例中的下载模块202可具体被配置为通过车载终端,从远端服务器下载加密的车载程序文件至电子控制单元。

上述实施例中的下载模块202可具体被配置为下载加密的程序文件至汽车电子控制单元中的程序下载区。

图8为本发明再一实施例中一种车载程序文件下载装置200的结构示意图。图8与图6的不同之处在于,图8中的车载程序文件下载装置200还可包括第一计算模块203、第二计算模块204和校验模块205。

第一计算模块203,被配置为基于加密的车载程序文件中每行子文件,计算加密的车载程序文件中每行子文件的校验和。

第二计算模块204,被配置为在下载加密的车载程序文件至汽车电子控制单元后,基于下载的加密的车载程序文件中每行子文件,计算下载的加密的车载程序文件中每行子文件的校验和。

校验模块205,被配置为根据加密的车载程序文件中每行子文件的校验和,以及下载的加密的车载程序文件中每行子文件的校验和,确定下载的加密的车载程序文件是否完整和准确。

图9为本发明又一实施例中一种车载程序文件下载装置200的结构示意图。图9与图6的不同之处在于,图9中的车载程序文件下载装置200还包括解密模块206、获取模块207和写入模块208。。

解密模块206,被配置为利用密钥和aes,对加密的车载程序文件进行解密,恢复车载程序文件。

获取模块207,被配置为根据恢复的车载程序文件,得到恢复的车载程序文件的循环冗余校验码。

写入模块208,被配置为若恢复的车载程序文件的循环冗余校验码与加密前车载程序文件的循环冗余校验码一致,将下载至汽车电子控制单元的随机存取存储器中恢复的车载程序文件写入汽车电子控制单元中的程序下载区。

写入模块208还可被配置为擦除汽车电子控制单元中程序运行区中的程序文件,并将程序下载区中恢复的车载程序文件写入程序运行区。

下载模块202还被配置为若恢复的车载程序文件的循环冗余校验码与加密前车载程序文件的循环冗余校验码不一致,则重新下载加密的车载程序文件至汽车电子控制单元。

其中,车载程序文件还包括加密前的车载程序文件的循环冗余校验码。

需要明确的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。对于装置实施例而言,相关之处可以参见方法实施例的说明部分。本发明并不局限于上文所描述并在图中示出的特定步骤和结构。本领域的技术人员可以在领会本发明的精神之后,作出各种改变、修改和添加,或者改变步骤之间的顺序。并且,为了简明起见,这里省略对已知方法技术的详细描述。

以上所述的结构框图中所示的功能模块和功能子模块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(asic)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。

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