宦立鑫, 葛 斌
(安徽理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,安徽 淮南 232001)
隨著互聯(lián)網(wǎng)和通信技術(shù)的迅速發(fā)展,數(shù)字圖像作為可視化的多媒體內(nèi)容占據(jù)了互聯(lián)網(wǎng)上交換的信息的很大比例。明文圖像在網(wǎng)絡(luò)傳輸過程中非常容易泄露隱私內(nèi)容,加密圖像可以有效的保護(hù)圖像的隱私內(nèi)容[1,2]。圖像數(shù)據(jù)的高冗余度和相鄰像素的強(qiáng)相關(guān)性使得傳統(tǒng)的文本密碼體制如AES和DES,在應(yīng)用于數(shù)字圖像時(shí)可能會(huì)導(dǎo)致效率低下和不安全;而混沌對(duì)其初值的敏感性、混沌序列的偽隨機(jī)性和非周期性非常符合圖像加密的基本要求,因此混沌圖像加密得到了越來越廣泛的應(yīng)用[3,4]。一維混沌映射加密效率高,容易實(shí)現(xiàn),現(xiàn)有的一些圖像加密算法使用一維混沌映射進(jìn)行圖像加密,然而傳統(tǒng)的一維混沌映射通常混沌范圍小且不連續(xù),使得圖像加密算法的密鑰空間狹窄,降低了加密算法的安全性[5]。針對(duì)此問題,使用切比雪夫映射調(diào)制無限折疊映射,提出了CICM,該混沌映射能夠產(chǎn)生隨機(jī)性更強(qiáng)的混沌序列,具有比原混沌映射更連續(xù)的混沌行為?;谠摶煦缬成?,進(jìn)一步提出了像素值與比特位雙重置亂的混沌圖像加密算法,該算法在進(jìn)行行與列的循環(huán)移位后,對(duì)每一個(gè)像素值的比特位進(jìn)行了進(jìn)一步的置亂,提高了圖像加密算法的安全性。
切比雪夫映射是一種經(jīng)典的一維混沌映射,具有復(fù)雜的混沌行為,數(shù)學(xué)定義為式(1):
xn+1=cos((r+1)acos(xn))
(1)
式(1)中xn+1為混沌輸出值,其取值范圍為[-1,1],r為控制參數(shù),n為正整數(shù)。
無限折疊映射是常用的混沌映射之一,它的數(shù)學(xué)定義是式(2):
xn+1=sin(a/xn)
(2)
式(2)中控制參數(shù)a≠0,xn∈[-1,1]。
考慮到切比雪夫映射與無限折疊映射具有相同的輸出范圍,使用切比雪夫映射調(diào)制無限折疊映射,將切比雪夫映射的輸出值作為無限折疊映射的輸入值,以改善其混沌性能,得到CICM。它的數(shù)學(xué)定義可以用公式(3)表示:
xn+1=sin(a/cos((u+1)acos(xn)))
(3)
式(3)中:xn∈[-1,1],控制參數(shù)a和u是實(shí)數(shù),a≠0,u≠0。
使用分岔圖、Lyapunov指數(shù)以及0-1測試對(duì)CICM的性能進(jìn)行分析,并與切比雪夫映射以及無限折疊映射進(jìn)行比較。
分岔圖直觀地反映了隨著控制參數(shù)的變化,動(dòng)力系統(tǒng)軌道上點(diǎn)的分布情況。根據(jù)分岔圖中點(diǎn)的分布情況,可以判斷出動(dòng)力系統(tǒng)是否混沌。圖1顯示了CICM與切比雪夫映射以及無限折疊映射的分岔圖。由圖1可知,CICM在整個(gè)參數(shù)范圍u∈(0,1.5)內(nèi)都處于混沌狀態(tài),而切比雪夫映射存在一些非混沌區(qū)域,無限折疊映射在此參數(shù)范圍內(nèi)處于非混沌狀態(tài),且在其他參數(shù)范圍下具有多個(gè)周期窗口。這說明CICM比原混沌映射具有更好的混沌特性。
圖1 混沌映射分岔圖
Lyapunov指數(shù)測量了動(dòng)力系統(tǒng)對(duì)初始條件微小變化的敏感性,可以用來判斷系統(tǒng)是否混沌,其計(jì)算方式如式(4):
(4)
正的Lyapunov指數(shù)表明動(dòng)力系統(tǒng)具有混沌行為,Lyapunov指數(shù)值越大,系統(tǒng)表現(xiàn)出越好的混沌特性。圖2顯示了各混沌映射的Lyapunov指數(shù)隨控制參數(shù)的變化情況。由圖2可知,CICM與切比雪夫映射在其參數(shù)范圍下都具有正的Lyapunov指數(shù),而CICM具有更高的Lyapunov指數(shù)值,無限折疊映射在其參數(shù)范圍下表現(xiàn)出不穩(wěn)定的混沌狀態(tài),因此CICM具有更好更連續(xù)的混沌行為。
圖2 混沌映射Lyapunov指數(shù)
0-1測試可以確定給定序列是否表現(xiàn)出混沌行為,測試的輸入是時(shí)間序列數(shù)據(jù),對(duì)于混沌序列的輸入,輸出值K≈1;對(duì)于非混沌序列的輸入,輸出值K≈0。各混沌映射的0-1測試結(jié)果如圖3所示,CICM的0-1測試輸出值K在其參數(shù)范圍[0,1.5]下都為1,這說明CICM在其參數(shù)范圍下都是混沌的,而切比雪夫映射與無限折疊映射都存在輸出值不為1的情況,這表明CICM比原混沌映射具有更連續(xù)的混沌行為。
圖3 混沌映射0-1測試
圖像加密算法的密鑰由明文圖像決定,密鑰生成方式如式(5):
(5)
式(5)中p(i,j)表示明文圖像矩陣(i,j)位置處的像素值,M和N分別表示圖像的寬度和高度,q的值為明文圖像中所有像素值按位異或得到,由公式(5)可以看出,密鑰的產(chǎn)生與明文圖像的像素值密切相關(guān),即使明文圖像的像素值產(chǎn)生細(xì)微的變化,密鑰也會(huì)發(fā)生改變,這使得加密算法能夠有效的抵抗選擇明文攻擊。
置亂過程包括像素值與比特位的循環(huán)移位,其目的在于打破明文圖像相鄰像素之間的強(qiáng)相關(guān)性,具體步驟如下所示:
步驟1 輸入明文圖像PM×N,使用公式(5)計(jì)算出置亂過程中的密鑰,將密鑰輸入混沌系統(tǒng),預(yù)迭代混沌系統(tǒng)np次以消除暫態(tài)效應(yīng)的不良影響,繼續(xù)迭代混沌系統(tǒng)M*N+M+N次,產(chǎn)生混沌序列Xp={x1,x2,… ,xM*N+M+N}。
步驟2 取前M個(gè)混沌序列記為W1,再取N個(gè)序列記為W2,最后M×N個(gè)序列記為W3。
步驟3 使用公式(6)改變混沌序列的取值范圍。
(6)
步驟4 對(duì)于明文圖像矩陣P,將矩陣P中的第i行像素循環(huán)右移W1(i)位,待所有行的循環(huán)移位完成時(shí),將矩陣中的第i列像素循環(huán)下移W2(i)位得到矩陣P’。
步驟5 將矩陣P’中的所有像素值轉(zhuǎn)化為八位二進(jìn)制,之后對(duì)于第i個(gè)像素轉(zhuǎn)化為的八位二進(jìn)制將其向右循環(huán)移位W3(i)位,待所有像素循環(huán)移位完成后將其轉(zhuǎn)化為十進(jìn)制即可得到置亂后的中間密文C’。
在每個(gè)像素值的擴(kuò)散過程中,引入中間密文與前一密文,實(shí)現(xiàn)密文反饋機(jī)制,提高圖像加密算法的安全性,其具體步驟如下所示:
步驟1 使用公式(7)更新混沌映射的初始值和參數(shù)。
(7)
步驟2 將初始值和參數(shù)輸入混沌系統(tǒng),迭代np+M*N次,舍棄前np次的迭代值消除暫態(tài)效應(yīng)的不良影響,得到長度為M*N的混沌序列Xd={x1,x2,… ,xM*N}。
步驟3 使用式(8)將混沌序列Xd改造為(0,255)之間的整數(shù)。
Xd(i)=mod(floor((abs(Xd(i))-
floor(Xd(i)))*1014),256)
(8)
步驟4 使用公式(9)對(duì)中間密文C’進(jìn)行像素值擴(kuò)散得到最終密文C。
(9)
解密過程為加密過程的逆過程,按相反的順序執(zhí)行各加密步驟即可將密文還原為明文圖像。
實(shí)驗(yàn)選取灰度圖像Lena作為測試圖像,圖像分辨率為512*512。圖像加密與解密效果如圖4所示,經(jīng)過加密后的圖像沒有任何視覺信息暴露,并且使用正確的密鑰可以成功解密出原始圖像。接下來通過統(tǒng)計(jì)特性分析、相關(guān)性分析以及信息熵分析來評(píng)估圖像加密算法的安全性。
一個(gè)有效的密碼系統(tǒng)應(yīng)該產(chǎn)生一個(gè)像素值分布均勻的密碼圖像以抵抗統(tǒng)計(jì)攻擊。圖像直方圖通過計(jì)算每個(gè)灰度級(jí)的像素?cái)?shù)來描述圖像的像素分布,圖5為明文圖像與密文圖像的直方圖,由圖5可知,經(jīng)過加密處理后,明文圖像像素的不均勻分布變成了均勻分布,這說明加密算法打破了明文圖像的統(tǒng)計(jì)特性,能夠有效的抵抗統(tǒng)計(jì)攻擊。
圖4 加密與解密效果
圖5 明文與密文圖像直方圖
原始圖像在水平、垂直、對(duì)角線方向上的相鄰像素之間具有很高的相關(guān)性,一個(gè)好的加密算法能夠有效的打破這種高相關(guān)性。分別從Lena圖像和其密文圖像中隨機(jī)選擇2000對(duì)相鄰像素,使用公式(10)計(jì)算相鄰像素之間的相關(guān)系數(shù)?xy:
(10)
式(10)中:xi和yi是隨機(jī)選擇的相鄰像素,E(x)和D(x)分別為所選像素的期望和方差。計(jì)算結(jié)果如表1所示,明文圖像的相鄰像素之間的相關(guān)系數(shù)都接近1,經(jīng)過加密處理后,相鄰像素的相關(guān)系數(shù)都趨近于0,這說明加密算法打破了明文圖像相鄰像素之間的強(qiáng)相關(guān)性。與文獻(xiàn)[6]對(duì)比,算法密文圖像在對(duì)角線方向的相關(guān)系數(shù)略高,在水平方向與垂直方向上的相關(guān)性都低于文獻(xiàn)[6],具有良好的性能。
信息熵可以用來衡量圖像信息的隨機(jī)性,對(duì)于8位灰度級(jí)的密文圖像,其信息熵的理想值為8。Lena及其密文圖像的信息熵如表2所示,經(jīng)過圖像加密算法加密后的Lena圖像的信息熵非常接近理想值,且比文獻(xiàn)[7],文獻(xiàn)[8]更高,具有足夠的安全性。
表2 信息熵分析
針對(duì)現(xiàn)有一維混沌映射的缺點(diǎn),提出了CICM,并將其應(yīng)用到了圖像加密中。與原混沌映射相比,該混沌映射能夠產(chǎn)生隨機(jī)性更好的混沌序列。圖像加密過程中,根據(jù)明文圖像信息生成密鑰以抵抗選擇明文攻擊;在置亂階段采用像素值與比特位的雙重置亂,有效的打破了原始圖像相鄰像素的強(qiáng)相關(guān)性。實(shí)驗(yàn)結(jié)果表明,該加密算法具有足夠的安全性,能夠廣泛的應(yīng)用于圖像保密通信領(lǐng)域中。
佳木斯大學(xué)學(xué)報(bào)(自然科學(xué)版)2022年6期