圖像加密算法之復(fù)合混沌序列與小波變換
針對(duì)單一混沌映射有可能退化為周期問題以及圖像置亂加密計(jì)算量大的缺點(diǎn),提出了一種基于復(fù)合Logistic和Chebychev映射與小波變換的圖像加密算法。該加密算法根據(jù)密鑰控制復(fù)合混沌序列的初始參數(shù),生成混沌序列,進(jìn)而對(duì)圖像文件進(jìn)行置換加密,然后對(duì)加密后的圖像文件進(jìn)行小波分解,再對(duì)小波近似系數(shù)進(jìn)行置亂加密。
一、加密算法描述
1、混沌置換加密過程
混沌應(yīng)用于數(shù)字圖像文件加密的關(guān)鍵是混沌序列的隨機(jī)性,針對(duì)低維混沌序列的短周期問題,筆者采用由Logistic混沌映射和Chebychev混沌映射復(fù)合生成混沌序列,對(duì)混沌序列的初始參數(shù)則通過m序列來進(jìn)行控制,加密過程如下。
(1)采用Logistic混沌子序列為初始混沌序列,其模型為:
![]()
其中,μ為分岔參數(shù);xn為初始參數(shù)。當(dāng)3.569 945 6<μ≤4時(shí),不同的初始狀態(tài)xo生成的序列是非周期、不收斂、不相關(guān)的,并對(duì)初值非常敏感。Logistic序列工作于混沌狀態(tài)。
(2)采用Chebychev混沌序列對(duì)Logistic序列進(jìn)行改進(jìn),構(gòu)成復(fù)合混沌序列。Chebychev混沌序列的方程為:
![]()
當(dāng)參數(shù)k=5時(shí),Chebychev映射工作于混沌狀態(tài)。用此混沌方程的迭代輸出作為Logistic映射的控制參數(shù),增加μ的變化量,從而增加Logistic序列的周期。Chebychev映射的迭代值域?yàn)閇-1,1],應(yīng)通過線性映射變換到Logistic映射參數(shù)μ的變化區(qū)間。
(3)采用m序列生成隨機(jī)數(shù),控制兩混沌序列的初始參數(shù),將生成m序列的初始值作為密鑰。m序列是由線性反饋移位寄存器產(chǎn)生的周期最長的二進(jìn)制數(shù)字序列,也稱為最大長度線性反饋移位寄存器序列,是一種實(shí)現(xiàn)方便的偽隨機(jī)數(shù)生成方法。由于根據(jù)密鑰生成偽隨機(jī)數(shù)一般不在Logistic和Chebychev映射的參數(shù)范圍內(nèi),因此需要將生成的隨機(jī)數(shù)分別向Logistic的參數(shù)范圍(0,1)和Chebychev的參數(shù)范圍[-1,1]分別作線性映射,其輸出作為Logistic序列和Chebychev序列的初始參數(shù)。
(4)將Chebychev序列的輸出作為Logistic映射的控制參數(shù),m序列生成的隨機(jī)數(shù)向Logistic序列作線性映射的輸出作為Logistic的初始參數(shù),生成復(fù)合混沌序列。
(5)將生成的混沌序列與原始水印圖像進(jìn)行按位異或,生成置換加密后的圖像。
2、基于小波的置亂加密過程
圖像置亂是利用某種算法將一幅圖像各像素的次序打亂,但像素的總個(gè)數(shù)不變,直方圖不變。已提出的圖像置亂方法有:Fassy曲線,Hilbert曲線,Gray碼,Conway游戲,Tangram算法,IFS模型,Arnold變換和幻方變換等。本文選擇Arnold變換作為圖像置亂方法,考慮到對(duì)圖像置亂計(jì)算量較大,首先對(duì)經(jīng)混沌置換后的圖像進(jìn)行小波變換,然后再對(duì)小波變換的近似系數(shù)進(jìn)行置亂。具體過程如下:
(1)選擇db3小波對(duì)圖像進(jìn)行三級(jí)小波分解,可得10個(gè)分解系數(shù)矩陣,設(shè)原始圖像為NxN大小,則分解后近似系數(shù)矩陣大小為N/8×N/8,因此對(duì)分解后的近似系數(shù)矩陣進(jìn)行置亂可大大減小計(jì)算量,又由于近似系數(shù)對(duì)圖像視覺的影響起主要作用,因此選擇對(duì)近似系數(shù)進(jìn)行加密也是合理的。
(2)對(duì)近似系數(shù)矩陣進(jìn)行Arnold變換。Arnold變換是一種自同構(gòu)變換,又稱貓臉變換(Arnold's cat map),構(gòu)造如下置換方程:
![]()
式中,xi,yi表示空間坐標(biāo),對(duì)地圖像,xi,yi表示圖像像素的位置坐標(biāo),k為隨機(jī)數(shù),由密鑰通過m序列生成,當(dāng)k大于N時(shí)對(duì)矩陣進(jìn)行取模運(yùn)算,mod表示取模運(yùn)算。
將經(jīng)Arnold變換后的近似系數(shù)矩陣與(1)中小波分解后的另9個(gè)細(xì)節(jié)系數(shù)矩陣進(jìn)行小波重構(gòu),得到最終的加密圖像。
二、實(shí)驗(yàn)結(jié)果與分析
我們?cè)赩isual C++6.0下實(shí)現(xiàn)了上述算法,選擇Lena圖像(256×256,256灰度級(jí))作為仿真對(duì)象,仿真結(jié)果如圖1所示。其中圖1(a)為原始圖像,圖1(b)為加密后的圖像,圖1(c)為密鑰正確解密后的圖像(密鑰為123456),圖1(d)為密鑰錯(cuò)誤時(shí)的解密圖像(密鑰為123457)。從仿真結(jié)果看出,本加密算法能有效地加密/解密圖像文件,即使密鑰稍有不同,也不能解密出圖像且看不到原圖像的任何信息。

圖2(a)為原始圖像的直方圖,圖2(b)則為加密后的圖像直方圖,可以看到原始圖像被加密后直方圖被均勻化了,這表明加密算法具有不錯(cuò)的密碼學(xué)特性。

與普通的基于混沌加密算法相比,本圖像加密算法具有以下優(yōu)點(diǎn):
(1)圖像加密算法采用復(fù)合混沌序列,其保密性要優(yōu)于普通的低維混沌序列,而計(jì)算量則小于高維混沌序列。這是由于低維混沌序列很容易受到混沌模型重構(gòu)方法的攻擊,而復(fù)合運(yùn)算掩蓋了混沌子序列的分布特性,改變了原混沌系統(tǒng)的動(dòng)力學(xué)行為,有效地抵制了模型重構(gòu)攻擊,從而使其保密性得到提高。
相對(duì)于高維混沌序列,復(fù)合序列的計(jì)算量較小,因?yàn)橥ǔ5牡途S混沌系統(tǒng)模型都是用代數(shù)方程描述的,求解速度很快;而高維混沌一般為復(fù)雜的微分或差分方程,求解的復(fù)雜度和計(jì)算量都比較大。
(2)圖像加密算法把置換加密放在置亂加密之前可以增強(qiáng)置亂加密的抗攻擊能力,原因是置換加密的結(jié)果隱蔽了置亂加密,所以靠收集圖像特征的置亂加密破解方法是不可行的,而相反序列則會(huì)增強(qiáng)置換加密。
(3)圖像經(jīng)典的加密方法通常只在空域或頻域加密,本文采用的算法在空域和小波變換域雙重加密,改善了加密效果,增大了加密強(qiáng)度,單純?cè)诳沼蚧蝾l域的種種破解嘗試都將是困難的。置換加密使用了性能更好的復(fù)合序列,彌補(bǔ)了置亂加密抗攻擊能力較弱的缺點(diǎn),為兼顧加密強(qiáng)度和減少計(jì)算量,用戶可根據(jù)需要選擇置換加密和小波分解層數(shù),這些特點(diǎn)使得該算法具有良好的適用性。
圖像加密算法的不足是,要經(jīng)過兩次混沌映射計(jì)算以及生成m序列,與一般單映射混沌加密系統(tǒng)相比,其計(jì)算量顯得較大。
小知識(shí)之小波變換
小波變換是近年來在圖象處理中受到十分重視的新技術(shù),面向圖象壓縮、特征檢測以及紋理分析的許多新方法,如多分辨率分析、時(shí)頻域分析、金字塔算法等,都最終歸于小波變換(wavelet transforms)的范疇中。









