到目前为止,我们做了很多汽车遥控器车项目,几百上千款车型,凭借我们对汽车电子逆向研究的优势已经成功汽车钥匙客户提供了包括宝马,日产,别克在内的诸多汽车的遥控器逆向研究,其中主要是帮助客户进行芯片的反向研究。目前我们做的最多的是NXP的PCF7954,PCF7936,PCF7926等PCF系列,之前我也有讲过此类的方案。而今天我们要讲的是Microchip的HCS300。
Microchip公司的HCS300主要采用的是KEELOQ 技术,KEELOQ技术是一种多变化、抗截获得、安全可靠性高的非线性跳码加密解密技术。KEELOQ目前是通过硬件芯片IC实现,主要应用于汽车阵盗系统和门禁系统,是无钥进入系统领域的首选芯片。但也由于硬件芯片本身的限制(其所能加密的数据必须预先写入EEPROM中),使之很难用于其它(如数据加密)领域。HCS300以Keeloq技术为基础开发了滚动编码系列芯片.
传统的固定编码芯片是基于单向传输的安全系统。只能提供有限的保护,因为这种系统的保密性是靠提高代码的长度来实现的,而代码的长度是有限的,因而只能得到有限的代码组合,用空中捕捉和扫描跟踪的办法就很容易得到代码,这样就被非法用户擅自使用。而如果采用Keeloq滚动码技术,由于在传输代码之前用滚动码加密算法对原始代发码进行非线性加密,从而产生高度保密的滚动码,使得每次传输的代码都是唯一的,绝不重复,从而使捕捉和扫描跟踪的手段都难以凑效。
RKE是英文Remote Keyless Entry的缩写,中文称作遥控门禁系统。目前遥控门禁(RKE)系统已经备受用户的青睐,北美80%以上、欧洲70%以上的新车均安装了RKE系统。除了显而易见的便捷性,RKE用于开启汽车制动装置的技术还具有防盗作用。欧洲汽车生产厂商与保险公司合作,要求购置汽车保险时汽车要安装RKE系统。德国已开始推行这一政策,预计在几年内会扩展到整个欧洲。
现在的汽车商选用RKE系统,或将其作为一个标准。RKE系统主要由按键加密发送器和车内内置接收器组成,结构框图如图1所示。它们主要用在汽车门 控制、无线传感器、汽车无线胎压监测TPMS(Tire Pressure Monitor System)等方面,使用的频率是315 MHz(美国和日本地区)、433.92 Hz(欧洲地区)。欧洲同时开放了868 MHz频率来适应RKE系统的增长需求。
图1 RKE系统结构框图
RKE系统的用户可以通过钥匙链发送数据来打开和关闭汽车门。图1中,用户可以按下按键开关来发起与接收机的通信,通过一串64~128位长度 的数据流进行发送器和接收器的会话。该数据流包括前引导码、命令码和一串加密滚动码。通信速率通常选用2~20 kHz之间,采用ASK调制方式,主要为了延长发送部分钥匙链中电池的使用寿命。
展开全文
1 系统设计
1.1 功率设计
设计中主要考虑的是低电流消耗情况下的高可靠性、系统的成本以及发送器和接收器的寿命。对于发送器,电池寿命在3~5年是可以满足要求的。电池 寿命对于接收器件也很重要,因为接收器件必须总是在线侦听发送端数据,典型的电流要求不超过1 mA。一个设计方法是,在一定时间内,接收端保证能够检测到有效的发送信号;为了最大限度地节约电量,接收器在其他的时间睡眠。
1.2 安全性设计
系统的安全性也是一项主要考虑的因素。通过采用Microchip公司专为RKE系统设计的使用DES算法的安全密钥芯片HCS300来实现系统数据的安全加密,防止发送的数据被恶意盗取拷贝;同时在接收端使用MC9RS08KA2进行解密和继电器控制。
HCS300的操作电压为2.0~6.3 V,是一个可编程28位串行码、64位加密键值、66位发送长度、32位跳频码、4位按键码、2位状态码,具有键值读保护措施的芯片。
DES编码、解码图如图2和图3所示。
图2 DES编码图
图3 DES解码图
16位的同步计算器,在每次发送代码后都要发生改变。它随按键的次数而增加。根据DES算法加密,在每次发送的代码中,由于同步计数器的变化而 使得每次发送的代码有大于50%的部分不一样。图2说明在编码过程中如何使用HCS300的内部可编程EEPROM,一旦编码器检测有按键按下,它就立即 读键值,同时刷新同步计数器。按键和同步计数器经过加密算法处理,输出数据是32位的加密信息。携带按键信息的32位代码和串行码组成了整个发送码,将被 接收部分接收到。
解码部分必须先学习发送端的数据码,学习包括计算发送端的键值、解密32位的加密信息和可编程阵列中的串行码、同步计数器以及键值。在正常的操 作模式中,每次接收到的有效格式的信息都被计算。串行码用于表示发送码是否被学习过。如果发送码被学习过,那么它的信息被解密和同步计数器值校验,最后接 收系统执行按键操作请求。图3表示了接收部分接收到的信息和它的可编程EEPROM(设计中使用AT24C02)中存储信息的关系。
1.3 射频收发器件和微处理器特性
为了保证系统能够在较低电流消耗的情况下,有较高的发射功率和接收灵敏度,系统选用了Maxim公司的MAX1473接收芯片和MAX7044发射芯片。
MAX7044发射芯片工作电压为+2.1~6.0 V,7.7 mA的低工作电流,250 μs的启动时间。通信速率能达到100 kbps,小封装3 mm×3 mm,8引脚SOT23封装。它消除了基于SAW发送器设计的问题;采用晶体结构,提供了更大的调制深度和快速的频率响应机制;降低了温度的影响,温度范 围可达-40~125 ℃。
MAX1473接收芯片采用3.3 V锂电池供电,250 μs启动时间,小于2.5 μA的待机模式工作电流,-114 dBm的灵敏度;采用TSSOP 28引脚封装设计。
MC9RS08KA2作为Freescale公司新推出的一款集成多个功能的高性价比MCU,具有键盘中断和高达20 MHz的内部时钟,以及8位模计数器,2 KB Flash空间,63字节RAM;同时有等待和3种停止模式,满足系统的超低功耗设计(设计中电流小于1 μA),以及简易的6引脚BDM编程调试接口,便于系统的实时升级。设计中采用6引脚DFN精密小引脚封装,满足系统的小体积要求。
1.4 硬件设计图
按键DES硬件加密部分电路如图4所示。发送部分射频前端电路如图5所示。
接收部分射频前端电路如图6所示,元器件参数如表1所列。接收部分微处理器控制电路如图7所示。
图4 按键DES硬件加密部分电路
图5 发送部分射频前端电路
图6 接收部分射频前端电路
表1 典型电路的元器件参数
图7 接收部分微处理器控制电路
1.5 软件设计
编码加密操作流程如图8所示。
图8 编码加密操作流程
如果有按键按下,HCS300将被唤醒,同时通过10 ms延时消抖。同步计数器、描述信息、按键信息被编码形成跳频码。每次发送跳频码都会不一样,即便是同一个按键按下,在64K次按键过程中发送的跳频码也 不会发生重复,因此在较长的时间内,按键密钥信息不会被盗取。如果在发送的过程中检测到新的按键按下,那么将会立即复位,而且当前的代码将不会继续执行; 离开按键后,对代码字是没有影响的,除非没有按键继续保持按下状态,在任何情况下传输代码都会完成,同时系统下电。
接收部分解码解密流程如图9所示。
图9 解码解密流程
上电后,MC9RS08KA2开始判断系统是否有I/O中断产生。如果没有,则系统进入低功耗睡眠模式(停止模式3);如果有I/O中断产生, 那么进入中断,唤醒MCU,同时进行软件DES算法解密。如果解密不成功,则继续接收数据;如果解密成功,则执行相应的继电器操作(如开/关门等),然后 系统继续进入睡眠状态。
2 结论
通过结合多家外围器件和微处理器件,利用Microchip KEELOQ芯片的安全性,Maxim的射频芯片的可靠性、稳定性和Freescale微处理器的高集成度及性价比,整合各家优势,提高了系统的整体性 能。通过实际运行,系统达到了预先设计的要求。本次设计只使用了2个按键,根据需要可以外扩功能按键达到15个,用于实现不同的控制信息要求。设计人员可 以根据自行需要进行相应的扩展。
本文结尾,给大家介绍一下HCS300芯片的特性
特性:
安全:
·可编程28 位序列号
·可编程64 位加密密钥
·每次发送都是惟一的
·66 位发送码长
·32 位跳码
·28 位序列号、4 位按钮代码和2 位状态位
·密钥是读保护的
操作:
·工作电压为2.0V—6.3V
·4 路按钮输入
·无需额外的电路
·有15 种功能可供使用
·可选的波特率
·编码字自动完成发送
·向接收器发送电池电压低信号
·非易失性同步数据
其他:
·易用的编程接口
·片上EEPROM
·片上振荡器和定时元件
·按钮输入具有内部下拉电阻
·对LED 输出的电流加以限制
·很少的外部元件开销
典型应用:
HCS300 是遥控无钥门禁(Remote Keyless Entry,
RKE)的理想选择。 这些应用包括:
·汽车RKE 系统
·汽车报警系统
·汽车防盗锁止器
·大门和车库开门器
·身份识别令牌
·防盗自动警铃系统
说明:
Microchip Technology Inc. 的HCS300 是一款跳码编码器,它是专为安防遥控无钥门禁(RKE)系统而设计的。 HCS300使用KEELOQ跳码技术,并具有安全性高、封装尺寸小和成本低等特性。 HCS300 是单向遥控无钥门禁系统和访问控制系统最完美的解决方案。
HCS300 将非线性加密算法生成的32 位跳码与28 位序列号和6 个信息位组合在一起,形成了一个66 位的编码字。 这种编码字消除了编码扫描的风险,并且跳码机制使得每次发送都是惟一的,从而使编码截获和重发机制无效。密钥、序列号和配置数据存储在EEPROM 阵列中,不能通过任何外部连接对它们进行访问。 EEPROM 数据是可以被编程的,但却是读保护的。 只有在自动擦除和编程操作完成后,才能对其中的数据进行校验。 这样防止了获取密钥或对同步值进行操作的企图。 HCS300 提供了一种简单易用的接口,可对必要密钥、系统参数和配置数据进行编程。
系统概述
主要术语
下面列出了本数据手册中所使用的主要术语。 欲知KEELOQ和跳码的更多信息,请参见技术手册3 (TB003)。
·RKE——遥控无钥门禁
·按钮状态——指出什么按钮输入激活了发送。 包括4 个按钮状态位S3、S2、S1 和S0(见图4-2)。
·跳码——使编码在每次被发送时从系统外部看来似乎总在无规律地变化的方法。
·编码字——当按钮激活时,被重复发送的一块数据(见图4-1)。
·发送——由重复的编码字组成的一串数据流(见图8-1)。
·密钥——一个惟一且保密的用来加密和解密数据的64 位数字。 在对称的分组密码(如KEELOQ 算法)中,加密和解密密钥是相同的,因此统称为密钥。
·编码器——产生和编码数据的器件。
·加密算法——使用密钥打乱数据的方法。 数据只能由使用同一密钥的解密算法破译。
·解码器——将从编码器接收到的数据解码的器件。
·解密算法——使用相同的密钥将由加密算法打乱的数据恢复原状的方法。
·学习——学习包括接收器计算发送器的相应密钥、将接收到的跳码解密,并将序列号、同步计数值和密钥存储在EEPROM 中。 KEELOQ 产品系列使几种学习策略能在解码器上实现。 下面是一些学习所包括的内容示例。
- 简单学习
接收器使用固定的密钥(同一制造商生产的所有系统中的所有元件共用同一密钥)来解密接收到的编码字的加密部分。
- 正常学习
接收器使用正常操作中发送的信息产生密钥并使用该密钥解密接收到的编码字的加密部分。
- 安全学习
发送器通过一个特殊的按钮组合激活,并发送一个存储其中的用于产生发送器密钥的60 位种子值。 接收器使用该种子值产生相同的密钥并使用该密钥解密编码字的加密部分。
·厂家编码——用来生成惟一的编码器密钥的惟一而保密的64 位数。 使用密钥编程每个编码器,所使用的密钥是厂家编码的函数。 每个解码器均使用厂家编码编程。
HCS300 跳码编码器是专门为无钥门禁系统设计的,主要应用在汽车和家庭车库门的开门器中。 无钥门禁系统的编码器部分集成在发送器中,由用户携带用来进入汽车或其他受限制的区域。 HCS300 就是针对这种系统而设计的一款低成本但安全的解决方案,它只需要极少的外部元件(见图2-1)。
大多数低端的无钥门禁发送器在每次按下按钮时都将发送一个固定的识别码。 低端系统中的惟一识别码通常是一个相对较小的数字。 这些缺点为老道的窃贼们创造了机会,使他们能制造出一个被“截获”发送并在稍后重发的设备,或能快速“扫描”所有可能的识别码直到找到正确识别码的设备。
与之相反, HCS300 采用KEELOQ 跳码技术,结合66位的发送长度,基本消除了编码被“截获”和编码被“扫描”的可能性。HCS300 的高安全级别是以专利的KEELOQ 技术为基础的。 使用以32 位分组长度和64位密钥长度为基础的分组密码。 该算法使用下面的方法加密信息,即使下一次发送信息(在编码前)只有一位与上一次发送不同,但下一次编码后发送将完全不同。从统计学的角度讲,如果32 位数据串中只有一位发生了改变,但编码后的发送中将有至少50% 的位发生改变。
如第一页中的框图所示,HCS300具有一个小的EEPROM阵列,在使用之前必须向其中装载几个参数;这些参数通常在生产时已由厂家编程。 最重要的参数如下:
·28 位序列号,通常所有编码器的序列号均不同
·密钥
·初始的16 位同步计数值
·16 位配置值
网友评论
最新评论
天我们要讲的是Microchip的HCS300。Microchip公司的HCS300主要采用的是KEELOQ 技术,KEELOQ技术是一种多变化、抗截获得、安全可