首页> 中国专利> 一种发动机防盗系统的发动机防盗认证方法及装置

一种发动机防盗系统的发动机防盗认证方法及装置

摘要

本发明提供一种发动机防盗认证方法,所述发动机防盗认证包括钥匙认证和发动机控制器认证,所述发动机控制器认证包括以下步骤;发动机管理模块产生一组随机数,通过车身控制器通信网关转发给智能进入无匙启动模块;智能进入无匙启动模块根据自身预存的固定码、密钥和接收到的所述随机数,通过XTEA算法进行加密计算,将计算结果中的部分位数用钥匙认证结果替换后生成第二数据,并通过车身控制器通信网关回转给发动机管理模块;发动机管理模块将采用自身预存的钥匙认证结果和通过XTEA算法生成的第一数据与返回的所述第二数据进行比较,若匹配允许发动机启动,否则禁止启动。本发明还提供一种防盗认证装置。本发明采用XTEA算法,占用空间较小,计算时间快。

著录项

  • 公开/公告号CN104118392A

    专利类型发明专利

  • 公开/公告日2014-10-29

    原文格式PDF

  • 申请/专利权人 广州汽车集团股份有限公司;

    申请/专利号CN201310157281.7

  • 发明设计人 赖瑞福;杨土超;杨佩君;任强;

    申请日2013-04-28

  • 分类号B60R25/04(20130101);

  • 代理机构深圳众鼎专利商标代理事务所(普通合伙);

  • 代理人朱业刚

  • 地址 510030 广东省广州市越秀区东风中路448-458号成悦大厦23楼

  • 入库时间 2023-12-17 01:00:24

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-06-08

    授权

    授权

  • 2014-12-17

    实质审查的生效 IPC(主分类):B60R25/04 申请日:20130428

    实质审查的生效

  • 2014-10-29

    公开

    公开

说明书

技术领域

本发明涉及汽车领域,尤其涉及一种采用XTEA(eXtended Tiny Encryption  Algorithm,扩展的微型加密算法)发动机防盗认证方法及装置。

背景技术

发动机防盗系统是由FOB(智能钥匙模块)、PEPS(Passive Entry and Passive  Start,智能进入无匙启动模块)和EMS(Engine Management System,发动机管 理模块)组成。所述发动机防盗系统的密码认证包括钥匙认证和发动机控制器 认证,钥匙认证完成智能钥匙模块和智能进入无匙启动模块之间的认证,发动 机控制器认证完成智能进入无匙启动模块和发动机管理模块之间的认证。

所述钥匙认证有专门的芯片来处理,所述智能钥匙内设置有转发器,转发 器由半导体供应商提供,加密算法固化在转发器中,钥匙认证已定义好通信机 制;而智能进入无匙启动模块和发动机管理模块之间的认证一般由整车厂自己 开发,不同的整车厂有不同的策略,如果整车厂开发的发动机防盗通信机制考 虑不够全面,不能应对好各种通信情况,可能会导致发动机防盗认证出现无法 预估的问题,影响发动机启动和整车防盗。而本发明的发明人研究发现,虽然 某些整车厂已经开发出发动机防盗认证方法,但是其采用的加密算法代码比较 长,占用存储空间较大,且计算时间比较长。

发明内容

为了解决现有技术中发动机防盗认证方法采用的加密算法代码比较长,占 用存储空间较大,且计算时间比较长的技术问题,本发明提供一种新型的发动 机防盗系统的发动机防盗认证方法。

本发明的目的是通过以下技术方案实现的:

一种发动机防盗系统的发动机防盗认证方法,该发动机防盗系统包括智能 钥匙模块、智能进入无匙启动模块和发动机管理模块,所述发动机防盗认证包 括钥匙认证和发动机控制器认证,所述钥匙认证完成所述智能钥匙模块和所述 智能进入无匙启动模块之间的认证,所述发动机控制器认证完成所述智能进入 无匙启动模块和所述发动机管理模块之间的认证,其特征在于,所述智能进入 无匙启动模块和所述发动机管理模块之间通过车身控制器网关通信,在完成所 述钥匙认证后所述发动机控制器认证包括以下步骤:

所述发动机管理模块产生一组随机数,并将所述随机数通过车身控制器通 信网关转发给智能进入无匙启动模块,根据自身产生的随机数、自身预存的固 定码和密钥,通过XTEA算法进行加密计算得到第一输出数据,所述第一输出 数据包括加密数据;

所述智能进入无匙启动模块根据接收到的所述随机数、自身预存的固定码 和密钥,通过XTEA算法进行加密计算得到第二输出数据,所述第二输出数据 包括替换数据和加密数据,将所述第二输出数据中的替换数据用所述智能进入 无匙启动模块自身预存的钥匙认证结果替换,将替换后的第二输出数据通过所 述车身控制器通信网关回转给所述发动机管理模块;

所述发动机管理模块将自身预存的钥匙认证结果和所述第一输出数据中的 加密数据与所述替换后的第二输出数据进行比较,若匹配,将发动机释放信息 发送到总线上,并允许所述发动机启动;否则,将发动机锁止信息发送到总线 上,禁止所述发动机启动。

本发明提供的发动机防盗系统的发动机防盗认证方法,采用XTEA算法进 行第一输出数据和第二输出数据的计算,所述XTEA算法的结构非常简单,只 需要执行加法、异或和寄存的硬件即可,且加密算法中实现的代码短小,具有 可移植性,非常适合嵌入式系统应用,占用存储空间较小,能节省ECU(Electronic  Control Unit,电子控制单元)资源,计算速度非常快;同时,本发明发动机控 制器认证的释放通信是在智能进入无匙启动模块和发动机管理模块之间进行, 在发动机防盗系统的智能进入无匙启动模块和发动机管理模块之间建立有通信 网关,所述通信网关具体可选用车身控制器(BCM)来组成完整的发动机防盗 认证框架,有效保证了发动机防盗认证的通信。

本发明还提供一种发动机防盗系统的发动机防盗认证装置,该发动机防盗 系统包括智能钥匙模块、智能进入无匙启动模块和发动机管理模块,所述发动 机防盗认证装置包括钥匙认证系统和发动机控制器认证系统,所述钥匙认证系 统完成所述智能钥匙模块和所述智能进入无匙启动模块之间的认证,所述发动 机控制器认证系统完成所述智能进入无匙启动模块和所述发动机管理模块之间 的认证,其特征在于,所述智能进入无匙启动模块和所述发动机管理模块之间 通过车身控制器网关通信,在完成所述钥匙认证系统认证后进行所述发动机控 制器认证系统认证,所述发动机控制器认证系统包括:

第一输出数据生成模块,用于所述发动机管理模块产生一组随机数,并将 所述随机数通过车身控制器通信网关转发给智能进入无匙启动模块,根据自身 产生的随机数、自身预存的固定码和密钥,通过XTEA算法进行加密计算得到 第一输出数据,所述第一输出数据包括加密数据;

第二输出数据生成模块,用于所述智能进入无匙启动模块根据接收到的所 述随机数、自身预存的固定码和密钥,通过XTEA算法进行加密计算得到第二 输出数据,所述第二输出数据包括替换数据和加密数据,将所述第二输出数据 中的替换数据用所述智能进入无匙启动模块自身预存的钥匙认证结果替换,将 替换后的第二输出数据通过所述车身控制器通信网关回转给所述发动机管理模 块;

数据比较控制模块,包括比较单元和控制单元,所述比较单元用于所述发 动机管理模块将自身预存的钥匙认证结果和所述第一输出数据中的加密数据与 所述替换后的第二输出数据进行比较;所述控制单元用于根据所述比较单元的 比较结果进行控制,所述比较结果若匹配,将发动机释放信息发送到总线上, 并允许所述发动机启动;否则,将发动机锁止信息发送到总线上,禁止所述发 动机启动。

本发明提供的发动机防盗系统的发动机防盗认证装置,采用XTEA算法进 行第一输出数据和第二输出数据的计算,所述XTEA算法的结构非常简单,只 需要执行加法、异或和寄存的硬件即可,且加密算法中实现的代码短小,具有 可移植性,非常适合嵌入式系统应用,占用存储空间较小,能节省ECU(Electronic  Control Unit,电子控制单元)资源,计算速度非常快;同时,本发明发动机控 制器认证的释放通信是在智能进入无匙启动模块和发动机管理模块之间进行, 在发动机防盗系统的智能进入无匙启动模块和发动机管理模块之间建立有通信 网关,所述通信网关具体可选用车身控制器(BCM)来组成完整的发动机防盗 认证框架,有效保证了发动机防盗认证的通信。

附图说明

图1是本发明实施例提供的发动机防盗认证框架结构示意图;

图2是本发明实施例提供的发动机管理模块和智能进入无匙启动模块进行 XTEA算法的详细流程示意图;

图3是本发明实施例提供的钥匙认证为无效时的流程示意图;

图4是本发明实施例提供的发动机防盗认证成功流程示意图;

图5是本发明实施例提供的钥匙认证为忙时的流程示意图;

图6是本发明实施例提供的返回值中加密数据不一样时的流程示意图;

图7是本发明实施例提供的发动机管理系统没有收到返回值的流程示意图;

图8是本发明实施例提供的发动机管理模块和智能进入无匙启动模块中的 一方进行密钥匹配的流程示意图;

图9是本发明实施例提供的发动机管理模块和智能进入无匙启动模块中的 双方进行密钥匹配的流程示意图;

图10是本发明实施例提供的更换智能进入无匙启动模块后进行密钥匹配的 流程示意图;

图11是本发明实施例提供的更换发动机管理模块后进行密钥匹配的流程示 意图;

图12是本发明实施例提供的发动机防盗认证装置中发动机控制器认证系统 的结构示意图。

其中,10、第一输出数据生成模块;20、第二输出数据生成模块;30、数 据比较控制模块。

具体实施方式

为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以 下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述 的具体实施例仅仅用以解释本发明,并不用于限定本发明。

一种发动机防盗系统的发动机防盗认证方法,该发动机防盗系统包括智能 钥匙模块、智能进入无匙启动模块和发动机管理模块,所述发动机防盗认证包 括钥匙认证和发动机控制器认证,所述钥匙认证完成所述智能钥匙模块和所述 智能进入无匙启动模块之间的认证,所述发动机控制器认证完成所述智能进入 无匙启动模块和所述发动机管理模块之间的认证,其特征在于,所述智能进入 无匙启动模块和所述发动机管理模块之间通过车身控制器网关通信,在完成所 述钥匙认证后所述发动机控制器认证包括以下步骤:

所述发动机管理模块产生一组随机数,并将所述随机数通过车身控制器通 信网关转发给智能进入无匙启动模块,根据自身产生的随机数、自身预存的固 定码和密钥,通过XTEA算法进行加密计算得到第一输出数据,所述第一输出 数据包括加密数据;

所述智能进入无匙启动模块根据接收到的所述随机数、自身预存的固定码 和密钥,通过XTEA算法进行加密计算得到第二输出数据,所述第二输出数据 包括替换数据和加密数据,将所述第二输出数据中的替换数据用所述智能进入 无匙启动模块自身预存的钥匙认证结果替换,将替换后的第二输出数据通过所 述车身控制器通信网关回转给所述发动机管理模块;

所述发动机管理模块将自身预存的钥匙认证结果和所述第一输出数据中的 加密数据与所述替换后的第二输出数据进行比较,若匹配,将发动机释放信息 发送到总线上,并允许所述发动机启动;否则,将发动机锁止信息发送到总线 上,禁止所述发动机启动。

本发明提供的发动机防盗系统的发动机防盗认证方法,采用XTEA算法进 行第一输出数据和第二输出数据的计算,所述XTEA算法的结构非常简单,只 需要执行加法、异或和寄存的硬件即可,且加密算法中实现的代码短小,具有 可移植性,非常适合嵌入式系统应用,占用存储空间较小,能节省ECU(Electronic  Control Unit,电子控制单元)资源,计算速度非常快;同时,本发明发动机控 制器认证的释放通信是在智能进入无匙启动模块和发动机管理模块之间进行, 在发动机防盗系统的智能进入无匙启动模块和发动机管理模块之间建立有通信 网关,所述通信网关具体可选用车身控制器(BCM)来组成完整的发动机防盗 认证框架,有效保证了发动机防盗认证的通信。

作为具体的实施例,请参考图1所示,本发明提供的发动机防盗认证框架 中,所述发动机管理模块(EMS)是通信主体,智能进入无匙启动模块(PEPS) 是通信从体,车身控制器(BCM)是通信网关,来完成EMS和PEPS的通信认 证流程。

作为具体的实施例,请参考图2所示,为发动机管理系统和智能进入无匙 启动系统进行XTEA算法的详细流程示意图。在发动机防盗系统的发动机防盗 认证开始时,所述发动机管理模块会产生一组128位的随机数,该128位随机 数通过车身控制器通信网关转发给智能进入无匙启动模块,所述智能进入无匙 启动模块将根据接收的所述随机数通过XTEA算法进行加密计算;所述发动机 管理模块内部也会通过XTEA算法进行加密计算。

所述发动机管理模块通过XTEA算法进行加密计算,具体包括以下步骤:

所述发动机管理模块将发送给智能进入无匙启动模块同样的128位随机数 与自身预存的32位固定码通过加密数组合函数进行计算,组成128位加密数据, 然后将所述128位加密数据与自身预存的128位密钥通过XTEA加密函数模块 计算得出128位第一输出数据,所述128位第一输出数据包括8位替换数据和 120位加密数据;

所述智能进入无匙启动模块通过XTEA算法进行加密计算,具体包括以下 步骤:

所述智能进入无匙启动模块将接收的128位所述随机数与自身预存的32位 固定码通过加密数组合函数进行计算,组成128位加密数据,将所述128位加 密数据与自身预存的128位密钥通过XTEA算法计算组成128位第二输出数据, 所述第二输出数据包括8位替换数据和120位加密数据,将所述8位替换数据 用所述智能进入无匙启动模块内自身预存的钥匙认证结果进行替换。

作为具体实施例,所述发动机管理模块中的随机数代码(EMS→PEPS)信 息如下:

信息名称 地址 信息长度 类型 说明 随机数代码(IMMO_Code) xx 16字节 事件 16字节的随机数作为随机数代码

其中,所有16字节(bytes)的0x00或0xff不允许作为有效随机数代码 (challenge code),即正常的发动机防盗认证启动时,发动机管理模块(EMS) 发过来的challenge code不允许是全0或全f;除非EMS没学习过,还处于初始 (virgin)状态,这样也是为了提高安全性。如果EMS处于virgin状态,这意味 着EMS中的ESK(Engine Cryptology Secret Key,发动机防盗密钥)是初始化 数值,还没在整车厂下线过程进行刷写,16bytes的challenge code才应该是0xff。

所述智能进入无匙启动模块中的应答代码即所述替换后的第二输出数据 (EMS→PEPS)信息如下:

其具体的加密应答代码信息中的信号映射如下:

进一步,所述状态位(Status)的定义如下:

认证状态 描述 应答值 0x64 PEPS钥匙认证状态:无效 15字节(0xff) 0x44 PEPS钥匙认证状态:忙 15字节(0xff) 0x46 PEPS应答编码计算:忙 15字节(0xff) 0x11 PEPS应答钥匙传输:有效钥匙 计算出的15位应答值 其他数值 没有定义 没有定义

其中:认证状态定义可以由整车厂自由定义,不局限于上表。

如果PEPS接收到EMS发过来的challenge码是全0xff的,这意味着EMS 状态是virgin。此时,不管PEPS是否处于virgin状态,PEPS都会返回全0xff 作为应答信息给EMS。同理,如果PEPS处于virgin状态,这意味着PEPS的 ESK是初始数值,还没通过EOL(End Of Line,汽车下线)进行刷写或还没钥 匙学习;如果接收到一个不合法的challenge code,PEPS将会返回认证失败 (authentication failed)状态给EMS。

作为具体的实施例,所述发动机管理模块将自身预存的钥匙认证结果和所 述第一输出数据中的加密数据与所述替换后的第二输出数据进行比较,若匹配, 将发动机释放信息发送到总线上,并允许所述发动机启动;否则,将发动机锁 止信息发送到总线上,禁止所述发动机启动的步骤,具体包括:

所述发动机管理模块首先将其自身预存的钥匙认证结果和所述替换后的第 二输出数据中的钥匙认证结果进行比较,即判断所述钥匙认证是否合法,所述 钥匙认证结果是智能钥匙模块和智能进入无匙启动模块认证的结果,在所述智 能进入无匙启动模块的EEPROM(电可擦写可编程只读存储器)中存储有钥匙 认证结果的状态,所述发动机管理模块的EEPROM中存储有钥匙认证结果的状 态定义数据库,发动机管理模块收到所述替换后的第二输出数据后,会把所述 替换后的第二输出数据中的钥匙认证结果和数据库里面的钥匙认证结果对比; 如果所述钥匙认证结果中的状态为无效,则所述发动机管理模块发出发动机锁 止信息到总线上,禁止所述发动机启动,其具体的流程请参考图3所示;

如果所述钥匙认证结果中的状态为有效,即所述钥匙认证结果合法,则继 续比较所述第一输出数据中的加密数据和所述替换后的第二输出数据中的加密 数据是否一样;如果加密数据结果也一样,则发动机防盗认证成功,即只有钥 匙认证和加密数据都匹配,其发动机防盗认证才通过,进而所述发动机管理模 块可以将发动机释放信息发送到总线上,并允许所述发动机启动,其具体的流 程请参考图4所示;否则,将发动机锁止信息发送到总线上,禁止所述发动机 启动。

根据本发明前述应答代码返回的钥匙认证结果中的状态位定义可知,其返 回的钥匙认证结果中的状态位为有效、无效和忙三种情况。本发明的发明人根 据认证过程中认证状态的各种情况,还制作了针对各种认证状态的通信处理机 制,以防止发动机防盗出现各种无法预估的问题时,不会影响发动机的启动和 整车防盗。以下将对各种具体通信处理机制进行详细说明。

作为通信处理机制一种具体的实施例,所述发动机管理模块将自身预存的 钥匙认证结果和所述替换后的第二输出数据中的钥匙认证结果进行比较时,如 果所述钥匙认证结果中的状态为忙,所述发动机管理模块在等待第一设定时间 后,再次发送和上次一样的随机数给所述智能进入无匙启动系统进行防盗认证, 如果在所述发动机管理模块连续发出第一设定次数后,所述钥匙认证结果中的 状态仍然为忙,所述发动机管理模块将停止发送随机数,并将发动机锁止信息 发送到总线上,禁止所述发动机启动,其具体的流程请参考图5所示;如果所 述发动机管理模块在连续发出第一设定次数内,只要有一次所述钥匙认证结果 中的状态为有效,则结束发送随机数,然后按照正常流程进行后续加密数据的 比较。其中,所述钥匙认证结果中的状态为忙,是指所述发动机管理模块接收 的所述替换后的第二输出数据中的状态位为忙,具体包括钥匙认证状态进行中 和钥匙认证应答编码计算中两种情况,此时,在所述智能进入无匙启动模块返 回给所述发动机管理模块的所述替换后的第二输出数据状态位中显示的都为 忙。

作为一种实施方式,所述第一设定时间的时序参数设为 tECMAuthDelayRetry,其表达的含义是指在该时间延时后,发动机管理模块开 始发送下一个随机数请求;如果发动机管理模块从智能进入无匙启动模块接收 到忙状态或tKeyStatusRx(EMS在发送随机数后等待PEPS回复的超时时间)超 时或智能进入无匙启动模块应答值和发动机管理模块不一致,在该第一设定时 间后智能进入无匙启动模块和发动机管理模块之间会触发新的认证尝试。其中, 所述第一设定时间的设置取决于EMS产生随机数的计算速度和BCM转发报文 的时间;优选地,所述第一设定时间为50-200毫秒,第一设定次数为5次,即 在等待50-200毫秒后,再次发送和上次一样的随机数给智能进入无匙启动模块 进行认证,且可循环发送的次数为5次。

作为通信处理机制另一种具体的实施例,所述发动机管理模块将所述第一 输出数据中的加密数据和所述替换后的第二输出数据中的加密数据进行比较, 当所述发动机管理模块/或和所述智能进入无匙启动模块内因密钥故障,使所述 所述第一输出数据中的加密数据与所述替换后的第二输出数据中的加密数据不 一样时,则所述发动机管理模块将发出新的随机数给所述智能进入无匙启动模 块进行防盗认证,如果防盗认证通过,所述发动机管理模块将发动机释放信息 发送到总线上,并允许所述发动机启动;否则,所述发动机管理模块将停止发 送认证流,并将发动机锁止信息发送到总线上,禁止所述发动机启动,其具体 的流程请参考图6所示。其中,所述第一输出数据中的加密数据与所述替换后 的第二输出中的加密数据不一样的原因可能有:1、EMS发出随机数给PEPS, 所述随机数被其他外部节点(如盗车贼的工具)获取,经过计算(因不知道ESK 计算肯定错误)返回给EMS,这样使加密计算值不一致,通信失败;2、可能由 于PEPS软件出故障(如写入内存的ESK丢失等),计算出来的回复值错误;3、 EMS的ESK丢失,导致EMS算出来的值和PEPS的值不一致等。

作为通信处理机制再一种具体的实施例,当所述发动机管理模块和所述智 能进入无匙启动模块之间因通信故障,使所述发动机管理模块在第二设定时间 内没有收到所述替换后的第二输出数据返回时,所述发动机管理模块在等待第 一设定时间后,再次发送和上次一样的随机数给所述智能进入无匙启动模块进 行防盗认证,如果在所述发动机管理模块连续发出第一设定次数后仍然没有收 到所述替换后的第二输出数据返回时,所述发动机管理模块将停止发送随机数, 并将发动机锁止信息发送到总线上,禁止所述发动机启动,其具体的流程请参 考图7所示;如果所述发动机管理模块在连续发出第一设定次数内,只要有一 次收到所述替换后的第二输出数据,则结束发送随机数,然后按照正常流程进 行后续钥匙认证的比较。其中,所述发动机管理模块和所述智能进入无匙启动 模块之间产生通信故障的原因可能有:PEPS有故障(PEPS不会回复)、总线故 障(PEPS不能成功收到EMS的随机数)、BCM网关故障(不转发EMS随机数 和PEPS回复)等。

作为一种实施方式,所述第二设定时间的时序参数设为前述的 tKeyStatusRx,其表达的含义是指EMS在发送随机数后等待PEPS回复的超时时 间,如果超时EMS没有收到PEPS的回复信息,EMS会在第一设定时间后再触 发再发送随机数。其中,所述第二设定时间取决于PEPS和钥匙认证时间、PEPS 加密数据时间、以及BCM转发报文的时间;优选地,所述第二设定时间为50-150 毫秒。

本发明提供的发动机防盗认证方法中,所述发动机管理模块中的参考数据 和智能进入无匙启动模块返回的应答数据,在分别通过XTEA算法进行加密计 算时,会使用到相应的随机数(challenge)、固定码(fixed code)和发动机防盗 密钥(Engine Cryptology Secret Key,简称ESK)。其中,所述challenge为16bytes 数据,由EMS随机产生;所述fixed code为4bytes数据,由整车厂定义,存储 在EMS和PEPS的只读内存(Read-Only Memory,简称ROM)中,PEPS和EMS 共用同一个固定码;所述ESK为16bytes数据,在EOL过程中随机产生,存储 在EMS和PEPS非可丢失内存中,可通过指定的诊断服务来读/写,且ESK在 EMS和PEPS中都仅能写入一次。

因此,所述的发动机防盗密钥在进行发动机防盗认证之前,可对所述发动 机管理模块和防盗控制中自身预存的密钥先进行匹配,然后再进行发动机防盗 认证流程。本发明的发明人根据前述密钥匹配要求,还制作了各种防盗ECU匹 配流程,形成完善的匹配终端,有利于整个防盗认证流程的平台化,适合大批 量自动化生产和售后诊断维修。以下将对发动机防盗密钥各种具体匹配流程进 行详细说明。

作为一种具体的实施例,所述发动机管理模块和智能进入无匙启动模块中 预存的密钥,在出厂时如果只有一方没有密钥,即只有发动机管理模块有密钥 或者只有智能进入无匙启动模块有密钥,此时只需要一方进行学习匹配。针对 此种情况,其匹配流程请参考图8所示,该匹配具体包括以下步骤:

S11、下线设备初始化;

S12、整车上到ON档电;

S13、判断是否有安全权限登录源ECU,如果为是,则执行步骤S14;如果 为否,则退出匹配;

S14、通过OBD接口读取源ECU的密钥;

S15、判断是否有安全权限登录目标ECU;如果为是,则执行步骤S16,否 则退出匹配;

S16、通过OBD接口将读取源ECU的密钥写入目标ECU中;

S17、通过OBD接口分别读取发动机管理模块和智能进入无匙启动模块中 的密钥;

S18、判断是否是相同的密钥,如果为是,则匹配成功;如果为否,且第一 再试次数小于第一预设次数,则将第一再试次数加1后转至步骤S13,若第一再 试次数大于等于第一预设次数,则直接退出匹配。

其中,所述OBD为On-Board Diagnostics的缩写,中文含义为车载自动诊 断系统。而所述第一预设次数可以根据整车厂自身的需要来设置,而本实施例 中设置的第一预设次数为3,即当所述步骤S18中判断发动机管理模块和智能进 入无匙启动模块中的密钥不同时,可以有2次机会进行重试(Retry)匹配。

作为另一种具体的实施例,所述发动机管理模块和智能进入无匙启动模块 中预存的密钥,在出厂时如果双方都没有密钥,即所述发动机管理模块和智能 进入无匙启动模块中都没有密钥,此时需要双方都进行学习匹配。针对此种情 况,其匹配流程请参考图9所示,该匹配具体包括以下步骤:

S21、下线设备初始化;

S22、产生随机发动机密钥;

S23、整车上到ON档电;

S24、判断是否有安全权限登录发动机管理模块,如果为是,则执行步骤S25; 如果为否,则退出匹配;

S25、通过OBD接口将所述密钥写入发动机管理模块中;

S26、判断是否有安全权限登录智能进入无匙启动模块;如果为是,则执行 步骤S27,否则退出匹配;

S27、通过OBD接口将所述密钥写入智能进入无匙启动模块中;

S28、通过OBD接口分别读取发动机管理模块和智能进入无匙启动模块中 的密钥;

S29、判断是否是相同的密钥,如果为是,则匹配成功;如果为否,且第二 再试次数小于第二预设次数,则将第二再试次数加1后转至步骤S24,若第二再 试次数大于等于第二预设次数,则直接退出匹配。

其中,所述第二预设次数可以根据整车厂自身的需要来设置,而本实施例 中设置的第二预设次数为3,即当所述步骤S29中判断发动机管理模块和智能进 入无匙启动模块中的密钥不同时,可以有2次机会进行重试匹配。本领域的技 术人员应当明白,在本实施例中,所述密钥的写入顺序并不局限于此,技术人 员在前述匹配流程的基础上,还可以先往智能进入无匙启动模块中写入密钥, 再往发动机管理模块中写入密钥,这种变化也都属于本实施例的等同替换,均 应属于本发明的保护范围之内。

作为再一种具体的实施例,所述发动机管理模块和智能进入无匙启动模块 中预存的密钥,在出厂时如果需要更换智能进入无匙启动模块或者将已经学习 的智能进入无匙启动模块用到另外一台车上,此时需要对智能进入无匙启动模 块进行学习匹配。针对此种情况,其匹配流程请参考图10所示,该匹配具体包 括以下步骤:

S31、售后诊断仪初始化;

S32、整车上到ON档电;

S33、判断是否有安全权限登录发动机管理模块,如果为是,则执行步骤S34; 如果为否,则退出匹配;

S34、通过OBD接口读取发动机管理模块中的密钥;

S35、判断是否有安全权限登录智能进入无匙启动模块;如果为是,则执行 步骤S36,否则退出匹配;

S36、通过OBD接口将从发动机管理模块读取的密钥写入智能进入无匙启 动模块中;

S37、通过OBD接口分别读取发动机管理模块和智能进入无匙启动模块中 的密钥;

S38、判断是否是相同的密钥,如果为是,则匹配成功;如果为否,且第三 再试次数小于第三预设次数,则将第三再试次数加1后转至步骤S33,若第三再 试次数大于等于第三预设次数,则直接退出匹配。

其中,所述第三预设次数可以根据整车厂自身的需要来设置,而本实施例 中设置的第三预设次数为3,即当所述步骤S38中判断发动机管理模块和智能进 入无匙启动模块中的密钥不同时,可以有2次机会进行重试匹配。

作为又一种具体的实施例,所述发动机管理模块和智能进入无匙启动模块 中预存的密钥,在出厂时如果需要更换发动机管理模块或者将已经学习的发动 机管理模块用到另外一台车上,此时需要对发动机管理模块进行学习匹配。针 对此种情况,其匹配流程请参考图11所示,该匹配具体包括以下步骤:

S41、售后诊断仪初始化;

S42、整车上到ON档电;

S43、判断是否有安全权限登录智能进入无匙启动模块,如果为是,则执行 步骤S44;如果为否,则退出匹配;

S44、通过OBD接口读取智能进入无匙启动模块中的密钥;

S45、判断是否有安全权限登录发动机管理模块;如果为是,则执行步骤S46, 否则退出匹配;

S46、通过OBD接口将从智能进入无匙启动模块读取的密钥写入发动机管 理模块中;

S47、通过OBD接口分别读取发动机管理模块和智能进入无匙启动模块中 的密钥;

S48、判断是否是相同的密钥,如果为是,则匹配成功;如果为否,且第四 再试次数小于第四预设次数,则将第四再试次数加1后转至步骤S43,若第四再 试次数大于等于第四预设次数,则直接退出匹配。

其中,所述第四预设次数可以根据整车厂自身的需要来设置,而本实施例 中设置的第四预设次数为3,即当所述步骤S48中判断发动机管理模块和智能进 入无匙启动模块中的密钥不同时,可以有2次机会进行重试匹配。

请参考图12所示,本发明还提供一种发动机防盗系统的发动机防盗认证装 置,该发动机防盗系统包括智能钥匙模块、智能进入无匙启动模块和发动机管 理模块,所述发动机防盗认证装置包括钥匙认证系统和发动机控制器认证系统, 所述钥匙认证系统完成所述智能钥匙模块和所述智能进入无匙启动模块之间的 认证,所述发动机控制器认证系统完成所述智能进入无匙启动模块和所述发动 机管理模块之间的认证,其特征在于,所述智能进入无匙启动模块和所述发动 机管理模块之间通过车身控制器网关通信,在完成所述钥匙认证系统认证后进 行所述发动机控制器认证系统认证,所述发动机控制器认证系统包括:

第一输出数据生成模块10,用于所述发动机管理模块产生一组随机数,并 将所述随机数通过车身控制器通信网关转发给智能进入无匙启动模块,根据自 身产生的随机数、自身预存的固定码和密钥,通过XTEA算法进行加密计算得 到第一输出数据,所述第一输出数据包括加密数据;

第二输出数据生成模块20,用于所述智能进入无匙启动模块根据接收到的 所述随机数、自身预存的固定码和密钥,通过XTEA算法进行加密计算得到第 二输出数据,所述第二输出数据包括替换数据和加密数据,将所述第二输出数 据中的替换数据用所述智能进入无匙启动模块自身预存的钥匙认证结果替换, 将替换后的第二输出数据通过所述车身控制器通信网关回转给所述发动机管理 模块;

数据比较控制模块30,包括比较单元和控制单元,所述比较单元用于所述 发动机管理模块将自身预存的钥匙认证结果和所述第一输出数据中的加密数据 与所述替换后的第二输出数据进行比较;所述控制单元用于根据所述比较单元 的比较结果进行控制,所述比较结果若匹配,将发动机释放信息发送到总线上, 并允许所述发动机启动;否则,将发动机锁止信息发送到总线上,禁止所述发 动机启动。

本发明提供的发动机防盗系统的发动机防盗认证装置,采用XTEA算法进 行第一输出数据和第二输出数据的计算,所述XTEA算法的结构非常简单,只 需要执行加法、异或和寄存的硬件即可,且加密算法中实现的代码短小,具有 可移植性,非常适合嵌入式系统应用,占用存储空间较小,能节省ECU(Electronic  Control Unit,电子控制单元)资源,计算速度非常快;同时,本发明发动机控 制器认证的释放通信是在智能进入无匙启动模块和发动机管理模块之间进行, 在发动机防盗系统的智能进入无匙启动模块和发动机管理模块之间建立有通信 网关,所述通信网关具体可选用车身控制器(BCM)来组成完整的发动机防盗 认证框架,有效保证了发动机防盗认证的通信。

作为具体的实施例,请参考图1所示,本发明提供的发动机防盗认证框架 中,所述发动机管理模块(EMS)是通信主体,智能进入无匙启动模块(PEPS) 是通信从体,车身控制器(BCM)是通信网关,来完成EMS和PEPS的通信认 证流程。

作为具体的实施例,请参考图2所示,为发动机管理模块和智能进入无匙 启动模块进行XTEA算法的详细流程示意图。在发动机防盗认证开始时,所述 发动机管理模块会产生一组128位的随机数,该128位随机数通过车身控制器 通信网关转发给智能进入无匙启动模块,所述智能进入无匙启动模块将根据接 收的所述随机数通过XTEA算法进行加密计算;所述发动机管理模块内部也会 通过XTEA算法进行加密计算。具体地,所述第一输出数据生成模块10中包括 第一加密计算单元,所述第一加密计算单元用于发动机管理模块通过XTEA算 法进行加密计算,具体包括:

所述发动机管理模块将发送给智能进入无匙启动模块同样的128位随机数 与自身预存的32位固定码通过加密数组合函数进行计算,组成128位加密数据, 然后将所述128位加密数据与自身预存的128位密钥通过XTEA加密函数模块 计算得出128位第一输出数据,所述128位第一输出数据包括8位替换数据和 120位加密数据,发动机管理模块取出128位第一输出数据中的120位加密数据 作为120位参考数据;

所述第二输出数据生成模块20中包括第二加密计算单元,所述第二加密计 算单元用于所述智能进入无匙启动模块通过XTEA算法进行加密计算,具体包 括:

所述智能进入无匙启动模块将接收的128位所述随机数与自身预存的32位 固定码通过加密数组合函数进行计算,组成128位加密数据,将所述128位加 密数据与自身预存的128位密钥通过XTEA算法计算组成128位第二输出数据, 所述第二输出数据包括8位替换数据和120位加密数据,将1所述8位替换数 据用所述智能进入无匙启动模块内自身预存的钥匙认证结果进行替换。

作为具体实施例,所述发动机管理模块中的随机数代码(EMS→PEPS)信 息如下:

信息名称 地址 信息长度 类型 说明 随机数代码(IMMO_Code) xx 16字节 事件 16字节的随机数作为随机数代码

其中,所有16字节(bytes)的0x00或0xff不允许作为有效随机数代码 (challenge code),即正常的发动机防盗认证启动时,发动机管理模块(EMS) 发过来的challenge code不允许是全0或全f;除非EMS没学习过,还处于初始 (virgin)状态,这样也是为了提高安全性。如果EMS处于virgin状态,这意味 着EMS中的ESK(Engine Cryptology Secret Key,发动机防盗密钥)是初始化 数值,还没在整车厂下线过程进行刷写,16bytes的challenge code才应该是0xff。

所述智能进入无匙启动模块中的应答代码即所述替换后的第二输出数据 (EMS→PEPS)信息如下:

其具体的加密应答代码信息中的信号映射如下:

进一步,所述状态位(Status)的定义如下:

认证状态 描述 应答值 0x64 PEPS钥匙认证状态:无效 15字节(0xff) 0x44 PEPS钥匙认证状态:忙 15字节(0xff) 0x46 PEPS应答编码计算:忙 15字节(0xff) 0x11 PEPS应答钥匙传输:有效钥匙 计算出的15位应答值 其他数值 没有定义 没有定义

其中:认证状态定义可以由整车厂自由定义,不局限于上表。

如果PEPS接收到EMS发过来的challenge码是全0xff的,这意味着EMS 状态是virgin。此时,不管PEPS是否处于virgin状态,PEPS都会返回全0xff 作为应答信息给EMS。同理,如果PEPS处于virgin状态,这意味着PEPS的 ESK是初始数值,还没通过EOL(End Of Line,汽车下线)进行刷写或还没钥 匙学习;如果接收到一个不合法的challenge code,PEPS将会返回认证失败 (authentication failed)状态给EMS。

作为具体的实施例,所述数据比较控制模块30中的比较单元包括第一比较 单元和第二比较单元,所述控制单元包括第一控制单元和第二控制单元,所述 第一比较单元具体用于所述发动机管理模块首先将自身预存的钥匙认证结果和 所述替换后的二输出数据中的钥匙认证结果进行比较,即判断所述钥匙认证是 否合法,所述钥匙认证结果是智能钥匙模块和智能进入无匙启动模块认证的结 果,在所述智能进入无匙启动模块的EEPROM(电可擦写可编程只读存储器) 中存储有钥匙认证结果的状态,所述发动机管理模块的EEPROM中存储有钥匙 认证结果的状态定义数据库,发动机管理模块收到所述替换后的第二输出数据 后,会把所述替换后的第二输出数据中的钥匙认证结果和数据库里面的钥匙认 证结果对比;如果所述钥匙认证结果中的状态为无效,所述第一控制单元用于 将所述发动机管理模块发出发动机锁止信息到总线上,禁止所述发动机启动, 其具体的流程请参考图3所示;

所述第二比较单元用于如果所述钥匙认证结果中的状态为有效,即所述钥 匙认证结果合法,继续比较所述第一输出数据中的加密数据和所述替换后的第 二输出数据中的加密数据是否一样;所述第二控制单元用于如果加密数据结果 也一样,则发动机防盗认证成功,即只有钥匙认证和加密数据都匹配,其发动 机防盗认证才通过,进而所述发动机管理模块可以将发动机释放信息发送到总 线上,并允许所述发动机启动,其具体的流程请参考图4所示;否则,将发动 机锁止信息发送到总线上,禁止所述发动机启动。

根据本发明前述应答代码返回的钥匙认证结果中的状态位定义可知,其返 回的钥匙认证结果中的状态位为有效、无效和忙三种情况。本发明的发明人根 据认证过程中认证状态的各种情况,还制作了针对各种认证状态的通信处理机 制,以防止发动机防盗出现各种无法预估的问题时,不会影响发动机的启动和 整车防盗。以下将对各种具体通信处理机制进行详细说明。

作为通信处理机制一种具体的实施例,所述数据比较控制模块30中的控制 单元还包括第三控制单元,所述第三控制单元用于所述钥匙认证结果中的状态 为忙时,所述发动机管理模块在等待第一设定时间后,再次发送和上次一样的 随机数给所述智能进入无匙启动模块进行防盗认证,如果在所述发动机管理模 块连续发出第一设定次数后,所述钥匙认证结果中的状态仍然为忙,所述发动 机管理模块将停止发送随机数,并将发动机锁止信息发送到总线上,禁止所述 发动机启动,其具体的流程请参考图5所示;如果发动机管理模块在连续发出 第一设定次数内,只要有一次所述钥匙认证结果中的为有效,则结束发送随机 数,然后按照正常流程进行后续加密数据的比较。其中,所述钥匙认证结果中 的状态为忙,是指所述发动机管理模块接收的所述替换后的第二输出数据中的 状态位为忙,具体包括钥匙认证状态进行中和钥匙认证应答编码计算中两种情 况,此时,在所述智能进入无匙启动模块返回给发动机管理模块的所述替换后 的第二输出数据状态位中显示的都为忙。

作为一种实施方式,所述第一设定时间的时序参数设为 tECMAuthDelayRetry,其表达的含义是指在该时间延时后,发动机管理模块开 始发送下一个随机数请求;如果发动机管理模块从智能进入无匙启动模块接收 到忙状态或tKeyStatusRx(EMS在发送随机数后等待PEPS回复的超时时间)超 时或智能进入无匙启动模块应答值和发动机管理模块不一致,在该第一设定时 间后智能进入无匙启动模块和发动机管理模块之间会触发新的认证尝试。其中, 所述第一设定时间的设置取决于EMS产生随机数的计算速度和BCM转发报文 的时间;优选地,所述第一设定时间为50-200毫秒,第一设定次数为5次,即 在等待50-200毫秒后,再次发送和上次一样的随机数给智能进入无匙启动模块 进行认证,且可循环发送的次数为5次。

作为通信处理机制另一种具体的实施例,所述数据比较控制模块30中的控 制单元还包括第四控制单元,所述第四控制单元用于当所述发动机管理模块或/ 和所述智能进入无匙启动模块内密钥故障,使所述第一输出数据中的加密数据 与所述替换后的第二输出中的加密数据不一样时,所述发动机管理模块将发出 新的随机数给所述智能进入无匙启动模块进行防盗认证,如果防盗认证通过, 所述发动机管理模块将发动机释放信息发送到总线上,并允许所述发动机启动; 否则,所述发动机管理模块将停止发送认证流,并将发动机锁止信息发送到总 线上,禁止所述发动机启动,其具体的流程请参考图6所示。其中,所述第一 输出数据中的加密数据与所述替换后的第二输出中的加密数据不一样的原因可 能有:1、EMS发出随机数给PEPS,所述随机数被其他外部节点(如盗车贼的 工具)获取,经过计算(因不知道ESK计算肯定错误)返回给EMS,这样使加 密计算值不一致,通信失败;2、可能由于PEPS软件出故障(如写入内存的ESK 丢失等),计算出来的回复值错误;3、EMS的ESK丢失,导致EMS算出来的 值和PEPS的值不一致等。

作为通信处理机制再一种具体的实施例,所述数据比较控制模块30中的控 制单元还包括第五控制单元,所述第五控制单元用于当所述发动机管理模块和 所述智能进入无匙启动模块之间因通信故障,使所述发动机管理模块在第二设 定时间内没有收到所述替换后的第二输出数据返回时,所述发动机管理模块在 等待第一设定时间后,再次发送和上次一样的随机数给所述智能进入无匙启动 模块进行防盗认证,如果在所述发动机管理模块连续发出第一设定次数后仍然 没有收到所述替换后的第二输出数据返回时,所述发动机管理模块将停止发送 随机数,并将发动机锁止信息发送到总线上,禁止所述发动机启动,其具体的 流程请参考图7所示;如果所述发动机管理模块在连续发出第一设定次数内, 只要有一次收到所述替换后的第二输出数据,则结束发送随机数,然后按照正 常流程进行后续钥匙认证的比较。其中,所述发动机管理模块和所述智能进入 无匙启动模块之间产生通信故障的原因可能有:PEPS有故障(PEPS不会回复)、 总线故障(PEPS不能成功收到EMS的随机数)、BCM网关故障(不转发EMS 随机数和PEPS回复)等。

作为一种实施方式,所述第二设定时间的时序参数设为前述的 tKeyStatusRx,其表达的含义是指EMS在发送随机数后等待PEPS回复的超时时 间,如果超时EMS没有收到PEPS的回复信息,EMS会在第一设定时间后再触 发再发送随机数。其中,所述第二设定时间取决于PEPS和钥匙认证时间、PEPS 加密数据时间、以及BCM转发报文的时间;优选地,所述第二设定时间为50-150 毫秒。

本发明提供的发动机防盗认证系统中,所述发动机管理模块中的参考数据 和智能进入无匙启动模块返回的应答数据,在分别通过XTEA算法进行加密计 算时,会使用到相应的随机数(challenge)、固定码(fixed code)和发动机防盗 密钥(Engine Cryptology Secret Key,简称ESK)。其中,所述challenge为16bytes 数据,由EMS随机产生;所述fixed code为4bytes数据,由整车厂定义,存储 在EMS和PEPS的只读内存(Read-Only Memory,简称ROM)中,PEPS和EMS 共用同一个固定码;所述ESK为16bytes数据,在EOL过程中随机产生,存储 在EMS和PEPS非可丢失内存中,可通过指定的诊断服务来读/写,且ESK在 EMS和PEPS中都仅能写入一次。

因此,所述的发动机防盗密钥在进行发动机防盗认证之前,可对所述发动 机管理模块和防盗控制中自身预存的密钥先进行匹配,然后再进行后续的防盗 认证流程。本发明的发明人根据前述匹配要求,还制作了各种防盗ECU匹配流 程,形成完善的匹配终端,有利于整个防盗认证流程的平台化,适合大批量自 动化生产和售后诊断维修,具体在所述发动机控制器认证系统中设置匹配模块, 用于将发动机管理模块或/和所述智能进入无匙启动模块中自身预存的密钥进行 匹配。以下将对发动机防盗密钥各种具体匹配流程进行详细说明。

作为一种具体的实施例,所述匹配模块包括第一匹配模块,用于发动机管 理模块和智能进入无匙启动模块中预存的密钥,在出厂时如果只有一方没有密 钥,即只有发动机管理模块有密钥或者只有智能进入无匙启动模块有密钥,此 时只需要一方进行学习匹配。针对此种情况,匹配流程请参考图8所示,其具 体的流程在前述认证方法中已有详细说明,在此不再赘述。

作为另一种具体的实施例,所述发动机防盗认证系统中的匹配模块包括第 二匹配模块,用于所述发动机管理模块和智能进入无匙启动模块中预存的密钥, 在出厂时如果双方都没有密钥,即所述发动机管理模块和智能进入无匙启动模 块中都没有密钥,此时只需要双方都进行学习匹配。针对此种情况,匹配流程 请参考图9所示,其具体的流程在前述认证方法中已有详细说明,在此不再赘 述。

作为再一种具体的实施例,所述发动机防盗认证系统中的匹配模块包括第 三匹配模块,用于所述发动机管理模块和智能进入无匙启动模块中预存的密钥, 在出厂时如果需要更换智能进入无匙启动模块或者将已经学习的智能进入无匙 启动模块用到另外一台车上,此时只需要对智能进入无匙启动模块进行学习匹 配。针对此种情况,匹配流程请参考图10所示,其具体的流程在前述认证方法 中已有详细说明,在此不再赘述。

作为又一种具体的实施例,所述发动机防盗认证系统中的匹配模块包括第 四匹配模块,用于所述发动机管理模块和智能进入无匙启动模块中预存的密钥, 在出厂时如果需要更换发动机管理模块或者将已经学习的发动机管理模块用到 另外一台车上,此时只需要对发动机管理模块进行学习匹配。针对此种情况, 匹配流程请参考图11所示,其具体的流程在前述认证方法中已有详细说明,在 此不再赘述。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发 明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明 的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号