为了更有效地缓解城市交通拥挤,充分利用现有的交通设施,提高交通管理效率,将先进的信息技术、数据通讯技术、电子控制技术及计算机处理技术等,有效地综合应用于地面交通管理体系,从而建立起一种大范围、全方位发挥作用的,实时、准确、高效的智能交通系统。

数据加密技术在智能交通系统下的应用

智能交通系统(ITS)的形成是用户需求不断增加的过程,是技术进步、技术重组的过程,是面对由交通引发的多情况下人们不断系统优化的过程。ITS通信系统包括:有线广域通信,无线广域通信,专用短程通信和车辆间的通信。通信系统是智能交通系统的神经和枢纽,通信安全和稳定直接影响了整个系统的正常运行,因此研究数据加密技术在“智能交通系统”中的应用意义重大。

一、数据加密技术

1、 数据加密技术基本原理

数据加密技术在¨智能交通系统”中的应用就是防止有用或私有化信息在网络上被拦截和窃取。—个简单的例子就是密码的传输:许多安全防护体系是基于密码的,密码的泄霜在某种意义上来讲意味着其安全体系的全面崩溃,数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文’,’使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法窃取、‘阅读的目的.该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。

2、数据加密技术的类型

加密的方法一般分为两大类:对称式加密方法和非对称式加密方法:对称式加密就是加密和解密使用同一个密钥,通常称之为“Session Key”这种加密技术目前被广泛采用,如美国政府所采用的DES加密标准就是一种典型的“对称式”加密法,它的Session Key长度为56Bits;非对称式加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥’''它们两个必需配对使用,否则不能打开加密文件。这里的“公钥”是指可以对外公布的,“私钥”则不能,只能由持有人一个人知道.它的优越性就在这里,因为对称式的加密方法如果是在网络上传输加密文件就很难把密钥告诉对方,不管用什么方法都有可能被别窃听到。而非对称式的加密方法有两个密钥,且其中的“公钥”是可以公开的,也就不怕别人知道,收件人解密时只要用自己的私钥即可以,这样就很好地避免了密钥的传输安全性问题。

二、加密算法_

加密算法有多种,重点研究多步加密算法。其思想是:使用一系列的数字(比如说128位密钥),‘’来产生一个可重复的但高度随机化的伪随机的数字的序列,一次使用256个表项,使用随机数序列来产生密码转表,把256个随机数放在一个距阵中,’然后对他们进行排序,使用这样—种方式(我们要记住最初的位置)使用最初的位置来
产生—个表,表中的数字在0到255之问,让这个随机数产生器接着来产生这个表中的其余的数,以至于每个表是不刷的。下一步,使用¨shotgun technique¨技术来产生解码表,基本上说,如果a映射到b,那么b一定可以映射到a所以b[a[n]]=n(n是一个在O到255之问的数)。在一个循环中赋值,使用一个256字节的解码表它对应于我们刚才在上一步产生的256字节的加密表.使用这个方法,已经可以产生这样的一个表,表的顺序是随机的,所以产生这256个字节的随机数使用的是二次伪随机,使用了两个额外的16位的密码。现在,已经有了两张转换表,加密解密是如下工作的:前—个字节密文是这个256字节的表的索引。为了提高加密效果,可以使用多余8位的值,甚至使用校验和或者crc算法来产生索引字节,假定这个表是256*256的数组,将会是下面的样子:cryptol=a[crypto0][value]。

变量‘cryptol’是加密后的数据,‘crypt00’是前—个加密数据,很自然的,第—个数据需要—个“种子’'’这个“种子”是我们必须记住的。如果使用256*256的表,这样做将会增加密文的长度:或者,可以使用你产生出随机数序列所用的密码,也可能是它的crc校验和。顺便提及的是曾作过这样一个测试:使用16个字节来产生表的索引,以128位的密钥作为这16个字节的初始的¨种子¨,然后,在产生出这些随机数的表之后,就可以用来给数据文件加密,速度达到每秒钟100k个字节,一定要保证在加密与解密时都使用加密的值作为表的索引,而且这两次一定要匹配。加密时所产生的伪随机序列是很随意的,可以设计成想要的任何序列,没有关于这个随机序列的详细的信息,解密密文是不现实的.例如:—些ascii码的序列,如“eeeeeeee¨可能被转化成—些随机的没有任何意义的乱码,每—个字节都依赖于其前一个字节的密文,而不是实际的值,对于任一个单个的字符的这种变换来说,隐藏了加密数据的有效的真正的长度。

如果确实不理解如何来产生一个随机数序列,就考虑fibbonacci数列,使用2个双字(64位)的数作为产生随机数的种子,再加上第三个双字来做xor操作。这个加密算法产生了一系列的随机数,算法如下:

unsigned long dwl, dw2, dw3, dwmask;

int il;

unsigned long arandom[256];

dwl = {seed #1};

dw2 = {seed #2};

dwmask = {seed #3};

// this gives you 3 32-bit "seeds", or 96 bits total

for(il=0; il < 256; il++)

{

dw3 = (dwl + dw2)^ dwmask;

arandom[il] = dw3;

dw1= w2;

dw2 = dw3;

如果想产生一系列的随机数字,比如说,在0和列表中所有的随机数之间的—些数就可以使用下面的方法:

int cdecl mysortproc(void *p1, void *p2)

{

unsigned long **ppl = (unsigned long **)pl;

unsigned long **pp2 = (unsigned long **)p2;

if(**ppl< **pp2)

return(-1);

int aresult[256]; // results go here

for(il=0; il < 256; il++)

{

aprandom[il] = arandom + il;

}

// now sort it

else if(**ppl > *pp2)

retum(l);return(0);

}

int il;

unsigned

unsigned

before, in

long *aprandom[256];

long arandom[256l; //same

this case

qsort(aprandom, 256, sizeof(*aprandom),mysortproc);

// final step - offsets for pointers are placed into

output array

for(il=0; il < 256; il++)

{

aresult[il] = (int)(aprandom[il] - arandom);

}

...

变量’aresult'中的值应该是一个排过序的唯一的一系列的整数的数组,整数的值的范围均在0到255之间。这样一个数组是非常有用的,例如:对—个字节对字节的转换表,就可以很容易并且非常可-的来产生一个短的密钥取经常作为一些随机数的种子)。这样—个表还有其他的用处,比如说:来产生—个随机的字符,计算机游戏中一
一个物体的随机的位置等等,上面的例子就其本身而言并没有构成—个加密算法,只是加密算法—个组成部分。

作为一个测试,我们开发了一个应用程序来测试上面所描述的加密算法。程序本身都经过了几次的优化和修改,’来提高随机数的真正的随机性和防止会产生一些短的可重复的用于加密的随机数。用这个程序来加密—个文件,破解这个文件可能会需要非常巨大的时间以至于在现实上是不可能的。

总之,在“智能交通系统”中,要确保—些敏感的数据只能被有相应权限的人看到,要确保信息在传输的过程中不会被篡改截取,这就需要应用到数据加密技术。数据加密是肯定可以被破解的,但想要的是—个特定时期的安全,也就是说,密文的破解应该是足够的困难,可以保证“智能交通系统”稳定可靠的运行。

小知识之智能交通系统

智能交通系统(Intelligent Transport System 或者 Intelligent Transportation System,简称ITS)是将先进的信息技术、通讯技术、传感技术、控制技术以及计算机技术等有效地集成运用于整个交通运输管理体系,而建立起的一种在大范围内、全方位发挥作用的,实时、准确、高效的综合的运输和管理系统。