本文将4D Lorenz混沌映射应用在彩色图像加密中,并简要的分析了4D Lorenz混沌映射的动力学性质,基于这个映射,设计了一种位平面置乱和扩散的图像加密算法。在传统的置乱–扩散结构中,置乱和扩散一般是两个独立的部分,本文算法将位平面置乱和扩散同时进行。位平面置乱采用循环移位,扩散采用异或和取反操作。此外为了提高抵抗已知明文攻击和选择明文攻击的能力,与原文相关的SHA-256将应用在密钥流产生器中,因此不同的明文将产生完全不同的密钥流。最后对本文提出的加密算法进行了相关的性能分析,如密钥分析、敏感性分析、统计分析等等,基于所有仿真实验分析,本文所提出的算法,在数字图像加密中具有较好的性能。 In this paper, a 4D Lorenz map is proposed using in cryptography. Performance evaluations show that it has hyper-chaotic behavior, wide chaotic range and large complexity. Based on this map, a novel image encryption algorithm is designed by employing bit-level permutation and diffusion. In traditional permutation-diffusion structure, the permutation and substitution generally are two independent parts. In this article, encryption algorithm is designed by employing bit-level permutation and diffusion simultaneously. The bit-level permutation is performed by circular shifting, and the bit-level diffusion is carried out by exclusive or (xor) and reverse operations. In addition, to achieve the better ability of resisting chosen-plaintext or known-plaintext attack, the substitution key stream generated using SHA-256 in our method is dependent on the plain image. Consequently, different plain images produce the distinct key stream for substitution. The simulation results and performance analysis show that the proposed image encryption algorithm is both secure and reliable for image encryption.
黎桠娟,叶瑞松*
汕头大学数学系,广东 汕头
收稿日期:2018年8月25日;录用日期:2018年9月7日;发布日期:2018年9月14日
本文将4D Lorenz混沌映射应用在彩色图像加密中,并简要的分析了4D Lorenz混沌映射的动力学性质,基于这个映射,设计了一种位平面置乱和扩散的图像加密算法。在传统的置乱–扩散结构中,置乱和扩散一般是两个独立的部分,本文算法将位平面置乱和扩散同时进行。位平面置乱采用循环移位,扩散采用异或和取反操作。此外为了提高抵抗已知明文攻击和选择明文攻击的能力,与原文相关的SHA-256将应用在密钥流产生器中,因此不同的明文将产生完全不同的密钥流。最后对本文提出的加密算法进行了相关的性能分析,如密钥分析、敏感性分析、统计分析等等,基于所有仿真实验分析,本文所提出的算法,在数字图像加密中具有较好的性能。
关键词 :超混沌4D映射,位平面,密钥流产生器
Copyright © 2018 by authors and beplay安卓登录
This work is licensed under the Creative Commons Attribution International License (CC BY).
http://creativecommons.org/licenses/by/4.0/
在现代的数字图像技术中,二维彩色数字图像扮演着越来越重要的角色。一副二维数字图像中携带着许多可视化的有意义的数据,如果秘密图像被泄露,落入不法犯罪分子之手,将会造成极大的信息安全问题,因此信息安全问题就显得非常重要 [
1989年,Matthews首次提出基于混沌系统的加密方案 [
与像素平面置换相比,位平面置换不仅改变像素位置,而且改变像素值 [
本文的结构如下,在第2节,介绍超混沌Lorenz系统,给出了它的混沌吸引子与 图形,简要分析了它的动力学性质。在第3节提出基于Lorenz图像加密算法。第4节,对本文提出的加密算法进行了相关的性能分析,如密钥分析、敏感性分析、统计分析等等,基于所有仿真实验分析,本文所提出的算法,在数字图像加密中具有较好的性能。最后在第5节给出了本文的总结。
本节介绍4D超混沌 系统模型,它的数学定义为:
x ˙ = a ( y − x ) + w y ˙ = c x − y − x z z ˙ = x y − b z w = − y z + r w (1)
其中 a , b , c , r 是系统(1)的参数,系统的初始值范围: x 0 ∈ ( − 40 , 40 ) , y 0 ∈ ( − 40 , 40 ) , z 0 ∈ ( 1 , 81 ) ,
w 0 ∈ ( − 250 , 250 ) ,这些初始值将被用来当作整个系统的密钥。当 a = 10 , b = 8 3 , c = 28 , − 1.52 ≤ r ≤ − 0.06 时,
系统处于超混沌状态,且当 r = − 1 时,(1)的4个Lyapunov指数依次为 λ 1 = 0.3381 , λ 2 = 0.1586 , λ 3 = 0 , λ 4 = − 15.1752 。因为此时系统由两个正的Lyapunov指数,所以(1)会展现出超混沌状态,图1是(1)的几个不同平面的吸引子,图2是系统(1)的4个Lyapunov指数图。
为了满足明文攻击抵抗,比较流行的方法是取得明文的固有特征,然后将其隐藏在原始密钥流里面,这样混沌系统产生的密钥流则不仅跟初始值有关,还跟明文相关。即不同的明文会产生完全不同的密钥流。明文特征提取的方法通常包括hash值,所有像素的和,计算汉明距离等等 [
d 1 = h e x 2 d e c ( h i ) 2 64 , i = 1 , ⋯ , 4 . (2)
图1. 超混沌Lorenz系统的吸引子,(a) x – y;(b) x – z;(c) x – w;(d) y – z;(e) y – w;(f) z – w
图2. (1)的Lyapunov指数图
图3. 产生密钥的流程图
输入初始值 x 0 , y 0 , z 0 , w 0 作为密钥,根据(3),将所有密钥相加
s = x 0 + y 0 + z 0 + w 0 mod 1 . (3)
根据(4),更新所有初始值,这些初始值将被应用在迭代系统(1)中。
x 0 = d 1 + x 0 + s mod 40 ; y 0 = d 2 + y 0 + s mod 40 ; z 0 = d 3 + z 0 + s mod 81 ; w 0 = d 4 + w 0 + s mod 250 (4)
密钥产生器的详细结构展示在算法1。
图4展示R通道的算法加密结构,其余通道加密方式一样。首先由超混沌映射Lorenz产生4个跟明文相关的序列,然后将彩色明文P分解成R,G,B三个通道,再将每个通道分解成比特平面(BBD) [
算法1:密钥产生器
输入:超混沌Lorenz映射的初始值x0,y0,z0,w0以及用来避免瞬态效应的参数L,和明文P;
输出:序列x1,M × N,y1,M × N,z1,M × N,w1,M × N,这些序列将被用在整个系统中;
1. 设置超混沌Lorenz映射的参数a = 10, b = 8/3, c = 28, r = −1;
2. 根据3.1,跟新初始值x0,y0,z0,w0;
3. 用更新后的初始值x0,y0,z0,w0,对超混沌Lorenz映射迭代,并得到4个序列x1,y1,z1,w1,再更新4个序列:x1 = x1 − ⌊x1⌋,y1=y1 − ⌊y1⌋,z1=z1 − ⌊z1⌋,w1=w1 − ⌊w1⌋,其中⌊ ⌋表示四舍五入。
4. 选取x,y,z,w:x = x1(L + 1:L + 1 + M × N),y = y1(L + 1:L + 1 + M × N),z = z1(L + 1:L + 1 + M × N),w = w1(L + 1:L + 1 + M × N);其中M,N表示明文大小。
算法2:图像加密
输入:明文彩色图像P,算法1中产生的混沌序列x, y, z, w;
输出:密图C;
1. 得到明文的三个通道R,G,B,并由BBD分解得到比特平面图像:Rbit,Gbit,Bbit;
2. 将Rbit,Gbit,Bbit分别变成rM,8N,gM,8N,bM,8N,并初始化矩阵RBM,8N,GBM,8N,BBM,8N;
3. 处理混沌序列x,y,z,令X = x,X = floor(X × 1014) mod 256,再将X用比特平面表示,最后将X转换为大小为M × 8N,y,z也做同样操作,得到X,Y,Z;
4. for i=1:M
5. kr = floor(abs(x(i))×105) mod M 对R通道的置乱扩散,floor表示向下取整;
6. tr = circshift(r(i,:)', kr)' circshift表示循环移位函数;
7. if i==1
8. RB(i,:)=bitxor(tr,r(end,:)) bitxor表示异或;
9. else
10. RB(i,:)=bitxor(bitxor(tr,RB(i-1,:)),X(i,:));
11. end
12. if w(i)>0
13. RB(i,:)=fliplr(RB(i,:) fliplr表示取反;
14. end
15. kg = floor(abs(y(i))×105) mod M对G通道的置乱扩散;
16. tg = circshift(g(i,:)', kg)'
17. if i==1
18. GB(i,:)=bitxor(tg,g(end,:))bitxor表示异或;
19. else
20. GB(i,:)=bitxor(bitxor(tg,GB(i-1,:)),Y(i,:));
21. end
22. if w(i)<0.2
23. GB(i,:)=fliplr(GB(i,:);
24. end
25. kb = floor(abs(z(i))×105) mod M 对B通道的置乱扩散;
26. tb = circshift(b(i,:)', kb)'
27. if i==1
28. BB(i,:)=bitxor(tb,b(end,:));
29. else
30. BB(i,:)=bitxor(bitxor(tb,BB(i-1,:) ),Z(i,:));
31. end
32. 接下来对三个通道(R,G,B)的列进行类似的移位异或取反操作,这边仅给出 通道,其余类似不再赘叙;
33. 初试化矩阵RBCM,8N,GBCM,8N,BBCM,8N,令A = 8 × N;
34. for i=1:8×N
35. kr = floor(abs(y(i))×108) mod A;;
36. tr = circshift(RB(:,i), kr);
37. i==1
38. RBC(:,i)=bitxor(tr,RB(:,end));
39. else
40. RBC(:,i)=bitxor(bitxor(tr,RBC(:,i-1)),Y(:,i));
41. end
42. if w(i)>0
43. RBC(:,i)=fliplr(RBC(:,i);
44. end
45. 再对G,B通道做类似的操作;
46. end
47.分别将RBC,GBC,BBC转换为像素平面矩阵,再组合成一幅密图C。
本文采用MatlabR2016a对本文提出的图像加密算法进行仿真实验,分别对彩色图Lena,Tiffany,Mandrill用本文提出的算法用密钥key进行加密,它们的图像尺寸均为512 × 512,其实验结果如图5,
图4. R通道加密流程图
图5. (a)~(h)分别对应Lena (a),Tiffany (d),Mandrill (g)的明文、密文图像和解密图像
从解密与加密图可以看出,所有密文呈现杂乱无章且无明显纹理,直观上说明我们的算法加密效果可行。
Key = [ x 0 = 1.751231 ; y 0 = 1.53262871 ; z 0 = 13.18344121 ; w 0 = 1.627362 ; L = 2000 ]
本节将通过直方图、相邻像素之间的相关性和信息熵这几个方面来评估算法抵抗统计攻击的能力。
图像的直方图反映了一副图像像素值的分布情况,为了对抗统计分析的强力攻击,图像的直方图最好是接近完全一致分布的,且与原图的直方图相比具有显著差异,对一幅数字彩色图像,则可以将其红、绿、蓝三个通道各看作一幅特殊的灰度图像,用灰度图像的一维直方图方法去分析加密算法的性能,图6显示了 明文和密文的红、绿、蓝三个颜色通道的一维直方图。直观上可以看出,加密图像的直方图是接近完全一致分布的,且与原图具有显著差异,所以这个算法足够对抗统计分析的强力攻击。
一般地,数字图像具有异于文本的一些固有特性如数据的高度冗余、相邻像素的相关性非常强等,攻击者往往利用这些特性对密文图像进行攻击,一个理想的图像加密算法应该产生在水平、垂直、正对角方向上的相邻像素点间相关性都比较弱的密文图像 [
设从需要考察的图像中任取N对相邻的像素点,记它们的灰度值 ( u i , v i ) , i = 1 , 2 , ⋯ , N ,则向量 u = { u i } 和 v = { v i } 间的相邻系数计算公式如下:
r x y = cov ( u , v ) D ( u ) D ( v ) (5)
图6. (a)~(f)分别为Lena明文图像及其密文的红、绿、蓝颜色通道的直方图
cov ( u , v ) = 1 N ∑ i = 1 N ( x i − E ( u ) ) ( y i − E ( v ) ) (6)
D ( u ) = 1 N ∑ i = 1 N ( u i − E ( u ) ) 2 (7)
E ( u ) = 1 N ∑ i = 1 N u i (8)
在实验分析中,我们将从明文Lena及其密图中分别随机选取5000对像素,如图7所示,明文在水平、垂直、对角方向上的相邻像素点对密集在y = x直线上,说明明文图像在各个方向上具有颇强的相关性,而密文图像在各个方向上的像素点对在整个平面中均匀散布着,说明密文图像在各个方向上相关性很弱。同时我们计算了Lena,Mandrill,Tiffany的相关性系数,结果显示在表1。两个独立不相关的序列的相关系系数理论值为0,实验结果表明明文图像相邻像素点的相关性比较高,而密文图像相邻像素点的相关性接近于0,近似无相关性。
信息熵是反映一个信息源的随机性和不可预测性的数学概念。对于数字图像来说,信息熵反映了图像信息的不确定性。假设一副图像有L种灰度值 m i ( i = 0 , 1 , 2 , ⋯ , L − 1 ) ,且各灰度值出现的概率分别为 p ( m i ) ( i = 0 , 1 , 2 , ⋯ , L − 1 ) , 则根据Shannon定理,图像的信息量为:
水平 | 垂直 | 对角 | ||
---|---|---|---|---|
Lena | 明文 | 0.9886 | 0.9780 | 0.9698 |
密文 | −0.0150 | −0.0077 | −0.0118 | |
Mandrill | 明文 | 0.8493 | 0.9089 | 0.8278 |
密文 | −0.0039 | 0.0086 | −0.0127 | |
Tiffany | 明文 | 0.9741 | 0.9469 | 0.9324 |
密文 | −0.0344 | −0.0064 | −0.0053 |
表1. 明文与其密文分别在水平、垂直和对角方向上的相关系数
图7. (a),(b),(c)分别为明文和密文在水平、垂直和对角方向像素的分布
H ( m ) = ∑ i = 0 L − 1 p ( m i ) log 2 p ( m i ) , ∑ i = 0 L − 1 p ( m i ) = 1 (9)
称H为图像的信息熵,当图像中各灰度值出现的概率相等时,图像的信息熵最大,信息熵表示一副图像所包含信息的多少,它可以度量灰度值的分布,对于理想的随机图像,其信息熵等于8 [
密钥空间是指所有合法密钥构成的集合,图像密码系统的密钥空间应该足够大,从而可以有效地对抗穷举攻击,特别是加密解密速度非常快的密码系统,密码长度至少应该为128b [
钥空间至少约为: L = log 2 ( 10 16 ) 4 ≈ 213 b ,这个值远远大于128b,这意味着我们的算法能够经受得住暴力破解。
为了保证系统的安全性,一个优良的加密系统必须对密钥极端敏感,即当使用不同的密钥对密码图像进行解密时,将得不到明文。在实验中,我们将用密钥key去加密Lena,得到密图,而用几个与key差别极其微小的密钥去解密密图,如果系统足够敏感的话,是无法得到明文的,图8展示了密钥敏感性测试,同时,表4展示了用key1~key5解密图与用key加密的密图之间的NPCR和UACI。
key = [ x 0 = 1.751231 ; y 0 = 1.53262871 ; z 0 = 13.18344121 ; w 0 = 1.627362 ; L = 2000 ]
key1 = [ x 0 = 1.75123100000001 ; y 0 = 1.53262871 ; z 0 = 13.18344121 ; w 0 = 1.627362 ; L = 2000 ]
key2 = [ x 0 = 1.751231 ; y 0 = 1.53262871000001 ; z 0 = 13.18344121 ; w 0 = 1.627362 ; L = 2000 ]
key3 = [ x 0 = 1.751231 ; y 0 = 1.53262871 ; z 0 = 13.18344121000001 ; w 0 = 1.627362 ; L = 2000 ]
key4 = [ x 0 = 1.751231 ; y 0 = 1.53262871 ; z 0 = 13.18344121 ; w 0 = 1.62736200000001 ; L = 2000 ]
Lena | Mandrill | Tiffany | |
---|---|---|---|
明文图像 | 7.7502 | 7.7624 | 6.4165 |
密文图像 | 7.9998 | 7.9997 | 7.9998 |
表2. 信息熵实验结果
红色通道 | 绿色通道 | 蓝色通道 | |
---|---|---|---|
明文Lena | 7.2531 | 7.5940 | 6.9684 |
本文算法 | 7.9993 | 7.9994 | 7.9994 |
明文Tiffany | 4.3372 | 6.6643 | 6.4288 |
本文算法 | 7.9993 | 7.9992 | 7.9993 |
明文Mandrill | 7.7067 | 7.4744 | 7.7522 |
本文算法 | 7.9994 | 7.9993 | 7.9993 |
表3. 不同明文图像和分别对应本文算法得到密文图像的各颜色通道信息熵
图8. 加密敏感性测试:(a)~(f)分别为用key和key1~key 5去解密key所产生密文的明文
key1 | key2 | key3 | key4 | key5 | |
---|---|---|---|---|---|
NPCR | 99.5988 | 99.6180 | 99.6213 | 99.6105 | 99.6156 |
UACI | 33.4960 | 33.4326 | 33.4761 | 33.4776 | 33.5060 |
表4. 用极小差别密钥解密的图片与密文的NPCR和UACI (%)
key5 = [ x 0 = 1.751231 ; y 0 = 1.53262871 ; z 0 = 13.18344121 ; w 0 = 1.627362 ; L = 2001 ]
在图像加密系统中,差分分析指探究在相同加密密钥的条件下,密文图像会在多大程度上受明文图像的影响,攻击者通常通过选择明文分析或选择密文分析来实现差分攻击,为了测试加密系统对明文的极端敏感性,采用两个常用的度量:不同密文图像之间的像素改变率(number of pixels change rate, NPCR)和不同密文图像之间的一致改变强度(unified average changing intensity, UACI),NPCR是用来比较两幅图像相应位置的像素点的值,记录不同的像素点个数占全部像素点的比例,而UACI则是比较两幅图像相应位置的像素点的值,记录它们的差值,然后计算全部相应位置像素点的差值与最大差值(即255)的比值的平均值。在数学上,它们定义如下:
NPCR = 1 W × H ∑ i = 0 H ∑ j = 0 W D ( i , j ) × 100 % (10)
UACI = 1 W × H ∑ i = 0 H ∑ j = 0 W | c 1 ( i , j ) − c 2 ( i , j ) | 255 (11)
D ( i , j ) = { 0 if c 1 ( i , j ) = c 2 ( i , j ) 1 if c 1 ( i , j ) ≠ c 2 ( i , j ) (12)
W , H 分别是图像的行数和列数, c 1 ( i , j ) , c 2 ( i , j ) 分别是对应需要被衡量的两幅图像,本文指用同一个密钥加密仅改变一个明文像素值的两幅密图。理论上来说两幅随机图像的NPCR,UACI理论期望值分别约为99.6094%,33.4635%,本文将用彩色图像Lena和Mandrill来完成差分实验,对于每一个实验图片,将随机选取1000个像素点,每次改变一个像素值,得到一个新的图像,然后用同样的密钥去加密两个相差仅一个像素的原密钥加密仅改变一个明文像素值的两幅密图。理论上来说两幅随机图像的NPCR,UACI理论期望值分别约为99.6094%,33.4635%,本文将用彩色图像Lena和Mandrill来完成差分实验,对于每一个实验图片,将随机选取1000个像素点,每次改变一个像素值,得到一个新的图像,然后用同样的密钥去加密两个相差仅一个像素的原图,实验数据结果呈现在表5,表6以及NPCR,UACI的曲线变化图如图9所示。期望值分别约为99.6094%,33.4635%,本文将用彩色图像Lena和Mandrill来完成差分实验,同时对于明文Lena图像的每个颜色通道,随机地选取的100个像素值,对每个灰度值仅随机改变1个像素值,然后用本文提出加密算法去加密改变前后的明文图像Lena,得到对应每个颜色通道的100个NPCR,UACI曲线变化图如图10所示,实验数据结果呈现在表7。实验结果表明,本文提出的算
明文 | 最小值 | 最大值 | 平均值 |
---|---|---|---|
Lena | 99.5852 | 99.6283 | 99.6094 |
Mandrill | 99.5883 | 99.6304 | 99.6098 |
表5. 不同明文的NPCR (%)
明文 | 最小值 | 最大值 | 平均值 |
---|---|---|---|
Lena | 33.3672 | 33.5258 | 33.4606 |
Mandrill | 33.3909 | 33.5423 | 33.4698 |
表6. 不同明文的UACI (%)
红色通道 | 绿色通道 | 蓝色通道 | |
---|---|---|---|
NPCR最大值 | 99.6349 | 99.6471 | 99.6429 |
NPCR最小值 | 99.5815 | 99.5853 | 99.5689 |
UACI最大值 | 33.5456 | 33.5912 | 33.5318 |
UACI最小值 | 33.3560 | 33.3750 | 33.3440 |
NPCR平均值 | 99.6091 | 99.6097 | 99.6103 |
UACI平均值 | 33.4612 | 33.4743 | 33.4406 |
表7. Lena图像改变前后对应密文之间的NPCR和UACI序列的最大值、最小值和平均值(%)
图9. 只改变一个像素值的1000张图片的NPCR和UICA,(a) NPCR,(b) UACI
图10. (a)~(c)和(d)~(f)分别是明文图像改变前后得到的密文之间的NPCR和UACI变化曲线
法所得的NPCR,UACI值极其地接近期望值,这表明本文算法达到一个优良的扩散性能,它对原文非常敏感。所以它能够抵抗差分攻击。
本文提出基于高维超混沌映射的位平面彩色图像加密算法。首先通过空间相位图、Lyapunov指数图简要地分析了高维混沌映射Lorenz的动力学性质,然后基于高维混沌映射设计了一种彩色图像加密算法,在传统的置乱–扩散结构中,置乱和扩散一般是两个独立的部分,本文算法将位平面置乱和扩散同时进行,位平面置乱采用循环移位,扩散采用异或和取反操作。同时为了提高抵抗已知明文攻击和选择明文攻击的能力,与原文相关的SHA-256将应用在密钥流产生器中,因此不同的明文将产生完全不同的密钥流。最后有关本文提出算法的重要安全性能分析被提出,包括密钥分析、敏感性分析和统计分析等,所有的实验结果均表明,本文提出算法具有较强的鲁棒性,因而具有一定的应用价值。
黎桠娟,叶瑞松. 基于超混沌映射的位平面彩色图像加密算法 A Novel Hyper-Chaos-Based Colorimage Encryption Algorithm Using Bit-Level Permutation and Diffusion[J]. 计算机科学与应用, 2018, 08(09): 1382-1395. https://doi.org/10.12677/CSA.2018.89150
https://m.21jingji.com/article/20180723/herald/e830a398a17071d0c91657d3088969d1.html, 2018-7-26.
https://doi.org/10.1109/TCSVT.2006.888840
https://doi.org/10.1016/j.optlaseng.2016.10.020
https://doi.org/10.1016/j.sigpro.2017.07.034
https://doi.org/10.1016/j.optlaseng.2016.02.002
https://doi.org/10.1016/j.compeleceng.2016.12.025
https://doi.org/10.1016/j.ins.2017.02.036
https://doi.org/10.1016/j.ijleo.2014.06.149
https://doi.org/10.1016/j.ins.2010.11.009
https://doi.org/10.1080/0161-118991863745
https://doi.org/10.1109/ICSMC.1997.638097
https://doi.org/10.1142/S021812749800098X
https://doi.org/10.1016/j.neucom.2017.12.048
https://doi.org/10.1016/j.sigpro.2017.08.020
https://doi.org/10.1016/j.ijleo.2017.09.099
https://doi.org/10.1016/j.optlaseng.2015.03.022
https://doi.org/10.1016/j.ijleo.2015.11.221
https://doi.org/10.1007/s11042-015-2851-7
https://doi.org/10.1016/j.asoc.2012.01.016
https://doi.org/10.1016/j.sigpro.2014.01.020
https://doi.org/10.1016/j.sigpro.2017.03.011