張 斌
(寶雞文理學院計算機學院,陜西 寶雞 721016)
陳剛等人[1]提出了一種新的自適應圖像加密算法,并證明了加密后的圖像可以有效防止已知明文攻擊。與此同時,算法還具有良好的完整性保護功能,可以用于圖像驗證。然而加密算法的最重要指標是算法的安全性,即算法應該不僅能夠抵抗已知明文攻擊,還應該能抵抗其他攻擊方式。周慶等[2]針對自適應圖像加密算法提出了兩種已知明文攻擊。本文針對自適應圖像加密算法面臨的已知明文攻擊威脅提出了一種改進算法,改進算法在原算法每一輪加密后增加了一個約瑟夫遍歷的步驟。理論分析和實驗結果表明,改進算法可以有效地提高原算法的安全性。
對一幅M×N的圖像進行約瑟夫遍歷,首先對行(或列)按照約瑟夫遍歷的順序重新排列各行(或列)像素的位置。其次,再對各列(或行)按照約瑟夫遍歷的順序重新排列各列(或行)像素的位置[3]。
自適應圖像加密算法描述:
①生成密鑰序列。
獲取用戶口令并且把它轉(zhuǎn)化成二進制序列的形式S,例如“1010110…”。
②圖像分割
If S[i]=0
分割圖像為上下兩部分;
Else if S[i]=1
分割圖像為左右兩部分;
③互換加密
首先,我們把后部Ir標準化為Rlr,然后用Rlr混亂前部Ih為。然后,我們標準化為,接著使用Ih混亂后部Ir為。最后,我們把和結合起來構成。
④循環(huán)
迭代加密直到密鑰序列S[i]結束。
改進算法描述:
①生成密鑰序列。
②圖像分割
③互換加密
④約瑟夫遍歷
⑤循環(huán)
當密鑰為0時,一輪自適應換位操作過后,該數(shù)字圖像保持不變。當算法運行到第四步時,對行和列按照約瑟夫遍歷的順序重新排列各行和各列像素的位置。由于我們選取的參數(shù)s、k的值不同,圖像不再保持不變。
當密鑰為1時,一輪自適應換位操作過后,該數(shù)字圖像右下1/4部分的1元素循環(huán)左移一個位置。當算法運行到第四步時,對行和列按照約瑟夫遍歷的順序重新排列各行和各列像素的位置。由于我們選取的參數(shù)s、k的值不同,圖像不再保持不變。右下1/4部分的1元素可以隨機移動到數(shù)字圖像的任意位置。
通過分析我們發(fā)現(xiàn)改進算法破壞了第一種選擇明文攻擊所需的條件,密文中的元素不再是有規(guī)律地改變,而是一種貌似雜亂無章的變化。我們可以得出結論,改進的算法方案可以有效地抵御通過第一種選擇明文攻擊來破譯原算法。
同理,采用第二種選擇明文攻擊方式對改進算法攻擊。不管密鑰序列k當前的值為0還是為1,一輪自適應換位操作過后,右上角的元素2右移一個位置,左下角的元素0左移一個位置。當算法運行到第四步時,對行和列按照約瑟夫遍歷的順序重新排列各行和各列像素的位置。由于我們選取的參數(shù)s、k的值不同,右上角的元素2和左下角的元素均脫離了原來的移動規(guī)律,可以隨機地移動到數(shù)字圖像的任意位置。
通過分析我們發(fā)現(xiàn)改進算法同樣破壞了第二種選擇明文攻擊所需的條件,密文中的元素不再是有規(guī)律地改變,而是一種貌似雜亂無章的變化。我們可以得出結論,改進的算法方案可以有效地抵抗通過第二種選擇明文攻擊來破譯自適應圖像加密算法。
在明文圖像中,相鄰像素的相關性通常很高,一個實用的圖像加密算法應去除相鄰像素的相關性。我們使用改進算法加密128×128像素的lenna.jpg圖像,從明文和密文圖像隨機地選取500對相鄰像素位置計算對應的相關系數(shù)。實驗證明改進算法加密后的圖像相鄰像素位置相關系數(shù)趨近于0。
圖1 lenna.jpg明文圖像和密文圖像
表1 明文和密文相鄰像素位置相關系數(shù)
本文提出了基于約瑟夫遍歷的改進自適應圖像加密算法。這種方法解決了原算法面臨的選擇明文攻擊威脅。同時,實驗表明密文圖像的相鄰像素相關性幾乎為0。
[1]Chen G,Zhao X Y,Li JL.Self-adaptive algorithm on image encryption[J].Ruan Jian Xue Bao(Journal of Software),2005,16(11):1975-1982.
[2]周慶,胡月,廖曉峰.一種自適應的圖像加密算法的分析及改進[J].電子學報,2009(12):2730-2734.
[3]Kirch C,Kamgaing J T.Geometric ergodicity of binary autoregressive models with exogenous variables[M].Technische Universit?t aiserslautern,F(xiàn)achbereich Mathematik,2013.