一种发动机防盗系统的发动机防盗认证方法及装置制造方法
【专利摘要】本发明提供一种发动机防盗认证方法,所述发动机防盗认证包括钥匙认证和发动机控制器认证,所述发动机控制器认证包括以下步骤;发动机管理模块产生一组随机数,通过车身控制器通信网关转发给智能进入无匙启动模块;智能进入无匙启动模块根据自身预存的固定码、密钥和接收到的所述随机数,通过XTEA算法进行加密计算,将计算结果中的部分位数用钥匙认证结果替换后生成第二数据,并通过车身控制器通信网关回转给发动机管理模块;发动机管理模块将采用自身预存的钥匙认证结果和通过XTEA算法生成的第一数据与返回的所述第二数据进行比较,若匹配允许发动机启动,否则禁止启动。本发明还提供一种防盗认证装置。本发明采用XTEA算法,占用空间较小,计算时间快。
【专利说明】一种发动机防盗系统的发动机防盗认证方法及装置
【技术领域】
[0001] 本发明涉及汽车领域,尤其涉及一种采用XTEA (extended Tiny Encryption Algorithm,扩展的微型加密算法)发动机防盗认证方法及装置。
【背景技术】
[0002] 发动机防盗系统是由FOB (智能钥匙模块)、PEPS (Passive Entry and Passive Start,智能进入无匙启动模块)和EMS (Engine Management System,发动机管理模块)组 成。所述发动机防盗系统的密码认证包括钥匙认证和发动机控制器认证,钥匙认证完成智 能钥匙模块和智能进入无匙启动模块之间的认证,发动机控制器认证完成智能进入无匙启 动模块和发动机管理模块之间的认证。
[0003] 所述钥匙认证有专门的芯片来处理,所述智能钥匙内设置有转发器,转发器由半 导体供应商提供,加密算法固化在转发器中,钥匙认证已定义好通信机制;而智能进入无匙 启动模块和发动机管理模块之间的认证一般由整车厂自己开发,不同的整车厂有不同的策 略,如果整车厂开发的发动机防盗通信机制考虑不够全面,不能应对好各种通信情况,可能 会导致发动机防盗认证出现无法预估的问题,影响发动机启动和整车防盗。而本发明的发 明人研究发现,虽然某些整车厂已经开发出发动机防盗认证方法,但是其采用的加密算法 代码比较长,占用存储空间较大,且计算时间比较长。
【发明内容】
[0004] 为了解决现有技术中发动机防盗认证方法采用的加密算法代码比较长,占用存储 空间较大,且计算时间比较长的技术问题,本发明提供一种新型的发动机防盗系统的发动 机防盗认证方法。
[0005] 本发明的目的是通过以下技术方案实现的:
[0006] -种发动机防盗系统的发动机防盗认证方法,该发动机防盗系统包括智能钥匙模 块、智能进入无匙启动模块和发动机管理模块,所述发动机防盗认证包括钥匙认证和发动 机控制器认证,所述钥匙认证完成所述智能钥匙模块和所述智能进入无匙启动模块之间的 认证,所述发动机控制器认证完成所述智能进入无匙启动模块和所述发动机管理模块之间 的认证,其特征在于,所述智能进入无匙启动模块和所述发动机管理模块之间通过车身控 制器网关通信,在完成所述钥匙认证后所述发动机控制器认证包括以下步骤 :
[0007] 所述发动机管理模块产生一组随机数,并将所述随机数通过车身控制器通信网关 转发给智能进入无匙启动模块,根据自身产生的随机数、自身预存的固定码和密钥,通过 XTEA算法进行加密计算得到第一输出数据,所述第一输出数据包括加密数据;
[0008] 所述智能进入无匙启动模块根据接收到的所述随机数、自身预存的固定码和密 钥,通过XTEA算法进行加密计算得到第二输出数据,所述第二输出数据包括替换数据和加 密数据,将所述第二输出数据中的替换数据用所述智能进入无匙启动模块自身预存的钥匙 认证结果替换,将替换后的第二输出数据通过所述车身控制器通信网关回转给所述发动机 管理模块;
[0009] 所述发动机管理模块将自身预存的钥匙认证结果和所述第一输出数据中的加密 数据与所述替换后的第二输出数据进行比较,若匹配,将发动机释放信息发送到总线上,并 允许所述发动机启动;否则,将发动机锁止信息发送到总线上,禁止所述发动机启动。
[0010] 本发明提供的发动机防盗系统的发动机防盗认证方法,采用XTEA算法进行第一 输出数据和第二输出数据的计算,所述XTEA算法的结构非常简单,只需要执行加法、异或 和寄存的硬件即可,且加密算法中实现的代码短小,具有可移植性,非常适合嵌入式系统应 用,占用存储空间较小,能节省ECU (Electronic Control Unit,电子控制单元)资源,计算 速度非常快;同时,本发明发动机控制器认证的释放通信是在智能进入无匙启动模块和发 动机管理模块之间进行,在发动机防盗系统的智能进入无匙启动模块和发动机管理模块之 间建立有通信网关,所述通信网关具体可选用车身控制器(BCM)来组成完整的发动机防盗 认证框架,有效保证了发动机防盗认证的通信。
[0011] 本发明还提供一种发动机防盗系统的发动机防盗认证装置,该发动机防盗系统包 括智能钥匙模块、智能进入无匙启动模块和发动机管理模块,所述发动机防盗认证装置包 括钥匙认证系统和发动机控制器认证系统,所述钥匙认证系统完成所述智能钥匙模块和所 述智能进入无匙启动模块之间的认证,所述发动机控制器认证系统完成所述智能进入无匙 启动模块和所述发动机管理模块之间的认证,其特征在于,所述智能进入无匙启动模块和 所述发动机管理模块之间通过车身控制器网关通信,在完成所述钥匙认证系统认证后进行 所述发动机控制器认证系统认证,所述发动机控制器认证系统包括:
[0012] 第一输出数据生成模块,用于所述发动机管理模块产生一组随机数,并将所述随 机数通过车身控制器通信网关转发给智能进入无匙启动模块,根据自身产生的随机数、自 身预存的固定码和密钥,通过XTEA算法进行加密计算得到第一输出数据,所述第一输出数 据包括加密数据;
[0013] 第二输出数据生成模块,用于所述智能进入无匙启动模块根据接收到的所述随机 数、自身预存的固定码和密钥,通过XTEA算法进行加密计算得到第二输出数据,所述第二 输出数据包括替换数据和加密数据,将所述第二输出数据中的替换数据用所述智能进入无 匙启动模块自身预存的钥匙认证结果替换,将替换后的第二输出数据通过所述车身控制器 通信网关回转给所述发动机管理模块;
[0014] 数据比较控制模块,包括比较单元和控制单元,所述比较单元用于所述发动机管 理模块将自身预存的钥匙认证结果和所述第一输出数据中的加密数据与所述替换后的第 二输出数据进行比较;所述控制单元用于根据所述比较单元的比较结果进行控制,所述比 较结果若匹配,将发动机释放信息发送到总线上,并允许所述发动机启动;否则,将发动机 锁止信息发送到总线上,禁止所述发动机启动。
[0015] 本发明提供的发动机防盗系统的发动机防盗认证装置,采用XTEA算法进行第一 输出数据和第二输出数据的计算,所述XTEA算法的结构非常简单,只需要执行加法、异或 和寄存的硬件即可,且加密算法中实现的代码短小,具有可移植性,非常适合嵌入式系统应 用,占用存储空间较小,能节省ECU (Electronic Control Unit,电子控制单元)资源,计算 速度非常快;同时,本发明发动机控制器认证的释放通信是在智能进入无匙启动模块和发 动机管理模块之间进行,在发动机防盗系统的智能进入无匙启动模块和发动机管理模块之 间建立有通信网关,所述通信网关具体可选用车身控制器(BCM)来组成完整的发动机防盗 认证框架,有效保证了发动机防盗认证的通信。
【专利附图】
【附图说明】
[0016] 图1是本发明实施例提供的发动机防盗认证框架结构示意图;
[0017] 图2是本发明实施例提供的发动机管理模块和智能进入无匙启动模块进行XTEA 算法的详细流程示意图;
[0018] 图3是本发明实施例提供的钥匙认证为无效时的流程示意图;
[0019] 图4是本发明实施例提供的发动机防盗认证成功流程示意图;
[0020] 图5是本发明实施例提供的钥匙认证为忙时的流程示意图;
[0021] 图6是本发明实施例提供的返回值中加密数据不一样时的流程示意图;
[0022] 图7是本发明实施例提供的发动机管理系统没有收到返回值的流程示意图;
[0023] 图8是本发明实施例提供的发动机管理模块和智能进入无匙启动模块中的一方 进行密钥匹配的流程示意图;
[0024] 图9是本发明实施例提供的发动机管理模块和智能进入无匙启动模块中的双方 进行密钥匹配的流程示意图;
[0025] 图10是本发明实施例提供的更换智能进入无匙启动模块后进行密钥匹配的流程 示意图;
[0026] 图11是本发明实施例提供的更换发动机管理模块后进行密钥匹配的流程示意图;
[0027] 图12是本发明实施例提供的发动机防盗认证装置中发动机控制器认证系统的结 构示意图。
[0028] 其中,10、第一输出数据生成模块;20、第二输出数据生成模块;30、数据比较控制 模块。
【具体实施方式】
[0029] 为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合 附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用 以解释本发明,并不用于限定本发明。
[0030] 一种发动机防盗系统的发动机防盗认证方法,该发动机防盗系统包括智能钥匙模 块、智能进入无匙启动模块和发动机管理模块,所述发动机防盗认证包括钥匙认证和发动 机控制器认证,所述钥匙认证完成所述智能钥匙模块和所述智能进入无匙启动模块之间的 认证,所述发动机控制器认证完成所述智能进入无匙启动模块和所述发动机管理模块之间 的认证,其特征在于,所述智能进入无匙启动模块和所述发动机管理模块之间通过车身控 制器网关通信,在完成所述钥匙认证后所述发动机控制器认证包括以下步骤 :
[0031] 所述发动机管理模块产生一组随机数,并将所述随机数通过车身控制器通信网关 转发给智能进入无匙启动模块,根据自身产生的随机数、自身预存的固定码和密钥,通过 XTEA算法进行加密计算得到第一输出数据,所述第一输出数据包括加密数据;
[0032] 所述智能进入无匙启动模块根据接收到的所述随机数、自身预存的固定码和密钥,通 过XTEA算法进行加密计算得到第二输出数据,所述第二输出数据包括替换数据和加密数据, 将所述第二输出数据中的替换数据用所述智能进入无匙启动模块自身预存的钥匙认证结果替 换,将替换后的第二输出数据通过所述车身控制器通信网关回转给所述发动机管理模块;
[0033] 所述发动机管理模块将自身预存的钥匙认证结果和所述第一输出数据中的加密 数据与所述替换后的第二输出数据进行比较,若匹配,将发动机释放信息发送到总线上,并 允许所述发动机启动;否则,将发动机锁止信息发送到总线上,禁止所述发动机启动。
[0034] 本发明提供的发动机防盗系统的发动机防盗认证方法,采用XTEA算法进行第一 输出数据和第二输出数据的计算,所述XTEA算法的结构非常简单,只需要执行加法、异或 和寄存的硬件即可,且加密算法中实现的代码短小,具有可移植性,非常适合嵌入式系统应 用,占用存储空间较小,能节省ECU (Electronic Control Unit,电子控制单元)资源,计算 速度非常快;同时,本发明发动机控制器认证的释放通信是在智能进入无匙启动模块和发 动机管理模块之间进行,在发动机防盗系统的智能进入无匙启动模块和发动机管理模块之 间建立有通信网关,所述通信网关具体可选用车身控制器(BCM)来组成完整的发动机防盗 认证框架,有效保证了发动机防盗认证的通信。
[0035] 作为具体的实施例,请参考图1所示,本发明提供的发动机防盗认证框架中,所述 发动机管理模块(EMS)是通信主体,智能进入无匙启动模块(PEPS)是通信从体,车身控制 器(BCM)是通信网关,来完成EMS和PEPS的通信认证流程。
[0036] 作为具体的实施例,请参考图2所示,为发动机管理系统和智能进入无匙启动系 统进行XTEA算法的详细流程示意图。在发动机防盗系统的发动机防盗认证开始时,所述发 动机管理模块会产生一组128位的随机数,该128位随机数通过车身控制器通信网关转发 给智能进入无匙启动模块,所述智能进入无匙启动模块将根据接收的所述随机数通过XTEA 算法进行加密计算;所述发动机管理模块内部也会通过XTEA算法进行加密计算。
[0037] 所述发动机管理模块通过XTEA算法进行加密计算,具体包括以下步骤:
[0038] 所述发动机管理模块将发送给智能进入无匙启动模块同样的128位随机数与自 身预存的32位固定码通过加密数组合函数进行计算,组成128位加密数据,然后将所述128 位加密数据与自身预存的128位密钥通过XTEA加密函数模块计算得出128位第一输出数 据,所述128位第一输出数据包括8位替换数据和120位加密数据;
[0039] 所述智能进入无匙启动模块通过XTEA算法进行加密计算,具体包括以下步骤:
[0040] 所述智能进入无匙启动模块将接收的128位所述随机数与自身预存的32位固定 码通过加密数组合函数进行计算,组成128位加密数据,将所述128位加密数据与自身预存 的128位密钥通过XTEA算法计算组成128位第二输出数据,所述第二输出数据包括8位替 换数据和120位加密数据,将所述8位替换数据用所述智能进入无匙启动模块内自身预存 的钥匙认证结果进行替换。
[0041] 作为具体实施例,所述发动机管理模块中的随机数代码(EMS - PEPS)信息如下:
[0042] 信息名称 |地址|信息长度~|类型|说明 随机数代码(IMM0_Code) Μ 16字节 Wft~16字节的随机数作为随机数代码
[0043] 其中,所有16字节(bytes)的0x00或Oxff不允许作为有效随机数代码 (challenge code),即正常的发动机防盗认证启动时,发动机管理模块(EMS)发过来的 challenge code不允许是全0或全f ;除非EMS没学习过,还处于初始(virgin)状态, 这样也是为了提高安全性。如果EMS处于virgin状态,这意味着EMS中的ESK (Engine Cryptology Secret Key,发动机防盗密钥)是初始化数值,还没在整车JF线过程进行刷 写,16bytes 的 challenge code 才应该是 Oxff。
[0044] 所述智能进入无匙启动模块中的应答代码即所述替换后的第二输出数据 (EMS - PEPS)信息如下:
[0045] 信息名称 | |信,1.长度| IIS ?Μ . 应答代妈 回传给EMS的加密应答代码包括 XX 16字节 事件 , (Response-Code) 状态字节
[0046] 其具体的加密应答代码信息中的信号映射如下:
[0047] 字节0ψψ 1 | ΨΨ2字节3字节4 字节5字节6"""-|字节15 ..............状态.............. 加密应答结乘
[0048] 进一步,所述状态位(Status)的定义如下:
[0049] 认证状态~[lei |应答值 0^64 PEPS钥匙认证状态:无效 15字节(Oxff) 0^44 PEPS钥匙认证状态:忙 15字节(Orff) 0^46 PEPS应答编码计算:忙 15字节(Oxff) oln PEPS应答钥匙传输:有效钥匙 计算出的15位应答值 其他数值没有定义 没有定义
[0050] 其中:认证状态定义可以由整车厂自由定义,不局限于上表。
[0051] 如果PEPS接收到EMS发过来的challenge码是全Oxff的,这意味着EMS状态是 virgin。此时,不管PEPS是否处于virgin状态,PEPS都会返回全Oxff作为应答信息给 EMS。同理,如果PEPS处于virgin状态,这意味着PEPS的ESK是初始数值,还没通过E0L (End Of Line,汽车下线)进行刷写或还没钥匙学习;如果接收到一个不合法的challenge code,PEPS 将会返回认证失败(authentication failed)状态给 EMS。
[0052] 作为具体的实施例,所述发动机管理模块将自身预存的钥匙认证结果和所述第一 输出数据中的加密数据与所述替换后的第二输出数据进行比较,若匹配,将发动机释放信 息发送到总线上,并允许所述发动机启动;否则,将发动机锁止信息发送到总线上,禁止所 述发动机启动的步骤,具体包括:
[0053] 所述发动机管理模块首先将其自身预存的钥匙认证结果和所述替换后的第二输 出数据中的钥匙认证结果进行比较,即判断所述钥匙认证是否合法,所述钥匙认证结果 是智能钥匙模块和智能进入无匙启动模块认证的结果,在所述智能进入无匙启动模块的 EEPR0M (电可擦写可编程只读存储器)中存储有钥匙认证结果的状态,所述发动机管理模块 的EEPR0M中存储有钥匙认证结果的状态定义数据库,发动机管理模块收到所述替换后的 第二输出数据后,会把所述替换后的第二输出数据中的钥匙认证结果和数据库里面的钥匙 认证结果对比;如果所述钥匙认证结果中的状态为无效,则所述发动机管理模块发出发动 机锁止信息到总线上,禁止所述发动机启动,其具体的流程请参考图3所示;
[0054] 如果所述钥匙认证结果中的状态为有效,即所述钥匙认证结果合法,则继续比较 所述第一输出数据中的加密数据和所述替换后的第二输出数据中的加密数据是否一样;如 果加密数据结果也一样,则发动机防盗认证成功,即只有钥匙认证和加密数据都匹配,其发 动机防盗认证才通过,进而所述发动机管理模块可以将发动机释放信息发送到总线上,并 允许所述发动机启动,其具体的流程请参考图4所示;否则,将发动机锁止信息发送到总线 上,禁止所述发动机启动。
[0055] 根据本发明前述应答代码返回的钥匙认证结果中的状态位定义可知,其返回的钥 匙认证结果中的状态位为有效、无效和忙三种情况。本发明的发明人根据认证过程中认证 状态的各种情况,还制作了针对各种认证状态的通信处理机制,以防止发动机防盗出现各 种无法预估的问题时,不会影响发动机的启动和整车防盗。以下将对各种具体通信处理机 制进行详细说明。
[0056] 作为通信处理机制一种具体的实施例,所述发动机管理模块将自身预存的钥匙认 证结果和所述替换后的第二输出数据中的钥匙认证结果进行比较时,如果所述钥匙认证结 果中的状态为忙,所述发动机管理模块在等待第一设定时间后,再次发送和上次一样的随 机数给所述智能进入无匙启动系统进行防盗认证,如果在所述发动机管理模块连续发出第 一设定次数后,所述钥匙认证结果中的状态仍然为忙,所述发动机管理模块将停止发送随 机数,并将发动机锁止信息发送到总线上,禁止所述发动机启动,其具体的流程请参考图5 所示;如果所述发动机管理模块在连续发出第一设定次数内,只要有一次所述钥匙认证结 果中的状态为有效,则结束发送随机数,然后按照正常流程进行后续加密数据的比较。其 中,所述钥匙认证结果中的状态为忙,是指所述发动机管理模块接收的所述替换后的第二 输出数据中的状态位为忙,具体包括钥匙认证状态进行中和钥匙认证应答编码计算中两种 情况,此时,在所述智能进入无匙启动模块返回给所述发动机管理模块的所述替换后的第 二输出数据状态位中显示的都为忙。
[0057] 作为一种实施方式,所述第一设定时间的时序参数设为tECMAuthDelayRetry,其 表达的含义是指在该时间延时后,发动机管理模块开始发送下一个随机数请求;如果发动 机管理模块从智能进入无匙启动模块接收到忙状态或tKeyStatusRx (EMS在发送随机数后 等待PEPS回复的超时时间)超时或智能进入无匙启动模块应答值和发动机管理模块不一 致,在该第一设定时间后智能进入无匙启动模块和发动机管理模块之间会触发新的认证尝 试。其中,所述第一设定时间的设置取决于EMS产生随机数的计算速度和BCM转发报文的 时间;优选地,所述第一设定时间为50-200毫秒,第一设定次数为5次,即在等待50-200毫 秒后,再次发送和上次一样的随机数给智能进入无匙启动模块进行认证,且可循环发送的 次数为5次。
[0058] 作为通信处理机制另一种具体的实施例,所述发动机管理模块将所述第一输出数 据中的加密数据和所述替换后的第二输出数据中的加密数据进行比较,当所述发动机管理 模块/或和所述智能进入无匙启动模块内因密钥故障,使所述所述第一输出数据中的加密 数据与所述替换后的第二输出数据中的加密数据不一样时,则所述发动机管理模块将发出 新的随机数给所述智能进入无匙启动模块进行防盗认证,如果防盗认证通过,所述发动机 管理模块将发动机释放信息发送到总线上,并允许所述发动机启动;否则,所述发动机管理 模块将停止发送认证流,并将发动机锁止信息发送到总线上,禁止所述发动机启动,其具体 的流程请参考图6所示。其中,所述第一输出数据中的加密数据与所述替换后的第二输出 中的加密数据不一样的原因可能有:1、EMS发出随机数给PEPS,所述随机数被其他外部节 点(如盗车贼的工具)获取,经过计算(因不知道ESK计算肯定错误)返回给EMS,这样使加密 计算值不一致,通信失败;2、可能由于PEPS软件出故障(如写入内存的ESK丢失等),计算出 来的回复值错误;3、EMS的ESK丢失,导致EMS算出来的值和PEPS的值不一致等。
[0059] 作为通信处理机制再一种具体的实施例,当所述发动机管理模块和所述智能进入 无匙启动模块之间因通信故障,使所述发动机管理模块在第二设定时间内没有收到所述替 换后的第二输出数据返回时,所述发动机管理模块在等待第一设定时间后,再次发送和上 次一样的随机数给所述智能进入无匙启动模块进行防盗认证,如果在所述发动机管理模块 连续发出第一设定次数后仍然没有收到所述替换后的第二输出数据返回时,所述发动机管 理模块将停止发送随机数,并将发动机锁止信息发送到总线上,禁止所述发动机启动,其具 体的流程请参考图7所示;如果所述发动机管理模块在连续发出第一设定次数内,只要有 一次收到所述替换后的第二输出数据,则结束发送随机数,然后按照正常流程进行后续钥 匙认证的比较。其中,所述发动机管理模块和所述智能进入无匙启动模块之间产生通信故 障的原因可能有:PEPS有故障(PEPS不会回复)、总线故障(PEPS不能成功收到EMS的随机 数)、BCM网关故障(不转发EMS随机数和PEPS回复)等。
[0060] 作为一种实施方式,所述第二设定时间的时序参数设为前述的tKeyStatusRx,其 表达的含义是指EMS在发送随机数后等待PEPS回复的超时时间,如果超时EMS没有收到 PEPS的回复信息,EMS会在第一设定时间后再触发再发送随机数。其中,所述第二设定时间 取决于PEPS和钥匙认证时间、PEPS加密数据时间、以及BCM转发报文的时间;优选地,所述 第二设定时间为50-150毫秒。
[0061] 本发明提供的发动机防盗认证方法中,所述发动机管理模块中的参考数据和智能 进入无匙启动模块返回的应答数据,在分别通过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数据,在E0L过程中随机 产生,存储在EMS和PEPS非可丢失内存中,可通过指定的诊断服务来读/写,且ESK在EMS 和PEPS中都仅能写入一次。
[0062] 因此,所述的发动机防盗密钥在进行发动机防盗认证之前,可对所述发动机管理 模块和防盗控制中自身预存的密钥先进行匹配,然后再进行发动机防盗认证流程。本发明 的发明人根据前述密钥匹配要求,还制作了各种防盗ECU匹配流程,形成完善的匹配终端, 有利于整个防盗认证流程的平台化,适合大批量自动化生产和售后诊断维修。以下将对发 动机防盗密钥各种具体匹配流程进行详细说明。
[0063] 作为一种具体的实施例,所述发动机管理模块和智能进入无匙启动模块中预存的 密钥,在出厂时如果只有一方没有密钥,即只有发动机管理模块有密钥或者只有智能进入 无匙启动模块有密钥,此时只需要一方进行学习匹配。针对此种情况,其匹配流程请参考图 8所示,该匹配具体包括以下步骤:
[0064] S11、下线设备初始化;
[0065] S12、整车上到0N档电;
[0066] S13、判断是否有安全权限登录源E⑶,如果为是,则执行步骤S14 ;如果为否,则退 出匹配;
[0067] S14、通过0BD接口读取源ECU的密钥;
[0068] S15、判断是否有安全权限登录目标E⑶;如果为是,则执行步骤S16,否则退出匹 配;
[0069] S16、通过0BD接口将读取源E⑶的密钥写入目标E⑶中;
[0070] S17、通过0BD接口分别读取发动机管理模块和智能进入无匙启动模块中的密钥;
[0071] S18、判断是否是相同的密钥,如果为是,则匹配成功;如果为否,且第一再试次数 小于第一预设次数,则将第一再试次数加1后转至步骤S13,若第一再试次数大于等于第一 预设次数,则直接退出匹配。
[0072] 其中,所述0BD为On-Board Diagnostics的缩写,中文含义为车载自动诊断系统。 而所述第一预设次数可以根据整车厂自身的需要来设置,而本实施例中设置的第一预设次 数为3,即当所述步骤S18中判断发动机管理模块和智能进入无匙启动模块中的密钥不同 时,可以有2次机会进行重试(Retry)匹配。
[0073] 作为另一种具体的实施例,所述发动机管理模块和智能进入无匙启动模块中预存 的密钥,在出厂时如果双方都没有密钥,即所述发动机管理模块和智能进入无匙启动模块 中都没有密钥,此时需要双方都进行学习匹配。针对此种情况,其匹配流程请参考图9所 示,该匹配具体包括以下步骤:
[0074] S21、下线设备初始化;
[0075] S22、产生随机发动机密钥;
[0076] S23、整车上到0N档电;
[0077] S24、判断是否有安全权限登录发动机管理模块,如果为是,则执行步骤S25 ;如果 为否,则退出匹配;
[0078] S25、通过0BD接口将所述密钥写入发动机管理模块中;
[0079] S26、判断是否有安全权限登录智能进入无匙启动模块;如果为是,则执行步骤 S27,否则退出匹配;
[0080] S27、通过0BD接口将所述密钥写入智能进入无匙启动模块中;
[0081] S28、通过0BD接口分别读取发动机管理模块和智能进入无匙启动模块中的密钥;
[0082] S29、判断是否是相同的密钥,如果为是,则匹配成功;如果为否,且第二再试次数 小于第二预设次数,则将第二再试次数加1后转至步骤S24,若第二再试次数大于等于第二 预设次数,则直接退出匹配。
[0083] 其中,所述第二预设次数可以根据整车厂自身的需要来设置,而本实施例中设置 的第二预设次数为3,即当所述步骤S29中判断发动机管理模块和智能进入无匙启动模块 中的密钥不同时,可以有2次机会进行重试匹配。本领域的技术人员应当明白,在本实施例 中,所述密钥的写入顺序并不局限于此,技术人员在前述匹配流程的基础上,还可以先往智 能进入无匙启动模块中写入密钥,再往发动机管理模块中写入密钥,这种变化也都属于本 实施例的等同替换,均应属于本发明的保护范围之内。
[0084] 作为再一种具体的实施例,所述发动机管理模块和智能进入无匙启动模块中预存 的密钥,在出厂时如果需要更换智能进入无匙启动模块或者将已经学习的智能进入无匙启 动模块用到另外一台车上,此时需要对智能进入无匙启动模块进行学习匹配。针对此种情 况,其匹配流程请参考图10所示,该匹配具体包括以下步骤 :
[0085] S31、售后诊断仪初始化;
[0086] S32、整车上到0N档电;
[0087] S33、判断是否有安全权限登录发动机管理模块,如果为是,则执行步骤S34 ;如果 为否,则退出匹配;
[0088] S34、通过0BD接口读取发动机管理模块中的密钥;
[0089] S35、判断是否有安全权限登录智能进入无匙启动模块;如果为是,则执行步骤 S36,否则退出匹配;
[0090] S36、通过0BD接口将从发动机管理模块读取的密钥写入智能进入无匙启动模块 中;
[0091] S37、通过0BD接口分别读取发动机管理模块和智能进入无匙启动模块中的密钥;
[0092] S38、判断是否是相同的密钥,如果为是,则匹配成功;如果为否,且第三再试次数 小于第三预设次数,则将第三再试次数加1后转至步骤S33,若第三再试次数大于等于第三 预设次数,则直接退出匹配。
[0093] 其中,所述第三预设次数可以根据整车厂自身的需要来设置,而本实施例中设置 的第三预设次数为3,即当所述步骤S38中判断发动机管理模块和智能进入无匙启动模块 中的密钥不同时,可以有2次机会进行重试匹配。
[0094] 作为又一种具体的实施例,所述发动机管理模块和智能进入无匙启动模块中预存 的密钥,在出厂时如果需要更换发动机管理模块或者将已经学习的发动机管理模块用到另 外一台车上,此时需要对发动机管理模块进行学习匹配。针对此种情况,其匹配流程请参考 图11所示,该匹配具体包括以下步骤:
[0095] S41、售后诊断仪初始化;
[0096] S42、整车上到0N档电;
[0097] S43、判断是否有安全权限登录智能进入无匙启动模块,如果为是,则执行步骤 S44;如果为否,则退出匹配;
[0098] S44、通过0BD接口读取智能进入无匙启动模块中的密钥;
[0099] S45、判断是否有安全权限登录发动机管理模块;如果为是,则执行步骤S46,否则 退出匹配;
[0100] S46、通过0BD接口将从智能进入无匙启动模块读取的密钥写入发动机管理模块 中;
[0101] S47、通过0BD接口分别读取发动机管理模块和智能进入无匙启动模块中的密钥;
[0102] S48、判断是否是相同的密钥,如果为是,则匹配成功;如果为否,且第四再试次数 小于第四预设次数,则将第四再试次数加1后转至步骤S43,若第四再试次数大于等于第四 预设次数,则直接退出匹配。
[0103] 其中,所述第四预设次数可以根据整车厂自身的需要来设置,而本实施例中设置 的第四预设次数为3,即当所述步骤S48中判断发动机管理模块和智能进入无匙启动模块 中的密钥不同时,可以有2次机会进行重试匹配。
[0104] 请参考图12所示,本发明还提供一种发动机防盗系统的发动机防盗认证装置,该 发动机防盗系统包括智能钥匙模块、智能进入无匙启动模块和发动机管理模块,所述发动 机防盗认证装置包括钥匙认证系统和发动机控制器认证系统,所述钥匙认证系统完成所述 智能钥匙模块和所述智能进入无匙启动模块之间的认证,所述发动机控制器认证系统完成 所述智能进入无匙启动模块和所述发动机管理模块之间的认证,其特征在于,所述智能进 入无匙启动模块和所述发动机管理模块之间通过车身控制器网关通信,在完成所述钥匙认 证系统认证后进行所述发动机控制器认证系统认证,所述发动机控制器认证系统包括:
[0105] 第一输出数据生成模块10,用于所述发动机管理模块产生一组随机数,并将所述 随机数通过车身控制器通信网关转发给智能进入无匙启动模块,根据自身产生的随机数、 自身预存的固定码和密钥,通过XTEA算法进行加密计算得到第一输出数据,所述第一输出 数据包括加密数据;
[0106] 第二输出数据生成模块20,用于所述智能进入无匙启动模块根据接收到的所述随 机数、自身预存的固定码和密钥,通过XTEA算法进行加密计算得到第二输出数据,所述第 二输出数据包括替换数据和加密数据,将所述第二输出数据中的替换数据用所述智能进入 无匙启动模块自身预存的钥匙认证结果替换,将替换后的第二输出数据通过所述车身控制 器通信网关回转给所述发动机管理模块;
[0107] 数据比较控制模块30,包括比较单元和控制单元,所述比较单元用于所述发动机 管理模块将自身预存的钥匙认证结果和所述第一输出数据中的加密数据与所述替换后的 第二输出数据进行比较;所述控制单元用于根据所述比较单元的比较结果进行控制,所述 比较结果若匹配,将发动机释放信息发送到总线上,并允许所述发动机启动;否则,将发动 机锁止信息发送到总线上,禁止所述发动机启动。
[0108] 本发明提供的发动机防盗系统的发动机防盗认证装置,采用XTEA算法进行第一 输出数据和第二输出数据的计算,所述XTEA算法的结构非常简单,只需要执行加法、异或 和寄存的硬件即可,且加密算法中实现的代码短小,具有可移植性,非常适合嵌入式系统应 用,占用存储空间较小,能节省ECU (Electronic Control Unit,电子控制单元)资源,计算 速度非常快;同时,本发明发动机控制器认证的释放通信是在智能进入无匙启动模块和发 动机管理模块之间进行,在发动机防盗系统的智能进入无匙启动模块和发动机管理模块之 间建立有通信网关,所述通信网关具体可选用车身控制器(BCM)来组成完整的发动机防盗 认证框架,有效保证了发动机防盗认证的通信。
[0109] 作为具体的实施例,请参考图1所示,本发明提供的发动机防盗认证框架中,所述 发动机管理模块(EMS)是通信主体,智能进入无匙启动模块(PEPS)是通信从体,车身控制 器(BCM)是通信网关,来完成EMS和PEPS的通信认证流程。
[0110] 作为具体的实施例,请参考图2所示,为发动机管理模块和智能进入无匙启动模 块进行XTEA算法的详细流程示意图。在发动机防盗认证开始时,所述发动机管理模块会产 生一组128位的随机数,该128位随机数通过车身控制器通信网关转发给智能进入无匙启 动模块,所述智能进入无匙启动模块将根据接收的所述随机数通过XTEA算法进行加密计 算;所述发动机管理模块内部也会通过XTEA算法进行加密计算。具体地,所述第一输出数 据生成模块10中包括第一加密计算单元,所述第一加密计算单元用于发动机管理模块通 过XTEA算法进行加密计算,具体包括:
[0111] 所述发动机管理模块将发送给智能进入无匙启动模块同样的128位随机数与自 身预存的32位固定码通过加密数组合函数进行计算,组成128位加密数据,然后将所述128 位加密数据与自身预存的128位密钥通过XTEA加密函数模块计算得出128位第一输出数 据,所述128位第一输出数据包括8位替换数据和120位加密数据,发动机管理模块取出 128位第一输出数据中的120位加密数据作为120位参考数据;
[0112] 所述第二输出数据生成模块20中包括第二加密计算单元,所述第二加密计算单 元用于所述智能进入无匙启动模块通过XTEA算法进行加密计算,具体包括:
[0113] 所述智能进入无匙启动模块将接收的128位所述随机数与自身预存的32位固定 码通过加密数组合函数进行计算,组成128位加密数据,将所述128位加密数据与自身预存 的128位密钥通过XTEA算法计算组成128位第二输出数据,所述第二输出数据包括8位替 换数据和120位加密数据,将1所述8位替换数据用所述智能进入无匙启动模块内自身预 存的钥匙认证结果进行替换。
[0114] 作为具体实施例,所述发动机管理模块中的随机数代码(EMS - PEPS)信息如下:
[0115] 信息名称 |地址|信息长度~|类型|说明 随机数代码(IMM0_Code) Μ^16字节 W#~16字节的随机数作为随机数代码
[0116] 其中,所有16字节(bytes)的0x00或Oxff不允许作为有效随机数代码 (challenge code),即正常的发动机防盗认证启动时,发动机管理模块(EMS)发过来的 challenge code不允许是全0或全f ;除非EMS没学习过,还处于初始(virgin)状态, 这样也是为了提高安全性。如果EMS处于virgin状态,这意味着EMS中的ESK (Engine Cryptology Secret Key,发动机防盗密钥)是初始化数值,还没在整车JF线过程进行刷 写,16bytes 的 challenge code 才应该是 Oxff。
[0117] 所述智能进入无匙启动模块中的应答代码即所述替换后的第二输出数据 (EMS - PEPS)信息如下:
[0118] ....................................................信息.....g称^_______________________地址________________信息长瘦_____________________类型__________^....................................................................... ?ρ?^................................................................................................................................I 应答..代..码 回传__给_____EMS______的加_密_应_答__代___码__镇_括______ XX 16字节 事件 (Response^Code) 状态字节
[0119] 其具体的加密应答代码信息中的信号映射如下:
[0120] 字节〇字节 1 字节2WWTTWWTTWWs字节 6| 字节 15 状态 加密应答结果
[0121] 进一步,所述状态位(Status)的定义如下:
[0122] 认证状态~flel |应答值 0^64 PEPS钥匙认证状态:无效 15字节(Oxff) 0^44 PEPS钥匙认证状态:忙 15字节(Orff) 0^46 PEPS应答编码计算:忙 15字节(Oxff) PEPS应答钥匙传输:有效钥匙 计算出的15位应答值 其他数值没有定义 没有定义
[0123] 其中:认证状态定义可以由整车厂自由定义,不局限于上表。
[0124] 如果PEPS接收到EMS发过来的challenge码是全Oxff的,这意味着EMS状态是 virgin。此时,不管PEPS是否处于virgin状态,PEPS都会返回全Oxff作为应答信息给 EMS。同理,如果PEPS处于virgin状态,这意味着PEPS的ESK是初始数值,还没通过E0L (End Of Line,汽车下线)进行刷写或还没钥匙学习;如果接收到一个不合法的challenge code,PEPS 将会返回认证失败(authentication failed)状态给 EMS。
[0125] 作为具体的实施例,所述数据比较控制模块30中的比较单元包括第一比较单元 和第二比较单元,所述控制单元包括第一控制单元和第二控制单元,所述第一比较单元具 体用于所述发动机管理模块首先将自身预存的钥匙认证结果和所述替换后的二输出数据 中的钥匙认证结果进行比较,即判断所述钥匙认证是否合法,所述钥匙认证结果是智能钥 匙模块和智能进入无匙启动模块认证的结果,在所述智能进入无匙启动模块的EEPR0M (电 可擦写可编程只读存储器)中存储有钥匙认证结果的状态,所述发动机管理模块的EEPR0M 中存储有钥匙认证结果的状态定义数据库,发动机管理模块收到所述替换后的第二输出数 据后,会把所述替换后的第二输出数据中的钥匙认证结果和数据库里面的钥匙认证结果对 t匕;如果所述钥匙认证结果中的状态为无效,所述第一控制单元用于将所述发动机管理模 块发出发动机锁止信息到总线上,禁止所述发动机启动,其具体的流程请参考图3所示;
[0126] 所述第二比较单元用于如果所述钥匙认证结果中的状态为有效,即所述钥匙认证 结果合法,继续比较所述第一输出数据中的加密数据和所述替换后的第二输出数据中的加 密数据是否一样;所述第二控制单元用于如果加密数据结果也一样,则发动机防盗认证成 功,即只有钥匙认证和加密数据都匹配,其发动机防盗认证才通过,进而所述发动机管理模 块可以将发动机释放信息发送到总线上,并允许所述发动机启动,其具体的流程请参考图4 所示;否则,将发动机锁止信息发送到总线上,禁止所述发动机启动。
[0127] 根据本发明前述应答代码返回的钥匙认证结果中的状态位定义可知,其返回的钥 匙认证结果中的状态位为有效、无效和忙三种情况。本发明的发明人根据认证过程中认证 状态的各种情况,还制作了针对各种认证状态的通信处理机制,以防止发动机防盗出现各 种无法预估的问题时,不会影响发动机的启动和整车防盗。以下将对各种具体通信处理机 制进行详细说明。
[0128] 作为通信处理机制一种具体的实施例,所述数据比较控制模块30中的控制单元 还包括第三控制单元,所述第三控制单元用于所述钥匙认证结果中的状态为忙时,所述发 动机管理模块在等待第一设定时间后,再次发送和上次一样的随机数给所述智能进入无匙 启动模块进行防盗认证,如果在所述发动机管理模块连续发出第一设定次数后,所述钥匙 认证结果中的状态仍然为忙,所述发动机管理模块将停止发送随机数,并将发动机锁止信 息发送到总线上,禁止所述发动机启动,其具体的流程请参考图5所示;如果发动机管理模 块在连续发出第一设定次数内,只要有一次所述钥匙认证结果中的为有效,则结束发送随 机数,然后按照正常流程进行后续加密数据的比较。其中,所述钥匙认证结果中的状态为 忙,是指所述发动机管理模块接收的所述替换后的第二输出数据中的状态位为忙,具体包 括钥匙认证状态进行中和钥匙认证应答编码计算中两种情况,此时,在所述智能进入无匙 启动模块返回给发动机管理模块的所述替换后的第二输出数据状态位中显示的都为忙。
[0129] 作为一种实施方式,所述第一设定时间的时序参数设为tECMAuthDelayRetry,其 表达的含义是指在该时间延时后,发动机管理模块开始发送下一个随机数请求;如果发动 机管理模块从智能进入无匙启动模块接收到忙状态或tKeyStatusRx (EMS在发送随机数后 等待PEPS回复的超时时间)超时或智能进入无匙启动模块应答值和发动机管理模块不一 致,在该第一设定时间后智能进入无匙启动模块和发动机管理模块之间会触发新的认证尝 试。其中,所述第一设定时间的设置取决于EMS产生随机数的计算速度和BCM转发报文的 时间;优选地,所述第一设定时间为50-200毫秒,第一设定次数为5次,即在等待50-200毫 秒后,再次发送和上次一样的随机数给智能进入无匙启动模块进行认证,且可循环发送的 次数为5次。
[0130] 作为通信处理机制另一种具体的实施例,所述数据比较控制模块30中的控制单 元还包括第四控制单元,所述第四控制单元用于当所述发动机管理模块或/和所述智能进 入无匙启动模块内密钥故障,使所述第一输出数据中的加密数据与所述替换后的第二输出 中的加密数据不一样时,所述发动机管理模块将发出新的随机数给所述智能进入无匙启动 模块进行防盗认证,如果防盗认证通过,所述发动机管理模块将发动机释放信息发送到总 线上,并允许所述发动机启动;否则,所述发动机管理模块将停止发送认证流,并将发动机 锁止信息发送到总线上,禁止所述发动机启动,其具体的流程请参考图6所示。其中,所述 第一输出数据中的加密数据与所述替换后的第二输出中的加密数据不一样的原因可能有: 1、EMS发出随机数给PEPS,所述随机数被其他外部节点(如盗车贼的工具)获取,经过计算 (因不知道ESK计算肯定错误)返回给EMS,这样使加密计算值不一致,通信失败;2、可能由 于PEPS软件出故障(如写入内存的ESK丢失等),计算出来的回复值错误;3、EMS的ESK丢 失,导致EMS算出来的值和PEPS的值不一致等。
[0131] 作为通信处理机制再一种具体的实施例,所述数据比较控制模块30中的控制单 元还包括第五控制单元,所述第五控制单元用于当所述发动机管理模块和所述智能进入无 匙启动模块之间因通信故障,使所述发动机管理模块在第二设定时间内没有收到所述替换 后的第二输出数据返回时,所述发动机管理模块在等待第一设定时间后,再次发送和上次 一样的随机数给所述智能进入无匙启动模块进行防盗认证,如果在所述发动机管理模块连 续发出第一设定次数后仍然没有收到所述替换后的第二输出数据返回时,所述发动机管理 模块将停止发送随机数,并将发动机锁止信息发送到总线上,禁止所述发动机启动,其具体 的流程请参考图7所示;如果所述发动机管理模块在连续发出第一设定次数内,只要有一 次收到所述替换后的第二输出数据,则结束发送随机数,然后按照正常流程进行后续钥匙 认证的比较。其中,所述发动机管理模块和所述智能进入无匙启动模块之间产生通信故障 的原因可能有:PEPS有故障(PEPS不会回复)、总线故障(PEPS不能成功收到EMS的随机 数)、BCM网关故障(不转发EMS随机数和PEPS回复)等。
[0132] 作为一种实施方式,所述第二设定时间的时序参数设为前述的tKeyStatusRx,其 表达的含义是指EMS在发送随机数后等待PEPS回复的超时时间,如果超时EMS没有收到 PEPS的回复信息,EMS会在第一设定时间后再触发再发送随机数。其中,所述第二设定时间 取决于PEPS和钥匙认证时间、PEPS加密数据时间、以及BCM转发报文的时间;优选地,所述 第二设定时间为50-150毫秒。
[0133] 本发明提供的发动机防盗认证系统中,所述发动机管理模块中的参考数据和智能 进入无匙启动模块返回的应答数据,在分别通过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数据,在E0L过程中随机 产生,存储在EMS和PEPS非可丢失内存中,可通过指定的诊断服务来读/写,且ESK在EMS 和PEPS中都仅能写入一次。
[0134] 因此,所述的发动机防盗密钥在进行发动机防盗认证之前,可对所述发动机管理 模块和防盗控制中自身预存的密钥先进行匹配,然后再进行后续的防盗认证流程。本发明 的发明人根据前述匹配要求,还制作了各种防盗E⑶匹配流程,形成完善的匹配终端,有利 于整个防盗认证流程的平台化,适合大批量自动化生产和售后诊断维修,具体在所述发动 机控制器认证系统中设置匹配模块,用于将发动机管理模块或/和所述智能进入无匙启动 模块中自身预存的密钥进行匹配。以下将对发动机防盗密钥各种具体匹配流程进行详细说 明。
[0135] 作为一种具体的实施例,所述匹配模块包括第一匹配模块,用于发动机管理模块 和智能进入无匙启动模块中预存的密钥,在出厂时如果只有一方没有密钥,即只有发动机 管理模块有密钥或者只有智能进入无匙启动模块有密钥,此时只需要一方进行学习匹配。 针对此种情况,匹配流程请参考图8所示,其具体的流程在前述认证方法中已有详细说明, 在此不再赘述。
[0136] 作为另一种具体的实施例,所述发动机防盗认证系统中的匹配模块包括第二匹配 模块,用于所述发动机管理模块和智能进入无匙启动模块中预存的密钥,在出厂时如果双 方都没有密钥,即所述发动机管理模块和智能进入无匙启动模块中都没有密钥,此时只需 要双方都进行学习匹配。针对此种情况,匹配流程请参考图9所示,其具体的流程在前述认 证方法中已有详细说明,在此不再赘述。
[0137] 作为再一种具体的实施例,所述发动机防盗认证系统中的匹配模块包括第三匹配 模块,用于所述发动机管理模块和智能进入无匙启动模块中预存的密钥,在出厂时如果需 要更换智能进入无匙启动模块或者将已经学习的智能进入无匙启动模块用到另外一台车 上,此时只需要对智能进入无匙启动模块进行学习匹配。针对此种情况,匹配流程请参考图 10所示,其具体的流程在前述认证方法中已有详细说明,在此不再赘述。
[0138] 作为又一种具体的实施例,所述发动机防盗认证系统中的匹配模块包括第四匹配 模块,用于所述发动机管理模块和智能进入无匙启动模块中预存的密钥,在出厂时如果需 要更换发动机管理模块或者将已经学习的发动机管理模块用到另外一台车上,此时只需要 对发动机管理模块进行学习匹配。针对此种情况,匹配流程请参考图11所示,其具体的流 程在前述认证方法中已有详细说明,在此不再赘述。
[0139] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精 神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1. 一种发动机防盗系统的发动机防盗认证方法,该发动机防盗系统包括智能钥匙模 块、智能进入无匙启动模块和发动机管理模块,所述发动机防盗认证包括钥匙认证和发动 机控制器认证,所述钥匙认证完成所述智能钥匙模块和所述智能进入无匙启动模块之间的 认证,所述发动机控制器认证完成所述智能进入无匙启动模块和所述发动机管理模块之间 的认证,其特征在于,所述智能进入无匙启动模块和所述发动机管理模块之间通过车身控 制器网关通信,在完成所述钥匙认证后所述发动机控制器认证包括以下步骤 : 所述发动机管理模块产生一组随机数,并将所述随机数通过车身控制器通信网关转发 给智能进入无匙启动模块,根据自身产生的随机数、自身预存的固定码和密钥,通过XTEA 算法进行加密计算得到第一输出数据,所述第一输出数据包括加密数据; 所述智能进入无匙启动模块根据接收到的所述随机数、自身预存的固定码和密钥,通 过XTEA算法进行加密计算得到第二输出数据,所述第二输出数据包括替换数据和加密数 据,将所述第二输出数据中的替换数据用所述智能进入无匙启动模块自身预存的钥匙认证 结果替换,将替换后的第二输出数据通过所述车身控制器通信网关回转给所述发动机管理 模块; 所述发动机管理模块将自身预存的钥匙认证结果和所述第一输出数据中的加密数据 与所述替换后的第二输出数据进行比较,若匹配,将发动机释放信息发送到总线上,并允许 所述发动机启动;否则,将发动机锁止信息发送到总线上,禁止所述发动机启动。
2. 根据权利要求1所述的发动机防盗系统的发动机防盗认证方法,其特征在于, 所述发动机管理模块通过XTEA算法进行加密计算,具体包括以下步骤: 所述发动机管理模块将128位随机数与自身预存的32位固定码通过加密数组合函数 进行计算,组成128位加密数据,然后将所述128位加密数据与自身预存的128位密钥通过 XTEA加密函数模块计算得出128位第一输出数据,所述128位第一输出数据包括8位替换 数据和120位加密数据; 所述智能进入无匙启动模块通过XTEA算法进行加密计算,具体包括以下步骤: 所述智能进入无匙启动模块将接收的128位所述随机数与自身预存的32位固定码通 过加密数组合函数进行计算,组成128位加密数据,将所述128位加密数据与自身预存的 128位密钥通过XTEA算法计算组成128位第二输出数据,所述第二输出数据包括8位替换 数据和120位加密数据,将所述8位替换数据用所述智能进入无匙启动模块内预存的钥匙 认证结果进行替换。
3. 根据权利要求1所述的发动机防盗系统的发动机防盗认证方法,其特征在于,所述 发动机管理模块将自身预存的钥匙认证结果和所述第一输出数据中的加密数据与所述替 换后的第二输出数据进行比较,若匹配,将发动机释放信息发送到总线上,并允许所述发动 机启动;否则,将发动机锁止信息发送到总线上,禁止所述发动机启动的步骤,具体包括: 所述发动机管理模块首先将自身预存的钥匙认证结果和所述替换后的第二输出数据 中的钥匙认证结果进行比较,如果钥匙认证结果中的状态为无效,则所述发动机管理模块 发出发动机锁止信息到总线上,禁止所述发动机启动; 如果钥匙认证结果中的状态为有效,则继续比较所述第一输出数据中的加密数据和所 述替换后的第二输出数据中的加密数据是否一样;如果加密数据一样,则匹配,所述发动机 管理模块将发动机释放信息发送到总线上,并允许所述发动机启动;否则,将所述发动机锁 止信息发送到总线上,禁止所述发动机启动。
4. 根据权利要求3所述的发动机防盗系统的发动机防盗认证方法,其特征在于,如果 所述钥匙认证结果中的状态为忙,所述发动机管理模块在等待第一设定时间后,再次发送 和上次一样的随机数给所述智能进入无匙启动模块进行防盗认证,如果在所述发动机管理 模块连续发出第一设定次数后,所述钥匙认证结果中的状态仍然为忙,所述发动机管理模 块将停止发送随机数,并将发动机锁止信息发送到总线上,禁止所述发动机启动。
5. 根据权利要求1所述的发动机防盗系统的发动机防盗认证方法,其特征在于,所述 方法还包括:当所述发动机管理模块或/和所述智能进入无匙启动模块内因密钥故障,导 致所述第一输出数据中的加密数据与所述替换后的第二输出数据中的加密数据不一样时, 则所述发动机管理模块将发出新的随机数给所述智能进入无匙启动模块进行防盗认证,如 果防盗认证通过,所述发动机管理模块将发动机释放信息发送到总线上,并允许所述发动 机启动;否则,所述发动机管理模块将停止发送认证流,并将发动机锁止信息发送到总线 上,禁止所述发动机启动。
6. 根据权利要求1所述的发动机防盗系统的发动机防盗认证方法,其特征在于,所述 方法还包括:当所述发动机管理模块和所述智能进入无匙启动模块之间因通信故障,导致 所述发动机管理模块在第二设定时间内没有收到所述替换后的第二输出数据返回时,所述 发动机管理模块在等待第一设定时间后,再次发送和上次一样的随机数给所述智能进入无 匙启动模块进行防盗认证,如果在所述发动机管理模块连续发出第一设定次数后仍然没有 收到所述替换后的第二输出数据返回时,所述发动机管理模块将停止发送随机数,并将发 动机锁止信息发送到总线上,禁止所述发动机启动。
7. -种发动机防盗系统的发动机防盗认证装置,该发动机防盗系统包括智能钥匙模 块、智能进入无匙启动模块和发动机管理模块,所述发动机防盗认证装置包括钥匙认证系 统和发动机控制器认证系统,所述钥匙认证系统完成所述智能钥匙模块和所述智能进入无 匙启动模块之间的认证,所述发动机控制器认证系统完成所述智能进入无匙启动模块和所 述发动机管理模块之间的认证,其特征在于,所述智能进入无匙启动模块和所述发动机管 理模块之间通过车身控制器网关通信,在完成所述钥匙认证系统认证后进行所述发动机控 制器认证系统认证,所述发动机控制器认证系统包括: 第一输出数据生成模块,用于所述发动机管理模块产生一组随机数,并将所述随机数 通过车身控制器通信网关转发给智能进入无匙启动模块,根据自身产生的随机数、自身预 存的固定码和密钥,通过XTEA算法进行加密计算得到第一输出数据,所述第一输出数据包 括加密数据; 第二输出数据生成模块,用于所述智能进入无匙启动模块根据接收到的所述随机数、 自身预存的固定码和密钥,通过XTEA算法进行加密计算得到第二输出数据,所述第二输出 数据包括替换数据和加密数据,将所述第二输出数据中的替换数据用所述智能进入无匙启 动模块自身预存的钥匙认证结果替换,将替换后的第二输出数据通过所述车身控制器通信 网关回转给所述发动机管理模块; 数据比较控制模块,包括比较单元和控制单元,所述比较单元用于所述发动机管理模 块将自身预存的钥匙认证结果和所述第一输出数据中的加密数据与所述替换后的第二输 出数据进行比较;所述控制单元用于根据所述比较单元的比较结果进行控制,所述比较结 果若匹配,将发动机释放信息发送到总线上,并允许所述发动机启动;否则,将发动机锁止 信息发送到总线上,禁止所述发动机启动。
8. 根据权利要求7所述的发动机防盗系统的发动机防盗认证装置,其特征在于,所述 第一输出数据生成模块中包括第一加密计算单元,所述第一加密计算单元用于所述发动机 管理模块通过XTEA算法进行加密计算,具体包括: 所述发动机管理模块将128位随机数与自身预存的32位固定码通过加密数组合函数 进行计算,组成128位加密数据,然后将所述128位加密数据与自身预存的128位密钥通过 XTEA加密函数模块计算得出128位第一输出数据,所述128位第一输出数据包括8位替换 数据和120位加密数据; 所述第二输出数据生成模块中包括第二加密计算单元,所述第二加密计算单元用于所 述智能进入无匙启动模块通过XTEA算法进行加密计算,具体包括: 所述智能进入无匙启动模块将接收的128位所述随机数与自身预存的32位固定码通 过加密数组合函数进行计算,组成128位加密数据,将所述128位加密数据与自身预存的 128位密钥通过XTEA算法计算组成128位第二输出数据,所述第二输出数据包括8位替换 数据和120位加密数据,将所述8位替换数据用所述智能进入无匙启动模块内预存的钥匙 认证结果进行替换。
9. 根据权利要求7所述的发动机防盗系统的发动机防盗认证装置,其特征在于,所述 比较单元具体包括第一比较单元和第二比较单元,所述控制单元包括第一控制单元和第二 控制单元, 所述第一比较单元用于将所述发动机管理模块自身预存的钥匙认证结果和所述替换 后的第二输出数据中的钥匙认证结果进行比较,所述第一控制单元用于如果所述钥匙认证 结果中的状态为无效时,所述发动机管理模块发出发动机锁止信息到总线上,禁止所述发 动机启动; 所述第二比较单元用于当所述钥匙认证结果中的状态为有效时,继续比较所述第一输 出数据中的加密数据和所述替换后的第二输出数据中的加密数据是否一样;所述第二控制 单元用于如果加密数据一样,则匹配,所述发动机管理模块将发动机释放信息发送到总线 上,并允许所述发动机启动;否则,将所述发动机锁止信息发送到总线上,禁止所述发动机 启动。
10. 根据权利要求9所述的发动机防盗系统的发动机防盗认证装置,其特征在于,所 述控制单元还包括第三控制单元,所述第三控制单元用于当所述钥匙认证结果中的状态为 忙时,所述发动机管理模块在等待第一设定时间后,再次发送和上次一样的随机数给所述 智能进入无匙启动模块进行防盗认证,如果在所述发动机管理模块连续发出第一设定次数 后,所述钥匙认证结果中的状态仍然为忙,所述发动机管理模块将停止发送随机数,并将发 动机锁止信息发送到总线上,禁止所述发动机启动。
11. 根据权利要求7所述的发动机防盗系统的发动机防盗认证装置,其特征在于,所述 控制单元还包括第四控制单元,所述第四控制单元用于当所述发动机管理模块或/和所述 智能进入无匙启动模块内因密钥故障,导致所述第一输出数据中的加密数据与所述替换后 的第二输出数据中的加密数据不一样时,所述发动机管理模块将发出新的随机数给所述智 能进入无匙启动模块进行防盗认证,如果防盗认证通过,所述发动机管理模块将发动机释 放信息发送到总线上,并允许所述发动机启动;否则,所述发动机管理模块将停止发送认证 流,并将发动机锁止信息发送到总线上,禁止所述发动机启动。
12. 根据权利要求7所述的发动机防盗系统的发动机防盗认证装置,其特征在于,所述 控制单元还包括第五控制单元,所述第五控制单元用于当所述发动机管理模块和所述智能 进入无匙启动模块之间因通信故障,使所述发动机管理模块在第二设定时间内没有收到所 述替换后的第二输出数据返回时,所述发动机管理模块在等待第一设定时间后,再次发送 和上次一样的随机数给所述智能进入无匙启动模块进行防盗认证,如果在所述发动机管理 模块连续发出第一设定次数后仍然没有收到所述替换后的第二输出数据返回时,所述发动 机管理模块将停止发送随机数,并将发动机锁止信息发送到总线上,禁止所述发动机启动。
13. 根据权利要求7所述的发动机防盗系统的发动机防盗认证装置,其特征在于,所述 发动机控制器认证系统还包括匹配模块,用于将所述发动机管理模块或/和所述智能进入 无匙启动模块中自身预存的密钥进行匹配。
【文档编号】B60R25/04GK104118392SQ201310157281
【公开日】2014年10月29日 申请日期:2013年4月28日 优先权日:2013年4月28日
【发明者】赖瑞福, 杨土超, 杨佩君, 任强 申请人:广州汽车集团股份有限公司