盧守東
(廣西財經學院信息與統(tǒng)計學院,廣西 南寧 530003)
圖像具有生動形象的特點,應用十分廣泛。經過數字化而成的數字圖像可由計算機高效處理,并能在網絡中快速傳播。為對數字圖像進行有效的保護,可采用相應的加密技術。數字圖像加密是目前數字圖像處理領域的一個重要研究方向[1-3],基于各種混沌系統(tǒng)的數字圖像加密算法也已成為近年來的研究熱點之一,諸多各具特點、切實可行的算法已相繼出現在有關的文獻中[4-8]。
通過對圖像加密技術及有關算法的研究,本文以混沌系統(tǒng)及其產生的混沌序列為基礎,提出一種通用的綜合使用像素坐標置亂與像素值置換技術的數字圖像加密與解密算法,同時給出一種基于鄰域相鄰像素特性的抗剪切攻擊恢復算法。
混沌序列是混沌系統(tǒng)中所出現的混沌現象的運動軌跡。根據混沌系統(tǒng)的方程,指定不同的參數與初值,即可產生一系列非相關、類隨機、確定可再生的混沌序列?;煦缧蛄袑ο到y(tǒng)的參數與初值極其敏感,且在一定的區(qū)域內具有遍歷性與偽隨機性,因此可用于對數字圖像進行加密,而相應的系統(tǒng)參數與初值均可作為密鑰的組成部分。
Logistic映射是目前應用得相當廣泛的、典型的一維混沌系統(tǒng),定義為[4]
式中:μ 為分支參數,且 μ∈[0,4],xn∈(0,1),n=0,1,2,…。研究表明,當3.5699456<μ≤4時,Logistic映射所生成的混沌序列{xn,n=0,1,2,3,…}具有良好的隨機分布特性與遍歷性,是一種比較理想的偽隨機序列,且對初值x0十分敏感。在應用Logistic映射時,μ與x0均可作為密鑰使用。
Logistic映射具有良好的“雪崩效應”。為提高安全性,在使用 Logistic 混沌序列{xn,n=0,1,2,3,…}時,可適當舍棄其前面的N個數據項(一般取N≥20)。相應地,N也可作為密鑰的組成部分之一。
本文在進行仿真實驗時,用于生成Logistic混沌序列的密鑰 key=(μ,x0,N)。
像素坐標置亂是指對圖像的像素坐標進行變換以使其混亂??紤]到混沌序列的固有特性,可由混沌序列決定像素坐標的變換位置,以達到理想的置亂效果。
假定圖像的大小為m×n,由密鑰key=(μ,x0,N)產生具有相應長度的混沌序列{x1,x2,x3,…,xm×n},將其按升序或降序進行排序得到有序序列{xindex(1),xindex(2),xindex(3),…,xindex(m×n)},則該有序序列各數據項的下標序列{index(1),index(2),index(3),…,index(m × n)}即為整數序列{1,2,3,…,m×n}的一個排列。據此,可構造一個1-1變換Φ:k→index(k)。利用此變換Φ,可將該圖像的像素(i,j)(其中 i=0,1,2,…,m-1;j=0,1,2,…,n-1)按行列順序變換到新位置(row,col)
經過像素的坐標變換后,圖像將變得面目全非。
像素值置換是指對圖像的像素值進行變換以改變其值。考慮到混沌序列的良好特性,可由混沌序列生成相應的操作數,然后再與各像素值分別進行異或運算,從而達到理想的置換效果。
假定圖像的大小為m×n,由密鑰key=(μ,x0,N)產生具有相應長度的混沌序列{x1,x2,x3,…,xm×n},將其按圖像類型轉換為無符號整數序列{z1,z2,z3,…,zm×n},然后與該圖像的像素值P(i,j)分別進行異或運算,即可得到置換后的像素值Pe(i,j)。
混沌序列轉換為無符號整數序列的公式為
式中:i=1,2,3,…,m ×n;k=0,1,2,3,…;abs表示取絕對值;round表示取最近整數;T=2h為圖像類型值,h為二值圖像、灰度圖像或RGB真彩圖像各分量的比特深度。據此,可將k作為子密鑰使用。
像素值置換的公式為
式中:i=0,1,2,…,m-1;j=0,1,2,…,n-1。
反之,像素值恢復的公式為
經過圖像像素值的隨機置換后,原圖像的灰度直方圖統(tǒng)計特性將被徹底改變。
在進行數字圖像的加密時,同時采用基于混沌序列的像素坐標置亂與像素值置換,可有效提高加密圖像的抗剪切攻擊能力和抗像素特征值統(tǒng)計攻擊能力。若在進行像素坐標置亂與像素值置換時使用的不同的混沌序列,則加密效果更佳。
為簡單起見,本文加密算法基于同樣的一個混沌序列進行像素坐標置亂與像素值置換,其主要步驟為:
1)讀取待加密圖像,生成像素矩陣P,并確定其大小m×n與圖像類型值T。
2)由密鑰key=(μ,x0,N)產生一個長度為m×n的混沌序列{x1,x2,x3,…,xm×n}。
3)將{x1,x2,x3,…,xm×n}按升序或降序進行排序,得到有序序列{xindex(1),xindex(2),xindex(3),…,xindex(m×n)},并據此生成下標序列{index(1),index(2),index(3),…,index(m ×n)}。
4)根據{index(1),index(2),index(3),…,index(m ×n)}及變換Φ:k→index(k),將像素坐標(i,j)按行列順序變換到新位置(row,col),生成像素坐標置亂后的圖像加密矩陣PE。
5)根據子密鑰 k及圖像類型值 T,將{x1,x2,x3,…,xm×n}轉換為無符號整數序列{z1,z2,z3,…,zm×n}。
6)將{z1,z2,z3,…,zm×n}中的各個數據項分別與像素矩陣PE中的對應的像素值進行異或運算,生成像素值置換后的圖像加密矩陣P。
7)由像素矩陣P生成加密圖像。
本加密算法是可逆的,因此解密算法與加密算法具有相同的密鑰,但應先恢復像素的值,然后再將各像素變換至其原來所在的坐標位置。
針對惡意剪切等攻擊,可采用相應的抗剪切攻擊恢復算法(簡稱為ASAR算法),進一步提高解密圖像的質量。
像素坐標置亂與像素值置換的雙重加密過程,極大地降低了圖像相鄰像素之間的相關性,加密圖像中的像素值已呈隨機分布狀態(tài),并均勻擴散至整個取值范圍。因此,若發(fā)現連續(xù)的、等值的多個像素,則可認為這些像素是被剪切的。為降低誤檢率,一般應取3~6個連續(xù)像素作為判斷條件。
首先,創(chuàng)建一個與加密圖像大小一致的剪切區(qū)域標記零矩陣CF。然后,逐行掃描加密圖像,若發(fā)現連續(xù)多個(本文算法為6個)像素的值相同,則將CF中與這些像素對應的元素置為255。
對于RGB加密圖像,可通過逐一比較CF各分量中對應元素的值,將最終的剪切區(qū)域修正為各分量的相交部分。
本剪切區(qū)域檢測算法采用等值的像素掃描判斷技術,因此同樣適用于涂鴉、污損等惡意攻擊的情形。
加密圖像解密后,被剪切的像素將按加密時的坐標對應關系變換至其原始位置,從而在整個解密圖像中呈均勻分布狀態(tài)。根據4鄰域相鄰像素的高度相關特性,可將鄰域像素的平均值作為各被剪切像素的值。本文解密圖像恢復算法的基本步驟為:
1)按對加密圖像進行解密時各像素的坐標變換關系,將CF中的各個元素變換至相應像素在解密圖像中的坐標所對應的位置,得到一個相應的圖像恢復標記矩陣RF。
2)置unfinished為0。
3)逐行逐列掃描RF,若某個元素值為255,則計算其4鄰域中未被剪切(或已被恢復)的像素的個數n以及相應的像素值之和s。若n≥2,則將該元素的值置為0,同時將對應的像素值置為平均值round(s/n);否則,置unfinished為1。
4)若unfinished=1,則轉至2)。
本文使用MATLAB R2007a平臺,對各類常見圖像按文中算法進行仿真實驗。實驗采用同樣的一個Logistic混沌序列對圖像進行像素坐標置亂與像素值置換加密,密鑰 key=(μ,x0,N)=(3.69,0.56789,50),子密鑰 k=3。對于RGB真彩圖像,亦采用同樣的混沌序列并按同樣的方式加密其R,G,B各分量。圖像經加密后,均變得雜亂無章、面目全非,證明了算法的有效性。限于篇幅,在此只列出幾個有代表性的例子。實驗結果見圖1~圖5。
圖1 本文算法灰度圖像Lena加密效果
圖5 圖1c抗剪切攻擊實驗結果
如圖4所示的安全性實驗表明,即使只對初值x0進行微小修改(僅相差10-10),也將導致解密的完全失敗,此時所生成的解密圖像依然類似于待解密的加密圖像。同樣,只對其余的某個密鑰分量(μ,N或k)進行微調時,結果亦與此類似。只有在使用完全正確的密鑰與子密鑰時,才能確保解密成功??梢?,本文算法具有極強的密鑰敏感性。此外,本文算法的密鑰分量較多(包括浮點型的μ,x0的與整型的N,k),因此擁有頗為巨大的密鑰空間,可有效抵御窮舉攻擊。
1)灰度直方圖
通過對各類圖像在加密前后的灰度直方圖進行比較,可以發(fā)現其差異是十分明顯的。圖像經過加密以后,其像素在整個取值范圍內的分布相當均勻,表明本文算法具有良好的擴散性,可完全改變圖像的像素值統(tǒng)計特性。
2)相鄰像素的相關性
圖像相鄰像素的相關系數用于度量相鄰像素的相關性,其計算公式為[5]
式中:x,y為圖像中兩個相鄰像素的灰度值。
Lena,baidu_logo與Baboon圖像在加密前后的相鄰像素相關系數分別如表1、表2所示。實驗數據表明,原始圖像在水平、垂直與對角方向的相鄰像素的相關系數均接近于±1.00,說明存在著高度相關性;而加密圖像在各個方向的相鄰像素的相關系數均接近于0,說明已呈幾乎不相關狀態(tài)。
表1 Lena與baidu_logo圖像相鄰像素的相關系數
表2 Baboon圖像R,G,B分量相鄰像素的相關系數
3)信息熵
圖像的信息熵用于度量圖像中灰度值的均勻分布情況,其計算公式為[6]
式中:p(xi)為圖像像素值xi出現的概率。
Lena,baidu_logo與Baboon圖像在加密前后的信息熵分別如表3、表4所示。實驗數據表明,Lena加密圖像與Baboon加密圖像R,G,B各分量的信息熵均接近于8(256級灰度圖像信息熵的理論最大值),baidu_logo加密圖像的信息熵則剛好等于1(二值圖像信息熵的理論最大值)。可見,經本文算法加密后,圖像的像素值分布已相當均勻,且其出現概率亦幾乎是一致的。
表3 Lena與baidu_logo圖像的信息熵
表4 Baboon圖像R,G,B分量的信息熵
如圖5所示的抗剪切攻擊實驗表明,即使加密圖像被隨機剪切的面積達到50%,仍然能夠直接解密出相當不錯的可識別的圖像,進一步應用ASAR算法時則可得到還原質量更佳的恢復圖像,可見本文加密算法的抗剪切攻擊能力是較強的,而ASAR算法也是有效可行的。從峰值信噪比PSNR看,圖5c和圖5d分別為16.6685,10.6598,而圖5e和圖5f分別為25.6262,21.2186,這也客觀地表明了本文ASAR算法的有效性。
基于混沌系統(tǒng)及其所產生的混沌序列,本文提出了一種通用的數字圖像加密與解密算法,同時給出了一種基于鄰域相鄰像素特性的抗剪切攻擊恢復算法。文中的加密算法充分利用了混沌序列的固有特性,并采用像素坐標置亂與像素值置換相結合的雙重加密技術,具有較強的安全性。此外,該算法對于圖像的類型及大小沒有任何限制,并可使用Logistic,Henon,Lorenz等各類混沌系統(tǒng)所產生的混沌序列,且易于實現,具有良好適應性與實用性。為進一步提高數字圖像的加密效果,可對本文算法進行相應的改進,如使用不同的混沌序列進行像素坐標置亂與像素值置換,或同時使用兩種不同的混沌系統(tǒng)等。
[1]李昌剛,韓正之,張浩然.圖像加密技術綜述[J].計算機研究與發(fā)展,2002,39(10):1317-1324.
[2]李昌剛,韓正之.圖像加密技術新進展[J].信息與控制,2003,32(4):339-343.
[3]孫燮華.數字圖像處理:原理與算法[M].北京:機械工業(yè)出版社,2010.
[4]高飛,李興華.基于混沌序列的位圖像加密研究[J].北京理工大學學報,2005,25(5):447-450.
[5]李太勇,賈華丁,吳江.基于三維混沌序列的數字圖像加密算法[J].計算機應用,2006,26(7):1652-1654.
[6]李鵬,田東平.基于超混沌序列的數字圖像加密算法[J].微電子學與計算機,2008,25(3):4-7.
[7]劉剛,王立香.一種新的基于混沌的圖像加密算法[J].電視技術,2008,32(12):22-24.
[8]成亞萍,呂巍,張?zhí)?一種新的抗剪切的數字圖像加密算法[J].計算機工程與應用,2008,44(27):130-131.