汽车远程无钥匙进入系统方案和VKSP安全协议

时间:2022-08-28 05:32:23

汽车远程无钥匙进入系统方案和VKSP安全协议

摘要:针对日益增长的汽车遥控无钥匙进入系统(RKE)市场,飞思卡尔半导体近期推出了包含硬件和软件安全协议(VKSP)的整体解决方案。本文介绍此方案的特点。

关键词:无钥匙进入系统;安全协议;加密

汽车遥控无钥匙进入系统(RKE)由发射端(遥控钥匙)和集成于车身控制模块中的接收端组成。发射端将用户按键命令通过数据编码、加密和组帧后通过射频发射电路发射,而车内接收端则将接收到的信号通过射频解调、数据解码和帧解密后完成相应的车门、车灯控制和报警等用户指令。系统框图如图1所示。

这里,以发射端使用低端8位MC9SO8QG4/8(4k/8K Flash)微控制器、接收端使用UHF射频接收芯片MC33596、加密协议采用可变密钥安全协议(VKSP)的解决方案为例,介绍RKE解决方案的特点。

其中,可变密钥安全协议是飞思卡尔专门为遥控类应用市场开发的安全传输协议。该协议采用128位密钥加密验证,密钥中的32位可变密钥(计数器)部分随时间和按键而增加,增强了安全性。除了采用AES加密算法模块外,用户也可以根据需要,如缩小程序大小,减少解密时间等,使用自己的加密算法模块。由于该协议采用纯软件实现,因此可以灵活使用于各类微控制器。

在VKSP安全协议下,每次按下钥匙,系统将会产生一个发送帧。发送帧有两个部分:数据部分和消息验证码(MAC)部分。数据部分不用加密,由三个部分共64位组成,即钥匙号3个字节、用户命令1个字节、可变密钥4个字节,每次发送随时间和用户按键而增加,以确保即使用户命令相同,每次发送的消息帧内容也不会重复。消息验证码部分则有8个字节,由加密模块产生。

接收过程分为三步,如图2所示。

其中,步骤一中接收端检查接收到的发送帧中的钥匙号是否存在于接收端存储的有效钥匙号数据库中。如果存在,则从接收端数据库中同时取出该钥匙对应的本地密钥和可变密钥,进入下一步骤,否则丢弃该帧。

步骤二检查发送帧中的可变密钥是否大于步骤一中接收端数据库中该钥匙目前的可变密钥,如果是,进入下一步骤,否则丢弃该帧。这一步骤保证了任何再次重复发送的帧不会被认为有效帧。

步骤三进行消息码验证。由接收帧中的数据字段和从接收数据库中取出的该钥匙本地密钥通过加密模块生成消息验证码,由于发送端和接收端使用相同的加密模块,所以,如果发送端和接收端生成的两个消息验证码相同,则该帧被认为有效,用户命令被执行。同时,更新该钥匙当前的可变密钥至接收端数据库中。

由上述过程可知,每一把新钥匙必须首先完成学习过程,即将该钥匙的钥匙号和本地密钥存储到接收端数据库以后,该钥匙才能被识别使用。为了系统安全性,接收系统必须在指定的安全环境被激活的状态下才进行学习帧的识别,例如用户在接收端按下一个特定的按键或者开关。

接收端首先检查系统是否处于安全环境激活状态,从而决定是否进行学习帧识别。

发送端利用一个伪随机数发生器产生128位随机数,然后和厂商提供的128位oEM码(发送端和接收端必须共享同样的0EM码)通过加密模块产生128位输出数据,截取其中64位作为消息验证码,截取特定位数存储在发送端作为该钥匙本地密钥。同时,将该128位随机数和消息验证码通过两个连续的学习帧发送。两个学习帧分别由数值0XFE和OXFF特征码来识别。

接收端通过特征码检测到学习帧并提取其中的128位随机数,然后依靠和发送端同样的厂商128位OEM码和加密模块完成消息验证码比对验证,又按照和发送端同样的输出截取方式生成和发送端相同的该钥匙本地密钥,最后将该本地密钥和钥匙号存储在接收端数据库中,从而完成该钥匙的学习过程。

可以看出,本文的RKE整体方案中,系统选用通用MCU控制器,客户可以根据需要添加应用功能,增强了灵活性。接收端不需要单独的解密芯片,解密算法集成在车身控制器中实现,简化了方案,节约了成本。钥匙端系统当没有用户按键时候,处于休眠状态,节省系统功耗。MC33596(或者双向收发芯片MC33696)支持304MHz~915MHz的OOK和FSK解调,片内支持数据曼彻斯特解码,节省了外部微控制器解码软件系统占用,此外,其具有片内定时唤醒、片脚唤醒并可设置特定帧唤醒外部MCU功能,节省系统功耗,同时支持两套系统参数配置。上述特性也使得该芯片还可以应用于被动无钥匙门禁系统(PKE)和胎压检测(TPMS)系统中。本地密钥在钥匙每次的学习过程中通过伪随机数发生器产生,所以对每把钥匙的每次学习过程将产生和存储不同的钥匙密钥,增强了保密性。

注明:本文中所提芯片均已量产,数据资料可至飞思卞尔官方网站检索,VKSP协议详情也可参考:/vkso。

上一篇:基于ADV212的图像压缩系统设计 下一篇:在嵌入式系统中实现USB主机功能