雙向耦合映像格子模型的圖像加密方法

目前,基于低維混沌系統(tǒng)的應用于圖像文件加密已十分普遍,但低維混沌系統(tǒng)在有限精度下存在短周期的缺點成為在實際應用中最大的障礙,但是低維混沌系統(tǒng)的實現(xiàn)簡單、運算速度快等特點使得它們?nèi)圆荒鼙粧仐?。為此,研究具有高自由度和高復雜度的時空混沌系統(tǒng)并應用于圖像加密迫在眉睫。我們提出了雙向耦合映像格子模型的圖像加密算法。

一、雙向耦合映像格子模型

時空耦合映像格子是一個時間空間離散化,但狀態(tài)變量仍保持連續(xù)的動力學系統(tǒng)。耦合映像格子有著相對簡單、容易計算等特點,被廣泛應用于時空混沌控制、同步、保密通信等研究之中。

描述時空混沌系統(tǒng)的主要數(shù)學工具有耦合常微分方程、偏微分方程、耦合映像格子模型等方程,其中耦合映像格子模型(CoupledMapLattice,CML)是研究人員經(jīng)常使用的研究工具。本文加密算法中用到的是雙向耦合映像格子模型(TwowayCoupledMapLattice,TCML)。

TCML模型的定義:

雙向耦合映像格子模型的圖像加密方法

式中,其中f(_)為非線性映射,ε為耦合系數(shù),周期性邊界條件滿足xn(0)=xn(L),xn(i)∈(0,1)。n=0,1,......為時間方向上的變量,i=0,1,......,L-1為空間方向上的變量,L為系統(tǒng)尺寸,函數(shù)f(x)取為Logistic混沌映射:

雙向耦合映像格子模型的圖像加密方法

其中3.5699456...≤μ≤4,0<xn<1。

二、TCML混沌序列的產(chǎn)生及改進

良好的混沌圖像加密系統(tǒng)必須具有優(yōu)良相關(guān)特性的序列。用TCML模型生成三路混沌序列{b(0),b(1),b(2)}的過程如下:

(1)參數(shù)選擇:對式(1)中的雙向耦合映像格子模型,以Chebyshev映射產(chǎn)生的0到1之間的均勻分布的隨機數(shù)為初始值。系統(tǒng)尺寸L=30,迭代過渡過程長度len=2000;系統(tǒng)迭代次數(shù)N=5000;Logistic映射參數(shù)μ=4,耦合系數(shù)ζ=0.234。

(2)系統(tǒng)格子初值產(chǎn)生:對式(3)Chebyshev映射取初值x0迭代2000次,得到x2000,繼續(xù)迭代,判斷此時xn值是否落入?yún)^(qū)間(0,1)。若是,將xn作為格子0的初值;否則,繼續(xù)迭代,直到xn落入?yún)^(qū)間(0,1)。重復上述步驟,直到30個格子都取得驅(qū)動初值。

雙向耦合映像格子模型的圖像加密方法

(3)TCML序列產(chǎn)生:將步驟(2)中得到的系統(tǒng)格子初值,代入滿足步驟(1)中參數(shù)的TCML系統(tǒng)迭代N次,去掉len長度的過渡過程,格子9、18、27的后N-len點分別作為三路混沌序列{b[0],b[1],b[2]}。

對{b[0],b[1],b[2]}求序列各自的序列密度分布(量化到[0,255])、自相關(guān)特性和互相關(guān)特性來檢測序列的密碼學特性如圖1所示。

雙向耦合映像格子模型的圖像加密方法

可以看到各路序列密度分布較差,如果直接用這樣的序列對圖像進行加密,密文很容易被攻擊者破譯。為了達到均勻分布的目的,采用一種改進的混沌序列生成方法對直接得到的混沌值進行預處理。整個預處理過程可由下式實現(xiàn)。

雙向耦合映像格子模型的圖像加密方法

其具體思路是,將某格點上的狀態(tài)量與其某相鄰格點的狀態(tài)量相減,得到的值作為新格點的狀態(tài)值,改進后的各個序列密度分布、自相關(guān)特性和互相關(guān)特性如圖1所示。

(4)對混沌序列{b[0],b[1],b[2]}進行改進,完成混沌序列生成。

三、圖像加密系統(tǒng)設計

1、加密系統(tǒng)密鑰設計

加密系統(tǒng)的密鑰分為用戶密鑰和圖像密鑰兩部分,其中用戶密鑰是由用戶提供的,由3個字節(jié)組成,記為key1、key2、key3;圖像密鑰是根據(jù)具體明文圖像內(nèi)容提取出來的密鑰:任
意選取4個不同的圖像密鑰。這里為了方便,從原始圖像f中任取6個像素點,每兩個像素點一對,按比特位進行異或操作,得到3個8位的輔助密鑰ka,kb,kc。為了提高系統(tǒng)的明文擴散能力和明文敏感性,混沌參數(shù)選取規(guī)則如下:

(1)系統(tǒng)尺寸L=30;

(2)Chebyshev映射參數(shù):

雙向耦合映像格子模型的圖像加密方法

以x0為初值將Chebyshev映射迭代m次,按上章的有關(guān)步驟生成初始序列{init(i)(i=0,1,.....,29)};

(3)TCML系統(tǒng)參數(shù)

雙向耦合映像格子模型的圖像加密方法

2、加密過程

(1)將TCML系統(tǒng)在初始序列{init(i)(i=0,1,.......,29)}作用下迭代len次,得到新序列{s_new(i)(i=0,1,.......,29)},對其中的s_new(9),s_new(18),s_new(27)進行改進處理,得到對應的值s9、s18、s27;

(2)將s9、s18、s27分別量化到[0,255]區(qū)間,量化公式如下:

雙向耦合映像格子模型的圖像加密方法

式中q1、q2、q3分別為量化后的值,[_]表示8bit截斷操作。

(3)對圖像中的第1個像素f(0,0),對q1、q2、q3和像素做如下操作:

雙向耦合映像格子模型的圖像加密方法

用式(10)對f(0,0)進行擾亂得到新的像素值f′(0,0),過程如下:

雙向耦合映像格子模型的圖像加密方法

(4)對其余的像素重復以上步驟,直到整幅圖像完成像素值擾亂,得到圖像f′(x,y);

(5)分別對f′(x,y)像素坐標按式(11)進行二維Arnold置亂。

定義:設有單位正方形上的點(x,y),將點(x,y)變到另一點(x′,y′)的變換為:

雙向耦合映像格子模型的圖像加密方法

此變換稱作二維Arnold變換。

考慮到數(shù)字圖像的要求,Arnold變換可改寫為:

雙向耦合映像格子模型的圖像加密方法

其中N是數(shù)字圖像的階數(shù),(x,y)為圖像上像素點的坐標。將二維Arnold變換應用在圖像f(x,y)上,可以通過像素坐標的改變而改變原始圖像灰度值的布局。

(6)整個加密過程結(jié)束,解密是加密的逆過程。

四、實驗結(jié)果及安全性分析

1、加密和解密實驗結(jié)果

用一幅256×256大小圖像在PC機上進行加密和解密實驗。實驗參數(shù)選擇:系統(tǒng)尺寸L=30;用戶密鑰key1=0x34,key2=0xfe,key3=0xc4;Logistic映射參數(shù)μ=4;TCML系統(tǒng)耦合系數(shù)ζ=0.234;Arnold置亂輪數(shù)m=20。實驗效果見圖2。

雙向耦合映像格子模型的圖像加密方法

2、安全性分析

(1)密鑰空間分析

一個好的加密方案應該使其密鑰空間足夠大從而使得強行攻擊不可行。在加密算法中,可擴展的外部密鑰提供了所需安全等級的任意長度密鑰,因此本方案密鑰空間是足夠大的。

(2)密鑰敏感性分析

密鑰敏感性,即密鑰的微小差別可以對密文造成很大的變化,從密文中也就很難得出有關(guān)密鑰的信息,從而獲取密鑰。在加密系統(tǒng)中,使用錯誤密鑰的解密結(jié)果見圖3。可以看出錯誤密鑰對加密圖進行解密無法得到原始圖像的任何信息。

雙向耦合映像格子模型的圖像加密方法

(3)直方圖分析

圖4為對圖像進行加密前后的直方圖。圖4(a)和圖4(b)比較,可見使用本算法所得的密圖的直方圖分布很均勻,完全掩蓋了變換前的分布規(guī)律,才能使破譯難度進一步增加。

雙向耦合映像格子模型的圖像加密方法

(4)相鄰像素的相關(guān)性

加密前圖像中相鄰像素的相關(guān)性明顯很大,降低相鄰兩個像素的相關(guān)性才能破壞統(tǒng)計攻擊。所以在原始圖像和加密圖像中各隨機選1000對像素對,測試其相關(guān)性(垂直方向、水平方向),并進行相關(guān)系數(shù)計算。其中x,y表示像素灰度(兩個相鄰)。在測試中,使用如下3個離散化公式:

雙向耦合映像格子模型的圖像加密方法

圖5給出了利用本算法對Lena圖像進行加密前后圖像的相鄰像素水平相關(guān)性。

雙向耦合映像格子模型的圖像加密方法

表1列出了圖像加密前后相關(guān)系數(shù)(水平,垂直方向)。由表1和圖5可見,加密后圖像相鄰像素間的相關(guān)性要遠小于Lena原圖像的,這表明本算法具有較強的抗統(tǒng)計分析能力。

(5)差分攻擊

攻擊者通過圖像中很小的一點(例如一個像素)來觀察加密后圖像的變化,來破解加密圖像。

這里以原始圖像一個像素的改變對加密圖像的影響為例測試了差分攻擊。先定義了兩個量:歸一化平均變化強度(UACI)和像素變化率(NPCR)。令加密圖像(兩幅)分別為C1和C2,這些圖像只有一個像素的改變。像素在位置(i,j)的灰度值為C1(i,j)和C2(i,j)。定義一個二值矩陣D,它和C1與C2有相同的尺寸。若C1(i,j)=C2(i,j),則D(i,j)=1;否則D(i,j)=0。

NPCR定義為:

雙向耦合映像格子模型的圖像加密方法

UACI定義為:

雙向耦合映像格子模型的圖像加密方法

經(jīng)過計算可以得到NPCR=0.424%,UACI=27.12%,由此可見算法不僅僅對密鑰是敏感的,對要加密的圖像也是非常敏感的,可見可以有效地抵抗差分攻擊。

?小知識之耦合

耦合是指兩個或兩個以上的電路元件或電網(wǎng)絡的輸入與輸出之間存在緊密配合與相互影響,并通過相互作用從一側(cè)向另一側(cè)傳輸能量的現(xiàn)象;概括的說耦合就是指兩個或兩個以上的實體相互依賴于對方的一個量度。