孫煒皓
(廣東工業(yè)大學(xué) 自動化學(xué)院,廣東 廣州 510006)
隨著網(wǎng)絡(luò)與多媒體技術(shù)的快速發(fā)展,安全已經(jīng)成為圖像傳輸和存儲領(lǐng)域的重要問題。加密是保證圖像安全的一種重要手段,已被廣泛運用于許多領(lǐng)域?;煦绗F(xiàn)象是非線性確定性系統(tǒng)中的一種類似隨機的過程,適用于保密通信技術(shù)。細胞神經(jīng)網(wǎng)絡(luò)是由Chua和Yang提出的一種神經(jīng)網(wǎng)絡(luò)[1],而后被廣泛應(yīng)用于各個領(lǐng)域當(dāng)中。細胞神經(jīng)網(wǎng)絡(luò)作為一種非線性動態(tài)系統(tǒng),在很大的參數(shù)范圍內(nèi),具有混沌吸引子和更復(fù)雜的動力學(xué)行為。
王勇等[2]將細胞神經(jīng)網(wǎng)絡(luò)產(chǎn)生的超混沌序列與AES算法結(jié)合來進行圖像加密,任曉霞[3]運用六維細胞神經(jīng)網(wǎng)絡(luò)進行圖像加密,劉玉明等[4]將四維細胞神經(jīng)網(wǎng)絡(luò)產(chǎn)生的超混沌序列應(yīng)用到了圖像加密當(dāng)中。部分算法中存在密鑰空間小,加密效率低,加密算法與明文無關(guān),加密算法操作簡單,安全性不高等問題。
筆者提出一種基于五維細胞神經(jīng)網(wǎng)絡(luò)的圖像混沌加密算法,由五維細胞神經(jīng)網(wǎng)絡(luò)生成混沌序列,對混沌序列進行處理后用于加密算法。采用置亂-擴散-置亂方法,擴散過程將圖像分為兩部分,采用不同擴散方法。最后給出相關(guān)性測試、敏感性測試等結(jié)果。
研究表明高維細胞神經(jīng)網(wǎng)絡(luò)可以產(chǎn)生復(fù)雜程度更高的超混沌行為,它的密鑰空間較大,同時擁有兩個以上的Lyaponuv指數(shù),和一系列復(fù)雜并且難以預(yù)測的非線性行為,其模型動力學(xué)方程式為(1):
(1)
其中n的值為5,s11、s23和s33值為1,s13、s14、s45和s55值為-1,s22值為3,s31值為11,s32值為-12,s41值為92,s44值為202,其余參數(shù)值均為0,五維細胞神經(jīng)網(wǎng)絡(luò)系統(tǒng)如式(2):
(2)
當(dāng)給定初始的值,神經(jīng)網(wǎng)絡(luò)系統(tǒng)具有兩個正的Lyapunov指數(shù)。
用步長h=0.002的5階Runge-Kutta算法求解方程(2),取初始值x1(0)=0.5,x2(0)=0.5,x3(0)=0.5,x4(0)=0.5,x5(0)=0.5,則五階全互聯(lián)細胞神經(jīng)網(wǎng)絡(luò)系統(tǒng)產(chǎn)生的混沌吸引子如圖1所示。
圖1 部分混沌吸引子
密鑰K={x0,y0,z0,w0,t0,r1,r2},{x0,y0,z0,w0,t0}為狀態(tài)初始值,{r1,r2}為隨機數(shù)。
以密鑰K中的{x0,y0,z0,w0,t0}作為式(2)的初始值,迭代細胞神經(jīng)網(wǎng)絡(luò)系統(tǒng)r1+r2次后,再繼續(xù)迭代MN次,得到5個偽隨機序列{xi},{yi},{zi},{wi}和{ti},i=1,2,…MN。通過式(3)生成矩陣X,Y,Z,W,T,U,V,大小為M×N。
(3)
其中mod為取模運算,k=1,2,…M,l=1,2,…,N,floor返回小于或等于t的最大整數(shù)。
加密過程為置亂-擴散-置亂,擴散部分將圖像分為兩部分,采用不同的擴散方法。加密流程圖如圖2所示。解密過程為加密過程的逆運算。
圖2 圖像混沌加密流程
2.2.1 置亂算法1
步驟1:明文圖像P給定的一個像素點坐標(i,j),根據(jù)式(4)計算得到(m,n)的值。
(4)
如果m=i或Z(i,j),或n=j或W(i,j),或Z(i,j)=i或W(i,j)=j,則P(i,j)位置保持不變,否則P(i,j)與P(m,n)位置互換。
步驟2:當(dāng)坐標(i,j)按照順序遍歷圖像P中的所有像素點后重復(fù)步驟1,將圖像P轉(zhuǎn)化為圖像A。
2.2.2 擴散算法
圖像B的擴散算法1為:
步驟1:令i=1,j=1,將B(i,j)按式(5)變換為D(i,j)。
D(i,j)=B(i,j)+X(i,j)+r1mod256
(5)
步驟2:令j=j+1,將B(i,j)按式(6)變換為D(i,j)。
D(i,j)=B(i,j)+D(i,j-1)+X(i,j)mod256
(6)
如果j 步驟3:將B(i,j)按式(7)變換為D(i,j)。 D(i,j)=B(i,j)+sum(D(i-1,1toN))+X(i,j)mod256 (7) 轉(zhuǎn)到步驟2,最后得到擴散后的圖像B。 圖像C的擴散算法2為: 步驟1:將C(M,j)按式(8)變換為E(M,j),j=N-1,N-2,…,1。 (8) 步驟2:將C(i,N)按式(9)變換為E(i,N),i=M-1,M-2,…,1。 E(i,N)=(C(i,N)+Y(i,N)+E(i+1,N))mod256 (9) 步驟3:將C(i,j)按式(10)變換為E(i,j),i=M-1,M-2,1;j=N-1,N-2,…,1。 E(i,j)=(C(i,j)+Y(i,j)+E(i+1,j)+E(i,j+1))mod256 (10) 得到擴散后的圖像C。 將圖像B與C拼接組成圖像F,大小為M×N。 2.2.3 置亂算法2 步驟1:計算F(i,j)所在行的全部元素的和row。計算F(i,j)所在列的全部元素的和col。 步驟2:根據(jù)公式(11)計算坐標(m,n)的值。 (11) 步驟3:如果m=i或n=j,則F(i,j)與F(m,n)位置保持不變。否則,F(xiàn)(i,j)與F(m,n)位置互換。 步驟4:按照步驟1~3的方法,先置亂F的第M行,接著置亂F的第N列,按從左至右再從上至下的順序置亂F的元素,最后得到置亂后的圖像F。 經(jīng)過上述操作后得到的圖像F為密文圖像。 仿真選用大小為256×256的灰度圖像Lena和Cameraman作為明文。設(shè)置初始密鑰k={0.5,0.5,0.5,0.5,0.5,30,100}。實驗結(jié)果如圖3所示。 圖3 圖像混沌加密和解密實驗結(jié)果 直方圖反映了圖像灰度的分布情況,圖4給出了Lena的明文圖像與加密圖像的直方圖,可以看出明文圖像像素值分布不均勻,密文圖像像素值分布均勻,其中橫坐標是灰度級,縱坐標是灰度級出現(xiàn)的頻率。 (a)明文圖像直方圖 (b)密文圖像直方圖 一般情況下,明文圖像的相鄰像素在水平、垂直和對角方向上具有較強的相關(guān)性,密文圖像的相鄰像素相關(guān)系數(shù)接近于0。相鄰像素相關(guān)系數(shù)結(jié)果如表1所示。 表1 相關(guān)系數(shù) 由表1可知明文的相關(guān)系數(shù)都接近于1,明文圖像相鄰像素相關(guān)性強,密文圖像相關(guān)系數(shù)接近于0,近似無相關(guān)性。 Lena明文與密文圖像在不同方向上的相關(guān)性如圖5所示。 可以看出,明文圖像的相鄰像素點分布密集,集中在y=x直線上,說明相關(guān)性較強。密文圖像像素分布于整個空間,近似無相關(guān)性。 (a)明文水平方向 (b)密文水平方向 明文敏感性分析是對僅存在一個像素點差別的明文,使用同一密鑰進行加密,得到相應(yīng)密文,對比兩個密文的差別。通過引入圖像像素值變化率(NPCR)和歸一化像素平均改變強度(UACI)來判斷敏感性。NPCR的理想值為0.996094,UACI的理想值為0.334635。 從表2中可以看到,測試數(shù)值與理想值較為相近,明文對于密文存在雪崩效應(yīng),兩個差別微小的明文圖像加密后得到的密文圖像差別很大。 表2 明文敏感性分析結(jié)果 筆者提出一種基于五維細胞神經(jīng)網(wǎng)絡(luò)的圖像混沌加密算法,使用五維細胞神經(jīng)網(wǎng)絡(luò)產(chǎn)生的混沌系統(tǒng)作為密鑰源,使用置亂-擴散-置亂的方法對圖像進行加密,算法與明文信息相關(guān),增強破譯難度,并給出了相關(guān)性測試、敏感性分析等結(jié)果。通過實驗表明,算法的安全性和加密效果都較好。3 仿真實驗結(jié)果及安全性能分析
3.1 數(shù)值仿真實驗
3.2 直方圖分析
3.3 相鄰像素相關(guān)性分析
3.4 敏感性分析
4 結(jié)論