APP下载

基于混沌随机分块与Arnold变换的彩色图像加密算法研究

2019-09-25谌贻会

数字技术与应用 2019年6期
关键词:彩色图像加密算法

谌贻会

摘要:针对彩色图像的加密,本文使用混沌映射首先对彩色图像进行随机分块,并对每个子图像的红、绿和蓝这三个像素层使用Arnold变换和不同的密匙进行加密操作,其次把经过了Arnold变换处理后的这三层加密像素叠加起来,构成每子图像的加密图像。实验结果说明,这种方法无需进行迭代计算,因此它的时间复杂度相对较低,运行速度较快,而且由于密钥空间得到了扩大,使得其加密强度较高。

关键词:彩色图像;加密算法;混沌映射;Arnold变换

中图分类号:TP309.7 文献标识码:A 文章编号:1007-9416(2019)06-0135-03

0 引言

随着多媒体技术特别是彩色图像在人们日常生活中的广泛使用,在给人们带来便利的同时也引发了一些安全问题,这主要是图像数据的存储和传输的安全问题。图像的加密技术已成为可以保障图像信息安全的一个重要方面。一些传统的数据加密技术对图像数据的加密而言并不完全适用,因此需要研究针对图像数据的加密方法。

混沌系统具有一些独特的性质,例如,对初始值和参数的敏感性,白噪声的统计特性与遍历性。混沌系统的吸引子的位数是分数维的,它具有非常复杂的分形结构和不可预测性。因此,使用混沌系统产生的混沌序列具有较好的随机性和密码学特性,在图像加密中进行使用,可设计出具有较好性能的加密算法[1,2]。在基于混沌的图像加密方法的早期研究中,主要是使用一些性能较好的低维混沌系统,由于此时的混沌结构较为简单并且参数少,因此相应的加密算法的密钥空间比较小,易被攻破。由于高维混沌系统拥有更大的参数空间和复杂的结构,因此近年来高维混沌系统被应用到图像的加密中,使得加密算法的密钥空间得到了扩大[3-5],密钥的生成方法也更复杂化,从而提高了密钥的敏感度。

本文使用混沌映射Skew tent来对彩色图像进行分块,之后使用Arnold变换对图像的像素进行操作,实现了彩色图像的加密,具有加密强度较高,时间复杂度相对较低,运行速度快等特点。

1 Arnold变换

对一幅图像进行数字化处理后所得到的是一个二维离散的数字矩阵,该矩阵中的每个元素代表了图像的相关信息。Arnold变换的数学表达式如下:

其中,N是图像的大小,即图像是一幅大小为N×N的图像。当对一幅图像进行Arnold变换时,(x,y)和(x′,y′)分别表示一个像素点在变换前和变换后的位置坐标。mod表示求余运算,它的目的是保证图像的数据矩阵在进行变换后仍然落在原先的图像区域内。参数a,b,c和d满足的条件是:|ad-bc|=1,例如,a=b=c=1,d=2。

当对一幅图像进行了Arnold变换时,就按照如上公式对图像中的像素点位置进行移动,结果就能得到一个与原图像相比混乱无章的图像。一般地,为了达到较满意的效果,通常需要对一幅图像进行很多次的Arnold变换。

2 加密的过程

在下面我们对彩色图像进行加密时将使用如下的混沌映射Skew tent,它的定义如下:

其中,μ是控制参数,x0∈[0,1]是混纯系统的初始状态。对于一个任意的μ值,公式F(x)的分段线性映射都有一个正的Lyapunov指数,因此该系统总是混纯的。对初值x0,可以通过计算F(x0)来得到x1。类似地,通过使用公式F(x)执行迭代运算,就可以得到一个混纯序列xk,k=0,1,2,……。

加密的过程为:读取将要进行加密的彩色图像,然后提取这张图像的R、G、B这三个像素层;针对不同的像素层,将设置不同的加密密匙Key来提高加密的安全性,这里的加密密匙Key是指Arnold变换中所使用的参数a,b,c和d,可表示为:Key=(a,b,c,d),即使用不同的密匙对不同的像素层即R,G,和B层进行Arnold变换,这里R、G、B分别代表的是红色(Red)、绿色(Green)和蓝色(Blue);这样经过变换之后就可以得到三个二维的数字矩阵,将这三个大小相同的数字矩阵叠加起来就得到一个新的二维数字矩阵,该矩阵就是加密后的数字图像。具体的实现步骤如下:

算法1

步1:读取一副彩色图像,将它转换为矩阵,从而获得预处理图像。设预处理图像是一幅大小为N×N的图像。

步2:使用混沌映射Skewtent随机生成一个正整数n。

步3:把预处理图像分块成M个子图像,这里M的取值为2n。对每一个子图像,进行如下的步4,步5和步6。

步4:对一个子图像,提取它的R,G,B这三层像素,并把它们各自转化为一个二维矩阵,共得到三个这种矩阵。

步5:设计三个不同的密匙KeyR,KeyG和KeyB,并使用它们分别对各层像素矩阵进行Arnold变换处理。

步6:把进行Arnold变换处理后的这三层加密像素叠加起来,构成原子图像的加密图像。

步7:对M个子图像都进行了如上的处理之后,把这M个子图像的加密图像组合到一起,構成预处理图像的加密图像。

在算法1的第2步中使用混沌映射Skew tent时所生成的数不一定是整数,这时需要对公式F(x)的值取整。在第3步中对密匙的取值,可以根据预处理图像的特点来选取,也可以任意选取,例如,对R,G和B这三层像素所对应的二维矩阵,分别选取各自的密匙KeyR,KeyG和KeyB为:keyR=(7,2,17,5),keyG=(1,2,2,5),keyB=(3,5,4,7)。在第5步中,对每一个子图像都设计对应的不相同的密匙KeyR,KeyG和KeyB,这样可以进一步增加加密的强度。

对经过使用算法1的加密图像进行解密,其过程是算法1的逆过程,即首先分别提取加密图像的R,G和B这三层经过加密的像素层,然后分别使用加密时所用的密匙对各个像素层进行Arnold逆变换,这样就可以还原得到原图像的各层像素,最后再把这三个像素层叠加起来就可以完整的还原并得到原图像。

3 实验结果

对算法1,我们在处理器为3.0GHz的微型计算机上通过MATLAB编程进行了实现,并对一些彩色图像进行了实验。图1使对256*256的测试图像的实验结果。图1(a)是lena图像,图1(b)是使用算法1对lena图像进行加密后的图像,图1(c)是对图1(b)进行解密还原后的原图像。

图1(d),图1(e)和图1(f)分别是对图1(a)所提取的R层像素,G层像素和B层像素等的图像。图1(g),图1(h)和图1(i)分别是对图1(d),图1(e)和图1(f)进行加密后的图像。

图2(a)是Baboon图像,图2(b)是使用算法1对Baboon图像进行加密后的图像,图2(c)是对图2(b)进行解密还原后的原图像。图3(a)是Peppers图像,图3(b)是使用算法1对Peppers图像进行加密后的图像,图3(c)是对图3(b)进行解密还原后的原图像。

这些实验结果说明,本文的算法1具有良好的加密效果。由于在加密过程中所设置的参数较多,对图像进行了分块,并且对各个子图像的R,G,B这三层像素采用了各自的密匙进行加密,因此这就大大增加了加密的强度,致使非法份子在侥幸窃取到传输的加密图像时也难以得知原图像的内容。此外,由于该算法无需进行迭代计算,因此它的时间复杂度相对较低,运行速度较快,而且对加密的图片规格大小无限制要求,这也说明该算法具有较好的适用性。

4 结语

由于混沌系统所产生的混沌序列具有良好的密码学特征,因此在图像的加密过程中使用混沌序列可以提高加密算法的强度与效率。本文使用混沌映射Skew tent来对彩色图像进行随机分块,并使用Arnold变换对图像的像素进行处理,实现了对彩色图像的加密,可以取得良好的加密效果。

参考文献

[1] 洪媛,徐宁,涂兴华.基于Logistic混沌的图像实值加密[J].量子电子学报,2018,35(2):149-155.

[2] 陈艳浩,刘中艳,周丽宴.基于差异混合掩码与混沌Gyrator变换的光学图像加密算[J].电子与信息学报,2019,41(4):888-895.

[3] 王琳娟,张小英,郝称意. 基于Arnold置乱和混沌加密的小波域数字水印算法[J].信息技術,2018,42(11):49-53.

[4] 李琳,孔留勇.一种基于混沌的新型图像加密算法[J].系统仿真学报,2018,30(3):954-961.

[5] 黄迎久,杜永兴,石炜.基于新的组合混沌映射的图像加密算法[J].微电子学与计算机,2019,36(5):47-52.

Research on Color Image Encryption Algorithms Based on Chaotic Random Blocking and Arnold Transform

CHEN Yi-hui

(College of Continuing Education, Chengdu University,Chengdu Sichuan  610106)

Abstract:In order to encrypt the color image, this paper uses chaotic mapping to block the color image randomly at first, and encrypts the red, green and blue pixel layers of each sub-image using Arnold transform and different keys. Secondly, the three layers of encrypted pixels after Arnold transform are superimposed to form the encrypted image of each sub-image. The experimental results show that this method does not need iterative computation, so its time complexity is relatively low and its running speed is faster. Moreover, because the key space is expanded, the encryption intensity is higher.

Key words:Color image;encryption algorithms;chaotic mapping;Arnold transform.

猜你喜欢

彩色图像加密算法
基于FPGA的实时彩色图像边缘检测
基于专家模糊技术的彩色图像对比度增强方法
基于最大加权投影求解的彩色图像灰度化对比度保留算法
HES:一种更小公钥的同态加密算法
基于空间变换和直方图均衡的彩色图像增强方法
基于小波变换和混沌映射的图像加密算法
基于颜色恒常性的彩色图像分割方法
Hill加密算法的改进
对称加密算法RC5的架构设计与电路实现
基于混沌映射和DNA编码的图像加密算法