潘文歆
摘要:通过图像加密可以保证图像信息的安全存储和传输,本文对彩色图像首先进行小波变换,使用三维混沌系统和Arnold变换来对图像对应的低频子带系数矩阵和高频子带系数矩阵进行随机分块和对矩阵元素的位置进行移动与置乱,获得对应的加密矩阵,之后对加密矩阵使用小波逆变换,就生成了原彩色图像的加密图像。实验结果说明,这种方法的密钥空间大,密钥的敏感度较高,可以获得较大的加密强度。
关键词:彩色图像;三维混沌系统;加密算法;小波变换;Arnold变换
中图分类号:TP309.7 文献标识码:A 文章编号:1007-9416(2020)08-0123-03
0 引言
随着图像和多媒体信息的广泛使用,保障图像信息的安全存储和传输已经成为人们关注的一个重要方面,对此的一种有效方法是对图像进行加密操作[1-3]。在对图像做加密时,可以针对图像的像素直接进行加密操作,也可以先对图像进行一些变换例如小波变换,在此基础上再进行加密操作[4]。
小波变换是把图像的像素矩阵变换到频域,然后对频域的数据进行处理,来实现对图像的处理,其特点是可以对图像信号的局部细节信息进行细致分析。离散小波变换的定义如下:
设,a0是大于0的常数,离散小波为 ,这里j, kZ。对一个给定的函数f(t),它对应的离散小波变换为:。
当信号f(t)取离散值f(k) 时,这时它的离散二进小波变换为:。
离散小波逆变换为:。
把一副图像进行小波分解后,该图像就变成了四个不同的部分:LL、LH、HL和HH,其中LL为图像的近似部分即低频部分,LH为水平方向上图像的近似部分,HL为垂直方向上图像的近似部分,HH为对角方向上图像的近似部分,除了LL之外,LH,HL和HH都对应于图像的细节部分。
对经过小波变换的一副彩色图像,本文首先使用三维混沌系统和Arnold变换来对低频子带系数矩阵和高频子带系数矩阵进行随机分块,然后对这些矩阵元素的位置进行移动和置乱,来实现对彩色图像的加密。
1 混沌映射
由混沌映射或混沌系统所产生的序列具有对初值和参数的敏感性、随机性、遍历性等一些独特的性质。当输入的初始参数值发生微小变化时,就会引起输出序列的值有很大的不同,差异较大;若混沌序列迭代次数越多,其序列在一定范围内能遍历趋近无穷的状态数[5-6]。本文使用如下的三维混沌系统,它的定义如下:
其中当λ=35,β=3和j=28时,系统呈现混沌状态。把该系统进行时域离散化之后,得到的三个输出序列{xn},{yn}和{zn}都是无规律分布的混沌序列。在本文中将使用这三种混沌序列来进行彩色图像的加密。
2 加密的过程与步骤
对给定的一幅大小为N×N图像,可以进行多种数字化处理,并获得一个二维离散的数字矩阵。在这种矩阵中的每个元素就代表了图像的相关信息。如果把该矩阵中元素的位置进行移动和置乱,就可以得到一个与原图像相比混乱无章的图像,从而可以实现对图像的加密。对元素的位置的移动和置乱,本文使用Arnold变换,该变换的数学表达式如下:
这里(x,y)和(x′,y′)分别表示一个元素在变换前和变换后的位置坐标,mod表示求余运算,它是保证与图像对应的数据矩阵在进行Arnold变换后仍然落在原先的图像区域内。Arnold变换的参数a,b,c和d需要满足如下条件:|ad-bc|=1。例如,a=2,b=5,c=1,d=3。如果对一幅图像进行多次Arnold变换,而且每一次都对参数a,b,c和d选取不同值时,就可以达到较满意的效果。
对Arnold变换的参数值的选取,我们采用的方法如下:对参数a,b和c的值,分别从三维混沌系统所产生的混沌序列{xn},{yn}和{zn}中选取,由于这种混沌序列的值是实数,因此在选取之后需要对它们进行取绝对值和取整运算,然后再作为参数a,b和c的值。在确定了这三个参数a,b和c的值之后,通过使用表达式 |ad-bc|=1,来求出参数d的值。
对一副彩色图像,加密的过程为:首先对原图像进行小波变换,得到它的频率系数矩阵;其次,对频率系数矩阵的子矩阵进行Arnold变换,以对这些子矩阵进行置乱,实现对它们的加密,并由此获得加密矩阵;第三,对加密矩阵使用小波逆变换,就生成了原彩色图像的加密图像。具体的算法实现步骤如下。
第1步:对一副给定的大小为N×N彩色图像,通过小波变换,得到它的频率系数矩阵。
第2步:从图像对应的频率系数矩阵中提取出低频子带系数矩阵LL和高频子带系数矩阵HL、LH和HH。
第3步:使用混沌系统产生一个正整数m,其方式如下:首先使用混沌系统(1)产生三个混沌序列{xn},{yn}和{zn},然后从这三个序列中分别随机选取一个值出来,并把所选出的这三个值取绝对值然后再相加,之后取整,就作为m的值。
第4步:对矩阵LL、HL、LH和HH,把每个矩阵分块成多个即2m个子矩阵。
第5步:对上一步中所获得的矩阵LL、HL、LH和HH的每个子矩阵,使用Arnold变换对它们进行置乱,以实现对它们的加密,把使用的加密密匙分别记为KeyLL,KeyHL,KeyLH和KeyHH,该加密密匙即是在Arnold變换中的参数a,b,c和d,它们是根据混沌系统(1)所产生的混沌序列来进行选取的。
第6步:把在第5步中所得到的每个经加密的子矩阵组合起来,就构成了LL、HL、LH和HH的加密矩阵。
第7步:对LL、HL、LH和HH的加密矩阵使用小波逆变换,就生成了原彩色图像的加密图像。
在算法的第5步中,由混沌系统(1)所产生的值需要进行取整操作,才能作为参数a,b,c和d的值,并且满足 |ad-bc|=1。同时,对每一个子矩阵都设计对应的不相同的密匙KeyLL,KeyHL,KeyLH和KeyHH,以进一步提高加密的强度。
对算法的加密图像进行解密,解密的过程是算法的逆过程,其步骤如下:首先分别从加密图像中提取出LL、HL、LH和HH的加密矩阵,然后使用加密的密匙KeyLL,KeyHL,KeyLH和KeyHH,以及进行Arnold逆变换,来获得矩阵LL、HL、LH和HH的每个子矩阵,之后把这些子矩阵组合起来,得到图像的四个子带系数矩阵LL、HL、LH和HH,使用这四个子带系数矩阵和小波逆变换即小波重构来得到原彩色图像。
3 实验结果
我们通过MATLAB编程对算法进行了实现,并对一些彩色图像进行了实验,所使用的微型计算机的处理器和内存分别为2.80GHz和8GB。图1是对彩色lena图像的实验结果,图1(a)是原图像,图1(b)是使用算法进行加密后的图像,图1(c)是对图1(b)做解密之后还原的图像。图2(a)和图3(a)分别是House图像和Horse图像,图2(b)和图3(b)是采用算法对原图像进行加密后的图像,图2(c)和圖3(c)是对图2(b)和图3(b)进行解密之后还原的图像。
如上的这些实验结果表明,本文设计的算法具有较高的加密强度,可以取得良好的加密效果。由于在对彩色图像的加密过程中对原始图像进行了分块,对各个子图像所对应的矩阵LL、HL、LH和HH采用了不同的多个密匙进行置乱,使图像的各方向相邻像素的相关性系数达到很小,接近于0,从而大大增加了加密的强度。
由于上文算法是同时对四个矩阵LL、HL、LH和HH进行操作和加密处理,这就避免了常规方法中只对矩阵LL进行加密处理所带来的加密强度不高的问题,因此本文的算法也具有较强的抗攻击能力。此外,在采用混沌系统的图像加密的早期研究中,人们主要使用低维混沌系统,由于这种混沌系统的结构简单而且参数较少,导致了相应加密算法的密钥空间比较小并且容易被攻破。本文对彩色图像的加密采用的三维混沌系统,由于具有较大的参数空间和较复杂的结构,因此可以使得加密算法的密钥空间得到扩大,从而可以进一步提高密钥的敏感度。
4 结语
对彩色图像的加密,本文对图像先进行小波变换,然后使用三维混沌系统和Arnold变换来对低频子带系数矩阵和高频子带系数矩阵进行随机分块和对矩阵元素的位置进行移动和置乱,这种方法由于采用了具有较大的参数空间和较复杂结构的三维混沌系统,从而可以提高密钥的敏感度并增大加密的强度。
参考文献
[1] Abdullah Alghafis,Faiza Firdousi,Majid Khan.An efficient image encryption scheme based on chaotic and deoxyribonucleic acid sequencing[J].Mathematics and Computers in Simulation,2020,177:441-466.
[2] Ali Mansouri,Xingyuan Wang.A novel one-dimensional sine powered chaotic map and its application in a new image encryption scheme[J].Information Sciences,2020,520:46-62.
[3] 胡春杰,嵇海祥,牛智星,等.基于改进Arnold映射二次置乱的图像加密算法[J].计算机与数字工程,2019,47(7):1783-1787.
[4] 陈娜,毋江波.基于离散小波变换的离散正交S变换域图像加密算法[J].光学技术,2019,45(3):348-354.
[5] 李付鹏,刘敬彪,王光义,等.基于混沌集的图像加密算法[J].电子与信息学报,2020,42(4):981-987.
[6] 马聪,李国东.基于L-K双混沌系统的彩色位级图像加密算法[J].计算机应用与软件,2020,37(3):322-326.