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