随着多媒体通信技术的迅速发展,对大量图像信息传输的需求也日益增加,图像的安全和保密技术已经变得越来越重要。那么,我今天讲给大家介绍一种基于Henon映射的数字图像加密。
一、混沌系统选择
应用于图像加密的混沌系统中较有代表性的主要有2种:1维的Logistic映射和3维的Lorenz系统,由于1维的混沌系统容易被破解,所以多数采用Logistic映射的都会将2个或2个以上的Logistic方程联立进行升维,或与其他混沌映射组合在一起,构成复合混沌系统,如采用3维的Lorenz系统及在图像加密中被用到过的Chen’s等系统,因其是连续的动力系统,所以在求解微分方程的时候,需要采用定步长的数值积分法;而如果步长有细微的偏差,将会导致在数次迭代之后,产生不同的数值序列。本文将Henon混沌系统引入到图像加密中。
Henon映射(记为T)的定义为:
可见,Henon映射是由2个变量x和y同时确定迭代方程,这比单纯联立2个相互独立的1维混沌方程要复杂得多。
相对于3维的Lorenz系统,Henon映射是离散的,不用担心求解数值积分的步长,并且Henon映射可以看作是由3个映射所组成。
综上所述,Henon映射易于实现,且复杂,适合作为图像加密的伪随机序列生成器。
二、Henon混沌序列的分析及改进
通过对Henon映射所产生混沌序列的分析发现,该序列并不是很理想的伪随机序列。
首先给定Henon映射的初始值x0=0120,y0=0110,控制参数a=114,b=013,使之运行在混沌状态.迭代3万次,截取1万~2万之间的数,得到的序列x和y的值域分别:
-112846<;x<;112730,-013854<;y<;013819。
均值和方差分别为:
Mx=012608,Vx=015162,My=010782,Vy=010464。
而满足均匀分布的序列在x和y所在值域中的均值和方差都应该非常接近零。从直方图(图1(a))可知:
由该系统直接得到的序列不存在均匀分布特性。从分析可知,必须对Henon映射所产生的序列进行有效的修改,使之具有更为理想的随机统计特性。
有资料提出了一种改进Lorenz混沌序列的方法,表示为:
其中,X可以是x或y;round(_)为取最接近整数运算。
通过实验验证,式(6)也可以应用于Henon混沌序列。以x序列为例,首先将x序列中各元素的小数点向右移动k位(k=0,1,2,…),然后按式(6)将序列映射到值域[-015,015]。设计算机的最大精度为10-r,则序列中元素的取值空间为10r-k。分析发现,当k<;2时,其随机特性并不理想,但当k的取值接近于r时,序列中元素的值就会逐渐趋近于某些特定的数,直到k=r时,全部为零。所以,k应尽量取2~(r-lg(length(x)))之间的整数,其中length(_)表示序列的长度。
设k为3,经过式(6)改进后,x序列的均值和方差分别为Mx=014965,Vx=010831,非常接近理想值015和010833。从改进后的直方图可见(如图1所示),符合均匀分布;自相关和互相关特性都比较理想。改进前后的图像对比发现,改进后的混沌序列具有更加出色的均匀分布特性、随机统计特性和相关特性。
三、加解密算法
1、算法描述
本文加密算法对图像的像素值和空间位置均进行了加密,先对Henon映射所得到的序列进行改进,然后用改进后序列对图像的像素值进行变换,再进行图像的空间位置置乱,完成加密。
2、加密算法
1)输入要加密的图像,得到图像的大小M×N,边界填充0(黑色),使图像长和宽均为偶数。处理后的图像大小为m×n。
2)输入密钥(a,b,x0,y0),a和b为Henon映射的控制参数,x0和y0为初始值。生成混沌序列{xi|i=1,2,…,m×n},{yi|i=1,2,…,m×n}。
按照式(6)对这2个序列进行改进,得到{ui|i=1,2,…,m×n},{vi|i=1,2,…,m×n}。
3)将图像进行2×2分块,以块为单位对图像进行像素值变换。应用ui和vi构造像素变换矩阵:分别取ui和vi的前1/4×m×n个数和后1/4×m×n个数构成4个序列。将这4个序列转换成4个1/2m×1/2n的变换矩阵E1、E2、E3和E4.分别用E1和E2变换主对角线上的2个分块,用E3和E4变换副对角线上的2个分块,具体变换方法就是用变换矩阵与相应分块矩阵按位取反。
4)对各分块进行空间置乱,将ui和vi平均分成4份,在ui的每个1/4区间,选择前1/2m个数,生成4个行变换序列,再对它们进行排序,得到索引序列,然后构造4个1/2m×1/2m的零矩阵,将每
行中对应的索引序列元素值的列置为1,构造出4个行置乱矩阵H1、H2、H3和H4。同理,在vi中,抽取4个长度为1/2n的序列,构造出4个列置乱矩阵L1、L2、L3和L4。对应步骤3)得到图像的4个分块F1、F2、F3和F4,按式(7)进行置乱:
5)按步骤4)的方法,用ui和vi构造出1个m×m和1个n×n的置乱矩阵,对整个图像进行置乱。
6)输出加密后的图像。
解密方法为上述过程的逆。
3、加密算法的安全性分析
(1)密钥空间分析
为了不被穷举攻击解密图像,图像加密方案应该具有尽可能大的密钥空间。同时,为抵抗差分攻击,加密图像又必须对密钥敏感。
在混沌序列的产生过程中,分别需要2个控制参数和2个初始条件。以2个初始条件作为密钥,设计算精度为10-16,那么混沌密钥的产生过程中的密钥空间为1032,加上参数及图像大小的条件,密钥空间大于1032,使穷举攻击几乎不可能成功。
(2)密钥敏感性测试
加密密钥敏感性测试结果如图2所示。
其中,(a)为原图像,(b)为加密密钥为012的加密图像,(c)为加密密钥为01200000000000001的加密图像,(d)为上述2加密图像的差别.对于解密密钥,当原图像以密钥012加密后:解密密钥为0120000000000001的解密图像如(e)所示,解密密钥为01200000000000011的解密图像如(f)所示。加密密钥和解密密钥敏感性测试的试验结果表明,当加密密钥在不小于10-16的范围内进行微小变化时,加密的图像变化都很大;解密密钥在同样范围的微小变化会导致解密失败.所以,本算法对密钥有极强的敏感性。
(3)统计分析
抗统计分析攻击能力的好坏是评判图像加密算法优劣的重要标准。
1)统计直方图
加密后图像的直方图(图3(b))与原始图像的直方图(图3(a))有很大区别,并且非常均匀,非常好地掩盖了原始图像的分布规律,更增加了破译的难度。
2)相邻像素的相关性
原始图像中相邻2个像素的相关性通常很大.相邻像素的相关性可以反映出图像像素的扩散程度,所以应该尽量让加密后图像相邻像素的相关性系数接近零。为验证原始图像和加密图像相邻像素的相关性,在2个图像中分别随机选取了2000对像素对,测试其水平方向、垂直方向和对角方向的像素相关性,并应用式(8)进行相关系数的计算。
其中,A和B分别为原始图像和加密图像;/A和/B是均值。
图4所示为垂直方向原始图像和加密后图像相邻像素的相关关系。可见,原始图像像素间的相关性呈现明显的线性结构关系,而图像文件加密后像素间的相关性呈现随机的对应关系。
表1所示为原图像和其加密图像相邻像素之间的相关系数。可见,原图像的相邻像素高度相关,而加密图像的相邻像素相关系数接近于零,其相邻像素已基本不相关。
(4)抗干扰能力分析
图像在传输或进行其他处理的过程中,经常会受到噪声的干扰和一系列的攻击,所以抗攻击能力图5_算法抗干扰能力试验结果的强弱也是检验加解密算法优劣的1个标准.本文对加密后的图像添加噪声密度为0105的椒盐噪声(见图5(b))、添加均值为0方差为0.01的高斯噪声(见图5(e))和剪切其左上角部分数据(见图5(h)),解密之后得到图5(c)(f)(i),为便于比较,原始图像受到上述3种攻击的结果如图5(a)(d)(g)所示。可见,此加密算法对椒盐噪声攻击和剪切攻击有较好的抵抗能力,但对于高斯噪声攻击的抗干扰能力不强。
本文提出了一种新的基于Henon映射的图像加密算法,仿真实验结果表明,该算法可以实现对数字图像的加、解密,并且达到较好的效果.对算法安全性的分析可以看出,该算法密钥空间大,有极强的密钥敏感度和较好的统计特性,并且具有较强的抗剪切和椒盐噪声攻击能力以及一定的抗高斯噪声攻击的能力。下一步的工作重点将放在对Henon混沌序列改进方法的理论推导和对加密算法进行优化,使其达到更好的加解密效果并能更有效地抵抗高斯噪声攻击及其他更多种类的攻击。
小知识之椒盐噪声
椒盐噪声是由图像传感器,传输信道,解码处理等产生的黑白相间的亮暗点噪声。椒盐噪声往往由图像切割引起。