劉祝華
摘 要: 為了提高圖像加密算法的運行速度,同時兼顧算法的安全性,提出了一種自適應混沌的并行雙向圖像加密算法。算法對圖像進行分組并行加密,用分組內的元素對兩個一維混沌映射的參數及初始值進行擾動,并將生成的兩個混沌序列相異或得到加密序列。采用正反雙向加密,在正向加密后使用分組最后一個元素實現分組間擴散,最后通過反向加密將最后一個元素的變化擴散至整個分組。實驗結果表明,算法執行速度快,且安全性高。
關鍵詞: 并行加密; 自適應混沌; 雙向加密; 圖像加密算法
中圖分類號: TN919?34; TP309.7文獻標識碼: A文章編號: 1004?373X(2014)08?0119?04
Parallel bidirectional image encryption algorithm based on self?adaptive?chaos
LIU Zhu?hua
(College of Physics and Communication Electronics, Jiangxi Normal University, Nanchang 330022, China)
Abstract: In order to improve the running speed of image encryption algorithm and consider?the security of the algorithm, a parallel bidirectional image encryption algorithm based on self?adaptive?chaos is proposed. The grouping and parallel encryption for images is executed by this algorithm. Two one?dimensional chaotic maping parameters and original value are disturbed by elements in image groups. The encryption sequence is generated through?two chaotic?sequences?XOR operation. The?bidirectional?encryption is adopted in the algorithm. Diffusion between groups is implemented by using the last element?of every group after forward?encryption. The change of the last element is spread to the whole group through reverse encryption. The experimental results show that the algorithm encrypts fast, and has high safety.
Keywords: parallel encryption; self?adaptive chaos;bidirectional encryption; image encryption algorithm
0引言
混沌系統對初始條件和參數非常敏感,同時具有類噪聲特性,因此被廣泛應用到保密通信系統設計中。許多學者已提出眾多基于混沌的圖像加密算法,有的使用超混沌系統[1?3],有的使用多混沌及復合混沌[4?8],有的則使用分段線性混沌[9?10]等。無論采用什么樣的設計方法,安全性和運行速度是衡量算法性能好壞的兩個重要指標。
對于需要大量數據運算的圖像加密算法,并行計算可成倍地提高運算速度。并行加密模型是指多個PE(Processing Elements)同時加密一幅圖像,并且每個PE都有獨立的內存和計算資源,并通過數字通信實現PE之間的數據交換。一個好的圖像并行加密算法應該滿足良好的擴散效應、保證PE的計算負載平衡以及實現臨界區域管理[11]。
Zhou等人提出了一種基于離散混沌映射的并行圖像加密算法[11],對圖像進行分組,采用AES算法對每個分組加密,然后分組之間進行像素重排,再對每個分組重復加密。算法使用K(Kolmogorov flow)變換進行分組間的像素重排,需要多次乘法運算,耗時較多。劉君等人針對Zhou的算法提出了改進措施[12],使用模256加法替代了分組Mixing操作中的異或運算,改善了擴散性能,像素重排采用了類似魔方旋轉的操作,減小了計算開銷,因此運行速度有所提高。Miraei等人提出了一種基于超混沌的并行子圖加密算法[13],將圖像分成上下左右四個子圖操作,由于子圖之間像素相互獨立,因此不能獲得良好的擴散效應。孫勁光等人提出了一種改進的圖像分塊加密算法[14],將矩形圖像分成若干正方形圖像,而每個正方形圖像又分成上下左右四個子塊,子塊之間按水平、垂直和對角的方向進行擴散替代,加密過程中子塊之間存在大量像素信息交換,不適合并行計算實現。
針對上述并行加密算法存在的問題,提出了基于兩個一維混沌映射的并行雙向加密算法。實驗結果表明算法運行速度快,且安全性高。
1 算法設計
1.1 圖像分組
大小為[m×n]的圖像[I],假定由[r]個PE并行加密,且[m×n]能被[r]整除,令[l=(m×n)r]。將圖像按從上至下、從左至右的順序轉換成序列,再按長度[l]劃分成[r]組,用[Pi]表示,每組中的像素用[pi,j]表示,其中[i∈[1,r]],[j∈[1,l]]。
1.2 分組內正向加密
每個分組都需要一個長度為[l]的加密序列[Bi](用[bi,j]表示其中一個元素)。在生成[Bi]時,使用tent映射:
[xn+1=a-(1+a)?abs(xn)],[a∈(0,1),x0∈(0,1)] (1)
式中:[abs]為取絕對值,舍去前[k0]次迭代結果,生成長度為[l]的混沌序列,并取出小數點后12至14位對256取模,得序列[Xi]。以同樣的方法,使用kent映射:
[xn+1=xna, 0 式中:[a∈(0,0.5),x0∈(0,1)]。 生成序列[Yi],則加密序列[Bi=Xi⊕Yi]。為進一步提高算法安全性,在生成[Xi]和[Yi]時,用擾動因子[t0]、[t1],按式(3),式(4)分別對tent映射、kent映射的參數及初始值進行擾動, [a=(k1+(0.99+0.01×t0255))2x0=(k2+t1255)2](3) [a=(k3+(0.4+0.1×t0/255))2x0=(k4+t1255)2](4) 式中:[k1∈(0.99,1),k2∈(0,1),k3∈(0.4,0.5),k4∈(0,1),][k1]~[k4]為加密密鑰,擾動因子[t0]由[pi,1]代入,[t1]由[(2×pi,1)mod256]代入。擾動使得[Bi]自適應于分組內容的變化而變化。
用[Ci]表示每個分組正向加密結果,[ci,j]為每個像素對應的密文。按式(5)實現分組內像素的正向替代與擴散。
[ci,1=pi,1,j=1ci,j=((pi,j⊕bi,j-1)+(ci,j-1⊕bi,j))mod256,j=2,3,…,l] (5)
由于[pi,1]用作混沌映射的擾動,因此正向加密從第二個像素開始。
1.3 分組間擴散
正向加密后,對每個分組最后一個密文[ci,l]按式(6)進行處理,用[ci,l′]表示處理后的結果。
[c1,l′=(i=1rci,l)mod256,i=1ci,l′=(ci,l+i=1rci,l)mod256, i=2,3,…,r] (6)
原圖像任意像素值的變化,經正向加密后會擴散至對應分組的最后一個密文。而經過式(6)處理,這種變化會再次擴散至所有分組的最后一個密文。
1.4 分組內反向加密
分組內反向加密的方法與正向加密相同。不同之處在于處理密文像素的順序,是從分組最后一個密文像素開始,以相反的方向處理至第一個密文像素。用[Ci′]表示每個分組反向加密結果,[ci,j′]表示反向加密后的每個密文,可按式(7) 實現分組內的反向替代與擴散,[當j=l-1,l-2,…,1時:]
[ci,j′=((ci,j⊕bi,j+1)+(ci,j+1⊕bi,j))mod256] (7)
注意,分組內第[l]個密文的處理結果在分組間擴散時已按式(6)得到。因此,反向加密實際是從倒數第二個密文像素開始。反向加密時加密序列[Bi]可按正向加密時相同的方法得到,但擾動因子[t0]由[ci,l]代入,[t1]由[(2×ci,l)mod256]代入。經反向加密,分組內最后一個密文的變化將擴散至分組內所有密文。
將所有的密文分組[C′i]按順序排列,并轉換為[m×n]的矩陣,可得到最終的密文圖像。
從上述算法理論分析可知,經過正反兩輪加密,任意一個像素的微小變化都會擴散至整個密文,滿足并行算法擴散要求;另外,每個PE的加密對象都是大小相同的圖像分組,因此保證了各個PE的計算負載平衡;最后,每個PE負責一個分組,不存在臨界區域問題,因此不需要進行臨界區域管理。本文算法能夠滿足圖像并行加密算法的各項要求。
2 實驗結果
實驗測試采用Intel酷睿i5雙核2.4 GHz的PC機模擬并行運行環境,在Windows7操作系統下使用Matlab 7.6編寫測試程序。明文圖像使用[512×512]的Man灰度圖。加密算法密鑰取[k0=100,][k1=0.992,][k2=0.002],[k3=0.422],[k4=0.012]。實驗的目的是檢測算法的執行速度與安全性能。
2.1 執行速度
本文算法需要正、反兩輪加密。因此,為方便比較,將文獻[11]和文獻[12]算法的加密輪次也設定為兩輪。同時,分組數(即PE的個數)設定為16。所有算法都重復運行50次,求得加密算法平均執行時間如表1所示。
表1加密算法執行時間比較
從表1可以看出本文算法的加密速度要明顯優于文獻[11]和文獻[12]算法。主要原因是文獻[11]采用K(Kolmogorov Flow)變換進行分組間的像素重排,需要多次乘法運算,耗時較多;文獻[12]改進了像素重排方式,采用了類似魔方旋轉的操作,減小了計算開銷,因此運行速度得到提高,但分組之間數據讀寫量還是相對較大,除分組第一個元素外,其他所有元素的位置都要重排;而本文算法在進行分組間擴散時,只對分組最后一個元素進行操作,分組間數據讀寫量很少,因此,算法的執行速度得到明顯提高。
2.2 擴散性能
攻擊者可以通過對明文圖像微小的改動來觀察密文圖像的變化,從中找到明、密文之間的某種關聯,從而破譯算法。如果明文微小的改動會導致密文非常大的變化(即算法的擴散能力很強),那么這種攻擊就非常無力。可用像素變化率[NPCR]和像素平均強度變化率[UACI]來衡量算法的擴散性能。設[C1]為原明文加密結果,[C2]為原明文某一像素值加[1]后再加密的結果,則:
[NPCR=(m×n)-1?i,jD(i,j)UACI=(m×n)-1?i,jC1(i,j)-C2(i,j)255]
式中,當[C1(i,j)≠C2(i,j)]時[D(i,j)=1],否則[D(i,j)=0]。將明文圖像最后一個像素值加[1],表2列出了各輪加密后密文的像素變化率[NPCR]和像素平均強度變化率[UACI]。兩輪之后,[NPCR]一直穩定在[0.996],[UACI]穩定在[0.333]以上,說明算法具有良好的擴散性能。第1輪加密時,[NPCR]和[UACI]都近似為[0],原因是最后一個像素的變化不會影響第1輪正向加密時其他像素的加密結果;但經過分組間擴散之后,它的變化會擴散至每個分組的最后一個元素,再經第2輪反向加密擴散至整個密文。
2.3 抗統計攻擊性能分析
對Man圖像進行正、反2輪加密,效果如圖1所示,密文與明文圖像的視覺效果完全不同。可用信息熵來衡量圖像中灰度值的分布情況,其定義為:[H=-ip(vi)?log2p(vi)]。其中,[vi]表示[L]級灰度圖像的第[i]個灰度值,[p(vi)]表示圖像中具有第[i]個灰度值的像素所占的比例。圖像灰度分布越均勻,則信息熵越大,反之信息熵越小。對于[256]級的灰度圖,信息熵最大值為[8]。原Man圖像信息熵為[7.1926]。以上述初始密鑰為起始值,按[0.000001]步長,連續微調密鑰[k3]100次,計算密文圖像信息熵均值為[7.9993],非常接近最大值[8],調整其他密鑰參數可以得到類似的結果。從信息熵分析可知,本文算法的密文圖像灰度分布十分均勻,能有效抵御統計攻擊。
表2明文最后一個像素加1后密文圖像NPCR和UACI結果
圖1 Man圖像加密效果
2.4 相關性分析
圖像中水平、垂直及對角相鄰像素的相關系數[rxy]可按:[rxy=Covx,yDx?Dy]計算得到。其中:
[Dx=N-1?i=1Nxi-Ex2,Covx,y=N-1?i=1Nxi-Exyi-EyEx=N-1?i=1Nxi]
式中[xi],[yi]代表相鄰的像素值;[rxy]越接近于[1],則相鄰像素相關性越高,越接近于[0],相關性越低。在初始密鑰基礎上,按[0.000001]步長連續微調密鑰[k1][100]次,計算密文圖像三個方向相關系數的均值,同時計算原圖像三個方向的相關系數,如表3所示。
表3相鄰像素相關系數
2.5 密鑰空間分析
本文算法使用了兩個混沌映射,共有[k1]~[k4]四個密鑰,若每個密鑰使用[16]位十進制實數表示(包括[1]位整數和[15]位小數),則密鑰空間為[1016×4=1064],若考慮混沌映射迭代舍去數[k0]取[3]位十進制整數,則密鑰空間可達[1067]。假設攻擊者以每秒搜索[1016]([1]萬萬億)個密鑰的速度進行窮舉攻擊,需要[3.1709×1043]年以上才能搜索完所有密鑰。因此,算法的密鑰空間巨大,能有效抵御窮舉攻擊。
2.6 密鑰敏感性分析
加密算法應該對密鑰的變化非常敏感,兩個具有微小差異的密鑰,應該產生完全不同的密文結果。表4列出了微調密鑰[k1]~[k4]后(加上[10-15]),密文之間的[NPCR]與[UACI]。結果表明密鑰的微小變化會使密文圖像截然不同,算法對密鑰的微小變化非常敏感。
表4密鑰敏感性
3 結語
本文給出了一種自適應混沌的并行雙向圖像加密算法,為了提高算法的執行速度,同時兼顧算法的安全性,提出:
(1) 對圖像進行分組并行加密,使用分組的最后一個元素實現分組間的擴散,有效減少分組間的數據讀寫量,提高加密算法的執行速度;
(2) 每個分組進行正反兩輪加密,通過反向加密將最后一個元素的變化擴散至分組內所有元素;
(3) 使用兩個一維混沌映射生成混沌序列,并相互異或得到每個分組的加密序列,使用一維混沌能有效降低計算復雜度,而異或操作能有效改善加密序列的混沌特性;
(4) 生成加密序列時,用分組中的元素對混沌映射的參數及初始值進行擾動,使加密序列自適應于分組內容的變化而變化,能有效地抵御選擇明文攻擊,提高算法安全性。
與文獻[11]和文獻[12]算法比較,本文算法加密速度更快。另外,通過實驗結果還表明算法密鑰空間巨大,密鑰敏感性強,兩輪加密就能有效地降低密文相鄰像素的相關性,且密文分布非常均勻,能有效抵御統計攻擊;而且,算法擴散能力強,擴散效果后,能有效抵御差分攻擊。
參考文獻
[1] 唐宋,徐桂蘭,李清都.基于高維超混沌系統和矩陣張量積的圖像分組加密新算法[J].計算機應用,2012,32(8):2262?2264.
[2] PENG Jun, JIN Shang?zhu, LIAO Xiao?feng. A novel digital image encryption algorithm based on hyperchaos by controlling lorenz system [C]// Proceedings of the Fifth International Conference on Natural Computation, 2009:395?399.
[3] 劉云,鄭永愛.基于混沌系統的彩色圖像加密新方案[J].計算機工程與應用,2011,47(3):90?93.
[4] 盧輝斌,張鵬,國憲鵬,等.一種新的基于雙混沌系統的圖像加密方案[J].計算機工程與應用,2012,48(2):90?92.
[5] 段雪峰,關健,丁勇,等.基于多組混沌序列的彩色數字圖像置亂算法[J].計算機工程,2012,38(9):114?116.
[6]李曉博,周詮.基于復合混沌的遙感影像加密算法[J].計算機工程與設計,2012,33(11):4086?4090.
[7]褚影,王小曼,劉鵬,等.基于時鐘變換的復合混沌圖像加密研究[J].吉林大學學報:信息科學版,2012,30(3):291?296.
[8]文昌辭,王沁,黃付敏,等.基于仿射和復合混沌的圖像自適應加密算法[J].通信學報,2012,33(11):119?127.
[9] LIU Hong?jun, WANG Xing?yuan. Color image encryption based on one?time keys and robust c?haotic maps [J]. Computers and Mathematics with Applications, 2010, 59(10): 3320?3327.
[10] ZHANG Xiao?qiang, ZHU Gui?liang, MA Shi?long. Remote?sensing image encryption in hybrid domains [J]. Optics Communications, 2012, 286(7): 1736?1743.
[11] ZHOU Qing, WONG Kwo?kwo, LIAO Xiao?feng, et al. Parallel image encryption algorithm based on discretized chaotic map [J]. Chaos Soliton & Fractals, 2008, 29(11): 1081?1092.
[12] 劉君,周慶,胡月.一種新的圖像加密并行算法[J].計算機工程,2010,36(11):20?24.
[13] MIRZAEI Omid, YAGHOOBI Mahdi, IRANI Hassan. A new image encryption method: parallel sub?image encryption with hyper chaos [J]. Nonlinear Dynamics, 2012, 67(1): 557?566.
[14] 孫勁光,汪潔,姜文濤,等.改進的分塊算法在矩形圖像加密中的應用[J].計算機應用研究,2013,30(1):282?284.
表4密鑰敏感性
3 結語
本文給出了一種自適應混沌的并行雙向圖像加密算法,為了提高算法的執行速度,同時兼顧算法的安全性,提出:
(1) 對圖像進行分組并行加密,使用分組的最后一個元素實現分組間的擴散,有效減少分組間的數據讀寫量,提高加密算法的執行速度;
(2) 每個分組進行正反兩輪加密,通過反向加密將最后一個元素的變化擴散至分組內所有元素;
(3) 使用兩個一維混沌映射生成混沌序列,并相互異或得到每個分組的加密序列,使用一維混沌能有效降低計算復雜度,而異或操作能有效改善加密序列的混沌特性;
(4) 生成加密序列時,用分組中的元素對混沌映射的參數及初始值進行擾動,使加密序列自適應于分組內容的變化而變化,能有效地抵御選擇明文攻擊,提高算法安全性。
與文獻[11]和文獻[12]算法比較,本文算法加密速度更快。另外,通過實驗結果還表明算法密鑰空間巨大,密鑰敏感性強,兩輪加密就能有效地降低密文相鄰像素的相關性,且密文分布非常均勻,能有效抵御統計攻擊;而且,算法擴散能力強,擴散效果后,能有效抵御差分攻擊。
參考文獻
[1] 唐宋,徐桂蘭,李清都.基于高維超混沌系統和矩陣張量積的圖像分組加密新算法[J].計算機應用,2012,32(8):2262?2264.
[2] PENG Jun, JIN Shang?zhu, LIAO Xiao?feng. A novel digital image encryption algorithm based on hyperchaos by controlling lorenz system [C]// Proceedings of the Fifth International Conference on Natural Computation, 2009:395?399.
[3] 劉云,鄭永愛.基于混沌系統的彩色圖像加密新方案[J].計算機工程與應用,2011,47(3):90?93.
[4] 盧輝斌,張鵬,國憲鵬,等.一種新的基于雙混沌系統的圖像加密方案[J].計算機工程與應用,2012,48(2):90?92.
[5] 段雪峰,關健,丁勇,等.基于多組混沌序列的彩色數字圖像置亂算法[J].計算機工程,2012,38(9):114?116.
[6]李曉博,周詮.基于復合混沌的遙感影像加密算法[J].計算機工程與設計,2012,33(11):4086?4090.
[7]褚影,王小曼,劉鵬,等.基于時鐘變換的復合混沌圖像加密研究[J].吉林大學學報:信息科學版,2012,30(3):291?296.
[8]文昌辭,王沁,黃付敏,等.基于仿射和復合混沌的圖像自適應加密算法[J].通信學報,2012,33(11):119?127.
[9] LIU Hong?jun, WANG Xing?yuan. Color image encryption based on one?time keys and robust c?haotic maps [J]. Computers and Mathematics with Applications, 2010, 59(10): 3320?3327.
[10] ZHANG Xiao?qiang, ZHU Gui?liang, MA Shi?long. Remote?sensing image encryption in hybrid domains [J]. Optics Communications, 2012, 286(7): 1736?1743.
[11] ZHOU Qing, WONG Kwo?kwo, LIAO Xiao?feng, et al. Parallel image encryption algorithm based on discretized chaotic map [J]. Chaos Soliton & Fractals, 2008, 29(11): 1081?1092.
[12] 劉君,周慶,胡月.一種新的圖像加密并行算法[J].計算機工程,2010,36(11):20?24.
[13] MIRZAEI Omid, YAGHOOBI Mahdi, IRANI Hassan. A new image encryption method: parallel sub?image encryption with hyper chaos [J]. Nonlinear Dynamics, 2012, 67(1): 557?566.
[14] 孫勁光,汪潔,姜文濤,等.改進的分塊算法在矩形圖像加密中的應用[J].計算機應用研究,2013,30(1):282?284.
表4密鑰敏感性
3 結語
本文給出了一種自適應混沌的并行雙向圖像加密算法,為了提高算法的執行速度,同時兼顧算法的安全性,提出:
(1) 對圖像進行分組并行加密,使用分組的最后一個元素實現分組間的擴散,有效減少分組間的數據讀寫量,提高加密算法的執行速度;
(2) 每個分組進行正反兩輪加密,通過反向加密將最后一個元素的變化擴散至分組內所有元素;
(3) 使用兩個一維混沌映射生成混沌序列,并相互異或得到每個分組的加密序列,使用一維混沌能有效降低計算復雜度,而異或操作能有效改善加密序列的混沌特性;
(4) 生成加密序列時,用分組中的元素對混沌映射的參數及初始值進行擾動,使加密序列自適應于分組內容的變化而變化,能有效地抵御選擇明文攻擊,提高算法安全性。
與文獻[11]和文獻[12]算法比較,本文算法加密速度更快。另外,通過實驗結果還表明算法密鑰空間巨大,密鑰敏感性強,兩輪加密就能有效地降低密文相鄰像素的相關性,且密文分布非常均勻,能有效抵御統計攻擊;而且,算法擴散能力強,擴散效果后,能有效抵御差分攻擊。
參考文獻
[1] 唐宋,徐桂蘭,李清都.基于高維超混沌系統和矩陣張量積的圖像分組加密新算法[J].計算機應用,2012,32(8):2262?2264.
[2] PENG Jun, JIN Shang?zhu, LIAO Xiao?feng. A novel digital image encryption algorithm based on hyperchaos by controlling lorenz system [C]// Proceedings of the Fifth International Conference on Natural Computation, 2009:395?399.
[3] 劉云,鄭永愛.基于混沌系統的彩色圖像加密新方案[J].計算機工程與應用,2011,47(3):90?93.
[4] 盧輝斌,張鵬,國憲鵬,等.一種新的基于雙混沌系統的圖像加密方案[J].計算機工程與應用,2012,48(2):90?92.
[5] 段雪峰,關健,丁勇,等.基于多組混沌序列的彩色數字圖像置亂算法[J].計算機工程,2012,38(9):114?116.
[6]李曉博,周詮.基于復合混沌的遙感影像加密算法[J].計算機工程與設計,2012,33(11):4086?4090.
[7]褚影,王小曼,劉鵬,等.基于時鐘變換的復合混沌圖像加密研究[J].吉林大學學報:信息科學版,2012,30(3):291?296.
[8]文昌辭,王沁,黃付敏,等.基于仿射和復合混沌的圖像自適應加密算法[J].通信學報,2012,33(11):119?127.
[9] LIU Hong?jun, WANG Xing?yuan. Color image encryption based on one?time keys and robust c?haotic maps [J]. Computers and Mathematics with Applications, 2010, 59(10): 3320?3327.
[10] ZHANG Xiao?qiang, ZHU Gui?liang, MA Shi?long. Remote?sensing image encryption in hybrid domains [J]. Optics Communications, 2012, 286(7): 1736?1743.
[11] ZHOU Qing, WONG Kwo?kwo, LIAO Xiao?feng, et al. Parallel image encryption algorithm based on discretized chaotic map [J]. Chaos Soliton & Fractals, 2008, 29(11): 1081?1092.
[12] 劉君,周慶,胡月.一種新的圖像加密并行算法[J].計算機工程,2010,36(11):20?24.
[13] MIRZAEI Omid, YAGHOOBI Mahdi, IRANI Hassan. A new image encryption method: parallel sub?image encryption with hyper chaos [J]. Nonlinear Dynamics, 2012, 67(1): 557?566.
[14] 孫勁光,汪潔,姜文濤,等.改進的分塊算法在矩形圖像加密中的應用[J].計算機應用研究,2013,30(1):282?284.