陳 翎,潘中良
(華南師范大學物理與電信工程學院電子工程系,廣東廣州510006)
近年來,隨著網(wǎng)絡通信技術特別是Internet的快速發(fā)展,信息安全正越來越受到普遍關注。例如對數(shù)字圖像而言,在傳輸過程中可能要求發(fā)送端與接收端進行保密通信,以保證圖像信息的完整性、可靠性和安全性[1]。對于數(shù)字圖像,目前主要有兩種有效的保護方法,即數(shù)字水印方法和圖像加密方法。數(shù)字水印方法,是在圖像中加入水印信息,為數(shù)字圖像提供知識產(chǎn)權保護;圖像加密方法,是對圖像進行加密操作,把原來的圖像轉變?yōu)轭愃朴谛诺涝肼暤男畔?,這些信息對不知道密鑰的網(wǎng)絡竊聽者是不能識別的,進而可以有效地保護傳輸中的圖像數(shù)據(jù)[2~3]。目前對圖像的加密,主要有如下的方式:基于現(xiàn)代密碼體制的圖像加密、基于秘密分割與秘密共享的圖像加密、基于矩陣變換(或像素置換)的圖像加密、基于混沌的圖像加密等。
基于混沌的數(shù)字圖像加密的原理,是在發(fā)送端把待傳輸?shù)膱D像信息疊加上多個混沌信號,使得在傳輸信道上的信號具有類似于隨機噪聲的特性;在接收端通過去除所疊加的混沌信號,恢復出真正傳輸?shù)膱D像信息[4~5]。本文將Logistic混沌映射和Henon混沌映射進行結合,設計了一種基于混沌的圖像加密方法,能夠改變圖像象素的空間分布和灰度分布,具有較強的魯棒性。
混沌是指在一個非線性系統(tǒng)中出現(xiàn)的一種貌似無規(guī)則的,類似于隨機的現(xiàn)象。對于確定型的非線性系統(tǒng)出現(xiàn)的具有內(nèi)在隨機性的解,就稱為混沌解。這種解在短期內(nèi)可以預測,而在長期內(nèi)卻不可預測,因此與確定解和隨機解都不同?;煦缬兄约邯氂械谋闅v性、有界性、內(nèi)隨機性和普適性等特征。例如混沌具有對初值的敏感依賴性,只要初始條件稍有差別或有微小的擾動,就會使系統(tǒng)的最終狀態(tài)出現(xiàn)很大的差異;混沌具有各態(tài)歷經(jīng)的遍歷性,混沌系統(tǒng)可以在特定范圍內(nèi),按自身規(guī)律不重復地遍歷所有狀態(tài)。
Logistic映射是一個典型的非線性混沌方程,它起源于一個人口統(tǒng)計的動力學系統(tǒng)。Logistic映射的表達式如下:
這里0<λ≤4,稱λ為分支參數(shù)。在確定了λ的值之后,由任意初值x0∈[0,1],就可以迭代出一個確定的序列x1,x2,…,xn,…。對于不同的λ值,式(1)的系統(tǒng)將呈現(xiàn)不同的特性;隨著參數(shù)λ的值的增加,系統(tǒng)不斷地經(jīng)歷倍周期分叉,最終達到混沌。
Logistic映射的另一種形式為
其中 μ∈(0,2),yi∈[-1,1]。式(2)的系統(tǒng)與式(1)的系統(tǒng)具有類似的特征。
如下的Henon映射,在一定的條件下也呈現(xiàn)混沌
在Henon映射中,含有兩個參數(shù)a和b,可以取一個參數(shù)為常數(shù),把另一個參數(shù)作為變量進行迭代,這樣可以得到類似于Logistic映射的分岔,也是經(jīng)歷了一系列的倍周期分岔而達到混沌。
為了實現(xiàn)對數(shù)字圖像的加密,下面提出一種多個混沌系統(tǒng)相結合的加密方法。在該方法中,首先用如下的步驟產(chǎn)生多個混沌序列:
(1)第一步——由Logistic映射的式(1)進行N次迭代,產(chǎn)生一個混沌序列x0,x1,…,xN。將1.39+|xN|/100作為Henon映射中的參數(shù)a的值;
(2)第二步——由Logistic映射的式(2)進行M次迭代,產(chǎn)生一個混沌序列y0,y1,…,yM。將作為Henon映射中的參數(shù)b的值。
(3)第三步——由Logistic映射的式(1)進行K次迭代,產(chǎn)生一個混沌序列作為Henon映射中的初值z0的值;將0.1+|xK'|/200作為Henon映射中的初值w0的值;
(4)第四步——對Henon映射,使用在第三步中選定的z0和w0的初值,以及在第一步和第二步選定的參數(shù)a和b的值,進行迭代,產(chǎn)生一個混沌序列。從所產(chǎn)生的這個混沌序列中選出一部分zt,zt+1,…,zt+s作為圖像加密時使用的混沌序列。這里t和s為給定的正整數(shù)。
對如上的四步依次多次運行,每次運行時選取不同的初始值x0,y0和x0',獲得用于圖像加密的多個不同的混沌序列。在上述步驟中,N,M和K都為正整數(shù)。
整個圖像加密方法的步驟如下:
(1)打開一個圖像文件;
(2)順序讀取圖像中的象素信息;
(3)選定初始參數(shù);根據(jù) Logistic映射的式(1)和式(2),以及Henon映射的式(3),用如上方法產(chǎn)生混沌序列。這里,由于所產(chǎn)生的混沌序列中每一個數(shù)是實數(shù),因此將這種混沌實數(shù)序列在其最大值與最小值之間,按照256級的等級進行線性映射,獲得8位二進制序列,并作為加密因子序列。
(4)把圖像的像素所對應的二進制序列與加密因子序列進行異或運算。異或的結果是一個與圖像原來的二進制序列不相同的序列,將該序列轉換為像素信息,即得到經(jīng)過加密后的圖像。
對加密圖像的解密過程,如圖1所示。
圖1 加密與解密的實現(xiàn)過程
我們用Visual C++編制了如上的基于混沌的圖像加密算法的程序,實現(xiàn)了對彩色圖像的加密與解密。在實驗時,對Logistic映射的式(1)中的參數(shù)λ的值取為4,對Logistic映射的式(2)中的參數(shù) μ的值取為1.99。圖2至圖5是對一副彩色圖像的實驗結果。
圖2 原圖像
圖3 加密后的圖像
圖4 解密后的圖像
圖5 具有誤差時解密后的圖像
圖2是原圖像,圖3是經(jīng)過加密后的圖像,圖4是解密后的圖像。圖5是當Henon映射中參數(shù)a的值具有10-5的誤差時解密后的圖像。通過實驗結果說明,從加密后的圖像看不出原圖像的內(nèi)容;利用正確的密鑰解密出的圖像與原圖像看不出差別;當解密密鑰與加密密鑰存在微小的差別時,都完全不能正確解密出原始圖像。因此本文的加密算法對密鑰有極強的敏感性。
混沌具有自相似性、遍歷性、對初值敏感等特征,非常適合于對圖像數(shù)據(jù)進行加密。基于混沌的加密方法,可以防范頻率分析攻擊、窮舉攻擊等攻擊,使得密碼難于分析和破譯。若單獨使用一種混沌系統(tǒng)對圖像進行加密,若密鑰選得不是很好,則加密的效果有限,例如有時加密之后還能看見原圖像的大概輪廓。采用多個混沌系統(tǒng)的結合,來實現(xiàn)圖像的加密,可以取得較好的加密效果,增強加密系統(tǒng)的安全性。
[1]Shyu S.Image encryption by multiple random grids[J].Pattern Recognition,2009,42(7):1582-1596.
[2]Millerioux G,Amigo M,Daafouz J.A connection between chaotic and conventional cryptography[J].IEEE Trans.Circuits and Systems I:Regular Papers,2008,55(6):1695-1703.
[3]Siyue C,Leung H.Chaotic watermarking for video authentication in surveillance applications[J].IEEE Trans.Circuits and Systems for Video Technology,2008,18(5):704-709.
[4]周志剛,李蘇貴,劉 嫕.基于新的變參數(shù)混沌系統(tǒng)的圖像加密[J].計算機應用,2009,29(7):1832-1835.
[5]燕善俊,余昭平.基于Logistic混沌序列的灰度圖像加密算法[J].計算機工程與應用,2008,44(36):179-180.