本文提出了一种基于改进的Henon混沌映射与Bit位扰乱的彩色图像加密算法。首先,我们把明文图像的R、G、B三个通道合并成一个矩阵,同时还把其转换成二进制数;其次,把二进制数矩阵的行列进行扰乱,并把扰乱了的二进制数矩阵还原成十进制数矩阵;最后,把其分成三个像素个数相同的矩阵,再分别把三个矩阵进行按位“异或”运算,得到最终加密图像。实验结果和理论分析表明该算法具有密钥空间大,密钥敏感性高,能够有效地抵御统计分析和灰度值分析的攻击,对数字图像的加密具有良好的加密效果。 In this paper, we propose a color image encryption algorithm based on improved Henon chaotic map and Bit scrambling. First, we combine the three channels R, G, and B of the plaintext image into a matrix, and also convert it into a binary number. Secondly, the rows and columns of the binary number matrix are disturbed, and the disturbed binary number matrix is restored to a decimal number matrix. Finally, it is divided into three matrices with the same number of pixels, and then the three matrices are subjected to a bitwise XOR operation to obtain the final encrypted image. The experimental results and theoretical analysis demonstrate that the algorithm has a large key space. It can effectively resist the attacks of statistical analysis and gray value analysis, and has a good encryption effect on digital image encryption.
庄志本1,刘静漪1,陈世强2*
1湖北民族学院理学院,湖北 恩施
2湖北民族学院新材料与机电工程学院,湖北 恩施
收稿日期:2018年11月27日;录用日期:2018年12月13日;发布日期:2018年12月20日
本文提出了一种基于改进的Henon混沌映射与Bit位扰乱的彩色图像加密算法。首先,我们把明文图像的R、G、B三个通道合并成一个矩阵,同时还把其转换成二进制数;其次,把二进制数矩阵的行列进行扰乱,并把扰乱了的二进制数矩阵还原成十进制数矩阵;最后,把其分成三个像素个数相同的矩阵,再分别把三个矩阵进行按位“异或”运算,得到最终加密图像。实验结果和理论分析表明该算法具有密钥空间大,密钥敏感性高,能够有效地抵御统计分析和灰度值分析的攻击,对数字图像的加密具有良好的加密效果。
关键词 :Henon混沌映射,Bit位扰乱,彩色图像加密,按位“异或”运算
Copyright © 2019 by authors and Hans Publishers Inc.
This work is licensed under the Creative Commons Attribution International License (CC BY).
http://creativecommons.org/licenses/by/4.0/
随着计算机网络的高速发展,数字图像的信息安全也越来越受到人们的关注。因此,为了保护图像信息不受非法复制、使用和操纵,专家和学者提出了许多加密算法,比如用混沌序列去进行图像的比特位扰乱 [
在本文,我们提出了一种基于改进的Henon混沌映射 [
Henon映射方程的改进
传统的Henon映射方程:
{ x ( n + 1 ) = 1 + y ( n ) − a x ( n ) 2 y ( n + 1 ) = b x ( n ) (1)
当 a ∈ ( 0 , 1.4 ) , b = 0.3 时,Henon系统方程处于混沌状态。如图1所示。
图1. 混沌序列图
改进后的Henon系统方程:
{ x ( n + 1 ) = 1 + a y ( n ) − b x ( n ) 2 y ( n + 1 ) = c x ( n ) − d x ( n ) 2 (2)
当 a = 0.001 , b ∈ ( 0 , 2.2 ) , c = 0.3 , d = 1.2 时,改进后的Henon系统方程处于混沌状态。如图2所示。从图1、图2可以看出图2中处于混沌状态的范围更大。
图2. 改进后的混沌序列图
给定一个 3 M × N 的彩色图像 P ,加密步骤如下,
Step 1:把彩色图像 P 的R、G、B三个通道上的矩阵分别取出来,同时把这三个矩阵按行合并成一个
Step 2:把 P 1 转换成一行 3 M × N 列的矩阵 P 2 ,同时把 P 2 转换成二进制数矩阵 P 3 。
Step 3:输入初始密钥 a = 0.001 , b = 1.8 , c = 0.3 , d = 1.2 , x ( 1 ) = 0 , y ( 1 ) = 0 ;迭代系统(2) 3 M × N 次,产生两条混沌序列 x , y 。
Step 4:把混沌序列 x 和 y 做如下处理:
H 1 = m o d ( r o u n d ( x × 10 40 ) , 7 ) + 1 (3)
(4)
y 1 = m o d ( r o u n d ( a b s ( y ( 4 : ( 4 + M × N ) ) ) × 10 16 ) , 256 ) (5)
(6)
其中 H 1 ∈ ( 1 , 7 ) ; m o d 为求模运算;
Step 5:把 P 3 中的每一行二进制数分别进行扰乱,得到矩阵 P 4 ,扰乱公式如下:
P 4 ( j 1 , : ) = c i r c s h i f t ( P 3 ( j 1 , : ) , H 1 ( ( j 1 ) , 2 ) ; j 1 = 1 , 2 , ⋯ , 3 M × N (7)
其中 Z ( j 1 , : ) 是矩阵 Z 的第 j 1 行的所有列, 是把行向量 A 的所有元素按顺时针方向移动 k 个单位;
Step 6:把矩阵 P 4 的第1列与第2列互换;第3列与第4列互换;第5列与第6列互换;第7列与第8列互换,得到矩阵 P 5 。
Step 7:把 P 5 转换成十进制数,再把已经转换成十进制数的 P 5 转换成1行 3 M × N 列的矩阵 P 6 ;
Step 8:把 P 6 ( 1 : M × N ) 与 x 1 进行按位“异或”运算,得到一个新的序列
Step 9:把 P 6 ( ( M × N + 1 ) : 2 × M × N ) 与 y 1 进行按位“异或”运算,得到一个新的序列 ,把 P 9 转换成 M × N 的矩阵 P 10 。
Step 10:把 P 6 ( ( 2 × M × N + 1 ) : 3 M × N ) 与 p 进行按位“异或”运算,得到一个新的序列 P 11 ,把 P 11 转换成 M × N 的矩阵 P 12 。
Step 11:把 P 8 、 P 10 、 P 12 作如下处理,得到矩阵 P 13 ,即最终的加密图像, P 13 ( : , : , 1 ) = P 8 ;
P 13 ( : , : , 2 ) = P 10 ;
13 ( : , : , 3 ) = P 12 。 (8)
Step 1:把矩阵 P 13 作如下处理,得到矩阵 P 14 、 P 15 、 P 16 ,
P 14 = P 13 ( : , : , 1 ) ;
P 15 = P 13 ( : , : , 2 ) ;
P 16 = P 13 ( : , : , 3 ) 。 (9)
Step 2:输入初始密钥 a = 0.001 , b = 1.8 , c = 0.3 , d = 1.2 , x ( 1 ) = 0 , y ( 1 ) = 0 ,迭代系统(2) 3 M × N 次,产生两条混沌序列 。
Step 3:把混沌序列 x 和 做如下处理:
H 1 = m o d ( r o u n d ( x × 10 40 ) , 7 ) + 1 (10)
x 1 = m o d ( r o u n d ( a b s ( x ( 4 : ( 4 + M × N ) ) ) × 10 16 ) , 256 ) (11)
y 1 = m o d ( r o u n d ( a b s ( y ( 4 : ( 4 + M × N ) ) ) × 10 16 ) , 256 ) (12)
p = m o d ( r o u n d ( a b s ( y ( ( 2 M × N + 1 ) : e n d ) + x ( ( M × N + 1 ) : 2 M × N ) ) × 10 16 ) , 256 ) (13)
Step 4:把 H 1 序列作如下处理:
H 2 ( i ) = 8 − H 1 ( i ) (14)
Step 5:把 P 16 、 、 P 14 分别进行按位“异或”运算,得到序列 P 17 、 P 18 、 P 19 ,再把序列 P 17 、 P 18 、 P 19 做如下处理,得到序列 P 20 ,
P 20 ( 1 : M × N ) = P 19
P 20 ( ( M × N + 1 ) : 2 × M × N ) = P 18
(15)
Step 6:把 P 20 转换成二进制数,同时把已经转换成二进制数的 P 20 的列和行还原,得到矩阵 P 21 。
Step 7:把 P 21 转换成十进制数,并且转换成 3 M × N 的矩阵 。
Step 8:把 P 22 做如下处理,得到矩阵 P 23 ,解密图像 P ,
P 23 ( : , : , 1 ) = P 22 ( 1 : M , : ) ;
P 23 ( : , : , 2 ) = P 22 ( ( M + 1 ) : 2 M , : ) ;
P 23 ( : , : , 3 ) = P 22 ( ( 2 M + 1 ) : 3 M , : ) 。 (16)
PC机配置:Intel (R) Core (TM) i3-4170 CPU @ 3.70 GHz 3.70 GHz,内存4 GB,Windows7 32位操作系统。通过Matlab R2014a编写程序实现上述加密算法。
实验选取了经典的Lena,baboon,boat 3幅彩色图像,其大小均为256 × 256,对于其它大小的彩色图像也同样适用。明文图像,加密图像和解密图像如图3所示。
决定图像加密算法强度的最重要因素之一是密钥空间的大小。本文的初始密钥由 a = 0.001 , b = 1.8 , c = 0.3 , d = 1.2 , x(1) = 0 , y(1) = 0 组成,以计算机精度为 10 − 15 计算的话,本算法的密钥空间大于 2 150 。如果一种图像加密算法的密钥空间大于 2 100 ,则它就是安全的 [
图3. 明文图像,加密图像和解密图像
算法 | 本算法 | 文献 [ | 文献 [ |
---|---|---|---|
密钥空间 | 10 90 | 10 80 | 10 45 |
表1. 本算法与其它算法的密钥空间比较结果
直方图可以很好的反映图像像素值的分布情况,直方图越平坦则像素值分布就越均匀。图4是Lena的原图像R、G、B三个通道直方图和加密后图像R、G、B三个通道的直方图。
信息熵是最重要的随意因素之一。计算公式如下:
H ( m ) = − ∑ i = 1 L p ( m i ) log 2 p ( m i ) (17)
这里的 p ( m i ) 是 m i 的机率, 是 m i 的总数量。对于灰度图像来说,信息熵的最大值为8。Lena、baboon和boat的信息熵值如表2所示。
图4. Lena的原图像R、G、B三个通道直方图和加密后图像R、G、B三个通道的直方图
图像 | Lena图像 | baboon图像 | boat图像 |
---|---|---|---|
原图像 | 7.7700 | 7.3647 | 7.8805 |
密文图像 | 7.9991 | 7.9977 | 7.9991 |
表2. 明文图像与加密图像的信息熵分析表
不动点比为图像加密后灰度值未发生变化的像素点占所有像素点的百分比,计算公式如(18)所示;而灰度平均变化值能更好的评价加密图像灰度变化的程度,计算公式如(19)所示。
B D ( G , C ) = ∑ i = 1 M ∑ j = 1 N f ( i , j ) M N × 100 % ,其中 f ( i , j ) = { 1 , g i j = c i j 0 , g i j ≠ c i j (18)
由公式(18)计算出本算法的不动点比如下表3所示:
图像 | 总像素数 | 不动点数 | 不动点比 |
---|---|---|---|
Lena图像 | 65,536 | 778 | 0.40% |
baboon图像 | 65,536 | 746 | 0.38% |
boat图像 | 65,536 | 794 | 0.40% |
表3. 加密图像不动点比分析表
G A V E ( C , G ) = ∑ i = 1 M ∑ j = 1 N | c i j − g i j | M N (19)
其中 G 为明文图像, C 为密文图像。根据公式(19)计算出本算法的灰度平均变化值如下表4所示:
图像 | Lena图像 | baboon图像 | boat图像 |
---|---|---|---|
灰度平均变化值 | 77.6490 | 91.5245 | 79.7772 |
表4. 灰度平均变化值分析表
本文提出了一种基于改进的Henon混沌映射与Bit位扰乱的彩色图像加密算法。首先,我们把明文图像的R、G、B三个通道合并成一个矩阵,同时还把其转换成二进制数;其次,把二进制数矩阵的行列进行扰乱,并把扰乱了的二进制数矩阵还原成十进制数矩阵;最后,把其分成三个像素个数相同的矩阵,再分别把三个矩阵进行按位“异或”运算,得到最终加密图像。实验结果和理论分析表明该算法具有密钥空间大,密钥敏感性高,能够有效地抵御统计分析和灰度值分析的攻击,对数字图像的加密具有良好的加密效果。
湖北民族学院博士启动基金项目(MY2018B014)。
庄志本,刘静漪,陈世强. 一种基于混沌与Bit位扰乱的彩色图像加密算法 A Color Image Encryption Algorithm Based on Chaos and Bit Disturbance[J]. 图像与信号处理, 2019, 08(01): 15-23. https://doi.org/10.12677/JISP.2019.81003