对于一个防盗器使用巳成熟的市场而言,用固定码方式加密就显得既不可靠又不安全,因为在无线信道上传输的密文极易被复制,从而可在不用解密的情况下,重发复制下来的密文冒充合法用户控制车辆,使车辆被盗。针对上述有问题的遥控系统,我们采用DES加密算法对原始代码加入变动码后的整个信息进行非线性加密,从而产生高度保密的滚动码。

一、、基于DES的滚动加密算法

1、DES数据加密技术

数据加密标准(DES)是由美国国家安全局认证,并已被作为联邦标准被采用的可靠加密算法。它对二元数据进行加密,构成分组(块)加密形式,DES整个体制是公开的。其系统的安全性全靠密钥与加密算法。在该加密算法中,当密钥仅改变一位时,就可以使密文中的每一位大约有50%的可能改变;当明文改变一位时,也可以使密文中的每一位大约有50%的可能改变。因此,若采用错误的密钥,则解密码位平均有一半是错误的,有非省优秀的保密性,从而防止接收端非法雨户窃听的被动攻击方式。另外,一个通信系统的安全,不仅应该包括信息本身的保密性,还应该包括信息的真实性和完整性;有一种所谓的主动攻击可以来自发送端非法用户的伪造、篡改、删除、重放。甚至也可以是合法用户的抵赖和篡改,若采用合适的加密算法,可以防止在发送端主动攻击的方式,使得在接收端、接收者或第三者均可根据认证标记验证信息的真、伪,以保证信息系统的安全性。

对于每次传输的信息变化不大,信息的表现形式集合为有限集,但对安全性育要求系统,若不加任何防范措施,这类系统提供的保护是非常有限的,因为这种系统的保密性只能靠提高传输代码的长度来实现。而代码的长度总是有限的,因而只能得到有限的代码组合。但是,即使传输的代码已经过了相当可靠的加密算法加密,如果它需要传输的信息是有限的。使得发射的信号仍然是有限的,那么用捕捉和扫描跟踪的办法。就很容易得到密文代码,这样就被非法用户擅自使用。当然,如果你使用一个非常复杂的加密算法,每次加密的密钥都是变化的,也是可以保密。但这样也不是很可行,一是目前还没有一个理想的加密算法,再者对于一个需要市场的产品而言,不停地更换密钥对安全和用户的满意受都是非常不利的。

下面我们就介绍一下基于DES的滚动加密技术的实现过程:整体流程图如下图1所示:

DES滚动加密算法在机车防盗系统中的应用

2、滚动编码的设计

所谓滚动编码,是相对于固定编码而言,在传输代码之前用一个普通的加密算法对原始代码加入一个变动码后进行非线性加密,从而产生高度保密的滚动码,使得即使要传输的信息投变,但在信道上每次传输代码都是唯一的,不重复的。另外,由于要在原始明文代码后加入一个由自己设定的变动码,将原始明文代码和变动码同时送入加密算法进行加密,不仅使发送的信息不易泄露,还使接收方可以在用来确定收到的消息是否真正来自对应的发送方的同时,验证来自发送方的消息是否被别人侈改改过,因此,使用滚动编码可以不用设计特定的复杂的认证算法就起到了认证的目的,其益处是显而易见的了。

滚动加密技术关键之处是在要传送的信息外添加适当的变动码,如同步码,使得可在相当长的时间内(如十五年),它在每次发送的密文都是不同的。当然,也可以用伪序列发生器产生的编码。但采用同步序列码,优势是非常明显的,除了可以使每次在空间传输的编码都是变化,防止接收端非法用户窃听的被动攻击方式以外,还可以通过双方对应的同步码容易地防止发送端非法用户窃听的主动攻击方式,作为身份验证码。

3、基于DES的滚动加密技术的实现

另外,需要指出的是,前文已经提到一个优秀的加密算法能够使得滚动编码的安全性得到进一步的提高,而一般的遥控系统均需要用单片机设计完成指定的其他功能,为了使设计的滚动编码能够方便、经济地应用,我们采用DES加密算法来实现滚动编码,使得可以在不添加任何硬件的基础上方便、快捷地实现遥控系统的安全。总之,基于DES加密算法的滚动编码相对于其它各类加密算法,在加密和解密方面有它的独到之处,前文已分别做过描述,但在这儿,必须强调三点:

(1)DES加密算法利于单片机编程

由于DES加密算法主要采用复杂的移位方式,使得利用汇编语言实现很方便(因为汇编中直接就有各种移位指令,耗费的运行周期也较短)。RSA加密算法由于主要是乘幂运算,用汇编语言实现很复杂。

(2)与别的加密算法比较

DES加密算法加密和解密不需分别编写,因为加密和解密可用同一个程序,只需在迭代末加个小变化,因此编程方便、简单。

(3)在无线遥控系统中

本身煎有个核心部件一单片机来进行各种事务的处理,因此在这基础上再加人一个加密模块,是非常简便和经济的。

二、DES滚动加密算法在遥控式机车防盗系统中的应用

1、无线遥控式机车防盗系统

遥失式机车防盗器是市场上推广普及极为广泛的一种,目前市场上的遥控机车防盗系统一般从下面几个方面的特点进行考虑和设计的;

(1)先进性:采用先进的加密技术以及跳频技术;

(2)环保:静音寻车、静音遥控、无误报、无噪声;

(3)安全:遥控器采用先进的加密技术,无法破译和复制。

(4)方便:操作简单,在您不知不觉中就完成防盗使命;

(5)油电路双重控制:一般情况下,机车的油电路是断开的,只有密码正确方可接通油电路启动机车,安装起来简单方便;

(6)短线或搭线报警:有防拆保护功能,当系统进入警戒状态后,如线路被剪断或搭线则会引发报警;

(7)遥控中央门锁:当遥控器发射正确信号时,中央门锁自动开启或关闭;

(8)非法开门报警:当车主遥控锁门以后.报警器进入警戒状态,此时如撬门或用私配钥匙开,会立即引发报警,并且油电路切断;

(9)寻车:车主用遥控器寻车时,喇叭呜叫,同时伴有车灯闪烁提示;

(10)防劫:报敬警器进入防劫状态60秒以后,机车自动熄火,油电路切断,机车无法自动,再过60秒后用遥控器方可解除;

(11)静音:在用遥控器寻车、遥控开门、遥控锁门时,如使用此功能,喇叭不响,但有车灯提示;

(12)车门未关安全提示:机车启动行驶时,若车门未关车灯会连续闪烁若干秒;机车熄火遥控锁门后,此时若车门未关,车灯会不停闪烁,喇叭呜叫直到车门关上为止;

(13)刹车落锁:机车宕动后,踩一下脚剃,车门自动上锁,机车熄火后,车锁自动打开。

本系统在实现基于DES滚动加密算法的基础,设计尽量结合上面的各种功能,使其不仅在传输信息的安全得到保证,还使产品有较完善的功能.达到一定程度的先进性。

2、硬件部分

安装在机车上的系统是该系统的控制中心,主要由以下部件组成:单片机部分、传感部分、门拉部分、报警部分、配线部分及其它附件。

单片讥部分采用摩托罗拉的MC68HC05/08系列的单片机,因为Mocorola单片机在通讯领域占有很大的市场份额,采用Motorola单片机便于与市场接轨。这款Motorola单片机采用锁相环技术,用外部低频晶振产生内部高频,使得外部频率噪声低,抗干扰能力强,且能通过编程控制外部干扰,更适合用于恶劣,多变的环境。

传感部分使用的是荡传感器和滚动传感器的信号综合判断。振荡传感器安放在车门或车窗的内侧,滚动传感器安装在带动车轮的滚轴上,多重判断有利于防止误报的发生。

遥控器主要是一块单片礼、四个按钮、一块液晶显示和一对收发器构成的。其主要完成对昕发送和接受的信号进行加密或解密。

3、基于无线遥控的机车防盗系统的软件组成

系统采用中断方式实时检测信号,在正常情况下可以根据接收器收到的车主发出的控制信号,对机车进行相应的预热、上锁、熄火等操作。在异常情况下,分析检测到的信号如是意外事件(如车子停放处附近发生大的爆炸声引起的,则记录并留待进一步分析,防止误动作。如是由于偷车贼进行非法活动引起的,则报警。

要实现智能报警功能,对抗干扰的要求还是相当高的。传感器的干扰源主要是附近大声响或振动,如爆炸、载重机车爬坡引起的振颤等。为了消除种干扰,我们在车门处设置了振动传感器的同时,也在车轴上安装丁滚动传感器。它们一般都被安放在保护范围的中心不易为破坏的地方。在正常情况下,单片机处于低功耗休眠状态,当传感器传来信号时,单呼机被中断信号源唤醒,并分辨信号源,如车子发生滚动.为了进一步确认,延时2s再重复检测判断滚动传感器输出的状态,若其仍有信号,则确认育盗贼,立即闭合报警回路、呜叫蜂呜器、制动机车,同时将报警信息进行加密,由发射器发射并通知车主。如唤醒信号为振动信号,则记录该信号,继续检测。若在设定的时间内检测到有滚动信号,或持续有振动,则报警,否则判断为干扰源。

在本系统中,滚动加密码产生的原理图如图2所示:

DES滚动加密算法在机车防盗系统中的应用

发射的帧格式如图3所示:

DES滚动加密算法在机车防盗系统中的应用

用软件实现加密算法在速度、开锖方面是处于不利因素,有利之处是灵活性和可移植性、易使用、易升级,而且也能和大型应用如通信或字处理程序相结台。由于加密往往仅仅是无线能信系统的一个子功能,一般的遥控系统均要用单片机设计完成指定的其他功能,而前文设计的基于DES加密算法的滚动编码可以用单片机编程方便地实现,并能较好地克服上述所提的不利因素,因此,滚动编码在加密和解密方面有它的独到之处。

系统采用同步序列号作为变动码。当遥控器每发出一条指令或命令时,同步序列号将自动加1,将此同步序列号作为变动码添加在命令信息后,使得即使是同样的遥控命令,将产生不同的明文,从而使得加密后的密文是变化的。在无线遥控系统中,明文除了同步序列和按键信息外,可以还有一个产品序列号,是由于对于同一个被控对象,可以由好几个遥控器分别进行控制产生的,对接收信息进行验证的过程如下图4所示。

DES滚动加密算法在机车防盗系统中的应用

在接收器接受到频率相同、有正确的同步码等辨别码头的信息后,对消息正文进行解密。其验证过程是通过以下步骤完成的:

(1)取出产品序列号,如果该序列号与单片机内存的产品序列号不同,就跳到步骤(5),否则执行步骤(2);

(2)取出同步序列码,与单片机内的同步计数器的值比较,如果相同,就跳到步骤(4),否则进行步骤(3)的工作;

(3)如果同步序列码比单片机内的同步计数器的值还小,则跳到步骤(5),否则如果同步序列码与单片机内的同步计数器的差在8以内,便可判断为主从机失去同步,跳到步骤(4),如果同步序列码与单片机内的同步计数器的差值大于8,则将该同步序列号与一个指定的临时计数器比较,差值在8以内,则修改对应的同步计数器,并执行步骤(4);

(4)读取按键信息并执行相应的命令,并修改对对应计数器的值(如加1)以便正确校睑下一次的信息;

(5)结束,等待下一个信息的到来。

上述的过程使得对信息的正确性、完整性都得了验证。需要'电明一点的是,由于在本系统中,每辆机车可以配有多个遥控器,而每个遥控器都有对应的产品序列号,因此,需要针对每卜遥控器在单片机内开辟空间存贮用来判断产品序列号以致各自的同步序列号。当然,失步值可以根据系统的不同而进行下同的设定。如果失步现象非常严重的话,还可以采取”学习”的方式进行同步,这些都能修容易实现。

4、加密算法在单片机上的实现实例数数据分析及结论

本节就上面所讲的内容利用单片机实现了基于DES加密算法的滚动编码,并对得到的数据进行分析和认证。本节提供的数据如果没有特别指出,均以二进制表示。为了证实该加密算法的可行性,将最不利的情况一一每次遥控器发射的命令不变进行分析,即变化的仅仅是同步序列号.如果最不利的情况都可达到理想的效果,加密算法的可行性拉铑得到验证。

可以假设,在遥控器初次使用时同步序列号的初始值为6666666666(十六进制),产品序列号为}88888(十进制),按钮信息为:8(十六制),设明文为:

oiio oii0 0110 0iio oiio oiio oiio oiio oiio0110 1000 1000 iooo iooo iooo iooo

密钥为:oioi ioio ioii oioi oioi 1011 00ii oiio ioiolulo iioi iooi ioii oiii

运行程序得到输出码组,即密文:

1101 0101 0011 1011 iooi ioii iooo ioio ioio oooi0000 0111 0111 1101 0ioi iiii

在遥控器第二次发射时,按钮信息不变,仅改变了同步序列号,变为:6666666667,明文变成:

0110 0iio oii oii0 0110 0110 0110 0iio 0110 0111000 1000 1000 1000 1000 1000

输出的密文变成了:

1000 1100 1110 ioi0 0001 iii0 100l 0110 l010 1110iioo ooii iioo iooi 0010 ioii

从上面举的例子,证实了滚动编码能使得即使要传输的信息内容没变,但在信道上每次传输的代码都是唯一的、不得重复的。而且,下一次的编码与上次的编码关系是非线性的。对于每次传输的信息是有限变化的系统,在加入每次都是变化的同步序列号后.采用DES算法进行滚动编码,在增加非常少量的传输码的同时,大大地提高了系统的安全性。

小知识之机车防盗系统

机车防盗系统,是指防止机车本身或车上的物品被盗所设的系统。它由电子控制的遥控器或钥匙、电子控制电路、报警装置和执行机构等组成。 最早的机车门锁是机械式门锁,只是用于机车行驶时防止车门自动打开而发生意外,只起行车安全作用,不起防盗作用。随着社会的进步、科学技术的发展和汽车保有量的不断增加,后来制造的轿车、货车车门都上装了带钥匙的门锁。这种门锁只控制一个车门,其他车门是靠车内门上的门锁按钮进行开启或锁止。