发明内容
为克服以上现有技术的不足,本发明要解决的技术问题是提供一种基于混沌序列和超混沌系统的彩色图像加密方法,从而大大增加了密钥空间,使得安全性、加密效果和密钥敏感性更高,抗攻击能力更强,并更易于硬件实现。
本发明的技术方案是:
一种基于混沌序列和超混沌系统的彩色图像加密方法,包括以下步骤:
(1)输入图像大小为M×N的原始彩色图像I,分离图像I的R、G、B三基色分量得到分量矩阵I_RMN、I_GMN和I_BMN,每个分量矩阵大小为M×N,像素值在0到255之间;
(2)利用一维混沌系统生成用于置乱的混沌序列,对原始彩色图像I进行位级联合置乱,得到置乱后大小为M×N的图像I6;
(3)将置乱后的图像I6分解成R、G、B三基色分量I6_RMN、I6_GMN和I6_BMN,并转换成三个长度为M×N的序列I6_R、I6_G和I6_B;
(4)利用超混沌系统生成用于加密置乱图像I6的加密矩阵;
(5)利用步骤(4)中得到的加密矩阵,结合明文信息和I6_R、I6_G、I6_B三基色分量信息改变置乱图像I6的三基色分量的所有像素值,进行联合扩散,得到联合扩散后图像的三基色分量I7_RMN、I7_GMN和I7_BMN,从而得到最终的加密图像I7。
上述基于混沌序列和超混沌系统的彩色图像加密方法,其中步骤(2)中的一维混沌系统为PWLCM线性分段混沌映射系统:
其中p为系统参数,并且,步骤(2)中利用一维混沌系统生成混沌序列、对原始彩色图像I进行位级联合置乱的具体步骤为:
2.1)把原始彩色图像I的三基色分量矩阵中的每个像素变为8位二进制的字符串,得到三个大小为M×8N的二进制矩阵I_R8MN、I_G8MN和I_B8MN,按照I_R8MN、I_G8MN和I_B8MN的顺序,从上到下纵向组合排列,得到一个大小为3M×8N的图像I1;
2.2)利用PWLCM系统在不同初值x′
0、y′
0和不同参数p
x′、p
y′下产生实值混沌序列X
0、Y
0,其中x′
0、p
x′分别是数列X
0的初始值和系统参数,y′
0、p
y′分别是数列Y
0的初始值和系统参数,初始值x′
0、y′
0和系统参数p
x′、p
y′均为密钥;实值混沌序列X
0的长度为
(t
1≥1000),实值混沌序列Y
0的长度为
(t
2≥1000),抛弃前面的t
1和t
2个数值,得到实值混沌序列X′、Y′;
2.3)对X′、Y′按照升序重新排列,得到新的子序列,将原子序列中每个元素所在位置序号替换新的子序列中的对应元素,最终得到长度为3M和8N的置乱序列INX′、INY′:
并且,这两个序列中每个元素的元素值代表该位置上的数在所有元素中的位置;
2.4)根据置乱序列INX′、INY′对二进制图像I1进行处理:首先根据序列INX′对二进制图像I1进行行变换,即将矩阵I1的第INX′1行变换到第1行,第INX′2行变换到第2行,依次类推,直到所有行变换完毕,得到图像矩阵I2,再用序列INY′对二进制图像I2进行列变换,即将矩阵I2的第INY1′列变换到第1列,第INY2′列变换到第2列,依次类推,直到所有列变换完毕,得到二进制图像矩阵I3;
2.5)把二进制图像矩阵I3从上到下分割成三个大小为M×8N的矩阵I3_RMN、I3_GMN和I3_BMN,再把三个矩阵按照I3_RMN、I3_GMN、I3_BMN的顺序从左到右横向排列,得到M行、24N列的二进制图像矩阵I4;
2.6)设定初始值z′
0和系统参数p
z′,迭代PWLCM混沌系统得到长度为
(t
3≥1000)的混沌序列Z
0,抛弃前面的t
3个数值,得到实值混沌序列Z′;设定初始值w′
0和系统参数p
w′,迭代PWLCM混沌系统得到长度为
(t
4≥1000)的混沌序列W
0,抛弃前面的t
4个数值,得到实值混沌序列W′;
2.7)对实值混沌序列Z′、W′按照升序重新排列,得到新的子序列,然后将原子序列中每个元素所在位置序号替换新的子序列中的对应元素,最终得到长度为M和24N的置乱序列INZ′、INW′:
2.8)根据置乱序列INZ′、INW′对二进制图像I4进行处理:首先根据序列INZ′对二进制图像I4进行行变换,即将矩阵I4的第INZ′1行变换到第1行,第INZ′2行变换到第2行,依次类推,直到所有行变换完毕,得到图像矩阵I41;再用序列INW′对二进制图像I41进行列变换,即将I41的第INW1′列变换到第1列,第INW2′列变换到第2列,依次类推,直到所有列变换完毕,得到M行、24N列的二进制图像矩阵I5;
2.9)将二进制图像矩阵I5从左到右进行分割,分割成3个大小为M×8N的二进制矩阵,把像素值从二进制转换成十进制,得到3个大小为M×N的图像I5_RMN、I5_GMN和I5_BMN;
2.10)将图像I5_RMN、I5_GMN和I5_BMN进行合并,即I6(1:M,1:N,1)=I5_RMN(1:M,1:N),I6(1:M,1:N,2)=I5_GMN(1:M,1:N),I6(1:M,1:N,3)=I5_BMN(1:M,1:N),从而得到置乱后的图像I6。
上述基于混沌序列和超混沌系统的彩色图像加密方法,其中步骤(4)中的超混沌系统为超混沌Chen系统,其动力学方程如下:
并且,利用该超混沌系统生成用于加密置乱图像I6的加密矩阵的具体步骤为:
3.1)选取系统参数a、b、c、d、e,初始值Xc
0、Yc
0、Zc
0、Wc
0,用四阶龙格-库塔法解超混沌Chen系统得到长度为
(t
5≥2000)的4个实值混沌序列,舍弃掉前t
5个值,得到实值序列x″′、y″′、z″′、w″′;
3.2)按照下式
把4个实值序列的所有元素数值都转换到0到255之间,得到新的序列x″、y″、z″、w″,其中x″i∈x″、y″i∈y″、z″i∈z″、w″i∈w″,i代表序列中的第i个元素,i=1,2,3,…M×N;x″′i、y″′i、z″′i、w″′i代表序列x″′、y″′、z″′、w″′中的第i个元素,x″′i-1、y″′i-1、z″′i-1、w″′i-1代表序列x″′、y″′、z″′、w″′中的第i-1个元素,i=1,2,3,…M×N,当i=1时,令x″′0=y″′0=z″′0=w″′0=0。
3.3)对图像的像素值进行加密操作时,每次从x″
i、y″
i、z″
i、w″
i中选出3个加密R
i、G
i、B
i,设置中间密钥
(i=1,2,3,…M×N)为
其中
的取值为[0,1,2,3],加密矩阵的选择方法为:
当
时,用(x″
i,y″
i,z″
i)加密(R
i,G
i,B
i);
当
时,用(x″
i,y″
i,w″
i)加密(R
i,G
i,B
i);
当
时,用(x″
i,z″
i,w″
i)加密(R
i,G
i,B
i);
当
时,用(y″
i,z″
i,w″
i)加密(R
i,G
i,B
i)。
上述基于混沌序列和超混沌系统的彩色图像加密方法,其中步骤(5)中利用加密矩阵,结合明文信息和I6_R、I6_G、I6_B三基色分量信息改变置乱图像I6的三基色分量的所有像素值,进行联合扩散的具体步骤为:
其中当i=1时,设置R′i-1=0,G′i-1=0,B′i-1=0;上述公式中,R′i、G′i、B′i为当前密文像素值,Ri、Gi和Bi为当前明文像素值,R′i-1、G′i-1、B′i-1为前一个密文像素值;
4.2)所有像素扩散之后,得到3个长度为M×N的密文序列I7_R、I7_G和I7_B,将I7_R、I7_G和I7_B按行排列的方式转换为3个M×N的矩阵,得到联合扩散后图像的三基色分量I7_RMN、I7_GMN和I7_BMN,从而最终得到加密图像I7。
本发明的有益效果是:
(1)本发明通过采用PWLCM混沌序列和四维超混沌系统的组合,大大增加了密钥空间,进而具有密钥数目多、密钥空间大和密钥敏感性高的特点,能够有效地抵抗穷举攻击,使得图像加密算法的安全性更高;
(2)本发明通过利用明文信息对像素值进行扩散操作,使得算法依赖于明文,要攻击密文就必须知道当前密文的明文图像信息,从而可以有效抵抗选择明文和选择密文攻击,进一步提高了算法的安全性;
(3)本发明针对R、G、B三个分量像素之间的相互影响,通过对彩色图像R、G、B三基色分量首先在位级联合置乱,然后利用R、G、B分量之间的信息对像素值进行联合扩散,从而有效地降低了三个分量之间的相关性,增强了加密程度,更进一步提高了算法的安全性。
具体实施方式
实施例1:在本实施例中,采用的编程软件为Matlab7.0,选取附图3(a)所示的大小为256×256(M×N)的Lena标准彩色图像为实验对象,对Lena彩色图像加密的具体过程如下:
1.输入原始Lena彩色图像,用I=imread('Lena.bmp')读取图像信息。分离彩色图像I的R、G、B三基色分量得到3个图像矩阵I_RMN=I(1:256,1:256,1)、I_GMN=I(1:256,1:256,2)和I_BMN=I(1:256,1:256,3)。
2.把上述三基色分量矩阵中的每个像素变为8位二进制的字符串,得到3个大小为256×2048的二进制矩阵I_R8MN、I_G8MN和I_B8MN,然后把I_R8MN、I_G8MN和I_B8MN,按照I_R8MN、I_G8MN和I_B8MN的顺序从上到下纵向排列,得到一个新的大小为768×2048的二进制图像矩阵I1。
3.选用如下的PWLCM混沌序列
并选取初始值x′0=0.831194835269879,选择系统参数px′=0.2314124343892034,利用四阶龙格-库塔法迭代求解PWLCM混沌序列得到实值混沌序列X0;选取初始值y′0=0.9874335334345,选择系统参数py′=0.87342964283746,利用四阶龙格-库塔法迭代求解PWLCM混沌序列得到实值混沌序列Y0。选择t1=1000,t2=1200。这里将x′0、px′、y′0、py′、t1、t2作为密钥。
利用一维PWLCM混沌序列生成用于置乱的混沌序列X′、Y′的方法如下:
1)根据以上给定的初始值和系统参数,利用PWLCM混沌序列生成长度为
(t
1≥1000)的实值混沌序列X
0,抛弃前t
1个值,从而得到长度为768的实值混沌序列X′;
2)根据以上给定的初始值和系统参数,利用PWLCM混沌序列生成长度为
(t
2≥1000)的实值混沌序列Y
0,抛弃前t
2个值,从而得到长度为2048的实值混沌序列Y′。
4.由于X′、Y′的排列是杂乱无章的,对其按照升序重新排列,得到新的子序列,然后将原子序列中每个元素所在位置序号替换新的子序列中的对应元素,最终得到长度分别为768和2048的置乱序列INX′、INY′为:
为进一步清楚阐述,举例如下:假设一个长度为7的序列P=[12 10 4 21 26 5 1],将其按照升序排列得到P=[1 4 5 10 12 21 26],然后再将原序列中每个元素所在位置序号替换新的子序列中的对应元素,从而得到置乱序列INP=[7 3 6 2 1 4 5]。
5.根据置乱序列INX′、INY′对二进制图像I1进行处理。首先根据序列INX′对二进制图像I1进行行变换,即将矩阵I1的第INX′1行变换到第1行,第INX′2行变换到第2行,依次类推,直到行变换完毕,得到768行、2048列的图像矩阵I2。再用序列INY′对图像I2进行列变换,即将矩阵I2的第INY1′列变换到第1列,第INY2′列变换到第2列,依次类推,直到列变换完毕,最终得到768行、2048列的二进制图像矩阵I3。
6.把I3从上到下进行分割,分割成3个大小为256×2048的矩阵I3_RMN、I3_GMN、I3_BMN,把3个矩阵按照I3_RMN、I3_GMN、I3_BMN的顺序从左到右按横向排列,得到大小为256×6144的矩阵I4。
7.选用上面步骤3所述的PWLCM混沌序列。选取初始值z′
0=0.831194835269879、w′
0=0.2456565758866,选择系统参数p
z′=0.2314124343892034、p
w′=0.463232444657,利用四阶龙格-库塔法迭代求解PWLCM混沌序列得到长度为
(t
3≥1000)和
(t
4≥1000)的序列,抛弃前面的t
3和t
4个数值,得到长度分别为256和6144的实值混沌序列Z′、W′,t
3=1500,t
4=2000。这里将z′
0、w′
0、p
z′、p
w′、t
3、t
4作为密钥。
8.按照与上面相同的方法,对实值混沌序列Z′、W′按照升序重新排列,得到新的子序列;然后将原子序列中每个元素所在位置序号替换新的子序列中的对应元素,最终得到长度分别为256和6144的置乱序列INZ′、INW′:
9.根据置乱序列INZ′、INW′对二进制图像I4进行处理。首先根据序列INZ′对二进制图像I4进行行变换,即将矩阵I4的第INZ′1行变换到第1行,第INZ′2行变换到第2行,依次类推,直到所有行变换完毕,得到图像矩阵I41。再用序列INW′来对二进制图像I41进行列变换,即将矩阵I41的第INW1′列变换到第1列,第INW2′列变换到第2列,依次类推,直到所有列变换完毕,最终得到256行、6144列的二进制图像矩阵I5。
10.将I5从左到右横向分割,分割成3个大小为256×2048的矩阵,矩阵中的元素从左到右从上到下,8位一组,从二进制转换成十进制,得到3个大小为256×256的图像I5_R256×256、I5_G256×256和I5_B256×256。
11.将I5_R256×256、I5_G256×256和I5_B256×256进行合并,即I6(1:256,1:256,1)=I5_R256×256(1:256,1:256),I6(1:256,1:256,2)=I5_G256×256(1:256,1:256),I6(1:256,1:256,3)=I5_B256×256(1:256,1:256),从而得到置乱后的图像I6,见附图3(b)。至此,便完成了原始彩色图像的位(bit)级联合置乱操作。
12.将置乱后的图像I6分解成R、G、B三基色分量,得到三基色分量矩阵I6_R256×256、I6_G256×256和I6_B256×256,按行排列,转换成3个长度均为65536的实值序列I6_R、I6_G和I6_B:
其中,Ri、Gi和Bi分别代表序列I6_R、I6_G和I6_B中的第i个元素,i=1,2,3,…65536。
13.选用超混沌Chen系统,其动力学方程为:
其中选取系统参数a=35,b=3,c=12,d=7,e=0.108,系统是超混沌的。选择初始值为Xc0=0.12、Yc0=0.34、Zc0=0.56、Wc0=0.78。t5=2500。这里将a、b、c、d、e、Xc0、Yc0、Zc0、Wc0、t5作为密钥。
进一步地,利用超混沌系统生成用于加密置乱图像I6的加密矩阵的步骤为:
1)根据以上给定的系统参数和初始值,利用超混沌Chen系统生成长度为
(t
5≥2000)的四个实值混沌序列,抛弃前t
5个值,得到四个长度为65536的实值序列x″′、y″′、z″′、w″′;
2)按照下式
把四个实值序列的每个元素数值都转换到0到255之间,得到改进的实值序列x″、y″、z″、w″(其中,x″i∈x″、y″i∈y″、z″i∈z″、w″i∈w″,i代表序列中的第i个元素,i=1,2,3,…65536);x″′i、y″′i、z″′i、w″′i代表序列x″′、y″′、z″′、w″′中的第i个元素,x″′i-1、y″′i-1、z″′i-1、w″′i-1代表序列x″′、y″′、z″′、w″′中的第i-1个元素,i=1,2,3,…65536,当i=1时,令x″′0=y″′0=z″′0=w″′0=0。
3)对图像的像素值进行加密操作时,每次从x″i、y″i、z″i、w″i中选出3个加密Ri、Gi、Bi。设置中间密钥(i=1,2,3,…65536),且有:
的取值为[0,1,2,3]。加密矩阵的选择方法如下:
14.利用得到的加密矩阵,结合明文信息和I6_R、I6_G、I6_B三基色分量信息改变置乱图像I6的三基色分量的所有像素值,进行联合扩散,得到联合扩散后图像的三基色分量I7_RMN、I7_GMN和I7_BMN,从而得到最终的加密图像I7。具体方法为:
当时,用下式对像素值逐一进行变换
当i=1时,设置R′i-1=0,G′i-1=0,B′i-1=0。
式中,R′i、G′i、B′i为当前密文像素值,Ri、Gi和Bi为当前明文像素值,R′i-1、G′i-1、B′i-1为前一个密文像素值。
对序列中元素逐个进行上述操作,最终得到变换后的长度为65536的序列I7_R、I7_G和I7_B,将序列按行排列变为256×256的矩阵I7_R256×256、I7_G256×256和I7_B256×256。再将I7_R256×256、I7_G256×256和I7_B256×256进行合并,即I7(1:256,1:256,1)=I7_R256×256(1:256,1:256),I7(1:256,1:256,2)=I7_G256×256(1:256,1:256),I7(1:256,1:256,3)=I7_B256×256(1:256,1:256),即最终可得到大小为256×256的加密图像I7,见附图3(c)。
图像解密过程与加密过程类似,只须按照与加密过程相逆的顺序进行运算即可恢复出原始彩色图像I。解密过程中,各个步骤所用PWLCM混沌序列和四维超混沌Chen系统的系统参数、初始值和其它参数与加密过程中对应相同。当密钥正确时,解密图像见附图3(d),附图3(e)为错误密钥下的解密图像。从图3(e)难以辨认原始图像,由此可见本发明的图像加密算法具有很好的加密效果。
一个好的加密算法应该能够抵抗各种攻击,密钥空间足够大,密钥的敏感性足够高。下面对本发明的图像加密算法进行安全性分析。
1.密钥空间大,足以抵抗穷举攻击
混沌系统对初始值有很高的敏感性,需要足够大的密钥空间来抵御穷举攻击,因此混沌加密算法的安全性主要依赖于密钥空间的大小。在本发明的加密算法中,密钥包括:1)系统参数a、b、c、d、e、px′、py′、pz′、pw′;2)初始值x′0、y′0、z′0、w′0、Xc0、Yc0、Zc0、Wc0;3)t1、t2、t3、t4、t5。在Matlab7.0环境下,所有数据类型都采用精度为10位的双精度实数,则密钥空间至少为10100。因此,本发明的加密算法具有足够大的密钥空间,足以抵抗穷举攻击。
2.密钥敏感性高
对于附图3(c)所示的加密图像,附图3(d)所示为当采用正确密钥时得到的清晰解密图像,可以精确恢复出原始图像。保持其它密钥参数不变,当pz′改变+10-16,进行解密,附图3(e)所示为当pz′=0.23141243438920341时解密图像。从附图3(e)容易看出,即使密钥存在微小差异,解密图像依然是类似于噪声的均匀图像,无法辨认出原始图像的任何信息。由此可见,本发明的加密算法具有高度的密钥敏感性。
3.密文图像的灰度直方图平滑且均匀,抗统计分析攻击能力强。
直方图描述了数字图像中所有灰度级的像素出现的频率,一个好的图像加密算法加密得到的密文图像的灰度直方图应该平滑且均匀,以免信息的泄露。
附图4所示为原始彩色图像及其R、G、B分量的直方图,附图5所示为加密图像及其R、G、B分量的直方图。从图中可以看出,原始图像的像素分布很不均匀,图像像素主要分布在中间部分,而加密图像R、G和B分量的像素呈现均匀分布的特点,加密图像的像素值在[0,255]范围内取值概率均等。这使得攻击者难以通过统计的方法来攻击密文,从而提高了密文的安全性。由此可见,该加密算法具有良好的抵抗统计分析攻击的能力。
4.原始图像相邻像素高度相关,加密后图像相邻像素相关系数接近于0,基本不相关。
为了分析明文图像和密文图像相邻像素的相关性,引入相邻像素的相关系数。相关系数越大,说明相邻像素的相关性越大;反之,相邻像素的相关性越小。从图像中选取20000对水平方向相邻像素对,20000对垂直方向相邻像素对和20000对对角方向相邻像素对,用如下公式定量计算相邻像素的相关系数:
式中,x、y分别表示图像中相邻两个像素的像素值,D(x)表示像素值的均方差,E(x)表示像素值的平均值,cov(x,y)表示相关函数,Rx,y表示相邻两个像素的相关系数。
图6描述了原始彩色图像和密文图像的R分量水平方向上相邻像素的相关性,其中图6(a)为原始图像R分量水平方向上相邻像素的相关性分析图,图6(b)为加密图像R分量水平方向上相邻像素的相关性分析图。按照上述式子分别计算了明文图像和密文图像三基色分量在水平、垂直和对角方向上相邻像素的相关系数,结果如表1所示。从表1中容易看出,原始图像相邻像素高度相关,相关系数接近于1,而加密后的图像在各方向的相邻像素相关系数比明文图像要小得多,其相邻像素相关系数接近于0,相邻像素已基本不相关,明文的统计特征已被扩散到随机的密文中。
表1原始图像和加密图像相邻像素的相关系数
5.NPCRR,G,B都大于99%,UACIR,G,B都大于33%,抗差分攻击能力强。
算法对明文的敏感性越强,抵抗差分攻击的能力也就越强,可以用像素数改变率NPCR(Number of Pixels Change Rate)和归一化像素值平均改变强度UACI(Unified AverageChanging Intensity)度量加密算法对明文的敏感性。计算公式如下:
式中,M和N表示图像的行数和列数,C1表示原来的密文图像,C2表示改变明文后得到的密文图像,C1(i,j)表示明文图像在坐标(i,j)处的像素值,C2(i,j)表示密文图像在坐标(i,j)处的像素值。D表示和密文图像大小一样的矩阵,D(i,j)的值由C1(i,j)和C2(i,j)决定。若C1(i,j)=C2(i,j),那么D(i,j)=0;若C1(i,j)≠C2(i,j),那么D(i,j)=1。
本发明中,将原始明文图像的第一个像素值改为227后得到一个新的明文图像,然后将这两个图像用同样的密钥加密形成相应的密文图像C1和C2。根据上面式子计算密文图像的NPCR和UACI值如表2所示,可以看到NPCRR,G,B的值都大于99%,UACIR,G,B的值都大于33%。这表明,即使对原始图像做微小的变化,通过本算法进行加密后,密文图像也会有明显的差异。因此,本算法可以有效抵抗差分攻击。
表2密文图像的NPCR和UACI值
|
R分量 |
G分量 |
B分量 |
NPCR |
0.99620 |
0.99644 |
0.99582 |
UACI |
0.33201 |
0.33352 |
0.33345 |
6.密文图像R、G、B分量的信息熵非常接近理想值8,加密算法安全性好。
信息熵是反映信息随机性的重要度量指标,信息源m的信息熵计算公式如下:
其中,p(mi)表示符号mi出现的概率,2n是信息源m的总状态数。信息加密之后,信息熵的期望值为8。如果加密图像信息熵非常接近8,则表明该密文图像接近随机分布。本发明对标准Lena图像用本发明算法进行加密,得到密文图像R、G、B分量的信息熵分别为7.99746、7.99708、7.99736,非常接近理想值8,这表明本发明提供的加密算法具有很好的安全性。
实施例2:在本实施例中,采用的编程软件为Matlab7.0,选取附图7(a)所示的大小为512×512(M×N)的Peppers标准彩色图像为实验对象,对Peppers彩色图像进行加密的基本过程为:
1)输入图像大小为512×512的原始彩色图像I,分离图像I的R、G、B三基色分量I_RMN、I_GMN和I_BMN,每个分量矩阵大小为512×512,像素值在0到255之间;
2)利用一维混沌系统生成用于置乱的混沌序列,对原始彩色图像I进行位(bit)级联合置乱,得到置乱后大小为512×512的图像I6,见附图7(b);
3)将置乱后的图像I6分解成R、G、B三基色分量I6_RMN、I6_GMN和I6_BMN,并转换成三个长度为512×512的序列I6_R、I6_G和I6_B;
4)利用超混沌系统生成用于加密置乱图像I6的加密矩阵;
5)利用加密矩阵,结合明文信息和I6_R、I6_G、I6_B三基色分量信息改变置乱图像I6的三基色分量的所有像素值,进行联合扩散,得到联合扩散后图像的三基色分量I7_RMN、I7_GMN和I7_BMN,从而最终得到加密图像I7,见附图7(c)。
而对于加密过程中具体采用的混沌系统、加密步骤和相应步骤中的参数,则可完全参考实施例1,不再重述。
在对该实施例下的加密图像进行解密时,若密钥正确,则可得到如附图7(d)所示的解密图像。而附图7(e)则为错误密钥下的解密图像,从图7(e)难以辨认原始图像,可见本发明的图像加密算法具有很好的加密效果。
下面对该实施例下的图像加密算法进行安全性分析。
1.密钥空间大,足以抵抗穷举攻击
密钥与实施例1的密钥相同,具体包括:1)系统参数a、b、c、d、e、px′、py′、pz′、pw′;2)初始值x′0、y′0、z′0、w′0、Xc0、Yc0、Zc0、Wc0;3)t1、t2、t3、t4、t5。在Matlab7.0环境下,所有数据类型都采用精度为10位的双精度实数,则密钥空间至少为10100。因此,本发明的加密算法具有足够大的密钥空间,足以抵抗穷举攻击。
2.密钥敏感性高
对于附图7(c)所示的加密图像,附图7(d)所示为当采用正确密钥时得到的清晰解密图像,可以精确恢复出原始图像。保持其它密钥参数不变,当Yc0改变+10-16,进行解密,附图7(e)所示为当Yc0=0.3400000000000001时解密图像。从附图7(e)容易看出,即使密钥存在微小差异,解密图像依然是类似于噪声的均匀图像,无法辨认出原始图像的任何信息。由此可见,本发明的加密算法具有高度的密钥敏感性。
3.密文图像的灰度直方图平滑且均匀,抗统计分析攻击能力强。
附图8所示为原始彩色图像及其R、G、B分量的直方图,附图9所示为加密图像及其R、G、B分量的直方图。从图中可以看出,原始图像的像素分布很不均匀;而加密图像R、G和B分量的像素呈现均匀分布的特点,加密图像的像素值在[0,255]范围内取值概率均等。由此可见,该加密算法具有良好的抵抗统计分析攻击的能力。
4.原始图像相邻像素高度相关,加密后图像相邻像素相关系数接近于0,基本不相关。
从图像中选取20000对水平方向相邻像素对,20000对垂直方向相邻像素对和20000对对角方向相邻像素对,定量计算相邻像素的相关系数。
附图10描述了原始彩色图像和密文图像的R分量水平方向上相邻像素的相关性。图10(a)为原始图像R分量水平方向上相邻像素的相关性分析图,图10(b)为加密图像R分量水平方向上相邻像素的相关性分析图。按照实施例1中公式分别计算了明文图像和密文图像三基色分量在水平、垂直和对角方向上相邻像素的相关系数,结果如表3所示。从表3中容易看出,原始图像相邻像素高度相关,相关系数接近于1,而加密后的图像在各方向的相邻像素相关系数比明文图像要小得多,其相邻像素相关系数接近于0,相邻像素已基本不相关,明文的统计特征已被扩散到随机的密文中。
表3原始图像和加密图像相邻像素的相关系数
5.NPCRR,G,B都大于99%,UACIR,G,B都大于33%,抗差分攻击能力强。
本发明中,将原始明文图像的第一个像素值改为227后得到一个新的明文图像,然后将这两个图像用同样的密钥加密形成相应的密文图像C1和C2。计算密文图像的NPCR和UACI值如表4所示,可以看到NPCRR,G,B的值都大于99%,UACIR,G,B的值都大于33%。这表明,即使对原始图像做微小的变化,通过本算法进行加密后,密文图像也会有明显的差异。因此,本算法可以有效抵抗差分攻击。
表4密文图像的NPCR和UACI值
|
R分量 |
G分量 |
B分量 |
NPCR |
0.99593 |
0.99606 |
0.99586 |
UACI |
0.33531 |
0.33586 |
0.33401 |
6.密文图像R、G、B分量的信息熵非常接近理想值8,加密算法安全性好。
对标准Peppers图像用本发明算法进行加密,得到密文图像R、G、B分量的信息熵分别为7.99931、7.99936、7.99931,非常接近理想值8,这表明本发明提供的加密算法具有很好的安全性。
实施例3:在本实施例中,采用的编程软件同样为Matlab7.0,选取附图11(a)所示的大小为500×377(M×N)的彩色图像为实验对象,对该彩色图像加密的基本过程如下:
1)输入图像大小为500×377的原始彩色图像I,分离图像I的R、G、B三基色分量I_RMN、I_GMN和I_BMN,每个分量矩阵大小为500×377,像素值在0到255之间;
2)利用一维混沌系统生成用于置乱的混沌序列,对原始彩色图像I进行位(bit)级联合置乱,得到置乱后大小为500×377的图像I6,见附图11(b);
3)将置乱后的图像I6分解成R、G、B三基色分量I6_RMN、I6_GMN和I6_BMN,并转换成三个长度为500×377的序列I6_R、I6_G和I6_B;
4)利用超混沌系统生成用于加密置乱图像I6的加密矩阵;
5)利用加密矩阵,结合明文信息和I6_R、I6_G、I6_B三基色分量信息改变置乱图像I6的三基色分量的所有像素值,进行联合扩散,得到联合扩散后图像的三基色分量I7_RMN、I7_GMN和I7_BMN,从而得到最终的加密图像I7,见附图11(c)。
加密过程中具体采用的混沌系统、加密步骤和相应步骤的参数同实施例1。
针对该实施例下的加密图像,当密钥正确时,解密图像如附图11(d)所示,当密钥错误时,则得到如附图11(e)所示的图像,从图11(e)中难以辨认原始图像,可见本发明的图像加密算法具有很好的加密效果。
下面对该实施例下的图像加密算法进行安全性分析。
1.密钥空间大,足以抵抗穷举攻击
密钥与实施例1和实施例2的密钥相同,具体包括:1)系统参数a、b、c、d、e、px′、py′、pz′、pw′;2)初始值x′0、y′0、z′0、w′0、Xc0、Yc0、Zc0、Wc0;3)t1、t2、t3、t4、t5。在Matlab7.0环境下,所有数据类型都采用精度为10位的双精度实数,则密钥空间至少为10100。因此,本发明的加密算法具有足够大的密钥空间,足以抵抗穷举攻击。
2.密钥敏感性高
对于附图11(c)所示的加密图像,附图11(d)所示为当采用正确密钥时得到的清晰解密图像,可以精确恢复出原始图像。保持其它密钥参数不变,当Yc0改变+10-16,进行解密,附图11(e)所示为当Yc0=0.3400000000000001时解密图像。从附图11(e)容易看出,即使密钥存在微小差异,解密图像依然是类似于噪声的均匀图像,无法辨认出原始图像的任何信息。由此可见,本发明的加密算法具有高度的密钥敏感性。
3.密文图像的灰度直方图平滑且均匀,抗统计分析攻击能力强。
附图12所示为原始彩色图像及其R、G、B分量的直方图,附图13所示为加密图像及其R、G、B分量的直方图。由图可知,原始图像的像素分布很不均匀,而加密图像R、G和B分量的像素呈现均匀分布的特点,加密图像的像素值在[0,255]范围内取值概率均等。由此可见,该加密算法具有良好的抵抗统计分析攻击的能力。
4.原始图像相邻像素高度相关,加密后图像相邻像素相关系数接近于0,基本不相关。
从图像中选取30000对水平方向相邻像素对,30000对垂直方向相邻像素对和30000对对角方向相邻像素对,定量计算相邻像素的相关系数。
附图14描述了原始彩色图像和密文图像的R分量水平方向上相邻像素的相关性。图14(a)为原始图像R分量水平方向上相邻像素的相关性分析图,图14(b)为加密图像R分量水平方向上相邻像素的相关性分析图。按照实施例1中公式分别计算了明文图像和密文图像三基色分量在水平、垂直和对角方向上相邻像素的相关系数,结果如表5所示。从表5中容易看出,原始图像相邻像素高度相关,相关系数接近于1,而加密后的图像在各方向的相邻像素相关系数比明文图像要小得多,其相邻像素相关系数接近于0,相邻像素已基本不相关,明文的统计特征已被扩散到随机的密文中。
表5原始图像和加密图像相邻像素的相关系数
5.NPCRR,G,B都大于99%,UACIR,G,B都大于33%,抗差分攻击能力强。
本实施例中,将原始明文图像的第一个像素值改为227后得到一个新的明文图像,然后将这两个图像用同样的密钥加密形成相应的密文图像C1和C2。计算密文图像的NPCR和UACI值如表6所示,可以看到NPCRR,G,B的值都大于99%,UACIR,G,B的值都大于33%。这表明,即使对原始图像做微小的变化,通过本算法进行加密后,密文图像也会有明显的差异。因此,本算法可以有效抵抗差分攻击。
表6密文图像的NPCR和UACI值
|
R分量 |
G分量 |
B分量 |
NPCR |
0.99056 |
0.99125 |
0.99035 |
UACI |
0.33527 |
0.33441 |
0.33469 |
6.密文图像R、G、B分量的信息熵非常接近理想值8,加密算法安全性好。
用本发明算法对实施例3原始彩色图像进行加密,得到密文图像R、G、B分量的信息熵分别为7.99900、7.99917、7.99906,非常接近理想值8,这表明本发明提供的加密算法具有很好的安全性。
综合上述实施例1、实施例2和实施例3可知,本发明提供的加密算法可对M=N或M≠N的彩色图像进行高安全的加密,在信息加密领域具有广阔的应用前景。
上面结合附图对本发明优选的具体实施方式和实施例作了详细说明,但是本发明并不限于上述实施方式和实施例,在本领域技术人员所具备的知识范围内,还可以在不脱离本发明构思的前提下作出各种变化。