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