引言
随着国内汽车数量迅速增多,盗抢汽车案件时有发生。目前汽车防盗市场多数是电子式防盗器,此类防盗器一般都具有遥控功能,安装隐蔽,操作简便。另外,汽车电子防盗器增加了许多方便、实用的附加功能,如现在市场上出现了具有双向功能的电子防盗器,不仅能由车主遥控车辆,车辆还能将自身状态传送给车主。此时的防盗器其实已成为了一个无线遥控系统,当然防盗仍然是该系统的主要功能之一。
无线遥控式汽车防盗器的遥控器与防盗主机系统之间除了要有相同的发射和接收频率之外,还要有密码才能相互识别。早期的遥控防盗器是将这些密码以固定编码的形式收发,这种定码发射方式在汽车防盗器中的应用并不普及。当防盗器用量不多,即处于一个初期防盗器应用市场里时,其防盗器的安全性和可靠性还有所保证;但对于当前防盗器使用已成熟的市场而言,定码方式就显得即不可靠又不安全。盗车贼可以用遥控器拷贝机在几秒钟内解出密码,复制出相同的遥控器,从而冒充合法用户控制车辆。为此,本文提出一种新的动态密码方法,以克服上述电子式防盗器存在的不足。
1防盗器密码安全性分析
防盗器的密码一般是一组由各种方式组合的数据。它一方面包含防盗器的识别码,用于区别其他防盗器;另一方面,它又包含功能指令码,用于开启或关闭防盗器,以及防盗器的其他一些功能。当然,遥控器所需发射的指令是非常有限的,每次在无线信道上传输的信息变化不大。这样的防盗密码系统提供的安全性是非常有限的,因为它的保密性只能靠提高传输代码的长度来实现,但代码的长度总是有限的,因而只能得到有限长的代码组合。即使传输的代码经过了比较可靠的加密算法加密,但需要传输的信息是有限的,使得遥控发射的信号还是有限的,那么用捕捉和扫描跟踪等办法,就较易得到密文代码,这样就被非法用户擅自使用。此时,如果使用一个非常复杂的加密算法(如一些经典的加密算法),每次加密的密钥都是变化的,也可以保密,但这样也不大可行。首先,要实现这些复杂算法,对系统硬件要求比较高;其次,对于一个需要市场的产品而言,要求用户记住不停地更换的密钥,这对安全性和用户的满意度都是非常不利的。为此,本文采用了动态密码的方法,每发射一次,密码随即变化一次。密码不会被轻易复制或盗取,而且在无线信道中传输的密码将舍弃而不作保存,安全性极高。
2混沌映射
混沌技术是当今科技前沿的一个研究热点,它具有对初值敏感、类随机及不可预测等特性,很适合用于保密通信。混沌映射是产生混沌密码序列的基础,只需要少量的初始参数,经过若干次迭代就可以产生满足密码学要求的混沌密码序列。因为在混沌映射系统中,初始值的微小变化将会不断地被放大,这种放大与时间是呈指数关系。下面以一个经典混沌映射说明其初值敏感的特性。Logistic映射模型定义如下:
现设系统参数取值4,取0.2与0.200001这两个初始值,分别进行迭代运算。数值仿真表明,初始值只有10-6的差别,产生的两个序列就可以做到完全不相关。图1中两个序列在第20次迭代时就完全分开了。正因如此,混沌对初条件的敏感依赖性而能产生数量众多、非相关、类随机而又确定可再生的混沌密码序列。
图1混沌映射迭代初值敏感
3密码的产生
混沌映射迭代产生的序列为实值序列,需要对实值序列数字化,得到的二进制混沌序列将作为汽车遥控防盗器的识别码。二进制序列实质上是混沌轨迹的一个符号动力学,它保留了混沌轨迹的复杂性。理论上它是一个非周期的无穷序列,经过多次混沌迭代生成的二进制序列仍具有均匀分布特性,能够满足密码学对理想密码的所有要求。
本文采用整数值变换的办法使混沌映射产生密码序列数字化,这一办法其实就将实数值序列根据某种规则转化成整数值。比如Logistic混沌序列,因为取值范围均在[0,1]范围内,将该区间的小数写成二进制形式:
系统可以根据具体硬件的容许范围,取实数值xn的前M位表示xn,舍弃后面的小数位,即按下述规律转换成整数:
任何数字量化实现都存在着舍入误差,这里也一样。其中Xn是一个由M位二进制表示的整数,它与xn是一一对应的。可以把Xn代入Logistic映射中得到:
这就是λ=4的Logistic映射的整数表达形式。对于上式的实现,2M-Xn可以通过对Xn求补来完成。2M-Xn和Xn都是M位的整数,乘积为2M位,乘以4相当于将这2M位乘积左移2位,最后再除以2M相当于将这2M位乘积右移M位,也就是取这2M位整数乘积的高位M比特作为结果输出,整个过程如图2所示。
图2数字化混沌映射迭代过程
图2中的运算一般都是16位的,如果汽车遥控器中的处理器只支持8位运算指令,可以采用8位运算指令扩充实现。如16位乘法可用4次8位乘法,6次加法实现;16位数的左移可通过两次8位左移实现。将混沌映射变换为整数值映射的方法很适用于汽车防盗遥控系统中处理器对数据的处理能力,通过简单的线性变换即可:
这一转换只是将xn∈(0,1)的值映射到Xn∈(0,65536)的区间上,而且这些值都可用一个无符号整型变量表示。这一数值化过程保证变换前的数值能够精确到小数点后4位,用无符号整型变量代替双精度浮点型变量的运算,能在一定程度上反映小数点后第5位的情况。经过变换的Logistic映射变为:
迭代仿真结果如图3所示,变换只改变了xn值的幅度,并没有改变系统的性质。通过混沌映射数字化使得迭代运算由浮点运算转换为整数运算,它有效地降低了对计算精度的要求,能够简化实现电路,加快计算速度。
图3实值混沌映射与数字化混沌映射的迭代仿真结果
4动态密码遥控方法
汽车的防盗与遥控器之间除了要有相同的收发频率之外,它们还需要有相互识别的密码。本文提出的动态密码就针对它而言,而防盗器密码的另外一部分指令码不作变动,也就是说,负责开启或关闭防盗器以及控制完成防盗器其他一切功能的指令是固定不变,它只跟随动态密码一起发送或接收。
汽车防盗主机与遥控器中有着一样的混沌映射,主要用于动态密码的生成与验证。在初次使用遥控器前,防盗器主机与遥控器间需要进行初始配对,配对过程如图4所示。
图4遥控器与防盗主机密码初始配对
① 在防盗器主机端的数字键盘输入一个密码,其位数不限,用户可以随意输入;其中输入密码的前面两位作为混沌映射的循环迭代次数,后面混沌其余的按照处理器的位数M从密码的第3位起往后取混沌映射迭代初始值,如M=16,则取4位密码为初始值Key1,当然,这些密码是不需要用户记忆的。
② 按下学习键,防盗主机把混沌映射的迭代次数与迭代初值Key1发送给遥控器,而防盗主机只需要保存迭代次数。
③ 遥控器把接收到的混沌映射迭代次数与迭代初值保存起来;然后将Key1进行迭代得到Key2,并把它发回给防盗主机,表示初始化参数保存成功。
④ 防盗主机接收遥控器返回的Key2后,它也进行混沌映射迭代,得到的Key3此时需要保存起来。到此为止,初始化配对结束。
密码初始配对成功后就可以正常使用,当然在正常使用后,还可以再次进行密码初始配对。图5给出了完整一次遥控过程。
图5一次动态密码遥控过程
① 当按下遥控器按键,Key1作为识别码经过混沌映射迭代产生Key2,Key2与功能指令码组成动态密码一起发向防盗主机。
② 防盗器接收到动态密码后,取出Key2进行混沌映射迭代,得到的Key3与主机中保存的Key3进行比较验证。
③ 识别码验证成功后,防盗主机根据功能指令码实现相应的功能。
④ 将Key3进行混沌映射迭代,将迭代结果Key4发向遥控器。Key4在遥控器端进行混沌映射迭代,得到的结果Key5被保存起来,作为下次遥控的密钥。
⑤ 混沌迭代得到的Key5、Key6与Key4一样,只是作为一个中间结果,最终的迭代结果Key7才被保存,用在下一次遥控的验证。
本文提出的动态密码遥控方法具有以下几个特点:
首先,在遥控的过程中,如果有非法破解者采用捕捉和扫描跟踪的办法得到密码,想通过这个复制的密码冒充合法用户控制车辆是不可能的,因为每次无线信道中传输的密码都不是用作验证的,完成传输后就不被保存,是舍弃的。按照示意图中密钥序号,无线信道中传输的密钥是Key2、Key4、Key6、Key8……遥控器将保存的密钥是Key1、Key5、Key9……防盗主机中保存的密钥是Key3、Key7、Key11……
其次,在密码验证成功前,遥控器和防盗主机都只作了1次混沌映射(迭代不止1次),其他的映射是在验证成功后再进行,这就保证了遥控的处理速度。
最后,用户不需要记忆任何密码,而且用户随时可在防盗主机端通过学习键再次配对遥控,迭代次数与初值的不一样,使得极少可能出现编码重复的现象。
结语
本文提出了一种基于混沌映射的汽车遥控防盗方法,该方法的实现对硬件要求不高,可以在现有无线遥控系统的基础上实现。同时,能够很好地实现密码每发射一次,密码随机变化一次,确保遥控防盗的有效性。该方法有效地防止了盗车贼用遥控器拷贝机破解出密码,复制出相同的遥控器,从而冒充合法用户控制车辆,导致车辆被盗。