一種基于小波變換的二維Logistic混沌圖像加密算法

近年來,隨著寬帶網(wǎng)的發(fā)展,圖像數(shù)據(jù)傳輸業(yè)務(wù)趨熱。但基于網(wǎng)絡(luò)傳輸圖像數(shù)據(jù)存在泄密問題,圖像文件加密的方法受到人們的普遍關(guān)注。為了提高密文的抗攻擊性,我們提出了一種用二維Logistic映射生成的混沌序列對(duì)小波變換系數(shù)進(jìn)行模板調(diào)整和混沌置亂的方法,可獲得安全度較高的加密圖像。

一、二維Logistic混沌映射系統(tǒng)

因二維Logistic映射混沌點(diǎn)集不存在有效的無誤差構(gòu)造形式,比一維Logistic映射有更安全的加密效果。因此,本文僅研究用二維Logistic映射生成的混沌序列對(duì)小波變換圖像文件加密的問題。

1、二維Logistic映射定義

根據(jù)一維Logistic映射,定義二維Logistic映射為:

一種基于小波變換的二維Logistic混沌圖像加密算法

其中g(shù)1和g2是耦合項(xiàng),可取兩種情況:即gi=vyn和gz=vxn的一次耦合項(xiàng),或g1= g2= VXnYn的對(duì)稱一次耦合項(xiàng)。

采用具有對(duì)稱一次耦合項(xiàng)形式的二維Logistic映射為:

一種基于小波變換的二維Logistic混沌圖像加密算法

式中動(dòng)力學(xué)行為由控制參數(shù)μ1,μ2和v決定。

2、加密模板和置亂序列的生成

選擇控制參數(shù)為μ1= μ2=μ=0.9,v=0. 13,初始點(diǎn)為(xo,yo)=(0.10,0.20),用具有對(duì)稱一次耦合項(xiàng)的二維Logistic混沌映射序列迭代,得到兩組矩陣X、y。矩陣x、y中的元素一一對(duì)應(yīng)。

若待置亂矩陣的大小為w×h(其中刪為矩陣的行數(shù),w為矩陣的列數(shù)),生成混沌序列x、y的長(zhǎng)度為no+64十(w+h)。因?yàn)槿绻跏键c(diǎn)特別相近,混沌序列的前幾十個(gè)點(diǎn)可能相同,故舍去前no對(duì)值(本文取no=210),64對(duì)值用于生成加密模板,可由下式提供:

一種基于小波變換的二維Logistic混沌圖像加密算法

對(duì)應(yīng)的解密模板由下式提供:

一種基于小波變換的二維Logistic混沌圖像加密算法

最后w+h對(duì)值生成置亂序列。:將x(n)、y(n)乘以15,用round函數(shù)轉(zhuǎn)化為0到15的整數(shù)口:再轉(zhuǎn)化為二進(jìn)制數(shù),使得x、y為(w+ h)×4的新矩陣。新矩陣x、y以列為單位間隔交替組成(w+h)×8列的矩陣S。即x占據(jù)矩陣S的1、3、5、7列,y占據(jù)矩陣S的2、4、6、8列。由新矩陣的行為單位把二進(jìn)制數(shù)據(jù)轉(zhuǎn)化為0至255的十進(jìn)制數(shù),這樣就生成了w+h個(gè)置亂數(shù)。本文采用魔方置亂,簡(jiǎn)單地說就是對(duì)系數(shù)矩陣按置亂數(shù)進(jìn)行行或列的循環(huán)移位,從而達(dá)到置亂數(shù)據(jù)的目的。

由于混沌系統(tǒng)對(duì)初值和參數(shù)變化具有敏感性,故在系統(tǒng)參數(shù)不變的情況下,不同的初值也將產(chǎn)生不同的隨機(jī)序列,因此,不僅混沌系統(tǒng)參數(shù)(ü,v),而且初值xo,yo也可以作為密鑰的一部分??紤]到混沌序列取值初始點(diǎn)n0,置亂方式C(本文采用魔方變換),置亂的迭代次數(shù)m,小波分解方式R,則密鑰K可以由K(μ,v,xo,yo,no,C,m,R)組成。

二、加密和解密算法

根據(jù)系統(tǒng)加密的設(shè)計(jì)原則,我們提出對(duì)小波變換圖像文件進(jìn)行二次混沌加密的思想,即先進(jìn)行系數(shù)調(diào)整,然后進(jìn)行混沌置亂處理。圖像文件加密過程如圖1所示。

一種基于小波變換的二維Logistic混沌圖像加密算法

圖像文件加密主要步驟:

步驟1:對(duì)大小為M×N的任意圖像,作8×8的塊劃分。若像素點(diǎn)不是8×8的整數(shù)倍,可在圖像的邊界填充0(黑色)。

步驟2:對(duì)圖像進(jìn)行多級(jí)小波分解,我們采用三級(jí)分解,得到小波變換系數(shù)矩陣。

步驟3:確定二維Logistic系統(tǒng)的初始參數(shù),選擇加密模板產(chǎn)生方法,生成混沌序列1,輸出小波系數(shù)加密模板;生成混沌序列2,輸出置亂序列。

步驟4:用加密模板和小波焉數(shù)矩陣點(diǎn)乘,完成對(duì)小波系數(shù)的加密。

步驟5:用置亂序列改變系數(shù)矩陣原有排列(本文采用魔方變換],先行循環(huán)移位置亂,再列循環(huán)移位置亂)。這一步驟可根據(jù)用戶需要重復(fù)多次。生成加密圖像文件。

解密過程為圖像文件加密過程的逆。首先根據(jù)密鑰生成逆置亂序列和解密模板,對(duì)加密圖像文件進(jìn)列、行逆置亂,再恢復(fù)小波系數(shù),然后根據(jù)小波系數(shù)重構(gòu)圖像,達(dá)到解密圖像文件的目的。

三、仿真結(jié)果與分析

為了驗(yàn)證本文提出的加密算法,采用Lena256×256圖像作為原始圖像,選用haar小波進(jìn)行三級(jí)分解,對(duì)加密圖像進(jìn)行了破解實(shí)驗(yàn)和抗干擾實(shí)驗(yàn)。

1、破解實(shí)驗(yàn)

混沌系統(tǒng)控制參數(shù)為μ1= μ2=μ=0.9,v=0. 13,初始點(diǎn)為(xo,yo)=(0.10,0. 20),no=210,加密模板由公式(3)生成。圖2(a)為在迭代次數(shù)n=1情況下進(jìn)行小波系數(shù)模板加密魔方置亂后的加密圖像;圖2(b)為在迭代次數(shù)行=2情況下進(jìn)行小波系數(shù)模板加密魔方置亂后的加密圖像;圖2(c)是圖2(b)的解密圖像;圖2(d)和圖2(e)分別是取no =211導(dǎo)致解密模板錯(cuò)誤和置亂序列錯(cuò)誤下的解密圖像;圖2(f)是在混沌系統(tǒng)初始點(diǎn)存在微小偏差錯(cuò)誤,即(xo,yo) = (0. iooooooooooooooi,0.20)下獲得的解密圖像。由圖2可見,隨迭代次數(shù)槽加,圖像信息隱藏效果會(huì)更好;若加密密鑰存在偏差,圖像解密將無法完成。因此,可實(shí)現(xiàn)較高安全程度的圖像文件加密。

一種基于小波變換的二維Logistic混沌圖像加密算法

2、抗干擾實(shí)驗(yàn)

圖3(a)、(b)是對(duì)圖2(a)加密圖像疊加強(qiáng)度為0. 01的高斯噪聲和椒鹽噪聲后獲得的解密圖像。顯然可見,盡管在加噪的情況下圖像質(zhì)量有所下降,但圖像的基本內(nèi)容仍可表達(dá)清楚。再經(jīng)降噪處理,圖像內(nèi)容可得到加強(qiáng),如圖3(c)和圖3(d)所示。通過該方法加密的圖像數(shù)據(jù)能夠經(jīng)受傳輸過程中的隨機(jī)噪聲的干擾和影響。

一種基于小波變換的二維Logistic混沌圖像加密算法

由上述試驗(yàn)結(jié)果可知,如果攻擊者沒有破解密鑰,而直接對(duì)圖像數(shù)據(jù)流進(jìn)行解密,解密過程根本無法達(dá)成;如果攻擊者知道采用了何種小波變換,則破解工作就集中在對(duì)置亂變換和混沌序列的破解上。在對(duì)置亂變換解密的過程中,若只是將小波系數(shù)矩陣的位置打亂,未對(duì)相應(yīng)的圖像信息進(jìn)行處理,此時(shí)可以采用窮舉法,對(duì)于16×16的圖像,運(yùn)算的次數(shù)為256 !≈8.6×10的506次方;對(duì)于256×256的圖像,運(yùn)算的次數(shù)為655 36!≈5.2 ×10的287193次方,以目前的萬億次計(jì)算機(jī)的處理能力,破解時(shí)間需5.2×10的287 193次方/1015=5.2×10的287 178 次方,況且本文還采用了混沌加密模板對(duì)小波系數(shù)進(jìn)行調(diào)整,如果采用窮舉法,成功破解密鑰的機(jī)會(huì)幾乎為零。

另外,由于加密算法的密鑰為K(μ,v,xo,yo,no,C,m,R),其中μ,v,xo,yo為混沌系統(tǒng)的參數(shù)和初始值,no為混沌序列的起始位置,C為采用的置亂處理方法,R為采用的變換域方法,死為采用的置亂處理變換的次數(shù),這些參量都可以任意選擇,因此,改變密鑰十分方便。

小知識(shí)之椒鹽噪聲

椒鹽噪聲是由圖像傳感器,傳輸信道,解碼處理等產(chǎn)生的黑白相間的亮暗點(diǎn)噪聲。椒鹽噪聲往往由圖像切割引起。