车载程序文件加密方法和系统与流程

文档序号:14776471发布日期:2018-06-23 03:30阅读:780来源:国知局
车载程序文件加密方法和系统与流程

本发明涉及电子电气领域,尤其涉及一种车载程序文件加密方法和系统。



背景技术:

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

为了满足用户对汽车控制功能的多种需求,电子控制单元需要下载或更新各类程序。现阶段,常采用seedkey算法对需要对用于下载的电子控制单元进行安全认证。但是,seedkey算法容易泄露和被破解,导致程序文件容易被篡改,增加了程序文件中数据丢失泄露的风险,也增加了电子控制单元失效以及远程服务器或电子控制单元被黑客攻击的风险。而电子控制单元下载程序文件后,无法判断程序文件是否被篡改后。若电子控制单元下载了经过篡改后的程序文件,则会对汽车的安全造成隐患,降低了汽车控制的安全性。



技术实现要素:

本发明实施例提供了一种车载程序文件加密方法和系统,能够提高汽车控制的安全性。

第一方面,本发明实施例提供了一种车载程序文件加密方法,包括:远程服务器获取待下载车辆的车辆唯一识别码;远程服务器将车载程序文件中的数据划分为一个以上的数据片段;远程服务器利用车辆唯一识别码和一个以上的数据片段,生成一个以上的目标数据片段,并计算得到一个以上的目标数据片段各自的消息认证码,至少一个目标数据片段中包括车辆唯一识别码;远程服务器利用密钥和高级加密标准AES对一个以上的目标数据片段进行加密;远程服务器基于加密的一个以上的目标数据片段,以及一个以上的目标数据片段的消息认证码,生成一个以上的加密子文件,一个加密子文件包括加密的一个目标数据片段和与加密的一个目标数据片段的消息认证码,或者,一个加密子文件包括加密的一个数据片段和加密的一个目标数据片段的经密钥和AES加密的消息认证码。

第二方面,本发明实施例提供了一种车载程序文件加密系统,包括远程服务器;远程服务器包括:识别码获取模块,被配置为获取待下载车辆的车辆唯一识别码;划分模块,被配置为将车载程序文件中的数据划分为一个以上的数据片段;计算模块,被配置为利用车辆唯一识别码和一个以上的数据片段,生成一个以上的目标数据片段,并计算得到一个以上的目标数据片段各自的消息认证码,至少一个目标数据片段中包括车辆唯一识别码;加密模块,被配置为利用密钥和高级加密标准AES对一个以上的目标数据片段进行加密;子文件生成模块,被配置为基于加密的一个以上的目标数据片段,以及一个以上的目标数据片段的消息认证码,生成一个以上的加密子文件,一个加密子文件包括加密的一个目标数据片段和与加密的一个目标数据片段的消息认证码,或者,一个加密子文件包括加密的一个数据片段和加密的一个目标数据片段的经密钥和AES加密的消息认证码。

在本发明实施例中,将车辆唯一识别码加入车载程序文件的数据中之后进行加密,形成加密子文件。由于车辆唯一识别码具有唯一性,因此本发明实施例中的车载程序文件的加密方法难以破解,不同的车辆具有不同的车辆唯一识别码。也就是说,即使不同的车辆下载的是相同的车载程序文件,经过添加车辆唯一识别码并加密后,不同的车辆下载的加密车载程序文件的中的数据和消息认证码也不同。提高了对加密车载程序文件的破解难度,从而降低了车载程序文件中数据丢失泄露以及加密被破解的风险,也降低了程序文件在传输过程中被篡改的可能性,进而提高了汽车控制的安全性。

附图说明

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

图1为本发明实施例中一种车载程序文件下载的场景示意图;

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

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

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

图5为本发明一实施例中一种车载程序文件加密系统;

图6为本发明另一实施例中一种车载程序文件加密系统;

图7为本发明又一实施例中一种车载程序文件加密系统的结构示意图;

图8为本发明一实施例中一种远程服务器的硬件结构示意图;

图9为本发明一实施例中一种汽车电子控制单元的硬件结构示意图。

具体实施方式

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

本发明实施例提供了一种车载程序文件加密方法和系统。在一个示例中,可应用于在汽车下载车载程序文件的场景中,或者,应用于其他设备与汽车相互进行数据传输的场景中。其中,其他设备也可以为汽车。

以汽车下载车载程序文件为例,汽车中的汽车电子控制单元(Electronic Control Unit,ECU)可通过车载终端从远端服务器下载车载程序文件。或者,汽车电子控制单元可与车载终端集成,具有汽车电子控制单元的车载终端可从远端服务器下载车载程序文件的场景中。其中,车载终端与远端服务器可无线通信连接。比如,车载终端与远端服务器通过数据网络、无线保真(Wireless Fidelity,WiFi)、蓝牙或紫蜂等无线通信技术进行通信,实现数据传输。车载终端与汽车电子控制单元可通过有线通信或无线通信实现数据传输。

比如,图1为本发明实施例中一种车载程序文件下载的场景示意图。如图1所示,车载终端与远程服务器通过无线传输技术连接。汽车电子控制单元通过控制器局域网(Controller Area Network,CAN)总线与车载终端连接,CAN总线可包括两个传输端CANH和CANL。其中,CANH的状态为高电平或悬浮状态,CANL的状态为低电平或悬浮状态。汽车电子控制单元的闪存即Flash中可包括不可擦除区和程序运行区。不可擦除区运行有启动装载程序即BootLoader。程序运行区用于运行车载程序。

车载终端也可与携带有车载程序文件的硬件设备通过数据线等线路有线连接,将车载终端从硬件设备得到的车载程序文件下载至汽车电子控制单元。车载终端与汽车电子控制单元可通过有线通信或无线通信实现数据传输。

对车载程序文件进行加密,从而保证在车载程序文件传输过程或其他过程中,避免将车载程序文件泄露,从而避免对车载程序文件的恶意篡改,提高车载程序文件的安全性,从而提高汽车安全控制的安全性。

图2为本发明实施例中一种车载程序文件加密方法的流程图。如图2所示,车载程序文件加密方法包括步骤101至步骤105。

在步骤101中,远程服务器获取待下载车辆的车辆唯一识别码。

其中,车辆唯一识别码(Vehicle Identification Number,VIN)用于标识车辆且具有唯一性。也就是说,不同的车辆的车辆唯一识别码不同。车辆唯一识别码包含了车辆的生产厂家、年代、车型、车身型式及代码、发动机代码及组装地点等信息。

在步骤102中,远程服务器将车载程序文件中的数据划分为一个以上的数据片段。

在一个示例中,车载程序文件可以是汽车新下载的控制应用的程序文件,也可以是汽车已有的控制应用的更新程序文件或标定数据文件。从形式上来说,车载程序文件可以为s19文件或hex文件或bin文件。车载程序文件可包括标识符、数据地址(又称为程序地址)、数据(又称为程序)以及校验和等内容。标识符可包括数据类型和数据长度等。在一个示例中,若车载程序文件为s19文件,s19文件包括多行子文件,可将每行子文件中的数据划分为一个以上的数据片段。

在一个示例中,若车载程序文件中的数据较小,则可将车载程序文件中的数据作为一个数据片段。

在一个示例中,若车载程序文件中的数据较大,则可将车载程序文件中的数据划分为两个以上的数据片段。两个以上的数据片段的大小可以相同,也可以不同,在此并不限定。

在步骤103中,远程服务器利用车辆唯一识别码和一个以上的数据片段,生成一个以上的目标数据片段,并计算得到一个以上的目标数据片段各自的消息认证码。

在本发明实施例中,每个数据片段均对应一个目标数据片段。目标数据片段可包括数据片段,也可包括数据片段和车辆唯一识别码。其中,至少一个目标数据片段中包括车辆唯一识别码。比如,在所有的目标数据片段中,包括车辆唯一识别码的目标数据片段可以为一个,也可以为多个。也可以每个目标数片段均包括车辆唯一识别码。在包括车辆唯一识别码的目标数据片段为一个的条件下,包括车辆唯一识别码的目标数据片段可为所有目标数据片段中的任意一个目标数据片段。比如,包括车辆唯一识别码的目标数据片段为第一个目标数据片段或最后一个目标数据片段。车辆唯一识别码也可以位于预先设置的固定位置的目标数据片段,在此并不限定。

每个目标数据片段都对应有消息认证码(Message Authentication Code,MAC)。消息认证码是通信双方使用的一种验证工具,能够校验数据的完整性以及数据是否有误。在一个示例中,消息认证码可以根据密钥和目标数据片段的数据摘要获得。

在一个示例中,目标数据片段的字节数为预设的加密分割字节数的正整数倍。比如,预设的加密分割字节数为16字节,可以将目标数据片段的大小表示为M×16Bytes(即16字节的M),M为正整数。目标数据片段的消息认证码的大小可为16Bytes(即16字节)字节。加密的数据片段的校验和的大小可为1Byte(即1字节)。

若在考虑车辆唯一识别码的条件下预先划分数据片段时,出现车载程序文件的数据的字节数不足以实现目标数据片段的字节数为预设的加密分割字节数的正整数倍的情况,则可对车载程序文件进行补位,添加不影响车载程序文件的字节数,从而实现加密的数据片段的字节数为预设的加密分割字节数的正整数倍。

在步骤104中,远程服务器利用密钥和高级加密标准AES对一个以上的目标数据片段进行加密。

利用密钥和高级加密标准(Advanced Encryption Standard,AES)对一个以上的目标数据片段中的每一个目标数据片段进行加密。其中,高级加密标准是一种对称密钥加密算法。在一个示例中,可以采用AES128算法、AES192算法或AES256算法进行加密。对应的,密钥也可使用128位、192位或256位的密钥。高级加密标准算法可以采用硬件实施,也可采用软件实施,在此并不限定。

对根据车载程序文件形成的目标数据片段进行AES加密,可将目标数据片段形成字节矩阵;对字节矩阵依次进行轮密钥加变换、字节代换(又称S盒变换)、行移位变换和列混淆变换。

在步骤105中,远程服务器基于加密的一个以上的目标数据片段,以及一个以上的目标数据片段的消息认证码,生成一个以上的加密子文件。

其中,一个加密子文件包括加密的一个目标数据片段和与加密的一个目标数据片段的消息认证码。或者,一个加密子文件包括加密的一个数据片段和加密的一个目标数据片段的经密钥和AES加密的消息认证码。也就是说,加密子文件中的消息认证码可以为未加密的消息认证码,也可为加密的消息认证码。加密子文件还可包括其他内容,在此并不限定。

生成的这一个以上的加密子文件可组合成为加密的车载程序文件。也就是说,生成的所有加密子文件可组合成为加密的车载程序文件。在一个示例中,车载程序文件的每行子文件的数据均可划分为两个以上的数据片段。比如,车载程序文件中一行子文件的数据可划分为三个数据片段,则可对应生成三个加密子文件。

在一个示例中,加密子文件还可包括该目标数据片段的数据地址或该目标数据片段的经加密的数据地址。数据地址可以为目标数据片段的起始数据地址,也可为终止数据地址等,在此并不限定。加密子文件还可包括该目标数据片段的校验和。

加密子文件承载有车载程序文件的主要内容,可实现车载程序文件在不同设备之间的安全传输。比如,远端服务器与汽车之间的安全传输、程序存储硬件设备与汽车之间的安全传输或汽车与汽车之间的安全传输等。

远程服务器还可根据一个以上的加密子文件,组合得到加密车载程序文件。

比如车载程序文件包括三行子文件,每行子文件的数据均可划分为两个数据片段,则根据该车载程序文件可生成六个加密子文件,这六个加密子文件可组合成为加密车载程序文件。

在本发明实施例中,将车辆唯一识别码加入车载程序文件的数据中之后进行加密,形成加密子文件。由于车辆唯一识别码具有唯一性,因此本发明实施例中的车载程序文件的加密方法难以破解,不同的车辆具有不同的车辆唯一识别码。也就是说,即使不同的车辆下载的是相同的车载程序文件,经过添加车辆唯一识别码并加密后,不同的车辆下载的加密车载程序文件的数据和消息认证码也不同。提高了对加密车载程序文件的破解难度,从而降低了车载程序文件中数据丢失泄露的风险,也降低了程序文件在传输过程中被篡改的可能性,进而提高了汽车控制的安全性。

利用加密子文件传输加密的目标数据片段和目标数据片段对应的消息认证码。根据每个目标数据片段的消息认证码均能够判断该目标数据片段在传输过程中是否有误,提高了车载程序文件在传输过程中的安全性。

而且,加密子文件中包括消息认证码,若加密子文件的数目为两个以上,针对每个加密子文件均可根据消息认证码,来确定利用加密子文件传输来的数据片段是否有误或不完整。可尽快发现有误或不完整的数据片段并采取相应措施。

图3为本发明另一实施例中一种车载程序文件加密方法的流程图。图3与图2的不同之处在于,图3所示的车载程序文件加密方法还可包括步骤106至步骤111。

在步骤106中,远程服务器将一个以上的数据片段各自的数据起始地址和数据片段长度分别加入对应的加密子文件。

在划分数据片段时可得知每个数据片段的大小,因此,可获取每个数据片段的数据起始地址。为了便于汽车电子控制单元下载了所有的加密子文件后,将解密后的加密子文件恢复为车载程序文件。可将数据片段各自的数据起始地址和数据片段长度加入对应的加密子文件中,汽车电子控制单元可根据加密子文件中的数据片段的数据起始地址,将数据片段按照在车载程序文件中的排列顺序恢复为车载程序文件。

在一个示例中,车载程序文件为s19文件,车载程序文件的数据划分的第一个数据片段的数据起始地址为s19文件中的数据地址。车载程序文件第一个数据片段之后的数据片段的数据起始地址,可以根据各个数据片段长度即数据片段的大小以及前一个数据片段的数据起始地址确定。比如,第二个数据片段的数据起始地址,可以根据第一个数据片段的数据起始地址和第一个数据片段的数据判断长度确定。

在步骤107中,汽车电子控制单元接收远程服务器发送的安全认证校验码。

其中,安全认证校验码为远程服务器利用密钥和AES加密对获取到的车辆唯一识别码加密后计算出的消息认证码。具体的,远程服务器可从车辆获取该车辆的车辆唯一识别码,利用密钥和AES对车辆唯一识别码进行加密,并计算加密的车辆唯一识别码的消息认证码。在一个示例中,汽车电子控制单元可通过统一诊断服务(UDS,Unified Diagnostic Service)与车载终端进行通信。车载终端可通过UDS的0x28服务即通信控制服务进行车载终端与汽车电子控制单元之间的通信控制,禁止非诊断会话,使车载终端与汽车电子控制单元之间的通信进入静默模式。从而在涉及到多个汽车电子控制单元的场景中,保证车载终端与需要下载车载程序文件的汽车电子控制单元保持会话。车载终端可通过UDS的0x22服务即读数据服务读取待下载车辆的车辆唯一识别码,并将车辆唯一识别码传输给远程服务器。

远程服务器可将加密的车辆唯一识别码的消息认证码作为安全认证校验码向车载终端发送,再由车载终端将安全认证校验码发送至汽车电子控制单元。比如,车载终端可通过UDS的0x2E服务即写数据服务将安全认证校验码写入汽车电子单元。汽车电子控制单元接收车载终端发送的安全认证校验码。在一个示例中,可将接收的安全认证校验码输入至BootLoader中,由BootLoader实现安全认证校验码与待下载车辆的车辆唯一识别码匹配检测。具体的,汽车电子控制单元中的BootLoader可通过0x2E服务即写数据服务的响应过程中增加安全认证校验码与待下载车辆的车辆唯一识别码匹配检测过程。

在步骤108中,汽车电子控制单元检测安全认证校验码是否与待下载车辆的车辆唯一识别码匹配。

汽车电子控制单元可获取到本车辆即待下载车辆的车辆唯一识别码,对安全认证校验码做出处理,或对待下载车辆的车辆唯一识别码进行处理,从而检测安全认证校验码是否与待下载车辆的车辆唯一识别码匹配。这里的“匹配”指满足预设的一定条件。

在一个示例中,汽车电子控制单元利用密钥和AES加密对安全校验码解密,恢复出车辆唯一识别码,检测恢复出的车辆唯一识别码是否与待下载车辆的车辆唯一识别码匹配。

比如,汽车电子控制单元中的BootLoader接收安全认证校验码后,可对安全认证校验码进行逆消息认证码计算,以及基于密钥和AES解密计算,将安全认证校验码恢复为车辆唯一识别码,从而与汽车电子控制单元直接从待下载车辆获取的车辆唯一识别码进行对比。比如,若安全认证校验码恢复出的车辆唯一识别码与汽车电子控制单元直接从待下载车辆获取的车辆唯一识别码一致,则确定安全认证校验码与待下载车辆的车辆唯一识别码匹配。又比如,可多次接收安全认证校验码,进行多次安全认证校验码恢复出的车辆唯一识别码与汽车电子控制单元直接从待下载车辆获取的车辆唯一识别码的对比,若在预定的对比次数中,至少一次安全认证校验码恢复出的车辆唯一识别码与汽车电子控制单元直接从待下载车辆获取的车辆唯一识别码一致,则确定安全认证校验码与待下载车辆的车辆唯一识别码匹配。例如,若在3次安全认证校验码恢复出的车辆唯一识别码与汽车电子控制单元直接从待下载车辆获取的车辆唯一识别码的对比中,第3次对比中安全认证校验码恢复出的车辆唯一识别码与汽车电子控制单元直接从待下载车辆获取的车辆唯一识别码一致,则确定安全认证校验码与待下载车辆的车辆唯一识别码匹配。

在一个示例中,所述汽车电子控制单元利用所述密钥和所述AES对所述待下载车辆的车辆唯一识别码加密并计算得到对比检验码,检测所述安全校验码是否和所述对比检验码匹配。对比校验码的计算方法与安全校验码的计算方法相同。

比如,汽车电子控制单元中的BootLoader利用密钥和AES对待下载车辆的车辆唯一识别码加密并计算,得到对比校验码,从而对比安全校验码与对比校验码。比如,若安全校验码与对比校验码一致,则确定安全校验码与对比校验码匹配。又比如,可多次接收安全认证校验码,进行多次安全校验码与对比校验码对比,若在预定的对比次数中,至少一次安全校验码与对比校验码一致,则确定安全校验码与对比校验码匹配。例如,若在3次安全校验码与对比校验码的对比中,第3次对比中安全校验码与对比校验码一致,则确定安全校验码与对比校验码匹配。

在步骤109中,若安全认证校验码与待下载车辆的车辆唯一识别码匹配,则汽车电子控制单元下载至少一个加密子文件至汽车电子控制单元。

安全认证校验码与待下载车辆的车辆唯一识别码匹配,表示待下载车辆需要下载的车载程序文件为远程服务器待下发的加密车载程序文件。汽车电子控制单元确定安全认证校验码与待下载车辆的车辆唯一识别码匹配,则可下载所有加密子文件至电子汽车控制单元。

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

在一个示例中,若加密车载程序文件包括N个加密子文件,N为正整数。按照N个加密子文件中加密的数据片段在车载程序文件中的位置顺序,将第1个加密子文件至第N个加密子文件依次下载至汽车电子控制单元,N为车载程序文件对应的加密子文件的数目。

比如,若车载程序文件由一个加密子文件组成,则可通过车载终端将这一个加密子文件下载至汽车电子控制单元中。

又比如,若车载程序文件由两个以上加密子文件组成,则可按照加密子文件中的加密的目标数据片段中的数据片段在车载程序文件中的排列顺序,依次下载包括加密的目标数据片段的加密子文件至汽车电子控制单元中。

在步骤110中,汽车电子控制单元利用密钥和AES对至少一个加密子文件解密,根据解密后的加密子文件中的目标数据片段,计算解密后的加密子文件中的目标数据片段的消息认证码。

在一个示例中,密钥可存储在汽车电子控制单元中。在进行解密时,可获取密钥,利用AES进行解密。利用密钥和AES,对加密的数据片段解密。加密和解密使用的密钥相同。

根据解密后的目标数据片段的数据,可以计算得到解密后的目标数据片段的消息认证码。

若加密子文件包括数据片段的数据起始地址,进行解密后,可利用解密的目标数据片段中的数据片段和数据片段的数据起始地址,恢复车载程序文件。

在步骤111中,若加密子文件中的消息认证码,与根据解密后的加密子文件中的目标数据片段计算的消息认证码不匹配,则远程服务器重新传输加密子文件至汽车电子控制单元。

若加密子文件中的消息认证码与根据解密后的该加密子文件中的目标数据片段计算的消息认证码不匹配,则表示加密子文件中的目标数据片段在传输过程中出现了不完整或有误的情况。需要重新下载该加密的目标数据片段,也就是说,需要重新下载加密的目标数据片段所在的加密子文件。远程服务器也许重新传输加密子文件至汽车电子控制单元。

在一个示例中,若共有N个加密子文件,则需要将第1个加密子文件至第N个加密子文件依次下载至汽车电子控制单元。在下载每个加密子文件完毕后,均可利用消息认证码对加密子文件中的数据片段进行验证。

设共有N个加密子文件,若第i-1个加密子文件中目标数据片段的消息认证码与根据第i-1个加密子文件中解密的目标数据片段计算的消息认证码不匹配,则拒绝下载第i个加密子文件,并重新下载第i-1个加密子文件,也就是说,远程服务器需要重新传输第i-1个加密子文件。其中,i为整数,且2≤i≤N。直至第i-1个加密子文件中目标数据片段对应的消息认证码与根据第i-1个加密子文件中解密的目标数据片段计算的消息认证码匹配,开始下载第i个加密子文件。也就是说,远程服务器需要传输第i个加密子文件。

比如,共有3个加密子文件,若第1个加密子文件中目标数据片段的消息认证码与根据第1个加密子文件中解密的目标数据片段计算的消息认证码不匹配,则重新下载第1个加密子文件。若第1个加密子文件中目标数据片段对应的消息认证码与根据第1个加密子文件中解密的目标数据片段计算的消息认证码匹配,则开始下载第2个加密子文件。若第2个加密子文件中目标数据片段的消息认证码与根据第2个加密子文件中解密的目标数据片段计算的消息认证码不匹配,则重新下载第2个加密子文件。若第2个加密子文件中目标数据片段的消息认证码与根据第2个加密子文件中解密的目标数据片段计算的消息认证码匹配,则开始下载第3个加密子文件。若第3个加密子文件中目标数据片段的消息认证码与根据第3个加密子文件中解密的目标数据片段计算的消息认证码不匹配,则重新下载第3个加密子文件。若第3个加密子文件中目标数据片段的消息认证码与根据第3个加密子文件中解密的目标数据片段计算的消息认证码匹配,下载过程结束。

在一个实施例中,若加密子文件中目标数据片段的消息认证码与根据解密后的目标数据片段计算的消息认证码匹配,则确定加密子文件中的数据片段完整和准确。

在本发明实施例中,在下载一个加密子文件后,通过消息认证码的校验,确定下载得到的加密子文件中的目标数据片段是否完整和准确,并确定是否需要重新下载该加密子文件。从而尽快发现下载得到的加密子文件是否完整和准确,减少下载所花费的时间。

图4为本发明又一实施例中一种车载程序文件加密方法的流程图。图4与图3的不同之处在于,图3所示的车载程序文件加密方法中的步骤106可替换为图4所示的车载程序文件加密方法中的步骤112。

在步骤112中,远程服务器将一个以上的数据片段各自经密钥和AES加密的数据起始地址和数据片段长度加入对应的加密子文件。

为了进一步提高加密子文件的安全性,可以利用密钥和AES对每个目标数据片段的数据起始地址也进行加密。也可利用密钥和AES对每个目标数据片段中数据片段的数据片段长度也进行加密。

在一个示例中,若加密子文件中的数据起始地址和数据片段长度也进行了加密,可以在对加密的目标数据片段解密的同时,对目标数据片段中的数据片段加密的数据起始地址和数据片段长度也进行解密。在下载得到所有加密子文件后,可利用解密后的数据片段、数据片段解密后的数据起始地址和数据片段解密后的数据片段长度,恢复车载程序文件。

图5为本发明一实施例中一种车载程序文件加密系统的结构示意图。如图5所示,车载程序文件系统20包括远程服务器21。其中,远程服务器21包括识别码获取模块210、划分模块211、计算模块212、加密模块213和子文件生成模块214。

识别码获取模块210,被配置为获取待下载车辆的车辆唯一识别码。

划分模块211,被配置为将车载程序文件中的数据划分为一个以上的数据片段。

计算模块212,被配置为利用车辆唯一识别码和一个以上的数据片段,生成一个以上的目标数据片段,并计算得到一个以上的目标数据片段各自的消息认证码,至少一个目标数据片段中包括车辆唯一识别码。

加密模块213,被配置为利用密钥和高级加密标准AES对一个以上的目标数据片段进行加密。

子文件生成模块214,被配置为基于加密的一个以上的目标数据片段,以及一个以上的目标数据片段的消息认证码,生成一个以上的加密子文件,一个加密子文件包括加密的一个目标数据片段和与加密的一个目标数据片段的消息认证码,或者,一个加密子文件包括加密的一个数据片段和加密的一个目标数据片段的经密钥和AES加密的消息认证码。

图6为本发明另一实施例中一种车载程序文件加密系统的结构示意图。图6与图5的不同之处在于,远程服务器21还可包括第一加入模块215和/或第二加入模块216。

第一加入模块215,被配置为将一个以上的数据片段各自的数据起始地址和数据片段长度分别加入对应的加密子文件。

第二加入模块216,被配置为将一个以上的数据片段各自经密钥和AES加密的数据起始地址和数据片段长度加入对应的加密子文件。

图7为本发明又一实施例中一种车载程序文件加密系统的结构示意图。图7与图5的不同之处在于,图7所示的车载程序文件加密系统20还包括汽车电子控制单元22。其中,汽车电子控制单元22包括接收模块220、匹配模块221、触发模块222、下载模块223和解密模块224。

接收模块220,被配置为接收远程服务器发送的安全认证校验码,安全认证校验码为远程服务器利用密钥和AES加密对获取到的车辆唯一识别码加密后计算出的消息认证码;

匹配模块221,被配置为检测安全认证校验码是否与待下载车辆的车辆唯一识别码匹配。

在一个示例中,匹配模块221可具体被配置为利用所述密钥和所述AES加密对所述安全校验码解密,恢复出车辆唯一识别码;以及检测恢复出的车辆唯一识别码是否与所述待下载车辆的车辆唯一识别码匹配。

在一个示例中,匹配模块221可具体被配置为利用所述密钥和所述AES对所述待下载车辆的车辆唯一识别码加密并计算得到对比检验码;以及检测所述安全校验码是否和所述对比检验码匹配。

触发模块222,被配置为若安全认证校验码与待下载车辆的车辆唯一识别码匹配,则汽车电子控制单元允许下载至少一个加密子文件至汽车电子控制单元。

下载模块223,被配置为下载至少一个加密子文件至汽车电子控制单元。

解密模块224,被配置为利用密钥和AES对至少一个加密子文件解密,根据解密后的加密子文件中的目标数据片段,计算解密后的加密子文件中的目标数据片段的消息认证码;

在一个示例中,下载模块223还被配置为若加密子文件中的消息认证码,与根据解密后的加密子文件中的目标数据片段计算的消息认证码不匹配,则重新下载加密子文件至汽车电子控制单元。

在加密车载程序文件包括N个加密子文件,N为正整数的条件下,下载模块223可具体被配置为:若第i-1个加密子文件中目标数据片段对应的消息认证码,与根据第i-1个加密子文件中解密的目标数据片段计算的消息认证码不匹配,则拒绝下载第i个加密子文件,并重新下载第i-1个加密子文件,i为整数,且2≤i≤N;直至第i-1个加密子文件中目标数据片段的消息认证码,与根据第i-1个加密子文件中解密的目标数据片段计算的消息认证码匹配,开始下载第i个加密子文件。

图8为本发明一实施例中一种远程服务器的硬件结构示意图。如图8所示,远程服务器300包括存储器301、处理器302及存储在存储器301上并可在处理器302上运行的计算机程序。

在一个示例中,上述处理器302可以包括中央处理器(CPU),或者特定集成电路(ASIC),或者可以被配置成实施本发明实施例的一个或多个集成电路。

存储器301可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器301可包括HDD、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器301可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器301可在远程服务器300的内部或外部。在特定实施例中,存储器301是非易失性固态存储器。在特定实施例中,存储器301包括只读存储器(ROM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存或者两个或更多个以上这些的组合。

处理器302通过读取存储器301中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行上述各个实施例中的车载程序文件加密方法。

在一个示例中,远程服务器300还可包括通信接口303和总线304。其中,如图8所示,存储器301、处理器302、通信接口303通过总线304连接并完成相互间的通信。

通信接口303,主要用于实现本发明实施例中各模块、装置、单元和/或设备之间的通信。也可通信接口303接入输入设备和/或输出设备。

总线304包括硬件、软件或两者,将远程服务器300的部件彼此耦接在一起。举例来说而非限制,总线304可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线304可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。

图9为本发明一实施例中一种汽车电子控制单元的硬件结构示意图。如图9所示,汽车电子控制单元400包括存储器401、处理器402及存储在存储器401上并可在处理器402上运行的计算机程序。

在一个示例中,上述处理器402可以包括中央处理器(CPU),或者特定集成电路(ASIC),或者可以被配置成实施本发明实施例的一个或多个集成电路。

存储器401可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器401可包括HDD、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器401可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器401可在汽车电子控制单元400的内部或外部。在特定实施例中,存储器401是非易失性固态存储器。在特定实施例中,存储器401包括只读存储器(ROM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存或者两个或更多个以上这些的组合。

处理器402通过读取存储器401中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行上述各个实施例中的车载程序文件加密方法。

在一个示例中,汽车电子控制单元400还可包括通信接口403和总线404。其中,如图9所示,存储器401、处理器402、通信接口403通过总线404连接并完成相互间的通信。

通信接口403,主要用于实现本发明实施例中各模块、装置、单元和/或设备之间的通信。也可通信接口403接入输入设备和/或输出设备。

总线404包括硬件、软件或两者,将远程服务器400的部件彼此耦接在一起。举例来说而非限制,总线404可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线404可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。

本发明一实施例还提供一种存储介质,该存储介质上存储有程序,该程序被处理器执行时可实现上述各个实施例中的车载程序文件加密方法。

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

以上所述的结构框图中所示的功能模块、功能单元可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。

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