舒彝軍 陳 波 何 剛 楊 程
(西南科技大學(xué)計算機科學(xué)與技術(shù)學(xué)院 四川綿陽 621000)
基于多線程并行的圖像多維混沌加密改進(jìn)算法
舒彝軍 陳 波 何 剛 楊 程
(西南科技大學(xué)計算機科學(xué)與技術(shù)學(xué)院 四川綿陽 621000)
為保證數(shù)字圖像在傳輸過程中的安全性以及實時性,基于目前得到廣為使用及研究的基于二維廣義 Arnold 映射和三維 Liu 混沌系統(tǒng)的多維圖像加密算法,提出了一種多線程并行的圖像加密算法。通過對任意尺寸的圖像進(jìn)行邊沿填充,彌補了原算法只能針對方陣圖像的問題;通過對圖像進(jìn)行分塊,并通過多線程技術(shù)對每一個分塊進(jìn)行加密,大大提高了實時性;提出了對原算法代碼的進(jìn)一步優(yōu)化,提高了圖像加解密速度;給出了不同的分塊方式以及算法改進(jìn)對處理速度的影響。
多維混沌系統(tǒng) 多線程并行 圖像加密算法
隨著多媒體技術(shù)和網(wǎng)絡(luò)的發(fā)展,信息安全問題得到了越來越多的關(guān)注與研究,圖像信息作為一種重要的信息載體,約占信息總量的70%[1],是人們進(jìn)行信息交換的重要手段。為了保護(hù)圖像信息安全而對圖像信息進(jìn)行加密也得到了越來越多的重視和關(guān)注。圖像信息的加密廣泛應(yīng)用于電子商務(wù)、遠(yuǎn)程醫(yī)療、場景監(jiān)控與遠(yuǎn)程教育等實時傳輸系統(tǒng)中[2],如何保證圖像在傳輸系統(tǒng)中的信息安全性的同時保證傳輸系統(tǒng)對圖像傳輸?shù)膶崟r性要求,已經(jīng)成為現(xiàn)在迫切需要解決的問題。
加密技術(shù)作為保護(hù)圖像信息安全最有效的手段,已經(jīng)成為一項非常實用又急需快速發(fā)展的關(guān)鍵技術(shù)。圖像加密技術(shù)主要是對數(shù)字圖像進(jìn)行位置置亂或灰度變換, 隱藏圖像中包含的有用信息, 為數(shù)字圖像提供基于內(nèi)容的保護(hù)技術(shù), 實現(xiàn)對圖像信息的隱藏保護(hù)。圖像加密方法主要有以下3種:(1)基于圖像像素點坐標(biāo)的空間域和頻域變換加密;(2)基于圖像灰度域變換的加密;(3)基于圖像空間域和色度域變換的加密[3]。目前已有的圖像置亂方法有Arnold變換、幻方變換、Hilbert曲線、Gray碼法等,這些置亂變換主要適用于方陣圖像,但從密碼學(xué)角度來說,因為置換算子內(nèi)在的周期性且其加密算法和密鑰沒有有效分離,置換并沒有多大的密碼作用。
隨著混沌動力學(xué)的發(fā)展,混沌系統(tǒng)因能滿足密碼學(xué)對加密的擴散和混淆的要求,在圖像加密算法中得到越來越多的應(yīng)用?;煦缡欠蔷€性動力系統(tǒng)中出現(xiàn)的一種確定性的貌似無規(guī)則的運動。其具有存在內(nèi)在隨機性、確定性,對初始條件和控制參數(shù)非常敏感等特點,特別適用于數(shù)字圖像加密。因此,初始狀態(tài)和少量參數(shù)的變化就可以產(chǎn)生滿足密碼學(xué)基本特征的混沌密碼序列。通過將混沌理論與加密技術(shù)相結(jié)合,可以形成良好的圖像加密系統(tǒng)。
本文利用文獻(xiàn)[7]提出的位置置亂和灰度值加密為基本算法(本文稱為“原算法”)。選用灰度級別256位的lena圖(bmp格式)作為實驗圖像,操作系統(tǒng)采用Windows 7旗艦版,CPU采用Intel Core i3 M 350@2.27GHz雙核處理器,內(nèi)存大小2 G內(nèi)存,顯卡采用Intel HD Graphics集成顯卡,在MicrosoftVisual Studio 10.0 IDE環(huán)境下實現(xiàn)原算法的改進(jìn)與測試,通過運用圖像分塊并行及結(jié)合多線程技術(shù)對圖像加密、解密進(jìn)行加速,算法能滿足對不同尺寸和圖像傳輸系統(tǒng)的實時性要求。
1.1 多維混沌加密算法
1.1.1 二維廣義 Arnold映射和三維Liu混沌系統(tǒng)
文獻(xiàn)[7]提出的加密算法主要分為兩步,第一步是利用二維廣義Arnold映射對圖像像素位置進(jìn)行置亂,第二步是利用三維Liu混沌系統(tǒng)對圖像像素值加密。
(1)二維廣義Arnold映射
利用廣義Arnold映射對圖像像素進(jìn)行位置置亂,假設(shè)圖像的大小為N×N,所對應(yīng)的坐標(biāo)位置為W={(x,y)|x,y=0,1,…,N-1},而二維廣義Arnold映射的定義為:
(1)
其中p,q和迭代數(shù)n(加密算法循環(huán)次數(shù))作為密鑰進(jìn)行控制,當(dāng)進(jìn)行足夠多輪的迭代后,圖像將具有很好的置亂效果。
(2)三維Liu混沌系統(tǒng)
利用三維Liu混沌系統(tǒng)進(jìn)行圖像像素值的替代。典型的三維Liu混沌系統(tǒng)可描述為
(2)
1.1.2 多維混沌加密算法加密流程
(1) 將待置亂圖像按照光柵掃描順序轉(zhuǎn)化為一維序列S={s(i),i=1,2…N×N},N×N為圖像大小。
(2)根據(jù)二維廣義Arnold映射的加密密鑰對圖像進(jìn)行位置置亂[7]。
2015年三大灣區(qū)的GDP分別達(dá)到1.4萬億美元、0.8萬億美元和1.8萬億美元。其產(chǎn)業(yè)呈現(xiàn)高端化特征,服務(wù)業(yè)占比均達(dá)80%以上,世界500強企業(yè)數(shù)量分別為22家、28和60家。
(3)根據(jù)三維Liu混沌系統(tǒng)的加密密鑰對圖像進(jìn)行灰度值變化[7]。
(4)將加密后的像素序列轉(zhuǎn)化為二維矩陣,得到最后的加密圖像。
如上所示,對待加密的圖像先進(jìn)行位置置亂,然后進(jìn)行像素值的灰度值變換。
1.2 對原算法的分析和改進(jìn)
1.2.1 適應(yīng)非方陣圖像的分析和改進(jìn)
通過二維廣義Arnold映射的定義發(fā)現(xiàn),在進(jìn)行位置置亂前,需要進(jìn)行取模運算,所以只能作用于方陣(長寬相同)圖像。然而,實際應(yīng)用中的數(shù)字圖像很多是非方陣圖像??梢栽趯D像處理之前,對任意尺寸的圖像進(jìn)行邊沿填充,使之成為符合Arnold映射要求的方陣圖像。
圖1、圖2示意水平填充和垂直填充。通過填充后原圖像變成方陣圖像,就可以運用二維廣義Arnold映射對圖像進(jìn)行位置置亂。
圖1 原圖尺寸100×67,水平填充為100×100Fig.1 Origial figure Size 100×67, Horizontal filling 100×100
圖2 原圖尺寸67×100,垂直填充為100×100Fig.2 Origial figure Size 67×100, Horizontal filling 100×100
1.2.2 對原算法預(yù)處理的分析
(1)使用二維廣義Arnold映射進(jìn)行圖像像素位置置亂時,在未對整個圖像完成位置置亂前,需要反復(fù)運用公式(1)進(jìn)行一次位置置亂,但是對同一個圖片來說,密鑰和圖像尺寸是不變的,所以在密鑰和圖像尺寸不變的前提下,每個像素位置的置亂序列也是一定的。在實際運用中通過對代碼的優(yōu)化可以提前得到像素置亂位置,且在多次加密時像素位置置亂位置可以重復(fù)利用,能減少運算量,提高圖像加密的效率。經(jīng)測試,圖像置亂效果和原算法置亂效果是一致的。
(2)在對圖像像素位置置亂完后,需要使用三維Liu混沌系統(tǒng)產(chǎn)生的偽隨機序列來對圖像進(jìn)行灰度值變換。在混沌系統(tǒng)初始值和圖像尺寸不變的情況下,圖像灰度值變換對應(yīng)關(guān)系也是確定的。同時,在實際的圖像傳輸系統(tǒng)中,對于某一圖像其初始值和圖像尺寸都是不變的,因而可以提前獲得圖像像素的對應(yīng)變化值,這一關(guān)系可以多次利用。
(3)為了提高算法處理速度,達(dá)到圖像在實時傳輸系統(tǒng)中的實時性要求,對圖像進(jìn)行分塊,并運用多線程并行處理的方式,對每一個分塊圖像進(jìn)行加密,以提高圖像處理的速度。
1.2.3 多線程的運用分析
通過對原算法的分析,在每次進(jìn)行位置置亂和像素灰度值變換前,需要計算得到相應(yīng)的位置置亂值和灰度值變換值相對值。對于一幅數(shù)字圖像來說這樣的重復(fù)計算量大,需要花費較多的處理時間,并且這些計算都和圖像數(shù)據(jù)規(guī)模(分辨率、灰度級等)成正比。Windows系統(tǒng)是一個多任務(wù)、多線程操作系統(tǒng),利用多線程技術(shù)可以編寫多個任務(wù)并行的程序,并且CPU的運行速度遠(yuǎn)遠(yuǎn)大于I/O讀寫速度。BMP格式的圖像是由文件頭和位圖數(shù)據(jù)組成,可以把位圖數(shù)據(jù)進(jìn)行分塊,分成多個部分,并對每一個部分?jǐn)?shù)據(jù)采用一個獨立的線程進(jìn)行加密、解密,這樣對圖像進(jìn)行處理的時間就會減少,從而滿足圖像的實時性要求。在充分利用Windows系統(tǒng)CPU運算速度的同時也減少了每個處理單元對應(yīng)的圖像數(shù)據(jù)規(guī)模,更進(jìn)一步減少了圖像加密、解密時間,也充分運用Windows系統(tǒng)的多任務(wù)、多線程的特點,大大提高圖像加密、解密的速度。圖3所示為把一個圖像分割成4個小的小方陣圖像的示意圖。
圖3 圖像分塊Fig.3 Image blocks
1.2.4 本文算法的加密、解密流程
本文算法的加密、解密流程如圖4、圖5所示,預(yù)處理流程如圖6所示。通過流程圖可以知道,無論加密或者解密都需要對圖像進(jìn)行預(yù)處理。預(yù)處理主要是:(1)通過計算二維廣義Arnold映射,得到像素位置置亂的最終值,并且在圖像大小和Arnold映射參數(shù)固定的情況下,原坐標(biāo)像素到新坐標(biāo)的映射矩陣是固定不變的,這個矩陣也可以重復(fù)利用。(2)在三維 Liu混沌系統(tǒng)初始值不變的情況可以提前確定原像素值到新像素值的變換關(guān)系,通過預(yù)處理生成這一變換關(guān)系矩陣,并在加解密過程中直接使用變換關(guān)系矩陣,可以大大提高處理速度。
在圖4的加密流程中,我們先進(jìn)行預(yù)處理,獲得位置置亂的最終相對位置和像素灰度值變化量,然后對圖像進(jìn)行填充和分塊,最后通過預(yù)處理得到的位置置亂相對位置和灰度值變化量對圖像進(jìn)行加密。
在圖5的解密流程中,我們先進(jìn)行預(yù)處理,獲得位置置亂的最終相對位置和像素灰度值變化量,然后對分塊圖像進(jìn)行解密,最后將分塊圖像進(jìn)行組合成原圖像。
圖4 現(xiàn)算法加密流程Fig.4 Current algorithm’s encryption process
圖5 現(xiàn)算法解密流程Fig.5 Current algorithm’s decryption process
圖6 預(yù)處理流程圖Fig.6 Pretreatment Process
綜上所述,論文利用圖像的預(yù)處理結(jié)果可以多次重復(fù)利用這一特性,通過圖像填充的方法來滿足任意尺寸圖像的加解密需求,利用圖像分塊及多線程技術(shù)使加解密階段的處理速度大大提高。
2.1 現(xiàn)算法加密、解密實例示意圖
如圖4所示,在加密過程中,除了進(jìn)行預(yù)處理之外,需要對非方陣圖像進(jìn)行邊沿填充,并把處理后的圖像進(jìn)行分塊,圖7所示分為了4塊。最后對分塊的圖像進(jìn)行多線程加密。如圖8所示,對分塊的加密圖像進(jìn)行多線程分塊解密。再對解密后的分塊圖像進(jìn)行重組為一副圖像,并根據(jù)是否為填充,進(jìn)行裁剪。
圖7 圖像加密實例示意圖Fig.7 Sketch map of image encryption
圖8 圖像解密實例示意圖Fig.8 Sketch map of image decryption
2.2 現(xiàn)算法與原算法加密、解密時間對比
在表1和表2中,未分塊是原算法的時間,并且沒有對代碼進(jìn)行優(yōu)化,分塊表示對代碼進(jìn)行了優(yōu)化并且還進(jìn)行了相應(yīng)數(shù)量的分塊。通過表中的加密、解密時間對比發(fā)現(xiàn),對代碼進(jìn)行優(yōu)化且圖像進(jìn)行分塊,并運用多線程并行的方式可以提高運行速度。當(dāng)把圖像分成4塊時,加密、解密速度可以提高10倍左右,處理幀率能滿足實時的傳輸系統(tǒng)的要求。進(jìn)一步計算表明,對圖像進(jìn)行了16分塊、64分塊的時候,可以更進(jìn)一步提高速度。在分塊64時可以提高速度200倍左右,能運用到現(xiàn)在的實時傳輸系統(tǒng)中。如果繼續(xù)增加分塊數(shù)量,會存在由于多線程調(diào)度負(fù)擔(dān)增加、數(shù)據(jù)同步等原因造成延時等問題。研究表明,在分塊為64時,加密、解密時間隨著分辨率的變化不是很大,加密、解密時間均在0.01 s左右,在圖像尺寸為1280×1280時加密、解密幀率能達(dá)到32幀/秒,能滿足實時傳輸系統(tǒng)的要求。
表1 加密時間對比(單位:s)Table 1 Comparison of encryption time(Unit:s)
表2 解密時間對比(單位:s)Table 2 Comparison of decryption time(Unit:s)
表3 加密幀率對比(單位:f·s-1)Table 3 Comparison of encryption FPS(Unit:f·s-1)
表4 解密幀率對比(單位:f·s-1)Table 4 Comparison of decryption FPS(Unit:f·s-1)
本文改進(jìn)了原有的廣義Arnold映射對圖像進(jìn)行置亂并利用三維Liu混沌系統(tǒng)對圖像像素值進(jìn)行加解密過程中只能處理長寬一致圖像的問題,提出了把圖像分割成大小相同的多個小圖像并運用多線程技術(shù)對小圖像進(jìn)行加密、解密,使得算法處理速度達(dá)到實時傳輸系統(tǒng)的要求。實驗表明通過分塊圖像并運用多線程并發(fā)可以極大提高加密、解密速度。通過分塊4、分塊16、分塊64的對比發(fā)現(xiàn),分塊64圖像尺寸為1280×1280時加密、解密能達(dá)到32幀/秒,滿足實時傳輸要求。
[1] 烏旭, 陳爾東, 胡家升. 一種基于混沌的圖像加密改進(jìn)方法[J]. 大連理工大學(xué)學(xué)報, 2004,44(5):754-757.
[2] 文昌辭, 王沁, 苗曉寧,等. 數(shù)字圖像加密綜述[J].計算機科學(xué),2012, 39(12):6-9.
[3] 邵利平, 蒙清照, 李春枚,等. 圖像置亂方法綜述[J]. 信息網(wǎng)絡(luò)安全, 2009(4):22-26.
[4] 盛蘇英, 吳新華. 一種混沌圖像加密算法的研究與改進(jìn)[J]. 微電子學(xué)與計算機, 2010, 27(10):61-64.
[5] 鄭凡, 田小建, 范文華,等. 基于Henon映射的數(shù)字圖像加密[J].北京郵電大學(xué)學(xué)報, 2008, 31(1):66-70.
[6] 王靜, 蔣國平. 一種超混沌圖像加密算法的安全性分析及其改進(jìn)[J].物理學(xué)報, 2011, 60(6):83-93.
[7] 朱從旭, 李力, 陳志剛. 基于多維混沌系統(tǒng)組合的圖像加密新算法[J].計算機工程, 2007, 33(2):142-144.
[8] 許冰, 孫永維, 李洋,等. 基于高維混沌系統(tǒng)的圖像加密改進(jìn)算法[J]. 吉林大學(xué)學(xué)報(信息科學(xué)版),2012, 30(1):12-17.
[9] 朱之芹, 楊林安, 郭宇. 多線程在數(shù)字圖像實時接收處理中的應(yīng)用[J]. 電視技術(shù), 2001(7):20-21.
[10] 楊凌云. 基于多核技術(shù)的并行圖像檢索系統(tǒng)的研究[D]. 北京:北京化工大學(xué), 2009.
[11] 趙亮, 廖曉峰, 向濤,等. 對高維混沌系統(tǒng)的圖像加密算法安全性和效率的改進(jìn)[J]. 計算機應(yīng)用, 2009, 29(7):1775-1778.
[12] 黃峰, 馮勇. 二維混沌映射圖像加密安全性分析及改進(jìn)算法[J]. 哈爾濱工業(yè)大學(xué)學(xué)報, 2007, 39(9):1411-1414.
[13] 孫勁光, 汪潔, 姜文濤,等. 改進(jìn)的分塊算法在矩形圖像加密中的應(yīng)用[J].計算機應(yīng)用研究,2013, 30(1):282-284.
[14] 張愛華, 江中勤. 基于Logistic映射的混沌圖像加密算法的改進(jìn)[J].南京郵電大學(xué)學(xué)報(自然科學(xué)版), 2009, 29(4):69-73.
[15] 黃晗文, 韓鳳英, 楊幸. 基于改進(jìn)的Liu混沌系統(tǒng)序列的圖像加密算法[J]. 計算機工程與應(yīng)用,2009, 45(35):188-191.
[16] 馬在光, 丘水生. 基于廣義貓映射的一種圖像加密系統(tǒng)[J]. 通信學(xué)報,2003, 24(2):51-57.
[17] 張雪鋒, 范九倫. 一種改進(jìn)的基于混沌系統(tǒng)的數(shù)字圖像加密算法[J]. 計算機應(yīng)用研究, 2007, 24(4):184-186.
[18] 張燕, 黃賢武, 劉家勝. 一種基于改進(jìn)的混沌貓映射的圖像加密算法[J]. 計算機工程, 2007, 33(10):166-168.
[19] 張瀚, 王秀峰, 李朝暉,等. 一種基于混沌系統(tǒng)及Henon映射的快速圖像加密算法[J]. 計算機研究與發(fā)展, 2005, 42(12):2137-2142.
[20] 樂鴻輝, 李濤, 石磊. 應(yīng)用Henon超混沌系統(tǒng)改進(jìn)的圖像加密[J]. 計算機應(yīng)用, 2011, 31(7):1909-1911.
[21] 張云鵬, 左飛, 翟正軍. 基于混沌的數(shù)字圖像加密綜述[J]. 計算機工程與設(shè)計, 2011, 32(2):463-466.
[22] 盧輝斌, 孫艷. 基于新的超混沌系統(tǒng)的圖像加密方案[J].計算機科學(xué), 2011, 38(6):149-152.
Improved Image Multidimensional Chaos Encryption Algorithm Based on Multithreaded Parallel Technology
SHU Yijun1, CHEN Bo1, HE Gang1, YANG Cheng1
(SchoolofComputerScienceandTechnology,SouthwestUniversityofScienceandTechnology,Mianyang621000,Sichuan,China)
During the process of digital image transmission, the security and real-time issues have been attracting attention from researchers all over the world. Based on the analysis result of multidimensional image chaos encryption algorithm using two-dimensional generalized Arnold mapping and three-dimensional Liu chaotic system, an improved algorithm of image encryption using multithreaded parallel is proposed. By filling the edges of image of random size and transforming it into a square size image, the algorithm proposed in this paper could overcome the shortcomings of the original algorithm. The real-time performance was greatly improved via the technology of image block and the multi-threading encryption technology for each block. Moreover, code optimizations based on the original algorithm were proposed and higher image encryption speed was achieved. The influence of the block method and the algorithm improvement on the processing speed was discussed as well.
Multidimensional Chaos System; Multithreaded parallel technology; Image encryption algorithm
2016-09-28
西南科技大學(xué)2016第一批博士研究基金(16zx7108)。
舒彝軍(1986—),男,碩士研究生, 研究方向為醫(yī)學(xué)圖像處理,E-mail: sujony@163.com
TP391
A
1671-8755(2016)04-0078-06