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编码器原理
加密密钥产生
HCS300/301在使用之前,必须产生一个唯一的加密密钥。密钥产生过程(图1):由工厂代码和系列号一起经密钥产生算法形成唯一的加密密码,然后写入片内EEPROM。工厂代码又称系列码或制造商码,长度为64Bit。每一个制造商均不相同,它用于产生与每一个编码器相对应的唯一加密密钥。工厂代码是整个系统安全的关键,应规范管理、保存。如工厂代码泄密,则整个系统没有任何安全性可言。系列号为28Bit,对应于每一个编码器,可作为用户码。
HCS300/301编码过程
由原代码,加密密钥及同步码等经KEELOQ算法加密后。产生32Bit高度保密的滚动代码。,由于KEELOQ算法的复杂性和16位同步码每次传输时都要更新,故每次传输代码都和上一次的代码完全不同。只有在传输216次后才可能重复,以每天传送10次代码计算,时间间隔为18年之久。
片内EEPROM
HCS300/301片内具有192Bit(16×12)EEPROM,用于存储加密密钥、序列号同步值和其它信息,在使用HCS300/301之前和使用之中都需要对其进行操作。使用之前需对其进行编程。为保密起见,只有在编程EEPROM之后相当短的时间内才能进行回读检验,其它时间为禁读状态。使用之中则读EEPROM信息加密,产生发送代码,并更新同步值。
HCS300/301发码格式
HCS300/301的发码信息由几个部分组成(图3)。每次发码的码字以引导码标志和头标开始,接着是滚动码和固定码部分,最后为每次发送的保护时间。滚动码部分为32Bit加密数据;固定码部分为34Bit,包括状态位,功能位和28位系列号。总计码组合多达7.38×1019次种。
HCS300/301在每一个按键按下时发送66位编码数据,由于滚动码和固定码两部分组成(如图4),滚动码部分由4个按键状态,2位计数溢出位,10位鉴别位及16位同步值经加密产生。固定码由28位系列号,4位按键状态和2位状态位组成。
四、解码原理
为了使发送器、接收器一起工作,发送器首先要被“学习”确认,“学习”确认完成后,解码器将所学的序列号和同步值经加密后存储到EEPROM中,解码器需要工厂代码(只有相同工厂代码的发射器才能进行学习),工厂代码通常存储到ROM中,以提高安全性。
解码器取得系列号之后先与工厂代码结合产生与发射器相同的密钥,并用这一密钥进行解密滚动数据。解码器接收到一次发送后,立即检查序列号是否已被学习,如果是,则进行解码过程。由生成的密钥对滚动码部分进行解密,用鉴别位来判断解密否有效,如果以上通过,则对同步值进行判断。
解码器同步值判断过程(如图5)
如果解密的同步值在当前操作窗口(小于16),则同步值被重新存储,并执行相应操作。假如同步值不在当前操作窗口,而在双操作窗口,即32K以内,则发送过来的同步值被临时存储,并回去等下一步发送,如果下一次接收到的同步值与临时存储的同步值是连续的,就会认为发送器刚刚跳到双操作窗口,于是新的同步值被存储并执行相应的命令。假如发送器跳出了双操作窗口,则认为发射无效。每次有效发送后,整个窗口都在旋转,则刚用过的代码是在无效操作窗口。这样就消除了以前发送代码被捕获而又重新发射的可能。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。