數(shù)據(jù)加密技術(shù)在智能交通系統(tǒng)下的應(yīng)用

為了更有效地緩解城市交通擁擠,充分利用現(xiàn)有的交通設(shè)施,提高交通管理效率,將先進(jìn)的信息技術(shù)、數(shù)據(jù)通訊技術(shù)、電子控制技術(shù)及計算機(jī)處理技術(shù)等,有效地綜合應(yīng)用于地面交通管理體系,從而建立起一種大范圍、全方位發(fā)揮作用的,實(shí)時、準(zhǔn)確、高效的智能交通系統(tǒng)。

數(shù)據(jù)加密技術(shù)在智能交通系統(tǒng)下的應(yīng)用

智能交通系統(tǒng)(ITS)的形成是用戶需求不斷增加的過程,是技術(shù)進(jìn)步、技術(shù)重組的過程,是面對由交通引發(fā)的多情況下人們不斷系統(tǒng)優(yōu)化的過程。ITS通信系統(tǒng)包括:有線廣域通信,無線廣域通信,專用短程通信和車輛間的通信。通信系統(tǒng)是智能交通系統(tǒng)的神經(jīng)和樞紐,通信安全和穩(wěn)定直接影響了整個系統(tǒng)的正常運(yùn)行,因此研究數(shù)據(jù)加密技術(shù)在“智能交通系統(tǒng)”中的應(yīng)用意義重大。

一、數(shù)據(jù)加密技術(shù)

1、 數(shù)據(jù)加密技術(shù)基本原理

數(shù)據(jù)加密技術(shù)在¨智能交通系統(tǒng)”中的應(yīng)用就是防止有用或私有化信息在網(wǎng)絡(luò)上被攔截和竊取。—個簡單的例子就是密碼的傳輸:許多安全防護(hù)體系是基于密碼的,密碼的泄霜在某種意義上來講意味著其安全體系的全面崩潰,數(shù)據(jù)加密的基本過程就是對原來為明文的文件或數(shù)據(jù)按某種算法進(jìn)行處理,使其成為不可讀的一段代碼,通常稱為“密文’,’使其只能在輸入相應(yīng)的密鑰之后才能顯示出本來內(nèi)容,通過這樣的途徑來達(dá)到保護(hù)數(shù)據(jù)不被非法竊取、‘閱讀的目的.該過程的逆過程為解密,即將該編碼信息轉(zhuǎn)化為其原來數(shù)據(jù)的過程。

2、數(shù)據(jù)加密技術(shù)的類型

加密的方法一般分為兩大類:對稱式加密方法和非對稱式加密方法:對稱式加密就是加密和解密使用同一個密鑰,通常稱之為“Session Key”這種加密技術(shù)目前被廣泛采用,如美國政府所采用的DES加密標(biāo)準(zhǔn)就是一種典型的“對稱式”加密法,它的Session Key長度為56Bits;非對稱式加密就是加密和解密所使用的不是同一個密鑰,通常有兩個密鑰,稱為“公鑰”和“私鑰’''它們兩個必需配對使用,否則不能打開加密文件。這里的“公鑰”是指可以對外公布的,“私鑰”則不能,只能由持有人一個人知道.它的優(yōu)越性就在這里,因?yàn)閷ΨQ式的加密方法如果是在網(wǎng)絡(luò)上傳輸加密文件就很難把密鑰告訴對方,不管用什么方法都有可能被別竊聽到。而非對稱式的加密方法有兩個密鑰,且其中的“公鑰”是可以公開的,也就不怕別人知道,收件人解密時只要用自己的私鑰即可以,這樣就很好地避免了密鑰的傳輸安全性問題。

二、加密算法_

加密算法有多種,重點(diǎn)研究多步加密算法。其思想是:使用一系列的數(shù)字(比如說128位密鑰),‘’來產(chǎn)生一個可重復(fù)的但高度隨機(jī)化的偽隨機(jī)的數(shù)字的序列,一次使用256個表項,使用隨機(jī)數(shù)序列來產(chǎn)生密碼轉(zhuǎn)表,把256個隨機(jī)數(shù)放在一個距陣中,’然后對他們進(jìn)行排序,使用這樣—種方式(我們要記住最初的位置)使用最初的位置來
產(chǎn)生—個表,表中的數(shù)字在0到255之問,讓這個隨機(jī)數(shù)產(chǎn)生器接著來產(chǎn)生這個表中的其余的數(shù),以至于每個表是不刷的。下一步,使用¨shotgun technique¨技術(shù)來產(chǎn)生解碼表,基本上說,如果a映射到b,那么b一定可以映射到a所以b[a[n]]=n(n是一個在O到255之問的數(shù))。在一個循環(huán)中賦值,使用一個256字節(jié)的解碼表它對應(yīng)于我們剛才在上一步產(chǎn)生的256字節(jié)的加密表.使用這個方法,已經(jīng)可以產(chǎn)生這樣的一個表,表的順序是隨機(jī)的,所以產(chǎn)生這256個字節(jié)的隨機(jī)數(shù)使用的是二次偽隨機(jī),使用了兩個額外的16位的密碼?,F(xiàn)在,已經(jīng)有了兩張轉(zhuǎn)換表,加密解密是如下工作的:前—個字節(jié)密文是這個256字節(jié)的表的索引。為了提高加密效果,可以使用多余8位的值,甚至使用校驗(yàn)和或者crc算法來產(chǎn)生索引字節(jié),假定這個表是256*256的數(shù)組,將會是下面的樣子:cryptol=a[crypto0][value]。

變量‘cryptol’是加密后的數(shù)據(jù),‘crypt00’是前—個加密數(shù)據(jù),很自然的,第—個數(shù)據(jù)需要—個“種子’'’這個“種子”是我們必須記住的。如果使用256*256的表,這樣做將會增加密文的長度:或者,可以使用你產(chǎn)生出隨機(jī)數(shù)序列所用的密碼,也可能是它的crc校驗(yàn)和。順便提及的是曾作過這樣一個測試:使用16個字節(jié)來產(chǎn)生表的索引,以128位的密鑰作為這16個字節(jié)的初始的¨種子¨,然后,在產(chǎn)生出這些隨機(jī)數(shù)的表之后,就可以用來給數(shù)據(jù)文件加密,速度達(dá)到每秒鐘100k個字節(jié),一定要保證在加密與解密時都使用加密的值作為表的索引,而且這兩次一定要匹配。加密時所產(chǎn)生的偽隨機(jī)序列是很隨意的,可以設(shè)計成想要的任何序列,沒有關(guān)于這個隨機(jī)序列的詳細(xì)的信息,解密密文是不現(xiàn)實(shí)的.例如:—些ascii碼的序列,如“eeeeeeee¨可能被轉(zhuǎn)化成—些隨機(jī)的沒有任何意義的亂碼,每—個字節(jié)都依賴于其前一個字節(jié)的密文,而不是實(shí)際的值,對于任一個單個的字符的這種變換來說,隱藏了加密數(shù)據(jù)的有效的真正的長度。

如果確實(shí)不理解如何來產(chǎn)生一個隨機(jī)數(shù)序列,就考慮fibbonacci數(shù)列,使用2個雙字(64位)的數(shù)作為產(chǎn)生隨機(jī)數(shù)的種子,再加上第三個雙字來做xor操作。這個加密算法產(chǎn)生了一系列的隨機(jī)數(shù),算法如下:

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;

如果想產(chǎn)生一系列的隨機(jī)數(shù)字,比如說,在0和列表中所有的隨機(jī)數(shù)之間的—些數(shù)就可以使用下面的方法:

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'中的值應(yīng)該是一個排過序的唯一的一系列的整數(shù)的數(shù)組,整數(shù)的值的范圍均在0到255之間。這樣一個數(shù)組是非常有用的,例如:對—個字節(jié)對字節(jié)的轉(zhuǎn)換表,就可以很容易并且非???的來產(chǎn)生一個短的密鑰取經(jīng)常作為一些隨機(jī)數(shù)的種子)。這樣—個表還有其他的用處,比如說:來產(chǎn)生—個隨機(jī)的字符,計算機(jī)游戲中一
一個物體的隨機(jī)的位置等等,上面的例子就其本身而言并沒有構(gòu)成—個加密算法,只是加密算法—個組成部分。

作為一個測試,我們開發(fā)了一個應(yīng)用程序來測試上面所描述的加密算法。程序本身都經(jīng)過了幾次的優(yōu)化和修改,’來提高隨機(jī)數(shù)的真正的隨機(jī)性和防止會產(chǎn)生一些短的可重復(fù)的用于加密的隨機(jī)數(shù)。用這個程序來加密—個文件,破解這個文件可能會需要非常巨大的時間以至于在現(xiàn)實(shí)上是不可能的。

總之,在“智能交通系統(tǒng)”中,要確?!┟舾械臄?shù)據(jù)只能被有相應(yīng)權(quán)限的人看到,要確保信息在傳輸?shù)倪^程中不會被篡改截取,這就需要應(yīng)用到數(shù)據(jù)加密技術(shù)。數(shù)據(jù)加密是肯定可以被破解的,但想要的是—個特定時期的安全,也就是說,密文的破解應(yīng)該是足夠的困難,可以保證“智能交通系統(tǒng)”穩(wěn)定可靠的運(yùn)行。

小知識之智能交通系統(tǒng)

智能交通系統(tǒng)(Intelligent Transport System 或者 Intelligent Transportation System,簡稱ITS)是將先進(jìn)的信息技術(shù)、通訊技術(shù)、傳感技術(shù)、控制技術(shù)以及計算機(jī)技術(shù)等有效地集成運(yùn)用于整個交通運(yùn)輸管理體系,而建立起的一種在大范圍內(nèi)、全方位發(fā)揮作用的,實(shí)時、準(zhǔn)確、高效的綜合的運(yùn)輸和管理系統(tǒng)。