汽车远程无钥匙进入系统(RKE)方案和VKSP安全协议
以下为文章全文:(本站微信公共账号:cartech8)
汽车零部件采购、销售通信录 填写你的培训需求,我们帮你找 招募汽车专业培训老师
针对日益增长的汽车遥控无钥匙进入系统(RKE)市场,飞思卡尔半导体近期推出了包含硬件和软件安全协议(VKSP)的整体解决方案。 汽车遥控无钥匙进入系统(RKE)由发射端(遥控钥匙)和集成于车身控制模块中的接收端组成。发射端将用户按键命令通过数据编码、加密和组帧后通过射频发射电路发射,而车内接收端则将接收到的信号通过射频解调、数据解码和帧解密后完成相应车门、车灯控制和报警等用户指令。系统框图如图1。 发射端:使用飞思卡尔低端8位MC9S08QG4/8(4K/8K flash)微控制器完成用户按键的数据编码、加密组帧,再通过SAW声表谐振器电路发射至UHF频段。 接收端:使用UHF射频接收芯片MC33596完成信号解调和数据曼彻斯特解码,再将数据传送到车身主控芯片(本参考设计选用了8位MC9S08DZ系列)进行数据解密和指令执行。 加密协议:采用飞思卡尔研发的可变密钥安全协议(VKSP)。 可变密钥安全协议(VKSP)是飞思卡尔专门为遥控类应用市场开发的安全传输协议。其特点: 采用128位密钥加密验证,增强了安全性。 密钥中的32位可变密钥(计数器)部分随时间和按键而增加。 即使在遥控距离外被多次按键操作之后,该钥匙也可以继续正常使用,不需要和接收端重新进行该钥匙的学习流程。 最大支持254个不同指令传输。 除了采用飞思卡尔提供的AES加密算法模块外,用户也可以根据需要(如缩小程序大小,减少解密时间)使用自己的加密算法模块。 纯软件实现,可以灵活地使用于各类微控制器。 软件大小:不包含AES加密模块约为1.5K字节,如果含AES模块接近3K字节。软件以库函数的形式免费授权给采用飞思卡尔方案的客户使用。 VKSP的发送过程如图2。 每次按下钥匙,将会产生一个发送帧。发送帧有两个部分:数据部分和消息验证码(MAC)部分。数据部分不用加密,由三个部分共64位组成:钥匙号(3个字节);用户命令(1个字节);可变密钥(4个字节),每次发送随时间和用户按键而增加,以确保即使用户命令相同,每次发送的消息帧内容也不会重复。消息验证码(MAC)部分则有8个字节,由加密模块产生。 接收过程分为三步,如图3。 步骤一:接收端检查接收到的发送帧中的钥匙号是否存在于接收端存储的有效钥匙号数据库中,如果存在,则从接收端数据库中同时取出该钥匙对应的本地密钥(Local Key)和可变密钥(Variable Key),进入下一步骤,否则丢弃该帧。 步骤二:检查发送帧中的可变密钥是否大于步骤一中接收端数据库中该钥匙目前的可变密钥,如是,进入下一步骤,否则丢弃该帧。这一步骤保证了任何再次重复发送的帧不会被认为是有效帧。 步骤三:进行消息码验证。由接收帧中的数据字段和从接收数据库中取出的该钥匙本地密钥通过加密模块生成消息验证码,由于发送端和接收端使用相同的加密模块,所以,如果发送端和接收端生成的两个消息验证码相同,则该帧被认为有效,用户命令被执行。同时,更新该钥匙当前的可变密钥至接收端数据库中。 由上述过程可知,每一把新钥匙必须首先完成学习过程,即将该钥匙的钥匙号和本地密钥存储到接收端数据库以后,该钥匙才能被识别使用。为了系统的安全性,接收系统必须在指定的安全环境中处于被激活的状态下才进行学习帧的识别,例如用户在接收端按下一个特定的按键或者开关。图4表示了学习过程和学习帧的结构。 接收端首先检查是否处于安全环境激活状态,从而决定是否进行学习帧识别。 发送端利用一个伪随机数发生器产生128位随机数,然后和厂商提供的128位OEM码(发送端和接收端必须共享同样的OEM码)通过加密模块产生128位输出数据,截取其中64位作为消息验证码,截取特定位数存储在发送端作为该钥匙本地密钥。同时,将该128位随机数和消息验证码通过两个连续的学习帧发送。两个学习帧分别由数值0XFE和0XFF特征码来识别。 接收端通过特征码检测到学习帧并提取其中的128位随机数,然后依靠和发送端同样的厂商128位OEM码和加密模块完成消息验证码比对验证,又按照和发送端同样的输出截取方式生成和发送端相同的该钥匙本地密钥,最后将该本地密钥和钥匙号存储在接收端数据库中,从而完成该钥匙的学习过程。 0 0 (请您对文章做出评价) |
文章网友提供,仅供学习参考,版权为原作者所有,如侵犯到
你的权益请联系542334618@126.com,我们会及时处理。
会员评价:
共0条 发表评论