国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

嵌入式系統(tǒng)的數(shù)據(jù)混沌加密算法研究

2010-11-05 06:42焦紅平陳小惠姬雷
電子測試 2010年3期
關(guān)鍵詞:加密算法密文解密

焦紅平,陳小惠,姬雷

(南京郵電大,南京 210003)

0 引言

在信息時(shí)代,我們經(jīng)常需要一種措施來保護(hù)我們的數(shù)據(jù),防止被一些懷有不良用心的人所看到或者破壞。在嵌入式系統(tǒng)中,我們也同樣需要對(duì)一些機(jī)密數(shù)據(jù)進(jìn)行加密,以防止數(shù)據(jù)在通信過程中被竊取。而嵌入式系統(tǒng)的處理速度相對(duì)與PC慢得多,因此,在客觀上就需要一種簡便而快捷的安全措施來保護(hù)機(jī)密數(shù)據(jù)不被竊取。本文實(shí)現(xiàn)了一種高效而簡便的混沌加密算法,能對(duì)嵌入式中的數(shù)據(jù)進(jìn)行有效加密。

1 數(shù)據(jù)加密方法

所謂數(shù)據(jù)加密(Data Encryption)技術(shù)是指將一個(gè)信息(或稱明文,plain text)經(jīng)過加密鑰匙(Encryption key)及加密函數(shù)轉(zhuǎn)換,變成無意義的密文(cipher text),而接收方則將此密文經(jīng)過解密函數(shù) 解密鑰匙(Decryption key)還原成明文。加密技術(shù)是網(wǎng)絡(luò)安全技術(shù)的基石。

加密算法主要分為對(duì)稱和非對(duì)稱算法。對(duì)稱算法采用相同的密鑰進(jìn)行加密和解密。常用的對(duì)稱加密算法有AES、IDEA、RC2/RC4、Skpjack、DES等,其最大的困難是密鑰分發(fā)問題,必須當(dāng)面或在公共傳送系統(tǒng)(電話系統(tǒng)、郵政服務(wù))中無人偷聽偷看的情況下交換密鑰。非對(duì)稱算法,采用公鑰進(jìn)行加密而利用私鑰進(jìn)行解密。

公鑰是可以公開的,任何人都可以獲得,發(fā)信人用公鑰將數(shù)據(jù)加密后再傳給收信人,收信人用自己的私鑰解密。但非對(duì)稱加密的加密速度慢,對(duì)于大量數(shù)據(jù)的加密傳輸是不適合的。非對(duì)稱加密算法包括RSA、DH、EC、DSS等。

2 混沌理論

1972年12月29日,美國麻省理工學(xué)院教授、混沌學(xué)開創(chuàng)人之一E.N.洛倫茲發(fā)表了著名的論文《蝴蝶效應(yīng)》,開啟了混沌理論的大門。時(shí)至今日,伴隨計(jì)算機(jī)等技術(shù)的飛速進(jìn)步,混沌學(xué)已發(fā)展成為一門影響深遠(yuǎn)、發(fā)展迅速的前沿科學(xué)?;煦鐏碜杂诜蔷€性動(dòng)力系統(tǒng),而動(dòng)力系統(tǒng)又描述的是任意隨時(shí)間發(fā)展變化的過程,并且這樣的系統(tǒng)產(chǎn)生于生活的各個(gè)方面。

舉個(gè)例子,生態(tài)學(xué)家對(duì)某物種的長期性態(tài)感興趣,給定一些觀察到的或?qū)嶒?yàn)得到的變量(如捕食者個(gè)數(shù)、氣候的惡劣性、食物的可獲性等等),建立數(shù)學(xué)模型來描述群體的增減。如果用Pn表示n代后該物種極限數(shù)目的百分比,則著名的“Logistic映射”:

Pn+1=kP(1-Pn)(其中k是依賴于生態(tài)條件的常數(shù),“n+1”是腳標(biāo))

可以用于在給定Po,k條件下,預(yù)報(bào)群體數(shù)的長期性態(tài)。如果將常數(shù)k處理成可變的參數(shù)k,則當(dāng)k值增大到一定值后,“Logistic映射”所構(gòu)成的動(dòng)力系統(tǒng)就進(jìn)入混沌狀態(tài)。

在一般情況下,Pn+1=kP(1-Pn)可以換成適當(dāng)?shù)姆蔷€性函數(shù),以改進(jìn)混沌的值域、遍歷行、偽隨機(jī)性等。

混沌方法具有初值敏感,參數(shù)可控性和偽隨機(jī)性,這些特性正好吻合數(shù)據(jù)加密的兩條原則:擴(kuò)散和混亂,故混沌算法很適合用來進(jìn)行數(shù)據(jù)加密。

3 BMP格式說明

BMP是bitmap的縮寫形式,bitmap顧名思義,就是位圖也即Windows位圖。它一般由4部分組成:文件頭信息塊、圖像描述信息塊、顏色表(在真彩色模式無顏色表)和圖像數(shù)據(jù)區(qū)組成。

3.1 文件頭信息塊

0002-0005:文件大小。

0006-0009:保留,每字節(jié)以“00”填寫。

000A-000D:記錄圖像數(shù)據(jù)區(qū)的起始位置。各字節(jié)的信息依次含義為:文件頭信息塊大小,圖像描述信息塊的大小,圖像顏色表的大小,保留(為01)。

3.2 圖像描述信息塊

000E-0011:圖像描述信息塊的大小,常為28H。

0012-0015:圖像寬度。0016-0019:圖像高度。

001A-001B:圖像的plane總數(shù)(恒為1)。

001C-001D:記錄像素的位數(shù),很重要的數(shù)值,圖像的顏色數(shù)由該值決定。

001E-0021:數(shù)據(jù)壓縮方式(數(shù)值位0:不壓縮;1:8位壓縮;2:4位壓縮)。

0022-0025:圖像區(qū)數(shù)據(jù)的大小。

0026-0029:水平每米有多少像素。002A-002D:垂直每米有多少像素。

002E-0031:此圖像所用的顏色數(shù),如值為0,表示所有顏色一樣重要。

4 混沌加密算法

4.1 混沌算法簡單舉例

本文采用了一種有效而簡便的加密算法對(duì)文件進(jìn)行加密。加密算法如圖1所示。

圖1 加密算法框圖

該算法將前面的密文和后面的明文一起進(jìn)行加密,通過對(duì)密文進(jìn)行非線性運(yùn)算,而達(dá)到混沌的效果。當(dāng)然,對(duì)于文件的開始,需要設(shè)置初始密文,即加密密碼。該算法的核心是選取合適的非線性函數(shù),使得算法復(fù)雜度小,且加密效果高效。下面以二次方函數(shù)為例,對(duì)lena圖進(jìn)行數(shù)字加密:

所采用非線性函數(shù):Y=X^2

則加密算法為:Yn+1=[Yn^2-p]%256;(Yn+1為加密后數(shù)據(jù),Yn為上一次的加密數(shù)據(jù),p為原始數(shù)據(jù)。)

加密效果如圖2所示。

圖2 加密前后對(duì)比

由圖2可以看出,經(jīng)過相對(duì)簡單的二次方函數(shù)加密圖像已被混沌掩蓋,但還有一些輪廓顯現(xiàn),可以通過改進(jìn)加密函數(shù),提高圖像加密效果。

4.2 改進(jìn)后的算法

改 進(jìn) 后 的 算 法 為 :Yn+1=[Yn*(Yn%pwe)-p]%256;(Yn+1為加密后數(shù)據(jù),Yn為上一次的加密數(shù)據(jù),p為原始數(shù)據(jù),pwe為加密密碼。)

加密效果如圖3所示。

圖3 改進(jìn)后的加密效果

如圖中可以看出,圖像的加密效果得到大大改進(jìn)。圖像已完全被混沌掩蓋。

對(duì)圖像進(jìn)行灰度分析,如圖4所示。

圖4 灰度分析

由色彩分布直方圖分析,可以看出圖像灰度均衡,加密效果明顯。

5 算法程序?qū)崿F(xiàn)

通過以上分析,可以得出結(jié)論:此算法簡單高效,加密性高。將此算法應(yīng)用于文件,可對(duì)一些數(shù)據(jù)文件進(jìn)行簡單加密,適合嵌入式系統(tǒng)以及Windows系統(tǒng)的PC實(shí)現(xiàn)簡易加密。在Windows下的MFC實(shí)現(xiàn)界面如圖5所示。

圖5 MFC界面

界面中,左邊為加密,郵編為解密。加密時(shí),打開文件,輸入0-256之間的密碼,加密或解密后文件以“e_”或“d_”開頭。

核心程序源代碼如下:

int encode()

{

int filesize,flag;

int i,x,y,p;

FILE*fp,*fp2;

//*******************讀取源文件大小

if ((fp=fopen(pathName1,"rb"))==NULL) /*打開原始文件是否正確*/

{

//MessageBox("打開文件失??!","提示");

return 0;

}

fseek(fp,0L,SEEK_END);

filesize=ftell(fp);

if ((fp2=fopen(saveName1,"wb"))==NULL) /*新建加密文件是否正確*/

{

//MessageBox("打開文件失?。?,"提示");

return 0;

}

rewind(fp);

rewind(fp2);

///****************文件加密************

x=pwe;

for(i=0;i<filesize;i++)

{

flag=i;

fseek(fp,flag,SEEK_SET);

p=fgetc(fp);

y=unsigned char((x*x+(i%pwe)*(i%pwe)+3*x)-p);//

fseek(fp2,flag,SEEK_SET);

fputc(y,fp2);

x=y;

}

fclose(fp);

fclose(fp2);

return 1;

}

6 改進(jìn)和總結(jié)

(1)可以考慮根據(jù)硬件條件使用更復(fù)雜的加密函數(shù),已達(dá)到更假的加密效果

(2)可以先對(duì)數(shù)據(jù)順序進(jìn)行打亂重排,在進(jìn)行加密。

(3)可以考慮使用相同的方法進(jìn)行多次加密。

(4)可以考慮將數(shù)據(jù)進(jìn)行多級(jí)級(jí)聯(lián),算法中關(guān)聯(lián)到前2個(gè)或兩個(gè)以上數(shù)據(jù),提高加密性能。

[1] Chen G, Mao Y, Chui C K. A Symmetric Image Encryption Scheme Based on 3D Chaotic Cat Maps[J]. Chaos, Solitons &Fractals,2004,21(03):749-761.

[2] 張勇,陳濱.Logistic映射的有限字長研究[J].電子科技大學(xué)學(xué)報(bào),2006,35(03):292-316.

[3] Shujun Li, Xuan Zheng. Cryptanalysis of a Chaotic Image Encryption Method[C]. USA:[s.n.],2002:708-711.

[4] Gonzalo Alvarez1, Li Shujun. Some Basic Cryptographic Requirements for Chaos-Based Cryptosystems[J]. International Journal of Bifurcation and Chaos,2006,16(08):2129-2151.

[5] 羅啟斌,張?。环N新的混沌偽隨機(jī)序列生成方式[J].電子與信息學(xué)報(bào),2006,28(7):1262-1264.

[6] Hai-Yan Zhang. A New Image Scrambling Algorithm Based on Queue Transformation[C]. Hong Kong:[s.n.],2007:1526-1530.

[7] 張文麗.?dāng)?shù)據(jù)加密技術(shù)芻議[J].proiect and security應(yīng)用與安全,2008(2):27.

[8] 呂后坤,雷燕. 數(shù)據(jù)據(jù)加密技術(shù)方法與應(yīng)用[J]. 福建電腦, 2008(7):59.

猜你喜歡
加密算法密文解密
一種支持動(dòng)態(tài)更新的可排名密文搜索方案
基于模糊數(shù)學(xué)的通信網(wǎng)絡(luò)密文信息差錯(cuò)恢復(fù)
炫詞解密
解密“一包三改”
炫詞解密
一種基于密文分析的密碼識(shí)別技術(shù)*
HES:一種更小公鑰的同態(tài)加密算法
基于小波變換和混沌映射的圖像加密算法
云存儲(chǔ)中支持詞頻和用戶喜好的密文模糊檢索
解密“大調(diào)解”