摘要:KEELOQ技术是一种重要的安全加密解密技术,它具有多变化,抗截获的特性。该技术的重要部分是保密的,只掌握在国外少数几家公司手中。提出了一种实用可靠的KEELOQ算法,并给出了实现算法的软件流程。
关键词:KEELOQ技术 加密 解密 同步
KEELOQ技术作为一种保密的高新技术,对许多人来说比较陌生,但是它正广泛应用于各种防盗报警系统(特别是车辆的防盗报警系统)、遥控电子锁及其他完全的控制领域。它是一种多变化、抗截获、安全可靠的跳码加密解密技术。目前这项先进技术只掌握在国外少数几家公司手中,他们利用集成电路设计的优势,把这项技术封装在芯片里,向用户销售。工程师基于他们提供的硬件做一些开发,很多时候感到不方便。KEELOQ技术其实是一种复杂的协议,只要弄清楚它的原理,就可以根据实际需要在这个协议里选择合适的参数。本文对KEELOQ技术进行了专门研究,提出了一种软件实现方法,并将这一方法应用于汽车防盗报警系统中。
1 KEELOQ技术的一般特点
KEELOQ技术作为一种安全实用的加密解密技术,具有以下特点:
(2)将KEELOQ技术应用于通信中,安全性非常好。同一条命令,经KEELOQ编码后每次得到的码字都不相同(在一个非常长的周期里),且这种变化是无规律的。
(2)发送方发送的码只能被一个特定的对象有效接收,接收方只有预先取得(通过学习)发送方的加密钥匙后,才能对接收到的数据进行有效解密。
(3)特定的对象只有经过学习某一发送者的信息后,才能使用。
(4)这种技术能防止发送码被截获后再转发带来的危害。
(5)接收方能随时清除自己保存的学习信息,使原来的发送方不能控制自己,这样能有效避免第三方非法使用。
正是这些特点使得KEELOQ技术越来越受重视,越来越广泛使用。
2 硬件实现KEELOQ技术
基于KEELOQ技术的专用芯片分为两种:一种实现加密功能,一种实现解密功能,通常配合起来使用。实现加密功能的芯片带有4个按键接口,组合使用可达15种功能。每一次有键按下,就自动生成KEELOQ加密码。KEELOQ加密码的组成一般如下:
描述信息 | 序列号 | 按键信号 | 校验位 | 同步计数器 |
一旦芯片制造出来,上述项的长度就是确定的。如序列号的长度设计成28位,整个系统的容量就不会超过268435455(2 28-1),如果想扩展系统容量非常不方便。这种芯片在使用前必须预置一些初值(序列号、加密钥匙、同步计数器)。发送方和接收方一起工作前,接收方必须先通过学习来获得并存储发送方的序列号、加密钥匙和当前同步计数器的值。学习是KEELOQ技术的一个重要方面。
硬件实现KEELOQ技术加密过程如图1所示。
序列号用来标识不同的对象;加密钥匙用来对发送的数据进行加密,增加破译的难度,它不直接送出去;同步计数器是用来抗截获的,每次有键按下,同步计数器的值就被更新,它经过加密变换后被发送出去。
硬件实现KEELOQ技术解密过程如图2所示。
接收方在确认序列号匹配后,对接收的数据进行解密,然后检查同步计数器是否匹配,在确认其匹配后,再去处理接收到的按键信令。
经过使用发现用硬件实现KEELOQ技术存在下列不足之处:
(1)硬件成本高,在使用KEELOQ芯片时,还需要一个单片机(MCU)来控制,量产时这点显得比较突出。
(2)按键信令必须组合(同时按下1个以上的键),否则只有4种功能,通过组合最多只有15种功能。这导致按键不方便、功能扩展几乎不可能。
(3)某一特定型号的芯片其序列和同步计数器的长度是固定的。当系统建成后,开发者如果想只通过软件升级来扩充系统的容量或提高系统的性能、用硬件实现KEELOQ技术基本不可能。
(4)KEELOQ技术对按键信令编码只停留在检错这一层面上,没有作纠错层面的编码。
(5)受硬件设计限制,灵活性差;不拥有核心技术,容易受制于人。
正是这些不足之处促使我们研究用软件来实现KEELOQ技术。
3 软件实现KEELOQ技术
KEELOQ技术的核心是KEELOQ算法,KEELOQ算法作为KEELOQ技术的重要部分是保密的。经过长时间的探索、研究、验证,本文提出了一种可靠的KEELOQ算法,并将其成功应用到汽车防盗报警系统中,取得了非常好的效果。
序列号加密钥匙选用32位的m序列,对于一个用户而言,其加密钥匙和序列号不相同。同步计数器的长度从理论上讲越长越好,但是如果越长其他方面的开销就越大,这里选用16位的m序列。汽车防盗器由两部分组成:装在车身上的部分称之为座机;手持控制部分称之为手机。为了节省硬件开销,手机只设计三个按键,无组合按键,一共有12种按键功能。每个键有四种状态:一点按、两点按、三点按、长按。这12种按键又分成两类:一是控制座机操作的命令控制键(包括学习启动键),一是手机自身操作键。每次按下命令控制键,就执行KEELOQ加密过程。软件实现KEELOQ加密操作流程如图3所示。
对按键信令进行纠错编码处理是必要的:假设某次按键信令为0110,经信道传输后,接收方解密得到的码字变为0101,而0101也表示一种有效的命令。显然,这种误操作带来的后果是严重的。用Walsh码编码,经过编码后,能同时发现并纠正3个或3个以内的错误;同时根据编码的特点,用加密钥匙对编码后的按键信令做变换处理。试验表明这些措施极大地提高了系统的可靠性。
KEELOQ算法的关系之处在于同步计数器。如前所述,手机在第一次使用前必须预置有效的序列号、同步计数器值、加密钥匙。座机通过控制可以学习任何一只手机,学习成功手保存该手机的序列号、同步计数器值、加密钥匙。每次按下命令控制键时,手机的同步计数器的值加1(仅仅只有一位发生变化),经过m序列发生器,从统计的角度看,有一半的位发生改变。接收方的确认接收数据的序列号匹配后,对接收数据进行解密,然后确定同步计数器是否匹配,只有同步计数器确认匹配后,才处理接收的按键信令。通过图4来说明确认同步计数器的匹配过程。
需要说明的是上述单次操作范围、双次操作范围,以及同步计数器的长度可以根据实际需要来选择。由于同步计数器非常重要,算法在处理时对它进行了检错编码处理。软件实现KEELOQ解密操作流程如图5所示。
在KEELOQ技术中,学习功能一个重要部分。学习包括清除原来存储的信息和学习新的信息,它分为一般学习和安全学习两种。本文采用安全学习方式。通过长按座机上的学习清除键(该键有两种功能:长按为清除功能,点按为进入学习模式)来清除原来手机的信息(原来的手机就不能控制该座机,必须通过学习后才能控制),点按座机上的学习清除键,如果谇机的原来信息已被清除,则进入学习模式;否则,点按无效,不进入学习模式。这时,如果手机发送学习启动命令给座机,处于学习状态的座机收到命令后立即向手机发送请求学习信号,收到请求信号后,手机将经过变换处理后的加密匙和同步计数器立即发给座机,发送之后就退出学习状态,并保存新的加密钥匙和同步计数器值;座机确认数据有效后,就保存加密钥匙和同步计数器值并退出学习模式,需要继续学习。每次学习时手机发给座机的加密钥匙和同步计数器都不相同(无规律变化),这是安全学习的主要特点。为了更安全,座机最多只能学习一支手机的信息。安全学习操作流程如图6所示。
上一篇:可控数字语音延迟器的PIC设计
下一篇:具有高可靠性的高速连续数据采集的设计与实施方法
- 热门资源推荐
- 热门放大器推荐
- STM8 ADC转换模式-------连续扫描模式
- 中美芯片公司研发投入不完全对比
- Qorvo® 为 Google® Pixel 6 Pro 提供超宽带技术
- 传紫光集团将放弃重庆及成都存储厂计划,阪本幸雄已离职
- Poco X4 Pro 5G与Poco M4 Pro发布 均采用AMOLED显示屏
- 计算隔离式精密高速DAQ的采样时钟抖动的简单步骤
- 拍照比「剪刀手」就会泄漏你的指纹信息,是真的咩?
- Diodes 公司推出的 20Gbps 2x2 交换切换器,可让汽车媒体与驾驶辅助系统实现快速多任务/切换
- 贸泽电子开售适用于物联网和手持无线应用的Murata Type 2BZ Wi-Fi +蓝牙模块
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?
- 村田推出高精度汽车用6轴惯性传感器
- 福特获得预充电报警专利 有助于节约成本和应对紧急情况