《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 业界动态 > KEELOQ技术的软件实现

KEELOQ技术的软件实现

2009-02-05
作者:李福平 金伟正 邓德祥

    摘  要: KEELOQ技术是一种重要的安全加密解密技术,它具有多变化,抗截获的特性。该技术的重要部分是保密的,只掌握在国外少数几家公司手中。提出了一种实用可靠的KEELOQ算法,并给出了实现算法的软件流程。  

    关键词: KEELOQ技术  加密  解密  同步

 

    KEELOQ技术作为一种保密的高新技术,对许多人来说比较陌生,但是它正广泛应用于各种防盗报警系统(特别是车辆的防盗报警系统)、遥控电子锁及其他安全控制领域。它是一种多变化、抗截获、安全可靠的跳码加密解密技术。目前这项先进技术只掌握在国外少数几家公司手中,他们利用集成电路设计的优势,把这项技术封装在芯片里,向用户销售。工程师基于他们提供的硬件做一些开发,很多时候感到不方便。KEELOQ技术其实是一种复杂的协议,只要弄清楚它的原理,就可以根据实际需要在这个协议里选择合适的参数。本文对KEELOQ技术进行了专门研究,提出了一种软件实现方法,并将这一方法应用于汽车防盗报警系统中。 

1 KEELOQ技术的一般特点 

    KEELOQ技术作为一种安全实用的加密解密技术,具有以下特点: 

    (1)将KEELOQ技术应用于通信中,安全性非常好。同一条命令,经KEELOQ编码后每次得到的码字都不相同(在一个非常长的周期里),且这种变化是无规律的。 

    (2)发送方发送的码只能被一个特定的对象有效接收,接收方只有预先取得(通过学习)发送方的加密钥匙后,才能对接收到的数据进行有效解密。 

    (3)特定的对象只有经过学习某一发送者的信息后,才能使用。 

    (4)这种技术能防止发送的码被截获后再转发带来的危害。 

    (5)接收方能随时清除自己保存的学习信息,使原来的发送方不能控制自己,这样能有效避免第三方非法使用。 

    正是这些特点使得KEELOQ技术越来越受重视,越来越被广泛使用。 

2 硬件实现KEELOQ技术 

    基于KEELOQ技术的专用芯片分为两种:一种实现加密功能,一种实现解密功能,通常配合起来使用。实现加密功能的芯片带有4个按键接口,组合使用可达15种功能。每一次有键按下,就自动生成KEELOQ加密码。KEELOQ加密码的组成一般如下: 

   

    一旦芯片制造出来,上述项的长度就是确定的。如序列号的长度设计成28位,整个系统的容量就不会超过268435455(228-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技术是通过一个复杂的同步技术来实现的。虽然开发的防盗系统是双向通信的,但为了方便,将座机称为接收方,手机称为发送方。接收方判断解密后的同步计数器的值是否在单次操作范围内。如果在,就用接收到的同步计数器值替换原来的同步计数器的值,并执行接收到的命令;否则,看是否在双次操作范围内。如果在,则暂存该计数器的值,并等待接收下一次有效数据。在这种情况下,如果接收到数据,在确认同步计数时就判断接收到的同步计数器的值是否在上次暂存同步计数器值的单次操作范围内。如果在,用当前接收到的同步计数器值替换原来的同步计数器的值,并执行命令;如果发送方的同步计数器的值不在接收方的双次操作范围内,则该命令不被执行,且同步计数器的值不被保存。这个发送方必须被接收方学习后才能对接收方进行有效控制。由于接收方每次接收到有效命令后,就更新自己同步计数器的值,使前一次用过的同步计数器的值成为禁用码,不再有效。这样就能够避免发送的码被截获而再转发带来的危害。 

    需要说明的是上述单次操作范围、双次操作范围,以及同步计数器的长度可以根据实际需要来选择。由于同步计数器非常重要,算法在处理时对它进行了检错编码处理。软件实现KEELOQ解密操作流程如图5所示。 

 

 

    在KEELOQ技术中,学习功能是一个重要部分。学习包括清除原来存储的信息和学习新的信息,它分为一般学习和安全学习两种。本文采用安全学习方式。通过长按座机上的学习清除键(该键有两种功能:长按为清除功能,点按为进入学习模式)来清除原来手机的信息(原来的手机就不能控制该座机,必须通过学习后才能控制),点按座机上的学习清除键,如果座机上的原来信息已被清除,则进入学习模式;否则,点按无效,不进入学习模式。这时,如果手机发送学习启动命令给座机,处于学习状态的座机收到命令后立即向手机发送请求学习信号,收到请求信号后,手机将经过变换处理后的加密钥匙和同步计数器立即发给座机,发完之后就退出学习状态,并保存新的加密钥匙和同步计数器值;座机确认数据有效后,就保存加密钥匙和同步计数器值并退出学习模式,学习成功;如果数据无效,座机仍然在学习模式,需要继续学习。每次学习时手机发给座机的加密钥匙和同步计数器都不相同(无规律变化),这是安全学习的主要特点。为了更安全,座机最多只能学习一支手机的信息。安全学习操作流程如图6所示。 

 

 

    可以看到,用软件实现KEELOQ技术并不复杂,一般的单片机就够用。手机部分选用的是华邦(WINBOND)4位单片机,座机部分选用飞利浦(PHILIPS)8位单片机。用软件实现KEELOQ技术灵活性很大:手机按键可根据需要进行设计(仿移动电话按键设计);序列号、加密钥匙、同步计数器长度可根据需要进行选择,以后升级或改变都比较容易;手机发送的按键信令进行纠错编码,用加密钥匙对发送数据进行编码时可以有重点地做一些复杂的变换处理。有些厂家宣称他们能做到同一条按键信令约42.9(232-1)亿次无重复发送,其实只要增加加密钥匙和同步计数器的长度就可以做到这点,甚至比这更多次的无重复发送。这些都可以根据客户对系统要求的变化而进行软件上的修改,不需要改变硬件设计。总之,用软件实现KEELOQ技术,可以节约硬件成本,系统设计可以更少依赖于硬件,系统性能还能做到更优越可靠。 

参考文献 

1 Bruce Schneier,吴世忠译.应用密码学.北京:机械工业出版社,2000年 

2 樊昌信. 通信原理.北京:国防工业出版社,1995年. 

3 胡 征,樊昌信.沃尔什函数及其在通信中的应用. 北京: 人民邮电出版社,1980年. 

4 王新梅,肖国镇.纠错码——原理与方法. 西安:西安电子科技大学出版社,1991年 

5 S.W. Golomb. Shift Register Sequences. San  Francisco: Holden-Day, 1967 

6 W.H. Press, B.P. Flannery, S.A. Teukolsky,W.T. Vetterling. Numerical Recipes in C: The Art of Scientific Computing. Cambridge University Press,1988.

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。