基于Logistic映射的混沌加密算法在運(yùn)輸遠(yuǎn)程監(jiān)控中的應(yīng)用

傳統(tǒng)的DES對(duì)稱加密雖然實(shí)現(xiàn)速度也很快但是密鑰長度短,易受攻擊。而RSA非對(duì)稱加密的密鑰受到素?cái)?shù)產(chǎn)生技術(shù)的限制,因此很難做到,一次一密運(yùn)算速度較慢。為此我們針對(duì)遠(yuǎn)程監(jiān)控中GPRS網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)陌踩珕栴}提出的基于Logistic映射的混沌加密算法。

一、運(yùn)輸遠(yuǎn)程監(jiān)控網(wǎng)絡(luò)與數(shù)據(jù)傳輸

隨著物流行業(yè)的發(fā)展,運(yùn)輸遠(yuǎn)程監(jiān)控越來越成為運(yùn)輸企業(yè)進(jìn)行物流管理的重要手段,通過中央控制管理平臺(tái)對(duì)遠(yuǎn)距離或異地的設(shè)備進(jìn)行操作和信息收集。運(yùn)輸遠(yuǎn)程監(jiān)控平臺(tái)的組成如圖1所示。

該平臺(tái)的服務(wù)器通過GPRS網(wǎng)絡(luò)與設(shè)備終端的數(shù)據(jù)匯轉(zhuǎn)模塊進(jìn)行通信,網(wǎng)絡(luò)中的信息是通過自定的TCP/IP協(xié)議傳輸?shù)?,設(shè)備端通過AT指令集發(fā)送到串口,串口利用GPRS模塊將其發(fā)送給服務(wù)器,服務(wù)器以二進(jìn)制流的形式接收和存儲(chǔ)信息,所有的關(guān)于組網(wǎng)、查詢及時(shí)實(shí)數(shù)據(jù)等信息都需要通過GPRS網(wǎng)絡(luò)以TCP數(shù)據(jù)包的形式傳送給服務(wù)器,又由于數(shù)據(jù)包的前面幾個(gè)字節(jié)的內(nèi)容經(jīng)常是固定的,所以網(wǎng)絡(luò)傳輸成為系統(tǒng)安全的一個(gè)極其脆弱的漏洞,尤其是系統(tǒng)的設(shè)備端,沒有任何防護(hù)措施,當(dāng)外界干擾強(qiáng)烈或遭遇黑客截獲信息攻擊。服務(wù)器或設(shè)備時(shí),可能導(dǎo)致服務(wù)器端和串口端接收的二進(jìn)制流信息的某個(gè)字符的錯(cuò)位或錯(cuò)誤。

在上述情況下,筆者提出在服務(wù)器端和設(shè)備端加入相同的混沌序列加密算法,以往的混沌加密普遍應(yīng)用于圖像和音頻的加密,現(xiàn)在改進(jìn)算法,使其可對(duì)本系統(tǒng)中的文本進(jìn)行加密。該加密算法運(yùn)行速度快,滿足了信息的及時(shí)性,并且由于混沌系統(tǒng)對(duì)初始值和混沌參數(shù)高敏感性、非線性混沌算法產(chǎn)生的偽隨機(jī)數(shù)的天然性,經(jīng)過加密后的數(shù)據(jù)與原數(shù)據(jù)有非常大的差別,信息發(fā)送者能夠確保信息安全地傳遞給接收者,使盜取者得不到正確的信息圈,因此該算法使整個(gè)系統(tǒng)的安全性能得到了保障。

二、混沌加密方法與流程

1、混沌的概念

混沌是一種復(fù)雜的動(dòng)力學(xué)行為,不是簡單的無序,它沒有明顯的周期和對(duì)稱,其內(nèi)部結(jié)構(gòu)豐富是非線性系統(tǒng)的一種新形式。最早的混沌現(xiàn)象是由美國氣象學(xué)家Lorenz在研究模擬天氣預(yù)報(bào)時(shí)發(fā)現(xiàn)的。當(dāng)時(shí),他應(yīng)用計(jì)算機(jī)技術(shù)把大氣的動(dòng)態(tài)方程簡化成了三階非線性方程,結(jié)果發(fā)現(xiàn)這個(gè)確定性方程的動(dòng)力學(xué)演化具有類似隨機(jī)的性質(zhì),因此發(fā)現(xiàn)了著名的Lorenz吸引子。目前,大家比較
能接受的對(duì)于“混沌”的數(shù)學(xué)描述是Li- Yorke定義:對(duì)于閉區(qū)間J,R,設(shè)連續(xù)映射J—J,如果存在不可數(shù)集S J。并滿足:

a、S不含周期點(diǎn);

b、對(duì)任意的兩個(gè)點(diǎn)p,q∈S(p≠q),則有:

c、對(duì)任意p∈S及周期點(diǎn)q∈J,且p≠q,則有:

則稱F映射在S上是混沌的。

混沌信號(hào)具有非周期性、連續(xù)寬帶頻譜和類似噪聲特性,使得它具有天然隱蔽性的特點(diǎn),而由非線性算法產(chǎn)生的混沌信號(hào)在加密算法下可以提供數(shù)量眾多的密鑰,用來產(chǎn)生序列密碼。序列密碼即混沌加密密碼,是將明文消息按字符逐位加密,混沌序列是一種非線性序列網(wǎng)同樣具有混沌狀態(tài)的特點(diǎn),如結(jié)構(gòu)復(fù)雜灘以分析和預(yù)測。美國科學(xué)家Shannon曾證明了OTP(一次一密加密法)理論是不可破譯的?;煦缧蛄忻艽a系統(tǒng)的加密端和解密端是兩個(gè)獨(dú)立的、完全相同的混沌系統(tǒng)網(wǎng),兩系統(tǒng)間不存在耦合關(guān)系。所以,在混沌加密算法下產(chǎn)生的序列密碼有很高的安全性能。

2、Logistic映射

一維Logistic映射是一類非常簡單的但被廣泛研究的動(dòng)力系統(tǒng),又稱蟲口映射最初的數(shù)學(xué)模型為Xn+l=Xn(a- bXn)。之后為了數(shù)學(xué)上方便計(jì)算令a=b=μ,由此得到如今成熟的關(guān)系式:

該模型起初用于描述種群的變化其中Xn表示當(dāng)年的種群數(shù),Xn+1則是下一年的種群數(shù),μ為增長參數(shù)。初始狀態(tài)XO與參數(shù)μ為種子密鑰Logistic映射屬于一維非線性映射,滿足達(dá)到混沌狀態(tài)時(shí)所需信號(hào)的特點(diǎn),對(duì)研究混沌具有普遍而重要的意義o研究發(fā)現(xiàn),當(dāng)參數(shù)μ在[3.57,4.00]之間時(shí),產(chǎn)生的混沌序列的隨機(jī)性比較好即混沌效果最佳,仿真對(duì)比結(jié)果如圖2所示。

此外,混沌系統(tǒng)下的Logistic對(duì)初始值和參數(shù)極為敏感,只要有非常微小的差別,兩個(gè)同構(gòu)混注系統(tǒng)在較短的時(shí)間后就會(huì)產(chǎn)生完全不同、互不相關(guān)的混沌序列值。圖3是用Matlab仿真了Logistic映射下的混沌系統(tǒng)對(duì)初值的敏感性,實(shí)線和虛線分別代表初值XO為0.8和0.800001時(shí)產(chǎn)生糸混沌序列??梢?,經(jīng)過多次迭代后的數(shù)值序列幾乎不能和初值為0,8的數(shù)值序列重合。

3、基于Logistic映射的混沌加密

Logistic映射既簡單又有確定的形式,不包含任何隨機(jī)因素,但迭代后的結(jié)果卻是看似完全隨機(jī)的,而且對(duì)參數(shù)的動(dòng)態(tài)變化和初值極為敏感?;谶@些特點(diǎn),Logistic映射下的混沌加密算法對(duì)文本是安全且無損的。筆者采用對(duì)稱加密算法,即加解密的密鑰相同,計(jì)算形式可寫成如下表達(dá)式:

式中:{cn}——密文信息序列;

{Kn}——密鑰信息序列;

{Pn}——名為信息序列。

基于Logistic映射的混沌加密模型采用了軌跡迭代后再進(jìn)行軌跡映射的加密方法,以密鑰作為迭代的初始條件,取一塊待加密的明文,計(jì)算該明文與迭代后的密鑰進(jìn)行一定的運(yùn)算得到密文序列。

混沌序列加密設(shè)計(jì)流程如圖4所示,流程描述為:

a、選擇合適范圍內(nèi)的密鑰,代入Logistic映射方程,產(chǎn)生混沌序列;

b、將該序列與要加密的明文信息進(jìn)行異或運(yùn)算,得到的密文由發(fā)送端傳至接收端;

c、選擇相同的密鑰,重復(fù)步驟a;

d、將步驟c產(chǎn)生的混沌序列與密文序列進(jìn)行異或運(yùn)算陰,得到明文序列。

三、加密算法改進(jìn)與程序?qū)崿F(xiàn)

遠(yuǎn)程監(jiān)控中的服務(wù)器是整個(gè)系統(tǒng)的“總指揮”,在正常運(yùn)行過程中,數(shù)據(jù)匯轉(zhuǎn)模塊的單片機(jī)通過AT指令集對(duì)GPRS模塊進(jìn)行控制然后把數(shù)據(jù)信息傳給服務(wù)器,服務(wù)器端由后臺(tái)接收并處理數(shù)據(jù),返回給設(shè)備端。車輛在行駛過程中,該交互動(dòng)作一直持續(xù)。為了保證數(shù)據(jù)準(zhǔn)確無誤地被傳送,在傳遞數(shù)據(jù)之前加入算法,使加密后的信息達(dá)到混沌狀態(tài),截獲信息者無法簡單地從密文中拱出明文影子。通常來說,此時(shí)要產(chǎn)生一個(gè)由實(shí)數(shù)構(gòu)成的序列{Xn}映射成由整數(shù)構(gòu)成的偽隨機(jī)序列來充當(dāng)加密密鑰。筆者針對(duì)在GPRS網(wǎng)絡(luò)中自擬的TCP/IP傳輸協(xié)議的特點(diǎn),選取的是經(jīng)過迭代的Xn小數(shù)點(diǎn)的后5位有效數(shù)字構(gòu)成的整數(shù),然后將該整數(shù)對(duì)256取余與明文逐位進(jìn)行異或運(yùn)算構(gòu)成密文,以下是該加密方法主要部分的C++程序。

double logistic( double u, double Xr int n) //Logistic映射方程,μ和x是密鑰

{

for ( int i = O; i < n; i+ +)

{
X=μ* X* (1 -x);

printf( "[%f] , x)

}

return x;

//混沌序列加密過程data數(shù)組代表接收和發(fā)送的數(shù)據(jù)包

char* Encrypt( char* data, double u, double x0, char*oEnStr)

{

double x = logistic( u, x0,1000)

int iLen = strlen( data)

if( oEnStr = = NULL )

return NULL;

for ( int i = 0; i ( iLen; i+ +)

oEnStr[0 = ( char) (((( int) ( x * 100000)) %256)“(int) data[i]//取x小數(shù)點(diǎn)后5位與明文序列進(jìn)行異或來生成密鑰

printf(”%d“%d=%d”,((jnt)(x*100000))%256, dataa ~] oEnStr0~]

}

return oEnStr;

}

我們?cè)O(shè)計(jì)了一個(gè)小的應(yīng)用程序?qū)嶒?yàn)了混沌序列加密算法對(duì)數(shù)據(jù)的加密,并且再一次驗(yàn)證了該算法對(duì)密鑰初值的敏感性。選取明文信息的一小部分實(shí)驗(yàn)加密,當(dāng)密鑰為μ=3.8,x=0.8時(shí),可見加密后的字符串完全與原始字符串不同,解密后便可恢復(fù)原文信息。

當(dāng)參數(shù)x為0. 800 001,即使初始值的差值差度為10-6加密后的序列(圖5)與參數(shù)為0.8時(shí)加密后的序列(圖6)也有很大差別,與明文序列完全不同。這里的密碼分析量和攻擊量是很大的,而且破譯者無法根據(jù)截取密文去重構(gòu)產(chǎn)生序列密碼的混沌系統(tǒng)的動(dòng)力學(xué)模型及初始狀態(tài)等這對(duì)數(shù)據(jù)信息的保密是很有利的。

在實(shí)際系統(tǒng)操作中基于大量明文序列,把該序列轉(zhuǎn)換成ASCII碼統(tǒng)計(jì)明文信息中的字符概率,從圖7、8中可以看出,通過加密,明文隨機(jī)混亂擴(kuò)散到整個(gè)密文中,并且字符的概率相差不大。

小知識(shí)之遠(yuǎn)程監(jiān)控系統(tǒng)

遠(yuǎn)程監(jiān)控系統(tǒng)是一款遠(yuǎn)程控制軟件,有時(shí)可以當(dāng)木馬程序來用。