随着网络技术的飞速发展,大量的敏感图像信息以不同的形式在网络上传输,这同时也为不法分子利用网络获得未授权的信息提供了方便。密码学是保障信息安全的核心技术,由于图像具有信息量大、相邻像素值相关性强等特点,传统的文本加密算法DES、IDEA、RSA等不能完全满足图像加密需要,而混沌系统的遍历性、混合性、确定性、结构复杂、对初值和参数的极端敏感性等很好地对应于密码学所要求的混淆、扩散、确定的伪随机、攻击复杂、密钥敏感性等相关特性,因此混沌理论的发展为图像加密提供了新思路。
低维的混沌系统只有一个正的Lyapunov指数,可提供的密钥空间相对较小,无法抵抗当前的蛮力攻击。而超混沌系统有2个正的Lyapunov指数,有更强的混沌性,因此,研究超混沌系统已成为当前研究热点。为解决低维混沌系统因可提供的密钥空间太小而无法抵抗蛮力攻击的问题,本文通过引入一个新变量w。在三维Lorenz系统上增加一个微分方程,使其组成四维微分方程组,并引入一个非线性项来增加系统运动的复杂性,由此构造一个新的四维超混沌Lorenz系统,再基于该系统设计出一种保密性更强、适应现代密码体制要求的数字图像加密算法。
一、四维超混沌Lorenz系统
本文在三维Lorenz系统刚的基础上通过引入一个新变量w。增加一个微分方程,使其成为一个四维微分方程组:
式(1)即本文构造的四维超混沌Lorenz系统,其中的非线性项用于增加系统运动的复杂性,a、b、c、d为系统参数,且a、b、c的取值与经典三维Lorenz系统中的β、σ、ρ取值一样。
本文应用了提出的计算微分方程组Lyaponov指数的方法,得到当a=10,b=8/3,c=28,d=2时,式(1)的Lyapunov指数为λ1=2.043 8,λ2=1.973 5,λ3=-2.191 8,λ4=-35.492 7,有2个大于0的Lyapunov指数,此时式(1)产生了超混沌运动,本文称其为新的超混沌Lorenz系统。
图1是四维超混沌Lorenz系统所对应的Lyapunov指数。
当a=10、b=8/3、c=28、d=2时,该系统的运动轨迹如图2~图5所示,实验结果表明,x、y、z、w各序列值均具有随机性、遍历性、确定性和对初值极其敏感等特点。
二、基于四堆超混沌系统的数字图像加密算法
加密算法过程如图6所示。
具体步骤如下:
Step1采用龙格库塔法求解新四维超混沌Lorenz系统,生成xi,Yi,Zi、wi4个序列。
Step2用:
的方式取序列日个值以后的n(n=MxN)个值。在本文算法中,H=10000组成M序列。
Step3 m=mod(mxK,256)。为保证混沌序列的混沌性不退化,K取值一般大子10 000。对256取模是为了保证M值在灰度图像的有效值范围内。
Step4 e=m+x。混沌序列与原始图像进行相加运算。
Step5 当e大于255时就一直减256,直到e小于256,从而保证加密后的各像素值在O~255之间。
在本文算法中,x表示待加密的MxN大小的原始图像,e表示加密后图像,聊表示新超混沌Lorenz系统产生的混沌序列,4个初始值(x0,y0,z0,wo)作为密钥。
三、加密算法安全性分析与实验仿真
在一个加密算法中,安全性是首要的问题。下面将对本文加密算法的安全性进行验证。实验采用一个512x512像素的灰度图像Lena作为加密图像。
1、统计直方圈分析
根据Shannon理论,一个密码系统在抗统计攻击方面应该具有很好的性能。图7、图8给出原始图像和密文图像的统计直方图。可以看出,加密前图像的直方图分布不均匀,图像的主要信息聚集在某一区域内,而加密后的密文图像统计直方图是均匀分布的,统计特性良好,有着很好的扰乱性,可以有效抵抗已知明文攻击或者选择明文攻击。
2、相邻像素相关性分析
本文在原图和密图中分别随机选取了1 000个像素对(可以选取所有的像素对),然后分别测试其水平方向、垂直方向和对角方向的像素相关性,并应用式(2)计算出3个方向的相关系数。
其中,x,y分别表示图像中2个相邻像素的灰度值;Rxy即相邻像素的相关系数。
表1为利用本文加密算法加密图像前后相邻像素的相关性对比,从中可以看出,原始图像垂直方向、水平方向和对角线方向的相关系数均接近1,而加密后的密图3个方向上的相关系数均在0附近,而且非常接近O,说明加密后破坏了相邻像素的相关性。所以,加密算法具有良好的扩散性,能抵抗统计攻击。
3、密钥分析
一个好的加密算法应该对密钥非常敏感,而且密钥空间应该足够大以抵抗穷举攻击。
(1)密钥敏感性测试与分析
从密码学的观点来看,所设计的加密算法对密钥应该足够敏感,必须保证能产生雪崩效应。雪崩效应是指即使密钥发生微小的变化,对应的加密密文数据也会发生剧烈变化。在理想的情况下,希望至少一半的密文发生了变化。
本文加密算法将4个初值xo、yo、z0、wo均设为子密钥,合在一起作为算法的密钥。xo、Yo、zo、w0均为实数且它们的最佳取值范围是:xo∈[-10,10l,Yo∈[-20,20],zo∈[1O,60],wo∈[-50,50]。取初始密钥为:
xo=0.284 954 698 754 12
Yo=11.012 345 678 911 23
zo=14.123 456 789 123 42
wo=5.123 456 789 123 42
为测试算法对密钥的敏感性,稍微改变密钥中任一子密钥的值(改变10-14),再进行加密,比较前后加密2幅图像对应的不同像素个数。当初始值为:
xo=0.284 954 698 754 12
yo=11.012 345 678 911 23
z0=14.123 456 789 123 42
wo=5.123 456 789 123 42
时,2幅加密后图像的像素比p=99.60%,当初始值为:
xo=0.284 954 698 754 12
Yo=II.OL2 345 678 911 24
z0=14.123 456 789 123 42
wo=5.123 456 789 123 42
时,p=99.68%,当初始值为:
xo=0.284 954 698 754 12
yo=11.012 345 678 911 23
zo=14.123 456 789 123 43
wo=5.123 456 789 123 42
时,p=99.62%,当初始值为:
xo=0.284 954 698 754 12
Yo=11.012 345 678 911 23
zo=14.123 456 789 123 42
wo=5.123 456 789 123 43
时,p=99.67%。
结果表明,即使加密密钥相差10-14,得到的加密后图像约有99.6%以上的像素不同。
图9给出用与正确密钥相差10-14的密钥对加密后的Lena图像进行解密后的结果,可以看出完全无法正确解密,而且不透露原图信息。因此,本文的加密算法对密钥非常敏感。
(2)密钥空间分析
本文采用4个均为实数的初始值作为密钥,所以,理论上可提供无限大的密钥空间。但实际上由于受计算机有效位数的限制,无法提供无限大的空间。设加密系统采用双精双浮点型,则各初始值均取得15位有效数。4个15位实数一起作为密钥,则加密算法的密钥空间为1015x14=1060 =2200。为了能抵抗蛮力攻击,密钥空间K应该大于2100,所以,本文设计的加密算法足以抵抗当前的蛮力攻击。
小知识之雪崩效应
雪崩效应就是一种不稳定的平衡状态也是加密算法的一种特征,它指明文或密钥的少量变化会引起密文的很大变化。对于Hash码,雪崩效应是指少量消息位的变化会引起信息摘要的许多位变化。