基于混沌系统的RGB彩色图像三重置乱算法

2018-12-27 03:23陈善学唐义嫄
关键词:明文加密算法密文

陈善学,唐义嫄

(重庆邮电大学 重庆市移动通信技术重点实验室,重庆 400065)

0 引 言

数字图像目前被广泛应用于信息的承载和传播,是主流的多媒体信息表达方式之一,其安全问题也受到广泛关注。相对于文本数据,由于图像数据存在数据量大、冗余性和关联性强等特性,传统加密算法不太适用于图像数据的加密[1-2]。而混沌是在非线性动力系统中出现的一种确定性的类随机过程,具有遍历性、混合性、指数发散性,并对系统初值和参数具有强烈的敏感性与依赖性。只需确切的映射公式和初始值,即可生成稳定的伪随机性序列。因此,许多基于混沌系统的数字图像加密算法[3-7]应运而生。

基于混沌系统的数字图像加密技术按照所应用的混沌系统可分为低维和高维的混沌加密。大多数基于低维混沌映射或者单一混沌映射,其缺点在于密钥空间不足,序列复杂程度不高。而高维的超混沌系统拥有2个以上的正lyapunov指数,在多维空间中映射,其非线性行为更加复杂。同时将多个混沌映射结合起来,系统复杂性也相对得到提升。

文献[8]提出了一个以Lorenz系统为基础的加密方案来提高安全性,主要是将Lorenz混沌系统的3个初始参数结合起来,从而达到扩大关键密钥空间的目的。而文献[9]提出一种加密算法将二维离散Henon混沌映射应用于图像像素位置置乱,但是没有考虑像素值的扩散,系统复杂度不高,导致加密算法抗攻击能力不足。相比之下,高维以及多重混沌系统具有更大的密钥空间,所生成的序列具有难以预测的非线性行为,使其在图像加密技术中的应用具有更高的安全性。文献[10]提出了一种结合Arnold猫映射和Henon映射的算法,将产生的混沌序列分别用于灰度图像像素位置置乱和像素扩散,但是没有考虑序列与明文图像的相关性,抗差分攻击性能不足。文献[11]将低维混沌映射和超混沌映射结合,以此实现对灰度图像的加密,使混沌序列更加复杂并且加大了密钥空间。文献[12]利用了6D超混沌序列置乱了图像一级离散小波变换(discrete wavelet transformation,DWT)中3个系数矩阵(低频、高频和低高频)从而得到加密图像,但是加密方式简单,易受攻击。

本文为了加强加密效果,设计了一种基于多混沌(包括低维混沌和超混沌)系统三重置乱的彩色图像加密算法,从多角度来加密图像。三重置乱分别为①单像素点的三原色(red green blue, RGB)排序置乱;②分块像素位置置乱;③分通道进行DWT后,将低频系数矩阵置乱与扩散。

1 混沌序列生成

本文算法涉及的2种混沌系统分别是Logistic混沌系统和Rabinovich超混沌系统。

Logistic混沌映射是一种常见的混沌动力系统,具有3种形式,但满映射区间小,导致迭代过程中数值变化率小,并且均匀分布特性欠佳[13]。因此,本文采用一种改进的Logistic映射,如 (1) 式所示[14],满映射区间为xn∈[-2β,2β]。

(1)

Rabinovich超混沌映射[15]定义式为

(2)

(2)式中,a,b,c,d,k为Rabinovich超混沌系统的系统参数,当a=4,b=-0.5,c=-2.2,d=1,k=8.1时,该系统处于超混沌状态。

为了使生成的混沌序列与明文相关,增加密图对原明文图像的依赖性,利用混沌系统对初值的敏感特性,分别给各混沌系统的初值加上与原明文图像相关的参数Δ。计算公式为

(3)

E’=0.16×ER+0.50×EG+0.34×EB

(4)

Δ=E′×10-10

(5)

(3)—(5)式中,E′为原彩色图像各通道均值E的加权平均值(权值固定),并将其作为密钥用于解密过程。

将初值分别代入上述Logistic,Rabinovich混沌系统方程中,共产生5个混沌序列,分别设为L,R1,R2,R3,R4。为了保证序列的有效性,从生成的第1 001个值开始取值。

2 彩色图像三重加密

2.1 彩色图像RGB顺序置乱

设图像像素矩阵的行数和列数分别为m,n,则取Logistic混沌序列L长度为m×n。将生成的一维Logistic混沌序列进行量化,使其分布在[0,1]中,并转化成Lm×n矩阵,并与原明文图像像素点一一对应,将每个Logistic序列值l作为其对应像素点RGB顺序置乱的判断标准,判断方式如下。

1) 读入Logistic混沌序列Lm×n矩阵与彩色图像Im×n的三通道图像像素点值IrIgIb;

elseifl≤1 then RGB顺序不变;

end;

置乱后图像像素点RGB顺序排的6种方式分别为RBG,GRB,GBR,BRG,BGR,RGB。

2.2 像素位置分块置乱

在像素位置置乱的过程中,选择Rabinovich混沌系统生成的4组混沌序列中的1组对图像像素点位置进行置乱。为了提高加密效率,采用分块置乱的方法,将图像进行多次不同大小的分块处理,块内置乱和块间置乱交叉进行。具体操作如下。

2.3 DWT低频系数矩阵置乱

利用MATLAB软件自带dwt2和idwt2函数,采用Haar小波基函数,将图像进行一级二维DWT变换后可得到图像的低频分量、水平分量、垂直分量和对角分量,分别为LL,HL,LH,HH,如图1所示。HL,LH,HH为高频分量,包含了图像的细节信息,而低频系数矩阵保持了原图像的概貌和空间特性,集中了图像的大部分能量。大量实验结果表明,将低频系数矩阵置乱加密可有效避免信息泄露而提高安全性[16]。

2)系数扩散。对R1,R2,R3作如下处理。

R′(i)=mod(floor(1 000·absR(i)),MaxLL)

(6)

(6)式中:floor表示向下取整;MaxLL表示低频系数中最大值的整数部分;将得到的R′与LL′的整数部分进行按位异或,保持LL′的小数部分不变,转换成原大小矩阵获得加密后的低频系数矩阵LL″。逆变换后三通道合并得到最终的加密图像。

混沌加密算法流程如图2所示。

解密算法即加密的逆过程:将密钥代入解密系统后,先对离散域低频系数值进行恢复,然后对像素位置置乱进行恢复,最后恢复像素RGB顺序。

3 实验仿真

在仿真实验中,本文选择大小为512×512×3像素的Lena. bmp彩色图像,在MATLAB 2014b环境下进行仿真实验。将系统初值代入加密系统:Logistic系统的初值为L1=0.5,系数β=10,Rabinovich超混沌系统的初值R1_0=0.8,R2_0=0.5,R3_0=12.1,R4_0=3.5。仿真结果如图3,图4所示。

图2 算法流程图Fig.2 Algorithm flowchart

图3 RGB顺序置乱前后R通道对比图Fig.3 Comparison diagram of each channel before and after the RGB order scrambling

由图3可以看出,在第1步进行各个像素点的RGB值的顺序置乱后,加密后图像的R通道中,来自于G,B通道的像素点使R通道灰度图成像失去了原有的视觉效果。三通道内的像素值相互置乱穿插后,得到第一重加密图像,如图4a所示。

图4a中,密图1明显隐藏了图像的彩色视觉特征,而Lena的人物特征仍然可辨认的原因在于:虽然每个像素点的RGB顺序已经置乱,但是每个像素点之间亮度值仍然具有相关性。在第2步像素点分块置乱后,Lena的人物特征得到加密。而在进行第3步加密置乱之后,图像的安全性得到进一步的提高。

图4 加密过程图Fig.4 Encryption process diagram

4 安全性能分析

4.1 密钥空间分析

本算法采用多个密钥进行加密,包括原始图像加权均值Δ、系数β以及2个混沌系统的5个初始值。根据IEEE浮点标准[17],64位双精度数计算精度约为1015,则密钥空间大小为如表1所示。由表1中数据可知,本文算法的密钥空间足够大,可抵御穷举攻击。

表1 密钥空间分析

4.2 敏感度分析

在解密过程中,将正确的初值R1_0=0.8和错误的初值R1′_0=0.800 000 000 000 01分别代入Rabinovich 超混沌系统中,解密结果如图4e和图4f所示,图4e为正确解密图像,图4f为改变初始值后解密失败的图像。初值仅经过细微改变(10-14)就能导致解密失败,说明本算法对密钥非常敏感,抵抗穷举攻击能力高。

4.3 抗统计攻击性能分析

4.3.1 直方图分析

Lena图像明文和密文直方图如图5所示。图像的直方图显示了图像中像素值的分布特征。对于一个安全性高的加密算法,其密文直方图应该是均衡的。图5中可以看出,明文直方图数据有高有低,而加密后的密文图像RGB 3个通道的直方图分布均衡。因此,攻击者不会从中获取有用信息来进行统计攻击。

图5 直方图分析Fig.5 Histogram analysis

4.3.2 相关性分析

对原始图像和加密后的密图进行水平、垂直和对角线方向相邻像素点之间的相关性分析,每个方向随机选取2 000对相邻点进行相关性计算,结果如表2。相关性计算[19]如(7)—(9)式所示。

(7)

(8)

(9)

(7)—(9)式中,x和y分别表示一组相邻像素点的像素值。

表2 RGB各通道中相邻像素相关性

同时,由表2数据可知,Lena图像RGB各通道在水平方向、垂直方向和对角线方向的邻像素点之间的相关系数接近于1,即其相邻像素点是高度相关的;而加密后的图像各通道的相关系数接近于0,说明通过加密系统后,原明文图像的相关性已基本消除。图6给出了图像在加密前后R通道的相关性对比。

图6 R通道相关性对比Fig.6 Comparison diagram of correlation of adjacent pixels in red channel

由图6也可直观地看出加密前后相关性的变化。

4.3.3 信息熵

信息熵反映了信息随机性,它被用来度量密文的平均不确定性程度,加密后的图像像素值分布越均匀,即当密文中灰度值出现的概率越趋于相等时,图像的信息熵越大。当达到理想的随机图像特征时,最大信息熵值为8[20]。信息熵越高,代表抗统计攻击和抗熵攻击的能力越好。信息熵计算公式为

(10)

(10)式中,P(xi)表示各通道亮度值状态出现的概率,共2n种状态(本文中n=8)。经计算加密后图像各通道的信息熵如表3所示,接近最大熵值8,说明该密文图像接近随机分布。

表3 信息熵

4.4 抗差分攻击能力分析

差分攻击即利用所提出的加密算法加密对原始图像作微小改变的新图像,观察对比原密图与新密图之间的差别,从而得出新旧密图之间的关系。而算法对明文的敏感性越强,抵抗差分攻击的能力也就越强。可以用像素数改变率(number of pixels change rate,NPCR)和归一化像素值平均改变强度(unified average changing intensity,UACI)衡量加密算法对明文的敏感性[21]。相关计算如(11)—(12)式所示。

(11)

(11)式中,当相同像素点坐标(i,j)的原密文图像像素值与新密文像素值一致时D(i,j)=0,否则D(i,j)=1。

(12)

本文仿真实验中,将原明文图像位于坐标点(12,8)的3个通道像素值由(227,133,108)改为(226,132,107)后,得到新的明文图像,然后将2个图像使用同一加密系统进行加密得到2个密文图像:X表示原来的密文图像,X′表示作微小改变后新图像的密文图像。根据 (15)式和 (16)式分别计算得到密文图像的 NPCR 和 UACI 值,如表4所示。由表4数据可以看到,加密后密图RGB各通道的NPCR值都大于99 %,UACI值都大于33 %。这表明即使对原始图像做细微的变化,通过本算法进行加密后,得到的密文图像也会有非常明显的差异。因此,本算法可以有效抵抗差分攻击。

表4 密图NPCR 和 UACI 值

5 总结

本文针对彩色图像提出了基于多混沌系统的三重置乱加密算法。解决了低维混沌系统在密钥空间不足以及序列复杂度不高的问题。与离散小波变换结合,在像素位置置乱和像素值扩散的双重加密算法基础上增加一重RGB顺序置乱,使彩色图像色彩信息首先被隐藏,并充分利用2种混沌系统(Logistics混沌系统和Rabinovich超混沌系统)的特性,在保证加密系统有效性的基础上,使整个加密系统的复杂性更高,增加了加密算法被破译的难度。通过对算法的安全性分析可以看出,该算法密钥空间大,有极强的密钥敏感性,并具有良好的抗攻击能力,能够有效保护图像安全。

猜你喜欢
明文加密算法密文
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
奇怪的处罚
混沌参数调制下RSA数据加密算法研究
一种基于密文分析的密码识别技术*
一种基于密文分析的密码识别技术*
HES:一种更小公钥的同态加密算法
奇怪的处罚
基于小波变换和混沌映射的图像加密算法
四部委明文反对垃圾焚烧低价竞争