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