新闻  |   论坛  |   博客  |   在线研讨会
HCS300 301滚动码防盗器编码芯片介绍
mayer | 2009-06-04 19:10:12    阅读:3149   发布文章

HCS300 301滚动码防盗器编码芯片介绍

 

一、前言
传统的用于单向传输的安防产品主要采用固定编码集成电路,如PT2262、PT2272、AX5326、AX5327等编解码芯片。但由于此类编解码芯片的编码长度有限,码形格式固定不变。十分易于在空中捕捉电波码字和扫描跟踪的等方法破解,只能用于一些对保密安全要求不高的场所。一位有经验的工程技术人员只需花不到500元的成本即可制作一台空中电波代码拷贝机,在不到1秒钟的时间内就能将此类系统破解。而用扫描跟踪的方法也仅需数十分钟就能破解此类系统。
Microchip公司的基于KEELOQ算法的HCS系列滚动码编码芯片则克服了以上系统的缺点,已成功的应用于以各种安防产品中。由于在传输代码之前采用了先进的非线性位加密技术,产生具有极高保密性的滚动编码。每一次发送的代码都是唯一的、不规则的、且不重复,使得任何通过非法捕捉和扫描跟踪等破译手段都化为泡影。十分适用于闸门、车库、银行等管理系统;自动防盗报警系统、身份识别、智能IC卡等领域。
二、HCS300/301编码集成电路特点:
1、保密性      可编程28Bit系列号
可编程64Bit加密密钥
每次发送代码是唯一的
加密密钥不可读取
2、内部特征     宽范围工作电压(HCS300      2.0V-6.3V,     HCS301     5.5V-13.0V)  
四个功能输入口(可组合达15种功能)
低电压检测指标

 


三、HCS300/301编码器原理
1、加密密钥产生
HCS300/301在使用之前,必须产生一个唯一的加密密钥。密钥产生过程(图1):由工厂代码和系列号一起经密钥产生算法形成唯一的加密密码,然后写入片内EEPROM。工厂代码又称系列码或制造商码,长度为64Bit。每一个制造商均不相同,它用于产生与每一个编码器相对应的唯一加密密钥。工厂代码是整个系统安全的关键,应规范管理、保存。如工厂代码泄密,则整个系统没有任何安全性可言。系列号为28Bit,对应于每一个编码器,可作为用户码。 密钥生成算法编码器系列号28Bit图加密密钥生成原理图1. 密钥64Bit工厂代码64Bit

点击看大图
2、HCS300/301编码过程
由原代码,加密密钥及同步码等经KEELOQ算法加密后。产生32Bit高度保密的滚动代码。,由于KEELOQ算法的复杂性和16位同步码每次传输时都要更新,故每次传输代码都和上一次的代码完全不同。只有在传输216次后才可能重复,以每天传送10次代码计算,时间间隔为18年之久。

点击看大图

图滚动码生产图2. 密钥序列号同步计数值按键信息滚动码加密算法32Bit滚动码数据序列号发送信息
3、片内EEPROM
HCS300/301片内具有192Bit(16×12)EEPROM,用于存储加密密钥、序列号同步值和其它信息,在使用HCS300/301之前和使用之中都需要对其进行操作。使用之前需对其进行编程。为保密起见,只有在编程EEPROM之后相当短的时间内才能进行回读检验,其它时间为禁读状态。使用之中则读EEPROM信息加密,产生发送代码,并更新同步值。
4、HCS300/301发码格式
HCS300/301的发码信息由几个部分组成(图3)。每次发码的码字以引导码标志和头标开始,接着是滚动码和固定码部分,最后为每次发送的保护时间。滚动码部分为32Bit加密数据;固定码部分为34Bit,包括状态位,功能位和28位系列号。总计码组合多达7.38×1019次种。

点击看大图

逻辑"1"逻辑"0"引导码Tp头标THTDTG66位数据保护时间图3发码格式.  
HCS300/301在每一个按键按下时发送66位编码数据,由于滚动码和固定码两部分组成(如图4),

点击看大图

滚动码部分由4个按键状态,2位计数溢出位,10位鉴别位及16位同步值经加密产生。固定码由28位系列号,4位按键状态和2位状态位组成。  
四、解码原理
为了使发送器、接收器一起工作,发送器首先要被“学习”确认,“学习”确认完成后,解码器将所学的序列号和同步值经加密后存储到EEPROM中,解码器需要工厂代码(只有相同工厂代码的发射器才能进行学习),工厂代码通常存储到ROM中,以提高安全性。
解码器取得系列号之后先与工厂代码结合产生与发射器相同的密钥,并用这一密钥进行解密滚动数据。解码器接收到一次发送后,立即检查序列号是否已被学习,如果是,则进行解码过程。由生成的密钥对滚动码部分进行解密,用鉴别位来判断解密否有效,如果以上通过,则对同步值进行判断。
解码器同步值判断过程(如图5)

点击看大图


如果解密的同步值在当前操作窗口(小于16),则同步值被重新存储,并执行相应操作。假如同步值不在当前操作窗口,而在双操作窗口,即32K以内,则发送过来的同步值被临时存储,并回去等下一步发送,如果下一次接收到的同步值与临时存储的同步值是连续的,就会认为发送器刚刚跳到双操作窗口,于是新的同步值被存储并执行相应的命令。假如发送器跳出了双操作窗口,则认为发射无效。每次有效发送后,整个窗口都在旋转,则刚用过的代码是在无效操作窗口。这样就消除了以前发送代码被捕获而又重新发射的可能。 有效发射旋转窗口无效操作窗口当前同步位置双操作窗口单操作窗口操作窗口示例图图5.小于1632K

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客