飞思卡尔汽车远程无钥匙进入系统(RKE)方案和VKSP安全协议
时间:03-07
来源:电子产品世界
点击:
针对日益增长的汽车遥控无钥匙进入系统(RKE)市场,飞思卡尔半导体近期推出了包含硬件和软件安全协议(VKSP)的整体解决方案。
汽车遥控无钥匙进入系统(RKE)由发射端(遥控钥匙)和集成于车身控制模块中的接收端组成。发射端将用户按键命令通过数据编码、加密和组帧后通过射频发射电路发射,而车内接收端则将接收到的信号通过射频解调、数据解码和帧解密后完成相应车门、车灯控制和报警等用户指令,系统框图如图1。
图1 飞思卡尔RKE系统简化框图
发射端:使用Freescale低端8位MC9S08QG4/8(4k/8K flash)微控制器完成用户按键的数据编码、加密组帧,再通过SAW声表谐振器电路发射至UHF频段。
接收端:使用UHF射频接收芯片MC33596完成信号解调和数据曼彻斯特解码,再将数据传送到车身主控芯片(本参考设计选用了8位MC9S08DZ系列)进行数据解密和指令执行。
加密协议:采用Freescale研发的可变密钥安全协议(VKSP)。
可变密钥安全协议(VKSP)是飞思卡尔专门为遥控类应用市场开发的安全传输协议。VKSP的发送过程如图2,其特点包括:
* 采用128位密钥加密验证,增强了安全性;
* 密钥中的32位可变密钥(计数器)部分随时间和按键而增加;
* 即使在遥控距离外被许多次按键操作之后,该钥匙也可以继续正常使用,不需要和接收端重新进行该钥匙的学习流程;
* 最大支持254个不同指令传输;
* 除了采用飞思卡尔提供的AES加密算法模块外,用户也可以根据需要(如缩小程序大小,减少解密时间)使用自己的加密算法模块;
* 纯软件实现,可以灵活的使用于各类微控制器;
* 软件大小:不包含AES加密模块约为1.5k字节,如果含AES模块接近3k字节,软件以库函数的形式免费授权给采用飞思卡尔方案的客户使用。
图2 VKSP发送帧产生
每次按下钥匙,将会产生一个发送帧。发送帧有两个部分:数据部分和消息验证码(MAC)部分。数据部分不用加密,由三个部分共64位组成:钥匙号:3个字节。用户命令:1个字节。可变密钥:4个字节,每次发送随时间和用户按键而增加,以确保即使用户命令相同,每次发送的消息帧内容也不会重复。消息验证码(MAC)部分则有8个字节,由加密模块产生。接收过程分为三步,如图3。
图3 VKSP接收帧的验证
* 步骤一:接收端检查接收到的发送帧中的钥匙号是否存在于接收端存储的有效钥匙号数据库中,如果存在,则从接收端数据库中同时取出该钥匙对应的本地密钥(Local Key)和可变密钥 (Variable Key),进入下一步骤, 否则丢弃该帧。
* 步骤二:检查发送帧中的可变密钥是否大于步骤一中接收端数据库中该钥匙目前的可变密钥,如是,进入下一步骤,否则丢弃该帧。?这一步骤保证了任何再次重复发送的帧不会被认为有效帧。
* 步骤三:进行消息码验证。由接收帧中的数据字段和从接收数据库中取出的该钥匙本地密钥通过加密模块生成消息验证码,由于发送端和接收端使用相同的加密模块,所以,如果发送端和接收端生成的两个消息验证码相同,则该帧被认为有效,用户命令被执行。同时,更新该钥匙当前的可变密钥至接收端数据库中。
由上述过程可知,每一把新钥匙必须首先完成学习过程,即将该钥匙的钥匙号和本地密钥存储到接收端数据库以后,该钥匙才能被识别使用。为了系统安全性,接收系统必须在指定的安全环境被激活的状态下才进行学习帧的识别,例如用户在接收端按下一个特定的按键或者开关,图4表示了学习过程和学习帧的结构。
图4 VKSP学习过程和学习帧
* 接收端首先检查是否处于安全环境激活状态,从而决定是否进行学习帧识别。
* 发送端利用一个伪随机数发生器产生128位随机数,然后和厂商提供的128位OEM码(发送端和接收端必须共享同样的OEM码)通过加密模块产生128位输出数据,截取其中64位作为消息验证码,截取特定位数存储在发送端作为该钥匙本地密钥。同时,将该128位随机数和消息验证码通过两个连续的学习帧发送。两个学习帧分别由数值0XFE和0XFF特征码来识别。
* 接收端通过特征码检测到学习帧并提取其中的128位随机数,然后依靠和发送端同样的厂商128位OEM码和加密模块完成消息验证码比对验证,又按照和发送端同样的输出截取方式生成和发送端相同的该钥匙本地密钥,最后将该本地密钥和钥匙号存储在接收端数据库中,从而完成该钥匙的学习过程。
综上所述,飞思卡尔半导体的RKE整体方案主要特点及其优势如下所述。
* 系统选用通用MCU控制器,客户可以根据需要添加应用功能,增强了灵活性;。
* 接收端不需要单独的解密芯片,解密算法集成在车身控制器中实现,简化了方案,节约了成本。
* 钥匙端系统当没有用户按键时候,处于休眠状态,节省系统功耗。
* UHF接收芯片MC33596(或者双向收发芯片MC33696)支持304MHz到915Mhz的OOK和FSK解调;片内支持数据曼彻斯特解码,节省了外部微控制器解码软件系统占用;具有片内定时唤醒、片脚唤醒并可设置特定帧唤醒外部MCU功能,节省系统功耗;同时支持两套系统参数配置。上述特性也使得该芯片还可以应用于被动无钥匙门禁系统(PKE)和胎压检测(TPMS)系统中。
* VKSP数据协议:纯软件实现,采用128位AES加密,增加了安全性;本地密钥在钥匙每次的学习过程中通过伪随机数发生器产生,所以对每把钥匙的每次学习过程将产生和存储不同的钥匙密钥,增强了保密性。
该方案评估系统实物如图5和图6。
图5 RKE评估系统钥匙端照片
图6 RKE评估系统接收端照片
*注明:本文中所提芯片均已量产,数据资料可至飞思卡尔官方网站检索,VKSP协议详情也可参考:www.freescale.com/vksp 。
汽车遥控无钥匙进入系统(RKE)由发射端(遥控钥匙)和集成于车身控制模块中的接收端组成。发射端将用户按键命令通过数据编码、加密和组帧后通过射频发射电路发射,而车内接收端则将接收到的信号通过射频解调、数据解码和帧解密后完成相应车门、车灯控制和报警等用户指令,系统框图如图1。
图1 飞思卡尔RKE系统简化框图
发射端:使用Freescale低端8位MC9S08QG4/8(4k/8K flash)微控制器完成用户按键的数据编码、加密组帧,再通过SAW声表谐振器电路发射至UHF频段。
接收端:使用UHF射频接收芯片MC33596完成信号解调和数据曼彻斯特解码,再将数据传送到车身主控芯片(本参考设计选用了8位MC9S08DZ系列)进行数据解密和指令执行。
加密协议:采用Freescale研发的可变密钥安全协议(VKSP)。
可变密钥安全协议(VKSP)是飞思卡尔专门为遥控类应用市场开发的安全传输协议。VKSP的发送过程如图2,其特点包括:
* 采用128位密钥加密验证,增强了安全性;
* 密钥中的32位可变密钥(计数器)部分随时间和按键而增加;
* 即使在遥控距离外被许多次按键操作之后,该钥匙也可以继续正常使用,不需要和接收端重新进行该钥匙的学习流程;
* 最大支持254个不同指令传输;
* 除了采用飞思卡尔提供的AES加密算法模块外,用户也可以根据需要(如缩小程序大小,减少解密时间)使用自己的加密算法模块;
* 纯软件实现,可以灵活的使用于各类微控制器;
* 软件大小:不包含AES加密模块约为1.5k字节,如果含AES模块接近3k字节,软件以库函数的形式免费授权给采用飞思卡尔方案的客户使用。
图2 VKSP发送帧产生
每次按下钥匙,将会产生一个发送帧。发送帧有两个部分:数据部分和消息验证码(MAC)部分。数据部分不用加密,由三个部分共64位组成:钥匙号:3个字节。用户命令:1个字节。可变密钥:4个字节,每次发送随时间和用户按键而增加,以确保即使用户命令相同,每次发送的消息帧内容也不会重复。消息验证码(MAC)部分则有8个字节,由加密模块产生。接收过程分为三步,如图3。
图3 VKSP接收帧的验证
* 步骤一:接收端检查接收到的发送帧中的钥匙号是否存在于接收端存储的有效钥匙号数据库中,如果存在,则从接收端数据库中同时取出该钥匙对应的本地密钥(Local Key)和可变密钥 (Variable Key),进入下一步骤, 否则丢弃该帧。
* 步骤二:检查发送帧中的可变密钥是否大于步骤一中接收端数据库中该钥匙目前的可变密钥,如是,进入下一步骤,否则丢弃该帧。?这一步骤保证了任何再次重复发送的帧不会被认为有效帧。
* 步骤三:进行消息码验证。由接收帧中的数据字段和从接收数据库中取出的该钥匙本地密钥通过加密模块生成消息验证码,由于发送端和接收端使用相同的加密模块,所以,如果发送端和接收端生成的两个消息验证码相同,则该帧被认为有效,用户命令被执行。同时,更新该钥匙当前的可变密钥至接收端数据库中。
由上述过程可知,每一把新钥匙必须首先完成学习过程,即将该钥匙的钥匙号和本地密钥存储到接收端数据库以后,该钥匙才能被识别使用。为了系统安全性,接收系统必须在指定的安全环境被激活的状态下才进行学习帧的识别,例如用户在接收端按下一个特定的按键或者开关,图4表示了学习过程和学习帧的结构。
图4 VKSP学习过程和学习帧
* 接收端首先检查是否处于安全环境激活状态,从而决定是否进行学习帧识别。
* 发送端利用一个伪随机数发生器产生128位随机数,然后和厂商提供的128位OEM码(发送端和接收端必须共享同样的OEM码)通过加密模块产生128位输出数据,截取其中64位作为消息验证码,截取特定位数存储在发送端作为该钥匙本地密钥。同时,将该128位随机数和消息验证码通过两个连续的学习帧发送。两个学习帧分别由数值0XFE和0XFF特征码来识别。
* 接收端通过特征码检测到学习帧并提取其中的128位随机数,然后依靠和发送端同样的厂商128位OEM码和加密模块完成消息验证码比对验证,又按照和发送端同样的输出截取方式生成和发送端相同的该钥匙本地密钥,最后将该本地密钥和钥匙号存储在接收端数据库中,从而完成该钥匙的学习过程。
综上所述,飞思卡尔半导体的RKE整体方案主要特点及其优势如下所述。
* 系统选用通用MCU控制器,客户可以根据需要添加应用功能,增强了灵活性;。
* 接收端不需要单独的解密芯片,解密算法集成在车身控制器中实现,简化了方案,节约了成本。
* 钥匙端系统当没有用户按键时候,处于休眠状态,节省系统功耗。
* UHF接收芯片MC33596(或者双向收发芯片MC33696)支持304MHz到915Mhz的OOK和FSK解调;片内支持数据曼彻斯特解码,节省了外部微控制器解码软件系统占用;具有片内定时唤醒、片脚唤醒并可设置特定帧唤醒外部MCU功能,节省系统功耗;同时支持两套系统参数配置。上述特性也使得该芯片还可以应用于被动无钥匙门禁系统(PKE)和胎压检测(TPMS)系统中。
* VKSP数据协议:纯软件实现,采用128位AES加密,增加了安全性;本地密钥在钥匙每次的学习过程中通过伪随机数发生器产生,所以对每把钥匙的每次学习过程将产生和存储不同的钥匙密钥,增强了保密性。
该方案评估系统实物如图5和图6。
图5 RKE评估系统钥匙端照片
图6 RKE评估系统接收端照片
*注明:本文中所提芯片均已量产,数据资料可至飞思卡尔官方网站检索,VKSP协议详情也可参考:www.freescale.com/vksp 。
- 汽车安全与防盗——无钥匙系统的设计(03-14)
- 汽车无线接入技术(05-02)