浅谈电动汽车防盗认证算法
为你等待
|
2019.12.28
|
0
+关注

一、 概述

整车防盗系统,作为整车基本功能中的关键功能,在整车下电锁车和上电解锁过程中,通过密钥的加密和适配,起到防盗和安全保护整车的作用。而传统车一般由防盗认证系统与发动机管理系统EMS来实现,但对于电动汽车,该功能一般由防盗认证系统和整车控制系统VCU来实现。

二、 防盗系统架构

防盗系统主要由如下部件组成:PEPS(集成有IMMO基站),VCU、线圈、智能钥匙(集成有 Transponder)组成。系统的关键认证部件PEPS和VCU可以通过终检设备和诊断设备(Tester)配置和诊断。系统架构同如下图所示:

三、 功能描述

防盗控制器用于在未经合法认证情况下,禁止VCU上高压启动,从而实现车辆防盗功能。整个防盗认证过程中,不需要用户参与,认证过程对用户不可见。

四、 防盗认证

防盗系统认证包括: PEPS切换电源档位到系统允许用户Ignition ON,并等待VCU发出的Challenge Code。 PEPS与VCU之间双向通讯认证。VCU首先加密发送Challenge Code给 PEPS。如果加密数据正确,则PEPS回复有效的加密响应给VCU;反之,如果加密数据错误,则PEPS回复无效响应,并及时告警。只有在成功完成了认证后,VCU才允许整车启动。

五、 主要系统状态

防盗控制器(包括PEPS和VCU)有两种状态:解防状态(Unset/Release)和设防状态(Set/Lock)。

(1)当PEPS处于设防状态时,PEPS不接收任何VCU发送的信息。只有当有合法钥匙在车内时,PEPS才处于解防状态。

(2)VCU在上电初始化时的默认状态为设防状态。当VCU与PEPS之间通讯认证不成功时,VCU处于设防状态;反之,若VCU与PEPS之间通讯认证成功时,VCU处于解防状态。VCU只有在处于解防状态时,才能允许整车启动。

六、 PEPS与VCU之间的通信认证

PEPS和VCU通过CAN网络进行认证。只有当KL15为ON时,才进行认证。PEPS与VCU共享一组同样的SK和PIN,其中SK长度为64 bits,PIN为32 bits,PIN通过诊断写入到PEPS、VCU、TBOX;初始SK由PEPS生成,通过学习存放到TBOX和VCU中。

七、 认证基本流程

(1)当KL15为ON时,PEPS等待接收VCU发送的Challenge消息

(2)当VCU完成自身初始化后,VCU发送Challenge消息。如果未接收到PEPS的应答消VCU在2秒内每隔150ms发送相同的Challenge消息。如果在2秒内仍未接收到PEPS的应答消息,则本次认证失败。其中, Challenge消息是对PIN( 4字节)进行加密和随机数( 4字节)的数据。如果VCU是没有学习过的(即默认的SK或PIN),VCU禁止发送Challenge消息。

(3) 接收到Challenge消息后, PEPS使用SK和算法对Challenge消息进行解码,并获取PIN数据。如果接收的PIN通过解密后和本地存储的PIN匹配, PEPS将发送认证通过应答消息,其中认证通过应答消息也是对PIN( 4字节)进行加密和随机数( 4节)的数据; 如果字PEPS接收到的PIN通过解密后和本地存储的PIN不匹配, PEPS将发送认证失败应答消息,其中认证失败应答消息是8字节的全0xFF数据。

(4) 接收到认证应答消息后,如果不是全0xFF数据, VCU使用SK和算法对应答消息进行解码,然后判断从PEPS接收到的PIN码和自身存放的PIN是否匹配,如果匹配,则双向认证通过,否则,双向认证失败;如果是全0xFF,双向认证也失败。

缩写术语

PEPS Passive Entry Passive Start 

IMMO Immobilizer 

PIN Parts Identification Number 

SK Secret Key

小结

以上简要的介绍了电动汽车防盗认证的一般常见算法,在实际项目实现过程中,各具体系统算法实现上可能会有差异,但并基本的思路和框架应该不会有太大差异。

鉴于各算法实现的差异,本算法并未给出具体PIN码和SK加密以及解密算法,VCU_Challenge报文,PEPS_Auth报文,VCU学习PEPS的SK,以及PEPS学习VCU的SK等具体算法内容。对于认证过程及流程,应该可以给到相关读者一定的参考及帮助作用。

精选留言
延伸阅读
2020.10.02
2897阅读
更多报告干货
写留言
4375
阅读
收藏
回到顶部