圖像文件加密如何采用交叉耦合混沌系統(tǒng)實(shí)現(xiàn)

用交叉耦合混沌系統(tǒng)實(shí)現(xiàn)來實(shí)現(xiàn)圖像文件加密器原理是利用這種交叉耦合混沌系統(tǒng)同時(shí)生成兩組混沌序列,并用其中一組來置亂圖像,另外一組改變像素灰度值進(jìn)行加密。這種使用單一耦合混沌系統(tǒng)同時(shí)置亂和圖像加密算法,有別于目前用一個(gè)混沌系統(tǒng)置亂、用另一個(gè)混沌系統(tǒng)加密圖像文件的主流加密算法。

一、交叉耦合混沌系統(tǒng)

1、 Logistic交叉耦合映射

Logistic方程又稱作蟲口模型,提供了每年一次無世代交疊的單一生物種群的生物繁衍模型。假使該生物種群每年繁殖兩次(春秋各一次),那么新的生物繁衍模型可以通過對(duì)Logistic方程進(jìn)行改進(jìn)來得到。

在無世代交疊單一生物種群每年繁衍兩次的蟲口模型中,設(shè)春季的μ值為k,秋季的μ值為g,且k>g,得到如下方程:

圖像文件加密如何采用交叉耦合混沌系統(tǒng)實(shí)現(xiàn)

將式(1)代入式(2),得:

圖像文件加密如何采用交叉耦合混沌系統(tǒng)實(shí)現(xiàn)

由方程(2)可以得出:

圖像文件加密如何采用交叉耦合混沌系統(tǒng)實(shí)現(xiàn)

將式(4)代入式(1),得:

圖像文件加密如何采用交叉耦合混沌系統(tǒng)實(shí)現(xiàn)

令Xi =X2n,Xj =X2n+1,(i,j=0,1,...),式(3)、式(5)分別表示為:

圖像文件加密如何采用交叉耦合混沌系統(tǒng)實(shí)現(xiàn)

變化后的式(6)由迭代方程的偶次迭代給出春季蟲口方程,式(7)由迭代方程的奇次迭代給出秋季蟲口方程。本質(zhì)上,這兩個(gè)方程組合成“Logistic交叉耦合映射”。通過MATLAB仿真,得到Logistic交叉耦合方程隨參數(shù)k變化的X-K圖(圖1)。

圖像文件加密如何采用交叉耦合混沌系統(tǒng)實(shí)現(xiàn)

觀察圖1,當(dāng)g=2.7時(shí),系統(tǒng)表現(xiàn)出典型的混沌動(dòng)力學(xué)行為。

2、混沌序列相關(guān)性分析

根據(jù)混沌的定義容易知道,當(dāng)選定適當(dāng)系數(shù)使方程進(jìn)入混沌狀態(tài)時(shí),方程將進(jìn)行無限不循環(huán)迭代,因此不會(huì)出現(xiàn)重復(fù)的迭代值。任何人如果不得到迭代方程都無法預(yù)測(cè)下一個(gè)迭代值,這種迭代的結(jié)果可以用來產(chǎn)生隨機(jī)序列。但是,受計(jì)算機(jī)精度的限制,如果不斷從隨機(jī)序列中獲取隨機(jī)數(shù),隨機(jī)序列一定會(huì)到達(dá)容量極限從而出現(xiàn)隨機(jī)數(shù)重復(fù)出現(xiàn)的現(xiàn)象。對(duì)生成的序列進(jìn)行相關(guān)性分析,可以檢驗(yàn)其是否滿足隨機(jī)序列的要求。

不失一般性,取初始值seed=0.8,k=4,g=1.8,利用Logistlc交叉耦合映射生成混沌序列,繪制其歸一化自相關(guān)圖和互相關(guān)圖(圖2)。

圖像文件加密如何采用交叉耦合混沌系統(tǒng)實(shí)現(xiàn)

從圖2(a)可以看出交叉耦合混沌序列具有理想的_δ-like自相關(guān)特性。選擇不同參數(shù)生成兩組混沌序列,繪制出圖2(b)的互相關(guān)圖,互相關(guān)值僅僅在[-0.15,0.15]之間,表現(xiàn)出良好的互相關(guān)特性。這與理想的獨(dú)立分布的隨機(jī)序列的相關(guān)曲線一致。

綜合以上分析可見,“Logistic交叉耦合映射”生成的混沌序列具有高度的隨機(jī)性、復(fù)雜性和周期長等特性,有效地減少了有限字長效應(yīng)的影響;完全滿足用于圖像加密混沌序列產(chǎn)生器的條件。

二、圖像加密算法和解密算法

1、圖像加密算法

設(shè)待加密的數(shù)字圖像文件為I,其大小為MxN,使用如下圖像加密算法給圖像加密加密:

步驟1輸入原圖I,得到圖像矩陣Immtxin,輸入混沌系統(tǒng)的初始值seed和密鑰Key。

步驟2利用偶次迭代的Logistic生成大小為M×N的“置亂模板”P;同時(shí)保存奇次迭代的Logistic混沌序列,用于改變像素灰度值。

步驟3對(duì)每個(gè)混沌序列值乘10000,然后“模256”運(yùn)算,得到Uint8的隨機(jī)整數(shù)。

步驟4按“置亂模板”對(duì)圖像像素進(jìn)行置亂:將ImmA-in中的像素值依次置亂到“置亂模板”每個(gè)元素指定的位置。

步驟5使用奇次迭代的Logistic混沌序列值和置亂后的圖像矩陣元素進(jìn)行異或運(yùn)算(XOR)。

步驟6輸出加密圖像文件。

在上述圖像及iam算法過程中,因?yàn)樯傻幕煦缧蛄谐跏紩r(shí)會(huì)發(fā)生振蕩,所以將映射生成的前300個(gè)序列值進(jìn)行丟棄,從而保證生成的隨機(jī)序列值更有利圖像JJu密。步驟2中生成的“置亂模板”矩陣P,P= MxN。對(duì)P來說,其任一元素Pij∈[1,2,…,MxN],且Pij= Pkl,當(dāng)且僅當(dāng)i=k,j=l。

2、圖像解密算法

圖像解密算法是圖像加密算法的逆過程,圖像文件加密是先置亂后加密,所以圖像文件解密時(shí)是先解密后逆置亂。

三、仿真實(shí)驗(yàn)與結(jié)果

選用大小為256x256、灰度值為256色的位圖lena.bmp(圖3(a))作為實(shí)驗(yàn)圖片,仿真結(jié)果如圖3。

圖像文件加密如何采用交叉耦合混沌系統(tǒng)實(shí)現(xiàn)

四、仿真結(jié)果分析

1、 灰度直方圖

圖像文件加密如何采用交叉耦合混沌系統(tǒng)實(shí)現(xiàn)

2、密鑰空間分析

Seed、k和g等三個(gè)參數(shù)作為加密系統(tǒng)的密鑰,若設(shè)置精度為10-14,那么密鑰空間大小將超過2260。顯然,密鑰空間足夠阻止各種窮舉攻擊。

3、兩相鄰像素點(diǎn)的相關(guān)度分析

繪制基于交叉耦合混沌系統(tǒng)加密前后lena圖像垂直方向相鄰像素點(diǎn)灰度值的分布圖。繪制過程中,在“原始圖像lena”和“加密后的圖像lena”的垂直方向各隨機(jī)取3000對(duì)相鄰像素點(diǎn)進(jìn)行測(cè)試,測(cè)試結(jié)果如圖5所示。

圖像文件加密如何采用交叉耦合混沌系統(tǒng)實(shí)現(xiàn)

在“原始圖像lena”和“置亂后的圖像lena”各自的水平、垂直和對(duì)角線分別取3000對(duì)相鄰像素點(diǎn),進(jìn)行“兩相鄰像素點(diǎn)的相關(guān)度”計(jì)算。測(cè)試結(jié)果如表1所示。

圖像文件加密如何采用交叉耦合混沌系統(tǒng)實(shí)現(xiàn)

4、分別用錯(cuò)誤和正確的密切對(duì)加密后的圖像文件解密

用一組與正確密鑰相近的參數(shù)進(jìn)行解密,得到圖6(a)所示的圖像,可見圖像信息在錯(cuò)誤密碼下的安全性。當(dāng)采用正確密鑰時(shí),得到如圖6(b)所示的正確圖像,完全恢復(fù)圖像信息。

圖像文件加密如何采用交叉耦合混沌系統(tǒng)實(shí)現(xiàn)

使用本圖像加密算法加密后圖像的灰度直方圖與加密前圖像的灰度直方圖比較,發(fā)生的改變很顯著,而且前者的灰度分布均勻,說明本加密算法符合密碼的擴(kuò)散和混亂特性;對(duì)加密后圖像相鄰兩像素的相關(guān)性進(jìn)行檢測(cè),更進(jìn)一步顯示出超混亂和擴(kuò)散性。對(duì)設(shè)計(jì)的交叉混沌序列發(fā)生器產(chǎn)生的隨機(jī)序列進(jìn)行自相關(guān)和互相關(guān)分析,自相關(guān)性大而互相關(guān)性小,表明該序列克服了單混沌系統(tǒng)潛在的動(dòng)力學(xué)系統(tǒng)攻擊的可能,擴(kuò)大了密鑰空間,具有較高的安全性能。對(duì)密鑰的微小差異就不能解密加密圖像文件,說明圖像加密算法對(duì)加密密鑰的敏感性,可有效地抵御差分攻擊等方式的攻擊。

小知識(shí)之交叉耦合

這種效應(yīng)是解算系統(tǒng)彈性擺運(yùn)動(dòng)微分方程中出現(xiàn)的水平加速度和垂直加速度相乘的項(xiàng)。其物理意義為具有相同頻率的水平加速度和垂直加速度同時(shí)作用于擺,使擺相對(duì)于零點(diǎn)位置和偏角以相同頻率變動(dòng)。這個(gè)周期性變化可造成十幾至幾十毫伽的測(cè)量誤差。采用相互對(duì)稱的兩套彈性系統(tǒng),或增強(qiáng)系統(tǒng)的阻尼,是消除這個(gè)效應(yīng)的主要方法。也可以使用兩臺(tái)重力儀對(duì)稱放置進(jìn)行觀測(cè),來消除此效應(yīng)。