柯琦 張福元 李愛泉 廖琪男
摘 要: 為了提高加密系統(tǒng)密鑰安全性,獲得更好的擴散性能,提高算法運行效率,提出一種基于仿射密碼的并行圖像加密算法。利用Lorenz混沌序列對像素位置進行置亂;引入古典密碼學中的仿射密碼進行像素值擴散和像素值混淆;利用多核計算機多個核心并行計算,將圖像分塊后并行加密。實驗結(jié)果表明,仿射加密算法密鑰空間大、安全性強、擴散性和擾亂性效果好、算法運行效率高,且仿射密碼加密比異或加密擴散效果更好。
關(guān)鍵詞: 仿射密碼; 圖像加密; 像素擴散; 像素混淆; 并行計算; 多核計算機
中圖分類號: TN911.73?34; TP309 文獻標識碼: A 文章編號: 1004?373X(2018)22?0178?04
Abstract: A parallel image encryption algorithm based on the affine cipher is proposed to improve the key security of the encryption system, obtain better diffusion performance, and improve the running efficiency of the algorithm. The Lorenz chaos sequence is used to scramble pixel positions. The affine cipher in classical cryptograph is introduced to diffuse and confuse pixel values. The multi?core parallel computing of the multi?core computer is adopted to divide images into blocks for parallel encryption. The experimental results show that the affine encryption algorithm has large key space, strong security, good diffusion and disturbance performances, and high operation efficiency, and the affine cipher encryption has a better diffusion effect than the XOR encryption.
Keywords: affine cipher; image encryption; pixel diffusion; pixel confusion; parallel computing; multi?core computer
數(shù)字圖像加密越來越受重視,研究不斷更新。圖像加密方法利用混沌系統(tǒng)[1]生產(chǎn)隨機性好的序列為像素位置置換獲得很好的置亂效果。文獻[2]提出基于數(shù)據(jù)加密標準算法和Logistic混沌映射圖像加密算法。文獻[3]提出高維混沌映射的圖像加密算法。很多圖像加密算法在像素擴散時采用異或操作[4?7],但異或加密的擴散效果并不好,抵御明文攻擊性能差。文獻[8?9]提出相對復雜加密性好的算法,其計算復雜且效率低。大數(shù)據(jù)時代,若加密圖像數(shù)量大,算法運行效率至關(guān)重要?,F(xiàn)今普遍為2核及以上的多核計算機,但圖像加解密算法很少利用多核計算機設(shè)計并行程序提高運行效率。因此本文利用Lorenz混沌序列,引入仿射密碼,采用多核計算機多個處理核心并行執(zhí)行,設(shè)計基于仿射密碼高效的并行圖像加密算法。
1.1 Lorenz混沌系統(tǒng)
本文仿射加密算法采用像素位置置換和像素值變換加密相結(jié)合,利用多核計算機多個核心并行設(shè)計算法。首先Lorenz混沌系統(tǒng)產(chǎn)生的偽隨機序列為加密過程提供所需參數(shù)。其次利用仿射密碼對像素值擴散和混淆加密。設(shè)明文圖像像素為:m×n,像素位置為(loci, locj),loci∈[1,m],locj∈[1,n]。式(1)產(chǎn)生長度為m×n的三組混沌序列X,Y,Z,記為:{(Xi,Yi,Zi)[i=1,2,]3,…,m×n}。設(shè)多核計算機有p個處理器核心,記Pi,i∈{0,2,3,…,p-1}。
2.1 像素位置并行置換
任選X,Y,Z的一組,記為Lrz_ perm,用以改變明文像素原位置(loci,locj),使之置換到新位置(newloci, newlocj)上,newloci∈[1,m],newlocj∈[1,n]。
并行置換步驟:
1) 任務劃分
采用均勻劃分實現(xiàn)多個核心負載均衡,原圖像劃分成[m×np]塊,每塊大小為blocki。Lrz_ perm等分給p個處理核心,記Lrz_ permi。
2) 每個處理核心并行計算
Pi排序Lrz_ permi,得到有序的Lpsortedi;
Pi獲取新序列的索引位置idxi;
依據(jù)索引位置把像素從原位置移到新位置,獲得置亂后的密文圖像塊。
2.2 仿射密碼像素值并行加密
對置亂后的圖像進行像素值并行擴散和混淆。更改式(2)用來加密256級灰度圖像。
2.2.1 并行擴散步驟
1) 求滿足gcd(a,256)=1的參數(shù)a,記A={[ajj=1],2,…,128}。
2) 任選X,Y,Z中一組,均分給p個處理核心,記Lrz_Bi。
3) 把密文數(shù)組均分給p個處理核心,存入數(shù)組presi中。
4) 每個處理核心并行計算。
Pi對Lrz_Bi取整求模得到新序列Bi,Bi={[bjj=1],2,…,[m×np]}。從A中任取aj作為仿射函數(shù)系數(shù),從Bi中選取bj為初始密文,擴散加密。
2.2.2 并行混淆步驟
1) 任選X,Y,Z一組均分給p個處理核心,記Lrz_ confusi。
2) 每個處理核心并行計算。Pi對Lrz_ confusi取整求模得到新序列Si。在A中選任一al與Si組成仿射函數(shù)的參數(shù)a,b,混淆加密。
解密是仿射加密的逆過程。Pi并行對像素位置置換解密,用對應序列Lrz_ permi逆向歸位,使用對應密鑰參數(shù)a,b,利用式(5)可解密出明文圖像。
3.1 實驗結(jié)果
實驗環(huán)境:4核計算機、Matlab 2012b、VS2010。參數(shù)選?。篖orenz系統(tǒng)初始值x0=–1.25,y0=0,z0=1.13,積分步長h=0.001,迭代次數(shù)106。測試圖像為Lena.bmp,像素為512×512。圖1是原圖像與本文加密算法加密后圖像對比圖,可看出本文算法加密效果理想,徹底擾亂原圖像。
3.2 算法性能分析
1) 灰度直方圖分析
圖2是Lena加密前后的像素灰度直方圖對比。從圖中看出,加密后圖像直方圖的灰度值分布均勻,密文像素統(tǒng)計值趨于一致,說明本文加密算法能有效抵抗像素值統(tǒng)計攻擊。
2) 運行效率分析
本文算法進行了并行設(shè)計,其并行步驟沒有涉及數(shù)據(jù)量遷移、數(shù)據(jù)通信及訪存沖突等問題,且負載均衡。圖3、圖4是Lena圖像在串行、多個核心并行執(zhí)行的算法運行時間。
圖3 是本文加密算法在串行和并行2核、3核、4核的運行時間對比圖。由圖可知,串行運行時間最高。當處理核心數(shù)從2核增到4核時,時間隨著核數(shù)增加而降低,說明多個處理核心并行加密,算法運行效率顯著提高。圖4是本文加密算法加密多幅圖像,數(shù)據(jù)量為0.25 MB,
1 MB,2 MB,4 MB,8 MB時串行和并行執(zhí)行的運行時間。從圖中看出,隨著圖像的數(shù)據(jù)量增大,運行時間增加。相同數(shù)據(jù)量時隨著處理核心數(shù)增加而時間減少。因此,當數(shù)據(jù)量增大時并行加密能有效提高算法效率。
3) 密鑰空間分析
4) 擴散性能比較。采用仿射密碼加密算法和異或加密算法對圖像Lena進行像素擴散。圖5a)是仿射加密進行擴散,像素分布均勻,擴散性較好;圖5b)用異或加密擴散,出現(xiàn)了原圖像輪廓,擴散效果差。結(jié)果顯示仿射加密的擴散效果好于異或加密。
本文提出一種基于仿射密碼的并行圖像加密算法。使用多核并行思想設(shè)計算法,對圖像進行分塊,多個處理核心并行加密,實現(xiàn)負載均衡,提升算法運行效率。利用Lorenz混沌系統(tǒng)的非周期不收斂特性生產(chǎn)隨機性較好的序列進行像素位置置換,獲得好的置亂效果;采用仿射密碼對圖像加密,仿射密碼的參數(shù)很好地擾亂像素初始值,縮小像素間的差距,有效削弱統(tǒng)計性特征,擾亂效果好;使用仿射密碼進行像素擴散,明文圖像統(tǒng)計結(jié)構(gòu)完全擴散到密文中,擴散效果遠遠好于異或加密的擴散效果。本文加密算法密鑰空間大,有很好的抗防御攻擊能力。
參考文獻
[1] HUANG X, YE G. An efficient self?adaptive model for chaotic image encryption algorithm [J]. Communications in nonlinear science & numerical simulation, 2014, 19(12): 4094?4104.
[2] 湯任君,段競哲,鄧洪敏.Logistic混沌序列和DES算法的圖像加密方法[J].計算機應用,2017,37(z1):89?92.
TANG Renjun, DUAN Jingzhe, DENG Hongmin. Image encryption algorithm based on logistic chaotic sequence and DES [J]. Journal of computer applications, 2017, 37(S1): 89?92.
[3] SUI L, LIU B, WANG Q, et al. Double?image encryption based on Yang?Gu mixture amplitude?phase retrieval algorithm and high dimension chaotic system in gyrator domain [J]. Optics communications, 2015, 354: 184?196.
[4] SHARMA P K, AHMAD M, KHAN P M. Cryptanalysis of image encryption algorithm based on pixel shuffling and chaotic S?box transformation [M]. Berlin: Springer Berlin Heidelberg, 2014: 173?181.
[5] NARAYANASAMY K, ARUMUGAM P. i?TSS: an image encryption algorithm based on transposition, shuffling and substitution using randomly generated bitmap image [C]// Proceedings of International Conference on Distributed Computing and Internet Technology. Berlin: Springer International Publishing, 2016: 148?156.
[6] FOUDA J S A E, EFFA J Y, SABAT S L, et al. A fast chaotic block cipher for image encryption [J]. Communications in nonlinear science & numerical simulation, 2014, 19(3): 578?588.
[7] 王永,馬鍵濱,劉兆龍,等.基于時空混沌系統(tǒng)的彩色圖像加密算法[J].計算機應用研究,2017,34(8):2464?2468.
WANG Yong, MA Jianbin, LIU Zhaolong, et al. Color image encryption algorithm based on spatiotemporal chaos system [J]. Application research of computers, 2017, 34(8): 2464?2468.
[8] 柴宏玉,臧鴻雁.一種基于廣義混沌同步系統(tǒng)的圖像加密方案[J].計算機科學,2016,43(8):100?104.
CHAI Hongyu, ZANG Hongyan. Image encryption scheme based on generalized chaotic synchronization systems [J]. Computer science, 2016, 43(8): 100?104.
[9] 宋金林,張紹武.整合ChaCha20哈希運算的分塊擴散自適應圖像加密算法[J].中國圖象圖形學報,2016,21(6):698?710.
SONG Jinlin, ZHANG Shaowu. Adaptive image encryption algorithm of blocking diffusion based on the ChaCha20 hash operation [J]. Journal of image and graphics, 2016, 21(6): 698?710.
[10] 廖琪男,盧守東,孫憲波.結(jié)合超混沌序列和移位密碼的數(shù)字圖像加密算法[J].小型微型計算機系統(tǒng),2015,36(2):332?337.
LIAO Qinan, LU Shoudong, SUN Xianbo. Digital image encryption algorithm by combining hyper chaotic sequences and shift cipher [J]. Journal of Chinese computer systems, 2015, 36(2): 332?337.