针对数字信息在传输过程中易被窃取的现象,本文提出了一种基于改进的ZigZag变换与混沌序列相结合的数字图像加密算法。首先对原始图像进行改进ZigZag置乱变换,然后利用混沌序列对图像的每一个像素进行位运算,得到加密后的图像。解密正是加密的反过程。通过理论分析与实验验证,新算法能够使加密后的图像灰度分布均匀,具有更大的密钥空间,并且对密钥具有更高的敏感性。 For the phenomenon that digital information is easily stolen during transmission, we purpose a digital image encryption algorithm based on improved ZigZag transformation and chaotic se-quence. Firstly, the original image is transformed with the improved ZigZag method. Then each bit of the image is bit-computed using the chaotic sequence. Decryption is the reverse of encryption. According to the theoretical analysis and experimental verification, the encrypted image has a uniform gray distribution. Besides, the new algorithm has a large key space, and has a high sensitivity to the keys.
冯炽,叶桦
东南大学自动化学院,江苏 南京
收稿日期:2017年6月2日;录用日期:2017年6月20日;发布日期:2017年6月23日
针对数字信息在传输过程中易被窃取的现象,本文提出了一种基于改进的ZigZag变换与混沌序列相结合的数字图像加密算法。首先对原始图像进行改进ZigZag置乱变换,然后利用混沌序列对图像的每一个像素进行位运算,得到加密后的图像。解密正是加密的反过程。通过理论分析与实验验证,新算法能够使加密后的图像灰度分布均匀,具有更大的密钥空间,并且对密钥具有更高的敏感性。
关键词 :ZigZag,混沌序列,图像加密
Copyright © 2017 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/
数字技术的日益发展和互联网的快速普及给人们的生产和生活提供了极大的便利,但是由于数字信息易获取、易被篡改的特点,导致数字信息在互联网上的传输受到了极大的威胁。通过特定的技术手段对图像加密处理,可以掩盖图像的原始信息,这种方法成为了当今网络环境中一种极其有效的策略,避免了数字图像的恶意盗取与篡改。
传统的图像加密算法有Arnold置乱、应用混沌序列加密、ZigZag变换等方法。Arnold置乱容易实现,图像置乱效果好 [
标准的ZigZag置乱算法是从矩阵的左上角开始,对矩阵中的各元素依次进行“之”字形扫描,扫描路径如图1所示。
图1. 标准ZigZag的扫描路径
根据图1可知,对矩阵连续进行不同次数的ZigZag变换可以得到不同的矩阵,这说明了迭代次数可以作为图像保密信息的一个十分重要的密钥。同时,由于矩阵元素个数是确定的,因此,ZigZag变换具有周期性。ZigZag的周期会随着矩阵的维数增大而增大。Arnold变换同样可以将离散化的数字图像矩阵中的点进行重新排列并具有周期性 [
根据表1可知,对于相同大小(维数
我们定义扫描的起始点为矩阵的右下角,然后依次进行“之”字形变换,这样保证了在迭代过程中,每一个元素的位置都可以得到改变。同时,改进后的ZigZag变换可适用与非方阵矩阵。拿一个3 × 4大小的矩阵进行举例,如图2所示。
混沌现象是指发生在非线性动力系统中出现的确定的、类似随机的过程,这种过程没有周期性又不收敛,并对初值有极其敏感的依赖性,所以非常适用于信息安全的范畴 [
Logistic映射是一种非常简单却被广泛应用的经典混沌映射 [
其中,
由式(2)可知,Logistic映射不满足一致分布,为了得到随机性更好的一致分布的随机系统,我们再对式(1)进行变换,得到下式:
维数 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
---|---|---|---|---|---|---|---|---|---|---|---|
周期 | 1 | 4 | 6 | 8 | 78 | 264 | 136 | 360 | 612 | 72 | 25584 |
Arnold | 3 | 4 | 3 | 10 | 12 | 8 | 6 | 12 | 30 | 5 | 12 |
表1. 标准ZigZag变换与Arnold变换的周期与维数的关系
图2. 改进ZigZag的扫描路径
变量y的分布函数为:
所以,变量Y的概率分布函数为
所以,该式在(0, 1)区间满足一致分布,具有更好的随机性分布。根据式(3),我们提出了一种基于改进ZigZag变换和混沌序列相结合的数字图像加密算法。
设
(1) 给定迭代次数
(2) 给定两个Logistic系统的参数
(3) 取原始图像的所有像素点的灰度值之和,然后对256进行取余运算,得到一个范围在[0, 255]之间的整数,再将该整数除以256作为密钥
(4) 使用密钥
(5) 将由步骤(3)得到的两个混沌序列按照式(3)进行转换,得到两个改进之后的混沌序列:
(6) 顺序从图像中取点,设该点序号为n,若n为奇数,则由实数混沌序列
(7) 用步骤(6)得到的每个像素点的加密密钥与原始图像的该点的像素灰度值进行二进制异或运算,得到加密之后的该点的像素值。
解密过程是上述算法的逆过程,算法类似,整个算法的流程图如图3所示。
图3. 算法流程图
评价一个图像加密算法的好坏主要有密钥的空间大小、密钥的敏感性以及相邻像素的相关性几点[
其中,
在本节中我们主要描述了对一幅灰度图像进行加解密的过程,其实该方法也可以应用到彩色图像中来。在彩色图像中,我们可以对图像每个像素点的R、G、B三个分量分别应用上述提到的加密算法[
在Windows 10操作系统、Intel(R) Core(M) i5-3210M CPU@2.50 GHz,内存为6 GB的计算机上,编程环境为MATLAB2014a,我们按照上述加解密算法对以下几幅图片进行了加密处理:lena(512 × 512)、全黑图像black(300 × 300)以及SEU(500 × 800)。本文选取密钥参数
为了测试解密过程中对解密参数的敏感度,我们在lena512图片解密的过程中将参数
本算法过程中一共涉及到五个参数,他们分别是ZigZag迭代次数
图4. 三幅不同图像的加密效果与解密效果
图5.密钥敏感性测试结果
我们做出三幅图像加密前和加密后的直方图,如图6所示。其中,(a)、(b)、(c)分别表示lena512、black和SEU原图的灰度直方图,(d)、(e)、(f)为对应的加密后的灰度直方图。通过直方图看出,在加密前像素分布的比较集中,而在加密之后,图像的像素分布的十分均匀,攻击者很难利用灰度像素的统计特征来恢复原始图像。
图6. 原始图像与加密图像的灰度直方图对比
加密前 | 加密后 | |
---|---|---|
水平 | 0.9854 | 0.0074 |
垂直 | 0.9875 | 0.0068 |
对角线 | 0.9633 | 0.0007 |
表2. 加密前和加密后不同方向上相邻像素点之间的平均相关系数
我们分别从水平方向、垂直方向和对角线方向随机选取lena图像中5000对像素点,利用式(6~9)得到三个不同方向的相邻像素点的相关性,结果如表2。可以看出,原图在三个不同的方向上相邻像素之间都具有很强的相关性,而在加密之后,无论在哪一个方向上,相邻像素之间的平均相关系数几乎为0,可见加密算法打破了原图的结构,极大的降低了原图的相关性。
本文提出了一种基于改进的ZigZag变换与混沌序列相结合的数字图像加密算法,该算法主要思想为先对原始图像进行改进 ZigZag置乱变换,然后通过混沌序列与原始图像的每一个像素点进行位运算来进行加密。该算法可以对非方阵图像进行加密,降低了相邻像素之间的相关性,对密钥具有极高的敏感性,同时该算法显著增大了密钥空间,能很好地抵抗穷举性攻击。
冯 炽,叶 桦. 基于改进ZigZag变换与混沌序列相结合的数字图像加密算法 A Digital Image Encryption Algorithm Based on Improved ZigZag Transformation and Chaotic Sequence[J]. 计算机科学与应用, 2017, 07(06): 554-561. http://dx.doi.org/10.12677/CSA.2017.76066