由于当前的Logistic混沌映射无法满足一致分布,且在混沌区域存在空白窗口,使得混沌区域较小,在利用该映射加密图像时,导致了较小的密钥空间,降低了加密系统的安全性。基于此,我们通过定义循环椭圆曲线,设计一致分布Logistic混沌映射和伪随机混合密钥流生成器,构造加密函数以及引入线性反馈移位寄存器,最终提出了循环椭圆曲线与一致分布Logistic混沌映射相融合的图像加密算法。
一、基于循环椭圆曲线的伪随机位序列生成器
普通椭圆曲线模型如下:
式(1)中,x、y为变量;a、b常量,且a,b∈GF(2m),a,b∈GF(2m)为2m阶有限域;且:
在方程(1)中,不同的a、b代表着不同的椭圆曲线。
所有满足模型式(1)的椭圆曲线点P(xp,yP)在无穷远点0处都称为椭圆曲线的阶,用M表示。对于最小整数N,若NP等于无穷远点0(NP=O),则称为点p的阶,从而使得N<M,那么P,2P,…,(N-1)P是椭圆曲线上不同的点。对于某个特定的a、b而言,该曲线可以选择最高阶(N= M)的基准点p;另外P,2P,…,MP是模型式(1)上M个点,其中MP为无穷远点,这样使得M为无平方因子,则模型(1)为循环椭圆曲线。
为了使序列具有良好的统计性能和易实现,本文采用了线性反馈移位寄存器来生成的序列{vi}。其模型如下:
式(3)特征多项式为:
式(4)中,f(x)为反馈移位寄存器函数,x为变量;T(x)为特征多项式;cj(j=1,2…p)为反馈系数,(co =c0=1)。根据特征多项式T(x)则可以确定整数序列{Ki}:
式(5)中,ut为次数小于n,系数为0或者1的特征多项式。
令{k}={ai},则得到整数序列{ki}。
将整数序列{ki}中的每个元素都映射为kip(P为素数),且P≥M。kip代表循环椭圆曲线上的点,则基于循环椭圆曲线点(xi,yi)的伪随机位生成器如图1所示。
{vi}={kip}为循环椭圆曲线点的随机位序列。本文通过采用GF(p)上的初始连接多项式的线性反馈,产生了最大周期的周期性随机序列。对于任意的一个n>1,通过使用GF(p)上的忍次初始连接多项式,可以获得一个合适的反馈连接。循环椭圆曲线一旦被选择,那么随机序列{kiP)覆盖了椭圆曲线中所有的点,因此非常适用于加密和解密。
二、一致分布Logistic混沌映射的设计
传统的Logistic混沌映射模型如下:
式(6)中,k=1,2,…,n;x∈[O,1]为变量;λ为控制参数。当0≤λ≤4时,该系统为混沌状态。
其不变密度函数如下:
式(7)中,ρ(x)为一致分布函数,x∈[O,1]为变量。
图2为传统Logistic混沌映射特性仿真测试图。
从图2(a)可知,在其混沌区域存在空白窗口,有些区域的Lyapunov指数为O或者负数;从图2(b)也可看到,该映射在x∈[0,1]内的轨迹点的分布无法达到一致性。
可见,传统的Logistic混沌映射存在着较大的不足,应用与图像加密时,会降低加密系统的安全性。
为了解决传统的Logistic混沌映射存在的不足,本文设计了一致分布Logistic混沌映射,其模型如下:
式(8)中,k=1,2,…,n;λ为控制参数。当-4≤λ≤4时,该系统为混沌状态。
图3为本文设计的一致分布Logistic混沌映射在x∈[O,1]区间以及λ∈[2,4]、λ∈[-4,-2]的特性仿真测试图。图3(a)显示了在该映射的混沌区域不存在空白窗口,这也意味着本文设计的混沌映射具有良好的一致分布行为;图3(b)表明了该映射具有很好的一致分布特性。
三、基于循环椭圆曲线耦合一致分布混沌映射能混合图像加密算法设计
基于循环椭圆曲线耦合一致分布混沌映射能混合图像加密算法流程框架图如图4所示。
加密算法设计可分为如下6个步骤。
①将大小为MxN的明文图像,转换成一个8位数据流,其中的每个数据都是根据所得到的位分配来形成,每个数据都是32位。数据流用{ei}表示。
②将256位外部密钥K分割32个8位块,作为会话密钥:
式(9)中,Ki,(i∈1,2,…,32)代表字母数字字符(O—9以及A—F),且两个数字字符构成一个会话密钥。
③构造模型式(7)的初始条件x0和初始密码Co:
式中,map1代表将O—255之间所有的整数映射为混沌映射的域[O,1];Ki为第i个会话密钥的十进制等效值;(α)代表floor函数。
④利用步骤③得到的初始条件x0迭代计算一致分布Logistic混沌映射,迭代次数为numt,根据反馈模式输出序列{x1,x2,X3,…,xnumt},即xt由x(t -1)、b(t-l)以及K(t)共同决定。
式(13)中,xt为当前输出值,x(t -1)代表前一个状态值,ks(t -1)代表前一个混合密钥流,由本文设计的伪随机混合密钥流生成器形成,如图5所示。
K(t)为会话密钥;numt为达代次数,其计算公式如下:
式(14)中,Kt+1代表第(t+1)个会话密钥;Ct-1代表第(t -1)个密码。
图5中的map2代表将混沌映射的域映射到区间O~2550混沌方程ft如式(15):
式(15)中,x(t)为当前输入值,λ为模型式(7)的控制参数;F(x,y)为复合函数。
⑤将伪随机位生成器(文中第1部分)所生成的位序列{k1P,k2P,k3p,…,knumtP]混合步骤④中的初始密钥流{x1,x2,X3,…,xnumt},得到混合密钥流ks(i),如图5所示。
⑥根据混沌方程和循环椭圆曲线,构造一个加密函数,对图像文件进行加密,加密函数如下:
式(16)中,map2代表将混沌映射的域映射到区间O~255;Ct代表第1个密码;XOR代表按位异或运算;ft为混沌方程;ks(i)代表伪随机混合密钥流;et代表初始数据流。
四、基于循环椭圆曲线耦合一致分布混沌映射能混合图像加密算法仿真结果与分析
在MAvrLAB 7.10仿真平台上对本文提出的基于循环椭圆曲线耦合一致分布混沌映射能混合图像加密算法的安全性能进行分析。仿真环境为:因特尔2.O GHz双核CPU,4 GB的内存,运行系统Windows XP。
1、基于循环椭圆曲线耦合一致分布混沌映射能混合图像加密算法加密质量对比分析
为了体现本文加密算法的优异性能,本文设立了对照组a对照组输入一个尺寸为512×512的明文图像,仿真结果如图6(b)、图6(d)所示。从图中可知,经本文基于循环椭圆曲线耦合一致分布混沌映射能混合图像加密算法加密算法处理后,网像的信息得到了充分混淆与扩散,没有任何信息泄漏,加密质量更好,如图6(b)所示,能够有效地抗击密文攻击;而其他两种算法的密文都存在微量信息泄露,加密质量不理想。
2、灰度直方图
图7为本文基于循环椭圆曲线耦合一致分布混沌映射能混合图像加密算法处理后的灰度直方图仿真结果。从图7(a)可知,初始图像像素点的分布随着灰度级别的变化呈现出不均匀态势,表明其安全性较低,易受到攻击。而经本文基于循环椭圆曲线耦合一致分布混沌映射能混合图像加密算法加密后的密文,其灰度直方图发生了根本性的变化,如图7(b)所示,其像索分布均匀,表明基于循环椭圆曲线耦合一致分布混沌映射能混合图像加密算法能够显著提高密文的伪随机性与冗余性。这表明基于循环椭圆曲线耦合一致分布混沌映射能混合图像加密算法具有理想加密效果,加密机制高度安全。
3、密钥空间
优异的加密算法应具备足够大密钥空间应以抵抗各种攻击。根据本文算法描述可知,基于循环椭圆曲线耦合一致分布混沌映射能混合图像加密算法使用了256位长的外部密钥,加上一致分布Logistic混沌映射控制参数、循环椭圆曲线的系数a和b。假设计算精度达到10 -16,则本文算法的密钥空间为2256×(1016)3= 2256×1048,该密钥空间远大于21000可见,基于循环椭圆曲线耦合一致分布混沌映射能混合图像加密算法的密钥空间是巨大的,有很强抗穷举攻击能力。
4、密钥敏感性分析
为使基于循环椭圆曲线耦合一致分布混沌映射能混合图像加密算法能够很好地满足严格雪崩准则。对基于循环椭圆曲线耦合一致分布混沌映射能混合图像加密算法的密钥K进行了测试。图8(b)是用密钥K加密后得到的密文;图8(c)是利用扰动密钥(K+σ,σ= 10 -10)加密后的密文。
从视觉上看,两个密文似乎没有任何差异,但是二者的差异比率(D - R)却达到了99. 765%,如图9所示,大部分图像差异比率都是高于99.765%:首先在USC-SIPI图像数据库中选择100幅图像;然后利用初始密钥K和扰动密钥(K+Cr)对每幅图像进行加密;根据提供的差异比率计算方法来计算该值大小。
图8和图9都表明,当基于循环椭圆曲线耦合一致分布混沌映射能混合图像加密算法的密切发生了极其微小的变动,则得到的密文是截然不同的。这表明基于循环椭圆曲线耦合一致分布混沌映射能混合图像加密算法具有较强的密钥敏感性能,能够满足严格雪崩准则。
5、相邻两像素点的相关性分析
理想的加密算法应能够消除相邻像素间的强烈相关性以提高加密系统的安全性。在初始与密文图像中随意择取2 000对相邻像素点,用相关系数来评估该性能。rxy的计算模型如下:
式中,rxy为两点的相关系数;x与y代表的是图像相邻像索点的灰度值;E(x)和E(y)均为数学期望。
图10是加密前后图像里任意两个相邻像素点在X轴方向上的相关性测试结果。如图10(a)所示,明文图像的相邻像素值聚集为一条对角线,这表明其相邻像索间的相关性很高,达到0.9631,接近1;而经过基于循环椭圆曲线耦合一致分布混沌映射能混合图像加密算法加密后,其像素值达到均匀分布,如图1O(b)所示,表明其相关性得到了有效消除,约为0.00021,趋于0。
其他两个方向的相邻像素点的相关性实验结果见表1。从表中可知,基于循环椭圆曲线耦合一致分布混沌映射能混合图像加密算法能够显著消除图像相邻像素点间的相关性。
小知识之伪随机
在计算机、通信系统中我们采用的随机数、随机码均为伪随机数、伪随机码。所谓“随机码”,就是无论这个码有多长都不会出现循环的现象,而“伪随机码”在码长达到一定程度时会从其第一位开始循环,由于出现的循环长度相当大,例如CDMA采用42位的伪随机码,重复的可能性为4.4万亿分之一,所以可以当成随机码使用。