东北大学 软件学院, 辽宁 沈阳 110169
收稿日期:2020-02-07
基金项目:国家自然科学基金青年基金资助项目(62902057); 辽宁省自然科学基金资助项目(2020-MS-083); 辽宁省博士科研启动基金资助项目(2019-BS-084)。
作者简介:周红亮(1994-), 男, 吉林汪清人, 东北大学硕士研究生。
摘要:针对现有图像加密算法的加密、解密速度问题, 提出了一种与DNA编码相结合的快速图像加密算法,采用新4维混沌系统产生的混沌序列作为索引序列, 指明置乱过程中要交换的具体位置.对置乱后的图像进行DNA编码, 采用规则1的DNA加法法则和DNA异或法则完成扩散过程后, 再用不同的规则进行DNA解码, 从而完成二次加密.实验结果表明:本文提出的方法在保证图像加密系统安全的同时, 减少了置乱过程中循环遍历的次数, 从而提升了加密和解密的速度.
关键词:图像加密DNA编码置乱扩散混沌系统
Fast Chaotic Image Encryption Algorithm Combined with DNA Encoding
ZHOU Hong-liang, LIU Hong-juan
School of Software, Northeastern University, Shenyang 110169, China
Corresponding author: ZHOU Hong-liang, E-mail: lancechou@126.com.
Abstract: Aiming at the speed of encryption and decryption of existing image encryption algorithms, a fast image encryption algorithm combined with DNA encoding is proposed using the chaotic sequence generated by the new 4-D chaotic system as the index sequence to indicate the specific position to be exchanged during the permutation process. DNA encoding is performed on the permuted image, and the diffusion process is completed by the DNA addition and DNA XOR of rule 1, then different rules are used for DNA decoding to complete the secondary encryption.The experimental results show that the proposed method reduces the number of loop traversals of permutation process while ensuring the security of the image encryption system, thereby increasing the speed of encryption and decryption.
Key words: image encryptionDNA encodingpermutationdiffusechaotic system
由于图像的冗余度高、数据容量庞大、承载大量信息的数字图像所占比例大, 传统的文本加密方法在对图像加密时, 加密和解密的速度慢、能力弱.为了解决这个问题, 人们开始尝试寻找新的方法用于图像加密.主要的方法包括: 信息隐藏(水印和隐写术)和加密(通常结合混沌系统使用).
近年来, 随着国内外研究人员的多种尝试, 图像加密方法越来越多元化.这些方法大致可分为以下几类: 基于混沌[1]、信息隐藏[2]、压缩感知[3]、DNA编码[4]、光学[5]、哈希[6]和神经网络[7].在图像加密中, 通常不会仅使用一种方法, 而是多种方法结合使用, 比如混沌系统和压缩感知结合完成图像加密.其中DNA编码因其巨大的并行性和高密度数据存储的特性, 引起了许多研究人员的兴趣, 随即出现了很多与DNA编码相关的图像加密算法[8-10].
本文利用新4维混沌系统生成的混沌序列作为索引序列, 指明置乱过程中需要交换的具体位置.再对置乱后的矩阵进行DNA编码, 执行扩散步骤, 对明文序列与密文序列进行DNA运算的同时, 完成对像素值的扩散.最后, 对加密后的矩阵用不同的规则进行DNA解码, 从而完成二次加密.本文的关键点在于减少了置乱次数, 使加密和解密的速度得到了较大提高.同时, 在加密扩散过程使用了DNA加法法则和异或法则,加剧了图像加密系统的雪崩效应.
1 背景知识1.1 新4维混沌系统由于信息领域对混沌系统的高复杂性需求, 人们对于寻找具有多吸引子的混沌系统具有浓厚兴趣.文献[11]发现具有双翼奇异吸引子的新型4维混沌系统, 该混沌系统结构简单, 只有2个二次非线性项和2个不稳定平衡点.因此, 该混沌系统表现出自激混沌吸引子, 且运动轨迹较为复杂.构建的电子电路证明了仿真结果的正确性.该4维系统的动力学方程为
(1) |
新4维混沌系统的平面相图如图 1所示.
图 1(Fig. 1)
图 1 新4维混沌系统的平面相图Fig.1 Plane phase diagram of new 4-D chaotic system (a)—xy平面相图; (b)—zy平面相图; (c)—wz平面相图; (d)—xw平面相图. |
1.2 块平均变化强度当衡量指标像素变化率NPCR和归一化平均变化强度UACI的结果均接近理想值99.60%和33.46%时, 可以构造出一个图像, 它的视觉效果与原图像仍有点相似.为了解决这个问题, 文献[12]提出了一种评价图像加密质量的指标, 即块平均变化强度(block average changing intensity, BACI), 理想值为26.771 2%.
(2) |
差图像矩阵D是由|P1-P2|计算得来的, Di是差图像D中的一块, di1, di2, di3和di4是Di中的像素值.差图像D的分块方法如图 2所示.
图 2(Fig. 2)
图 2 差图像D分块方法示意图Fig.2 Block diagram of difference image D |
1.3 DNA编码1994年, Adleman[13]首次进行了DNA计算实验, 并将其作为1个新主题引入了信息时代.由于DNA密码学具有大规模并行性, 巨大的存储量和超低功耗等特性, 许多密码学家利用不同的DNA技术对图像进行加密.DNA序列由4个核苷酸组成, 即A(腺嘌呤), C(胞嘧啶), G(鸟嘌呤), T(胸腺嘧啶).其中A, T和G, C彼此互补.当使用4个核苷酸碱基编码00, 01, 10和11时, 仅存在24种编码方案, 在24个规则中仅有8条满足Waston-Crick互补规则, 如表 1所示.随着DNA计算的飞速发展, 研究人员提出了一些基于DNA序列的代数运算.DNA的异或、减法和加法运算是按照二进制中的异或、加法和减法进行的.对应于8种DNA规则, 存在8种DNA异或、8种DNA加法和8种DNA减法法则.
表 1(Table 1)
表 1 8种DNA映射规则Table 1 8 DNA mapping rules
| 表 1 8种DNA映射规则 Table 1 8 DNA mapping rules |
本文在扩散过程中没有使用减法法则, 只给出了规则1的异或和加法法则, 如表 2和表 3所示.以异或运算为例, 先将十进制整数1和2转化为二进制的形式, 即01和10.然后查找表 1中的规则1可以得到2个对应的DNA编码, 即C和G.然后查找表 2可以得到C和G,采用DNA异或运算的结果是T.最后再对T用规则1进行解码可得到二进制数11, 再转化成十进制就可得到最后的结果3.如果对T用规则3进行解密, 会得到错误的结果2, 因为1与2异或的结果应该是3.从中可以看出, 采取不同的规则进行解码可以看作另一种形式的加密.
表 2(Table 2)
表 2 规则1的DNA异或法则Table 2 DNA XOR of rule 1
| 表 2 规则1的DNA异或法则 Table 2 DNA XOR of rule 1 |
表 3(Table 3)
表 3 规则1的DNA加法法则Table 3 DNA ADD rule of rule 1
| 表 3 规则1的DNA加法法则 Table 3 DNA ADD rule of rule 1 |
本文的图像加密算法用规则2对图像矩阵进行编码, 用规则3对密钥矩阵进行编码, 用规则1的加法法则和异或法则完成扩散环节, 用规则5对加密后的图像矩阵进行解码.
2 算法描述本文的加密流程如图 3所示.先对原图像进行置乱, 再对置乱后的矩阵Pper进行DNA编码, 得到矩阵Pdna.对新4维混沌系统进行迭代生成密钥矩阵, 再对密钥矩阵进行DNA编码得到Kdna.利用Pdna和Kdna完成扩散过程得到密文矩阵Cdna, 再对其进行DNA解码得到最后的密文图像Cdna.
图 3(Fig. 3)
图 3 加密流程示意图Fig.3 Schematic diagram of encryption process |
具体的算法流程如下:
步骤1 ??将明文图像矩阵P作为参数放入哈希函数中, 生成长度为64的十六进制序列, 将索引0~15, 16~31, 32~47, 48~63的序列分别取出做如下变换:
x0=hex2dec(hex[0:16])×10-20,
y0=hex2dec(hex[16:32])×10-20,
z0=hex2dec(hex[32:48])×10-20,
w0=hex2dec(hex[48:64])×10-20.
将变换得到的结果x0, y0, z0和w0作为新4维混沌系统的初值.其中hex2dec()指的是将十六进制序列转换成十进制序列, hex[]指的是采用哈希函数生成十六进制序列.
步骤2 ??将初始值x0, y0, z0和w0代入新4维混沌系统中, 迭代MN/4+N次得到混沌值矩阵, 该混沌值矩阵为4行, MN/4+N列.根据该矩阵1~4行, 可得到整数序列X, Y, Z, W为:
X=mod((floor(mod(s1[N: ], 1)×1010)), 256),
Y=mod((floor(mod(s2[N: ], 1)×1011)), 256),
Z=mod((floor(mod(s3[N: ], 1)×1012)), 256),
W=mod((floor(mod(s4[N: ], 1)×1013)), 256).
式中: floor()是向下取整函数; mod()是取模函数; s1, s2, s3和s4是混沌值矩阵的第一行、第二行、第三行和第四行.根据s1, s2索引N~N+N/2-1的序列及将s3, s4索引N~N+M/2-1的序列做如下变形, 得到Xrow, Yrow, Zcol和Wcol:
Xrow=mod((floor(s1[N: end1], 1)×1010), M),
Yrow=mod((floor(s2[N: end1], 1)×1010), M),
Zcol=mod((floor(s3[N: end2], 1)×1010), N),
Wcol=mod((floor(s4[N: end2], 1)×1010), N).
式中: end1=N+N/2, end2=N+M/2.
步骤3 ??对明文P先进行置乱, 再进行列置乱, 获得置乱后的矩阵Pper.
for i in range(0, N/2):
swap(P[Xrow[i], : ], P[Yrow[i], : ]),
for j in range(0, M/2):
swap(P[: , Zcol[j]], P[: , Wcol[j]]).
其中: swap()是交换函数, 用来交换两个位置的像素值; range()是一个左闭右开的区间; i和j在这个区间内取整数.
步骤4?? 对Pper使用规则2进行DNA编码获得M行4N列的矩阵Pdna, 将序列X, Y, Z和W拼在一起获得密钥矩阵K, 用规则3进行DNA编码获得Kdna.
步骤5?? 用表 2中的异或法则和表 3中的加法法则对Pdna进行加密扩散:
解密过程是加密过程的逆过程, 不再详细赘述.
3 安全性分析实验采用图 4a和图 4b, 图 4c和图 4d是相对应的加密图像.
图 4(Fig. 4)
图 4 仿真结果Fig.4 Simulation results (a)—Lake原图像; (b)—Black原图像; (c)—Lake密文图像; (d)—Black密文图像. |
3.1 直方图分析图 5是原图像和加密图像的直方图, 横坐标表示像素值, 纵坐标表示像素值出现的频率.从图 5a可知原图像像素值的分布是不均匀的, 而图 5b的直方图分布变得非常均匀.Black图像只有一个像素值0, 也就是说在直方图中, 像素值为0的频率是65 536, 而其他像素值的频率是0, 因此, 直方图比较简单.由图 5c可知, 加密图像的直方图也比较均匀.
图 5(Fig. 5)
图 5 明文图像和密文图像的直方图Fig.5 Histogram of plaintext image and ciphertext image (a)—Lake直方图; (b)—Lake密文直方图; (c)—Black密文直方图. |
为了证明这种均匀不但是视觉上的均匀, 而且在理论上也是均匀分布的, 对密文图像进行卡方检验, 公式为
(3) |
3.2 相关性分析图 6是Lake明文图像、密文图像和Black密文图像的散点图.因为Black图像只有一个像素值, 它的散点图本文不再给出.
图 6(Fig. 6)
图 6 图像散点图Fig.6 Image scatter plot (a)—Lake明文图像水平方向散点图; (b)—Lake明文图像垂直方向散点图; (c)—Lake明文图像对角方向散点图; (d)—Lake明文图像反对角方向散点图; (e)—Lake密文图像水平方向散点图; (f)—Lake密文图像垂直方向散点图; (g)—Lake密文图像对角方向散点图; (h)—Lake密文图像反对角方向散点图; (i)—Black密文图像水平方向散点图; (j)—Black密文图像垂直方向散点图; (k)—Black密文图像对角方向散点图; (l)—Black密文图像反对角方向散点图. |
本次实验任意选取1 000个点来做散点图.图 6a横坐标指的是Lake原图像(x, y)处的像素值, 纵坐标指的是Lake原图像(x+1, y)处的像素值, 从坐标可以看出这两点是水平相邻的.图 6b横坐标指的是Lake原图像(x, y)处的像素值, 纵坐标指的是Lake原图像(x, y+1)处的像素值, 从坐标可以看出这两点是垂直相邻的.图 6c横坐标指的是Lake原图像(x, y)处的像素值, 纵坐标指的是Lake原图像(x+1, y+1)处的像素值, 从坐标可以看出这两点是在对角线上相邻的.图 6d横坐标指的是Lake原图像(x, y)处的像素值, 纵坐标指的是Lake原图像(x-1, y-1)处的像素值, 从坐标可以看出这两点在反对角线上是相邻的.如上所述, 图 6e、图 6f、图 6g和图 6h分别指的是Lake密文图像水平相邻、垂直相邻、对角相邻和反对角相邻的两个像素点, 图 6i、图 6j、图 6k和图 6l分别是Black密文图像水平相邻、垂直相邻、对角相邻和反对角相邻的两个像素点.为了定量分析相邻像素点的相关性, 采用如下公式进行计算:
(4) |
从图 6中可以看出, Lake明文图像的散点图在水平、垂直、对角和反对角上存在一定关系.经过计算得到水平、垂直、对角和反对角的相关系数分别为0.924 4, 0.941 0, 0.896 7和0.895 8.而Lake密文图像在水平、垂直、对角和反对角上的分布就比较均匀, 相邻像素之间不存在关系.
相关系数值对比如表 4所示.可知加密图像的水平、垂直、对角和反对角的相关系数均接近于0.观察Black图像可知, 虽然它只有一个像素值, 但通过本文提出的加密方法进行加密后, 像素值的分布依然是比较均匀的.由表 4可知, Black密文的水平、垂直、对角和反对角相关系数也接近于0.需要注意的是本文没有给出Black图像的相关系数, 因为Black只有一个像素值, 使得被除数为0, 用相关系数公式无法计算出结果.
表 4(Table 4)
表 4 相关系数对比Table 4 Correlation coefficient comparison
| 表 4 相关系数对比 Table 4 Correlation coefficient comparison |
实验结果表明, 文献[9]、文献[10]、文献[14]和本文提出的算法均可以使加密后的图像的任意两个相邻像素点不相关.这可以很好地对抗基于相关特性的攻击.
3.3 敏感性分析对图像敏感性的分析主要有3个指标, 即像素变化率(number of pixels change rate, NPCR), 归一化平均变化强度(unified average changing intensity, UACI)和BACI.NPCR是为了记录对应位置像素值不相同的数目占全部像素点的比例, 其理论期望值是99.609 4%.UACI记录对应位置像素值不同的程度, 它能够弥补NPCR的不足, 其理论期望值为33.463 5%.NPCR和UACI的计算式分别为
(5) |
(6) |
明文敏感性具体数值对比如表 5所示.为了检验明文敏感性, 对明文进行微小扰动, 任取一个位置, 对该位置的像素值加1或减1, 图像加密算法其他环节保持不变, 将加密后获得的密文与图 4c和图 4d进行比较, 得到的NPCR, UACI和BACI结果均接近各自的理想值.
表 5(Table 5)
表 5 明文敏感性对比Table 5 Plaintext sensitivity comparison ?
| 表 5 明文敏感性对比 Table 5 Plaintext sensitivity comparison ? |
密钥敏感性具体数值对比如表 6所示.本文的密钥由x0, y0, z0和w0构成, 为了测试密钥敏感性,需要对密钥作出微小改变.比如对x0作出微小改变, 即令x0=x0+10-16, 图像加密过程其他环节保持不变, 将加密后的密文同图 4c和图 4d比较, 得到的NPCR, UACI和BACI同样接近各自的理想值.
表 6(Table 6)
表 6 密钥敏感性对比Table 6 Key sensitivity comparison ?
| 表 6 密钥敏感性对比 Table 6 Key sensitivity comparison ? |
从表 5和表 6的敏感性对比可以看出, 文献[9]、文献[10]、文献[14]和本文提出的加密方法对于明文图像和密钥是非常敏感的, 即使有很微小改动, 都会导致密文具有很大的差别.因此这4种图像加密算法都具备很强的抗差分攻击能力.
3.4 密钥空间分析本文密钥序列的每个组成部分可以精确到小数点的后8位, 因此密钥空间大小为1032, 大于2100, 因此, 可以认为该图像加密过程具有较强的抗穷举攻击能力.
3.5 信息熵分析对于随机过程中的随机变量x, 熵记为H(x), 表示该随机变量出现的不确定性或信息量, 随机变量x的熵为
(7) |
密文信息熵数值的对比如表 7所示.可知文献[9]、文献[10]、文献[14]及本文提出的图像加密算法均可以使加密后图像的信息熵接近理想值8bit.表明这4种方法使加密后图像的各个灰度值服从均匀分布, 可以很好地抵抗基于信息熵的分析.
表 7(Table 7)
表 7 密文信息熵对比Table 7 Entropy comparison of cipher text ?
| 表 7 密文信息熵对比 Table 7 Entropy comparison of cipher text ? |
3.6 加密速度分析加密速度快是本文算法最大的优势, 表 8为4种图像加密算法的加密速度对比.本文采用的软件是Python3.8, Python相比于C语言执行效率较低, 因此可知图像加密速度的时间单位都是s.如果使用C语言执行, 图像加密的速度会得到很大的提高.虽然使用Python执行图像加密算法的速度较慢, 但这并不影响对这4种算法加密速度的分析.
表 8(Table 8)
表 8 加密速度对比Table 8 Encryption speed comparison ?
| 表 8 加密速度对比 Table 8 Encryption speed comparison ? |
从表 8可以看出, 本文提出的图像加密算法的速度明显优于其他3种图像加密算法.一方面, 本文使用了运算简单但运动轨迹复杂的混沌系统.另一方面, 置乱过程中没有遍历所有的像素点, 仅交换了少部分的行和列, 加快了置乱环节的速度.因此本文提出的算法在保证安全性的基础上, 加密速度有显著提高.
文献[10]之所以速度很慢, 是因为混沌系统迭代的次数太多, 而且采用了动态DNA编码的方式.该方法为了生成所需的序列共迭代了11MN次.还要对图像中每一个像素值进行动态DNA编码, 编码后的矩阵还要进行动态DNA解码, 这会导致大量的时间都用在判断语句上.随着图像尺寸的增大, 判断DNA规则需要的时间越多, 该加密算法的速度也会越慢.
4 结语1) 本文提出的结合DNA编码的图像加密算法,在置乱过程中减少了循环遍历的次数, 能够在保证安全性的前提下, 比较显著地提高算法的加密和解密速度.随着图像尺寸的不断增大, 该算法加密、解密速度的提升也就越明显, 所以, 该算法具有较强的实际应用价值.
2) 为了进一步提升加密算法的速度, 可尝试找到运算更简单但运动轨迹更复杂的混沌系统.在保证混沌序列质量的前提下, 减小计算量, 从而提升算法速度.
参考文献
[1] | Liu H J, Zhu Z L, Yu H, et al. Modified projective synchronization between different fractional-order systems based on open-plus-closed-loop control andits application in image encryption[J]. Mathematical Problems in Engineering, 2014, 2014: 1-10. |
[2] | Maity S P, Kundu M K. Perceptually adaptive spread transform image water marking scheme using Hadamard transform[J]. Information Sciences, 2011, 181: 450-465. DOI:10.1016/j.ins.2010.09.029 |
[3] | Niu Z F, Zheng M W, Zhang Y P, et al. A new asymmetrical encryption algorithm based on semi-tensor compressed sensing in WBANs[J]. IEEE Internet of Things Journal, 2020, 7(1): 734-750. DOI:10.1109/JIOT.2019.2953519 |
[4] | Rehman A U, Liao X F, Ashraf R, et al. A color image encryption technique using exclusive-OR with DNA complementary rules based on chaos theory and SHA-2[J]. Optik, 2018, 159: 348-367. DOI:10.1016/j.ijleo.2018.01.064 |
[5] | Wang Y, Quan C, Tay C J. Optical color image encryption without information disclosure using phase-truncated Fresnel transform and a random amplitude mask[J]. Optics Communications, 2015, 334(1): 147-155. |
[6] | Liu H, Wang X. Color image encryption based on one-time keys and robust chaotic maps[J]. Computers and Mathematics with Applications, 2010, 59(10): 3320-3327. DOI:10.1016/j.camwa.2010.03.017 |
[7] | Li H F, Li C D, Ouyang D Q. Impulsive synchronization of unbounded delayed inertial neural networks with actuator saturation and sampled-data control and its application to image encryption[J]. IEEE Transactions on Neural Networks and Learning Systems, 2020, 99: 1-14. |
[8] | Wu X, Wang K, Wang X, et al. Color image DNA encryption using NCA map-based CML and one-time keys[J]. Signal Processing, 2018, 148: 272-287. DOI:10.1016/j.sigpro.2018.02.028 |
[9] | Wu J, Liao X, Yang B. Image encryption using 2D Hénon-sine map and DNA approach[J]. Signal Processing, 2018, 153: 11-23. DOI:10.1016/j.sigpro.2018.06.008 |
[10] | Wang X Y, Li Y P. Chaotic image encryption algorithm based on hybrid multi-objective particle swarm optimization and DNA sequence[J]. Optics and Lasers in Engineering, 2021, 137: 106393. DOI:10.1016/j.optlaseng.2020.106393 |
[11] | Sambas A, Vaidyanathan S. A new 4-D chaotic system with self-excited two-wing attractor, its dynamical analysis and circuit realization[J]. Journal of Physics: Conference Series, 2019, 1179: 012084. DOI:10.1088/1742-6596/1179/1/012084 |
[12] | 张勇. 数字图像密码算法详解——基于C, C#与MATLAB[M]. 北京: 清华大学出版社, 2019. (Zhang Yong. Detailed explanation of digital image encryption algorithm based on C, C# and MATLAB[M]. Beijing: Tsinghua University Press, 2019.) |
[13] | Adleman L. Molecular computation of solution of combinatorial problems[J]. Science, 1994, 266(5187): 11021-11025. |
[14] | Abdurahman K. Image encryption using DNA complementary rule and chaotic maps[J]. Applied Soft Computing, 2012, 12(5): 1457-1466. DOI:10.1016/j.asoc.2012.01.016 |