基于嵌入式系統(tǒng)的混沌數(shù)字圖像文件加密
常用的PC級加密算法運算量過大,不適合在嵌入式設(shè)備上運行。為了使嵌入式設(shè)備的數(shù)據(jù)存儲及傳輸能夠安全地進行,利用混沌信號對數(shù)據(jù)進行加密以提高嵌入式設(shè)備數(shù)據(jù)的安全性。在ARM2440+Linux平臺上實現(xiàn)了混沌信號生成功能并利用混沌信號對數(shù)字圖像進行加密的實驗,最終生成加密后的一份密文信息。
一、嵌入式系統(tǒng)圖像混沌加密實現(xiàn)原理
1、混沌加密原理
混沌信號用于數(shù)據(jù)保密通信中有多種形式,混沌保密是利用混沌信號的各種特性來實現(xiàn)的。在數(shù)據(jù)的發(fā)送端將其作為密鑰明文信息和混沌信號經(jīng)加密變換后形成密文,然后在信道中傳送,在接收端知道解密密鑰和解密變換的合法用戶,能夠得到正確的明文。這種加密原理主要是源于傳統(tǒng)的對稱密鑰加密算法。
混沌加密中一個重要的因素是混沌同步,其決定混沌信號能不能運用到加密中,用能夠同步的混沌信號加密才能正確解密。所謂混沌同步是指一個系統(tǒng)的混沌動力學軌道收斂于另一個系統(tǒng)的混沌動力學軌道,以致兩個系統(tǒng)在以后的時間里始終保持步調(diào)的一致。目前常用的混沌同步方法主要有以下幾種:驅(qū)動一響應同步及串聯(lián)同步法、主動-被動同步法、互耦合混沌同步法、自適應同步方法和神經(jīng)網(wǎng)絡(luò)阿步方法等。本文所用的Chen系統(tǒng)是使用系統(tǒng)中的jIf作為驅(qū)動變量來實現(xiàn)驅(qū)動一響應同步。下面以Chen系統(tǒng)為例對系統(tǒng)進行研究。
2、Chen系統(tǒng)的狀態(tài)方程
Chen系統(tǒng)的無量綱狀態(tài)方程的數(shù)學表達式為:

式中,a、b、c為系統(tǒng)參數(shù),a=35. b=3.c=28。
由于本文中所采用的嵌入式平臺不能夠處理模擬量,要想在平臺上產(chǎn)生混沌信號就需要對相應的系統(tǒng)進行離散化。利用Euler算法對系統(tǒng)進行離散化。式(1)中:
![]()
其中T為取樣時間間隔,在理論上r的值越小,越接近連續(xù)狀態(tài)方程的結(jié)果,但是所使用的平臺運算能力有限,在選取r時要根據(jù)實際情況來決定。同理可得dy和盅一對應的離散化方程。對式(1)進行Euler離散化處理得到的方程為:

式中,T=O.002,n為迭代數(shù)。
根據(jù)式(2)及相關(guān)的參數(shù),在Matlab中仿真得到Chen系統(tǒng)的混沌吸引子的相圖以及用石變量驅(qū)動的同步相圖如圖1所示。

二、ARM嵌入式Linux系統(tǒng)的軟硬件平臺
1、系統(tǒng)的硬件平臺
加密系統(tǒng)平臺采用三星公司的32 bit微處理器S3C2440Ao該處理器內(nèi)部集成了ARM920T內(nèi)核,能夠?qū)崿F(xiàn)MMU、AMBA、BUS和Harvard高速緩沖體系結(jié)構(gòu)。帶有獨立的16 KB指令Cache和16 KB數(shù)據(jù)Cache.并且集成了很多外圍設(shè)備接口,如RAM控制器、Nand Flash控制器、10/100 M以太網(wǎng)接口、LCD控制器、并行I/O口,主頻最高可達533 MHz。
硬件平臺配置了256 MB 8 bit NAND Flash、64 MB32 bit的SDRAMo通過以太網(wǎng)控制器芯片DM9000擴展了一個網(wǎng)口、一個SD卡接口、I/O擴展接口、觸摸屏接口、RS-232串行通信接口。另外,硬件平臺上還有一些擴展模塊:一個I/O擴展電路接口,用于現(xiàn)場數(shù)據(jù)的采集;GPRS模塊接口.用于發(fā)送和接收加密后的數(shù)據(jù)。主板也可以通過以太網(wǎng)接口與外界通信,在實驗中主要是通過以太網(wǎng)以NFS來掛載加密系統(tǒng)在平臺上運行。系統(tǒng)硬件結(jié)構(gòu)圖如圖2所示。

2、嵌入式Linux系統(tǒng)
目前市面上很多嵌入式設(shè)備特別是消費類產(chǎn)品都移植了嵌入式Linux系統(tǒng)。因為Linux系統(tǒng)是開源的。運用到商業(yè)中不需要支付龐大的版權(quán)費,而且Linux系統(tǒng)的可靠性高。因此,本實驗中的平臺移植的是嵌入式Linux系統(tǒng)。
整個系統(tǒng)的架構(gòu)如圖3所示:最底層是引導加載Linux內(nèi)核程序的bootloader,系統(tǒng)中采用的是三星公司自行研發(fā)的Supervivi;中間的是Linux2.6.32.2版本的內(nèi)核,在移植Linux系統(tǒng)時考慮到暫時不需要使用太多的資源,同時為減少CPU資源的開銷,將內(nèi)核做了充分的裁剪,在內(nèi)核中包含了初始化平臺的各個函數(shù)、串口終端、LCD、以太網(wǎng)及相關(guān)的設(shè)備驅(qū)動等;根文件系統(tǒng)也是嵌入式Linux中不可缺少的一部分,這一層中包涵了嵌人式平臺的必不可少的bin文件;最頂層是用戶應用程序,用于產(chǎn)生混沌信號,加密、解密程序都放在其中。

三、數(shù)字圖像混沌加解密系統(tǒng)的設(shè)計
混沌加密系統(tǒng)中,混沌加密算法的設(shè)計至關(guān)重要,它決定了混沌加密系統(tǒng)的安全性以及執(zhí)行效率。實驗中設(shè)計的加密算法采用傳統(tǒng)的置亂算法和混沌加密相結(jié)合的方法,傳統(tǒng)的置亂加密并不能改變圖像的灰度統(tǒng)計特性,而在置亂的同時如果加上混沌加密就能夠很好地改變圖像的灰度統(tǒng)計特性?;煦缂用芩璧拿艽a流是采用Chen系統(tǒng)產(chǎn)生的混沌序列。
1、加密算法的設(shè)計?
結(jié)合傳統(tǒng)加密技術(shù),本文提出的實現(xiàn)算法是基于傳統(tǒng)置亂與混沌加密相結(jié)合的方法,其加密原理框圖如圖4所示。

(1)原始圖像信息P首先被傳送到傳統(tǒng)加密器中,經(jīng)過置亂技術(shù)置亂像素,在密匙ko加密下得到加密密文C;
(2)將經(jīng)過置亂后生成的密文C傳送到混沌加密器中,利用Chen系統(tǒng)產(chǎn)生的混沌序列ki進行加密得到混沌加密密文D,同時生成了加密圖像P'。
2、基于高維混沌系統(tǒng)的圈像加密程序流程
根據(jù)本文的加密算法對其進行嵌入式C語言的編程。首先對相關(guān)的函數(shù)進行初始化,初始化完成之后緊接著判斷用戶的使用規(guī)則符不符合函數(shù)用法規(guī)則(這里面包括原圖像和加密圖像的文件名)。在進行混沌加密前對圖像進行傳統(tǒng)的量亂加密,是因為Chen系統(tǒng)已經(jīng)過Euler離散化,通過迭代產(chǎn)生混沌序列同時將經(jīng)過傳統(tǒng)置亂加密的信息加入到混沌序列中,以此來達到加密的最好效果。根據(jù)嵌入式系統(tǒng)的開發(fā)原則,對跨平臺開發(fā)的程序進行交叉編譯,系統(tǒng)中使用ann-linux-gcc交叉編譯工具。因此在交叉編譯前需要在PC機上安裝arm-linux-gcc交叉編譯工具,使用交叉編譯工具編譯后生成目標板可執(zhí)行的目標代碼。加密算法的流程圖如圖5所示。

四、系統(tǒng)實現(xiàn)結(jié)果與安全性能分析
1、實現(xiàn)結(jié)果
基于Chen系統(tǒng)的數(shù)字圖像加密算法在嵌入式unux平臺上的實現(xiàn)結(jié)果如圖6所示。圖6(a)為16 bit深度的BMP圖像,選取16 bit深度的原因是在嵌入式Linux平臺中設(shè)備驅(qū)動framebuffer只支持RGB565格式的BMP圖像,同時為了與MIN12440平臺上的TFT LCD匹配,使之能夠完美地顯示出原始圖像的色彩;圖6(b)為加密信號經(jīng)過轉(zhuǎn)換后得到的圖像,由于經(jīng)過混沌加密后的圖像是32 bit的,不能夠直接顯示出來,所以需要轉(zhuǎn)換成RGB565格式的BMP圖像才能夠正常顯示;圖6(c)為經(jīng)過逆運算后得到的解密圖像。

2、安全性能分析
安全性能分析主要是針對BMP圖像灰度值的統(tǒng)計特性。利用MATLAB計算出原圖像與加密后的灰度信息進行對比。
原圖像的RGB分量灰度值的統(tǒng)計直方圖如圖7所示。由圖可知,各個分量所在的灰度值的取值范圍各有區(qū)別。如果利用傳統(tǒng)的置亂方法進行加密,圖像的灰度值統(tǒng)計特性并沒有發(fā)生改變,幾乎與原始圖像的灰度值統(tǒng)計特性保持一致。

加密圖像RGB分量灰度值的統(tǒng)計直方圖如圖8所示,從圖7與圖8的對比中可以得出:經(jīng)過置亂與混沌加密的圖像其灰度值統(tǒng)計特性已經(jīng)發(fā)生了明顯的改變,使得各分量的灰度值遍歷整個灰度空間,使混沌的擴散現(xiàn)象在加密中得到充分的體現(xiàn),滿足了加密文件的安全性能要求。正是由于混沌的這種特性使得入侵者很難通過加密圖像的灰度值統(tǒng)計特性破譯文件,從而增加了密文圖像的安全性。

實驗中設(shè)計了一種在嵌入式Linux系統(tǒng)上實現(xiàn)對BMP圖像進行混沌加密與傳統(tǒng)加密相結(jié)合的算法并且在MIN12440平臺上實現(xiàn)。實驗結(jié)果達到了設(shè)定的目標,加密性能滿足實際應用中的標準。將該算法移植到嵌入式系統(tǒng)設(shè)備中運行,可使用戶的數(shù)據(jù)得到較好的保護。下一步還需要對該算法進行改進,同時利用更為復雜的混沌系統(tǒng)作為密碼流對信息進行加密,使得該算法在嵌入式設(shè)備加密的速度更高,達到實時的效果。
小知識之嵌入式系統(tǒng)
嵌入式系統(tǒng)(Embedded system),是一種“完全嵌入受控器件內(nèi)部,為特定應用而設(shè)計的專用計算機系統(tǒng)”,根據(jù)英國電氣工程師協(xié)會( U.K. Institution of Electrical Engineer)的定義,嵌入式系統(tǒng)為控制、監(jiān)視或輔助設(shè)備、機器或用于工廠運作的設(shè)備。與個人計算機這樣的通用計算機系統(tǒng)不同,嵌入式系統(tǒng)通常執(zhí)行的是帶有特定要求的預先定義的任務。由于嵌入式系統(tǒng)只針對一項特殊的任務,設(shè)計人員能夠?qū)λM行優(yōu)化,減小尺寸降低成本。嵌入式系統(tǒng)通常進行大量生產(chǎn),所以單個的成本節(jié)約,能夠隨著產(chǎn)量進行成百上千的放大。





