基于仿射密码的并行图像加密算法
2018-11-13柯琦张福元李爱泉廖琪男
柯琦 张福元 李爱泉 廖琪男
摘 要: 为了提高加密系统密钥安全性,获得更好的扩散性能,提高算法运行效率,提出一种基于仿射密码的并行图像加密算法。利用Lorenz混沌序列对像素位置进行置乱;引入古典密码学中的仿射密码进行像素值扩散和像素值混淆;利用多核计算机多个核心并行计算,将图像分块后并行加密。实验结果表明,仿射加密算法密钥空间大、安全性强、扩散性和扰乱性效果好、算法运行效率高,且仿射密码加密比异或加密扩散效果更好。
关键词: 仿射密码; 图像加密; 像素扩散; 像素混淆; 并行计算; 多核计算机
中图分类号: 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
0 引 言
数字图像加密越来越受重视,研究不断更新。图像加密方法利用混沌系统[1]生产随机性好的序列为像素位置置换获得很好的置乱效果。文献[2]提出基于数据加密标准算法和Logistic混沌映射图像加密算法。文献[3]提出高维混沌映射的图像加密算法。很多图像加密算法在像素扩散时采用异或操作[4?7],但异或加密的扩散效果并不好,抵御明文攻击性能差。文献[8?9]提出相对复杂加密性好的算法,其计算复杂且效率低。大数据时代,若加密图像数量大,算法运行效率至关重要。现今普遍为2核及以上的多核计算机,但图像加解密算法很少利用多核计算机设计并行程序提高运行效率。因此本文利用Lorenz混沌序列,引入仿射密码,采用多核计算机多个处理核心并行执行,设计基于仿射密码高效的并行图像加密算法。
1 相关理论
1.1 Lorenz混沌系统
2 本文并行加密算法
本文仿射加密算法采用像素位置置换和像素值变换加密相结合,利用多核计算机多个核心并行设计算法。首先Lorenz混沌系统产生的伪随机序列为加密过程提供所需参数。其次利用仿射密码对像素值扩散和混淆加密。设明文图像像素为:m×n,像素位置为(loci, locj),loci∈[1,m],locj∈[1,n]。式(1)产生长度为m×n的三组混沌序列X,Y,Z,记为:{(Xi,Yi,Zi)[i=1,2,]3,…,m×n}。设多核计算机有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) 任务划分
采用均匀划分实现多个核心负载均衡,原图像划分成[m×np]块,每块大小为blocki。Lrz_ perm等分给p个处理核心,记Lrz_ permi。
2) 每个处理核心并行计算
Pi排序Lrz_ permi,得到有序的Lpsortedi;
Pi获取新序列的索引位置idxi;
依据索引位置把像素从原位置移到新位置,获得置乱后的密文图像块。
2.2 仿射密码像素值并行加密
对置乱后的图像进行像素值并行扩散和混淆。更改式(2)用来加密256级灰度图像。
2.2.1 并行扩散步骤
1) 求满足gcd(a,256)=1的参数a,记A={[ajj=1],2,…,128}。
2) 任选X,Y,Z中一组,均分给p个处理核心,记Lrz_Bi。
3) 把密文数组均分给p个处理核心,存入数组presi中。
4) 每个处理核心并行计算。
Pi对Lrz_Bi取整求模得到新序列Bi,Bi={[bjj=1],2,…,[m×np]}。从A中任取aj作为仿射函数系数,从Bi中选取bj为初始密文,扩散加密。
2.2.2 并行混淆步骤
1) 任选X,Y,Z一组均分给p个处理核心,记Lrz_ confusi。
2) 每个处理核心并行计算。Pi对Lrz_ confusi取整求模得到新序列Si。在A中选任一al与Si组成仿射函数的参数a,b,混淆加密。
解密是仿射加密的逆過程。Pi并行对像素位置置换解密,用对应序列Lrz_ permi逆向归位,使用对应密钥参数a,b,利用式(5)可解密出明文图像。
3 仿真实验结果及分析
3.1 实验结果
实验环境:4核计算机、Matlab 2012b、VS2010。参数选取:Lorenz系统初始值x0=–1.25,y0=0,z0=1.13,积分步长h=0.001,迭代次数106。测试图像为Lena.bmp,像素为512×512。图1是原图像与本文加密算法加密后图像对比图,可看出本文算法加密效果理想,彻底扰乱原图像。
3.2 算法性能分析
1) 灰度直方图分析
图2是Lena加密前后的像素灰度直方图对比。从图中看出,加密后图像直方图的灰度值分布均匀,密文像素统计值趋于一致,说明本文加密算法能有效抵抗像素值统计攻击。
2) 运行效率分析
本文算法进行了并行设计,其并行步骤没有涉及数据量迁移、数据通信及访存冲突等问题,且负载均衡。图3、图4是Lena图像在串行、多个核心并行执行的算法运行时间。
图3 是本文加密算法在串行和并行2核、3核、4核的运行时间对比图。由图可知,串行运行时间最高。当处理核心数从2核增到4核时,时间随着核数增加而降低,说明多个处理核心并行加密,算法运行效率显著提高。图4是本文加密算法加密多幅图像,数据量为0.25 MB,
1 MB,2 MB,4 MB,8 MB时串行和并行执行的运行时间。从图中看出,随着图像的数据量增大,运行时间增加。相同数据量时随着处理核心数增加而时间减少。因此,当数据量增大时并行加密能有效提高算法效率。
3) 密钥空间分析
4) 扩散性能比较。采用仿射密码加密算法和异或加密算法对图像Lena进行像素扩散。图5a)是仿射加密进行扩散,像素分布均匀,扩散性较好;图5b)用异或加密扩散,出现了原图像轮廓,扩散效果差。结果显示仿射加密的扩散效果好于异或加密。
4 结 语
本文提出一种基于仿射密码的并行图像加密算法。使用多核并行思想设计算法,对图像进行分块,多个处理核心并行加密,实现负载均衡,提升算法运行效率。利用Lorenz混沌系统的非周期不收敛特性生产随机性较好的序列进行像素位置置换,获得好的置乱效果;采用仿射密码对图像加密,仿射密码的参数很好地扰乱像素初始值,缩小像素间的差距,有效削弱统计性特征,扰乱效果好;使用仿射密码进行像素扩散,明文图像统计结构完全扩散到密文中,扩散效果远远好于异或加密的扩散效果。本文加密算法密钥空间大,有很好的抗防御攻击能力。
参考文献
[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] 王永,马键滨,刘兆龙,等.基于时空混沌系统的彩色图像加密算法[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] 柴宏玉,臧鸿雁.一种基于广义混沌同步系统的图像加密方案[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] 廖琪男,卢守东,孙宪波.结合超混沌序列和移位密码的数字图像加密算法[J].小型微型计算机系统,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.