采用基于外部密钥的复合混沌系统对数字图像文件进行对称加密,由外部密钥产生混沌系统的初始值。复合混沌系统由2个Logistic系统构成,一个用来产生置换矩阵,对图像进行像素置换操作,另一个用来产生灰度扰乱序列。在对灰度扰乱过程中,使用基于外部密钥导出的子密钥对灰度扰乱序列进行采样。在置换过程中,通过加入置换矩阵信,使位置置换和像素替代过程以简单有效的方式复合,提高系统的耦合性。
一、对称图像文件加密方案
1、相关介绍
(1)外部密钥:采用长度为80 bit的密钥:
其中,字符ki (i=1,2,…,20)为十六进制。每2个字符(即每8 bit)构成一个子密钥ki (i=1,2,…,10)。于是,外部密钥表示为子密钥形式为:
(2)混沌系统原型:本文采用的Logistic混沌系统原型为:
其中,xn为映射变量,0≤xn≤1;μ为系统参数,0≤μ≤4。
当3.569 945 6-≤μ≤4时,系统进入混沌状态。
(3)本文的混沌系统:采用2个Logistic混沌系统,μ均取为3.999 9。位置置换过程采用的混沌系统X为:
系统初值的计算如下:
1)利用式(5)计算得到实数Xo1:
其中,(Ki)10表示K,的十进制数值。
2)选取子密钥K4,Ks,K6,利用式(6)计算得到另一个具有24位精度的实数X02:
其中,Kij表示墨的第J bit位上的值(0或1)。
3)利用式(7)计算系统初值Xo:
其中,tloor(.)表示不大于操作数“.”的最大整数。式(7)的目的是只取X01+ X02的小数部分。
通过上述几步构造的用于位置置换的混沌系统初值,使初值对外部密钥足够敏感,且精度得到保证。
灰度替代过程采用的Logistic系统y为:
初值Yo产生的方式和X0相似,不同之处在于,计算Y02时选取子密钥k7,K8,K9。
2、加密算法描述
本文用M表示明文灰度图像,大小为mxn,M(x,y)(1≤x≤m,1≤y≤n)表示位置(x,y)处的灰度值。用C表示密文图像。
(1)位置置换过程
根据图像M的大小产生mxn长度的混沌序列{X1,X2,X3,…,Xmxn),用该序列按照列优先的方式构造mxn的矩阵E。对E的元素进行排序后,按照列优先的位置重新
放置,启用位置矩阵L,在L对应的位置依次记录排序后每个矩阵元素在原始矩阵E中的位置。然后把图像M中的像素按照L中的位置重新排列得到M’,实现置换过程。
比如:
(2)像素替代过程
1)确定采样次数T。如果每个采样因子作用于混沌序列的次数F为16,则一个采样因子对原始序列采样16次。
2)构造动态采样因子S:
分别利用整数S1,S2,S3,…,S9对原始混沌序列进行丁次采样(具体见步骤(5))。这里的N为整数常量,如3,4,5,取值不易过大,否则影响效率。
3)通过式(10)改变子密钥的值:
其中,round(mean(K1,K2,…,K1o))是常量,通过对初始子密钥十进制平均值取整得到。用改变后的密钥构造新的采样因子。
4)反复执行步骤(2)、步骤(3),直到产生数量为mxn/t的采样因子。
5)对原始混沌序列采样,得到采样后的序列(Y1’,Y2’,…,Y'mxn)。本方案要把采样后序列的元素映射为[0, 255]内的整数,为得到均匀分布在[0,255]内的整数序列,只在原始序列中选择处于[0.2,0.8]区间上的值。由Yo迭代得到Y1‘∈[0.2,0.8]。用式(11)进行采样:
其中,n≥s且Yi+1‘∈[0.2,0.8],s代表当前使用的采样因子;f(n)(.)表示对混沌方程迭代几次。式(11)保证混沌方程由当前值Yi‘迭代大于等于s次后得到第1个属于区间[0.2,0.8]的值作为Yi+1‘。
6)利用式(12)将(Y1’,Y2’,…,Y'mxn)映射到区间[0.2,0.8]上,得到(Y1’‘,Y2’’,…,Y'‘mxn):
其中,i=1,2,…,mxn。
7)由式(13)、式(14)进行像素灰度替代:
其中,i=2,3,…,mxn;L(i),M(i)'表示按照列优先方式从矩阵L、M'取得的第i个元素。根据式(12)建立C(i)与C(i -1)的关系,以这种方式扩散明文到密文。在C(I)中加入密钥信息,以增加密钥敏感性。这里的+指按位异或操作。最后用所有的C(f)构造最终的加密矩阵C,也就是密文。
综上所述,整个加密过程如下:(1)基于外部密钥,构造2个混沌系统x,y的初值。(2)根据混沌系统X迭代出的元素的大小,构造位置置换矩阵,对图像像素进行位置置换操作。(3)由外部密钥导出的子密钥动态采样混沌系统y产生的原始序列,并将采样后的序列映射到[0,255]的整数域上,结合外部密钥以及位置置换矩阵的信息,对置换后的图像执行灰度替代操作。
解密过程是加密过程的逆操作。对应加密公式(式(13)和式(14),解密公式为:
其中,i=2,3,…,mxn。
二、实验结果及分析
本文采用Matlab 7.3平台,选取256x256的Lena灰度图像(图1)进行实验。式(9)中N=3,采样次数T=16。
1、密钥敏感性分析
选择’AOC2EF52BBE5CA894405’作为外部密钥,图2(a)、图2(b)为加解密效果。用密钥’AOC2EF52BBE5CA894406’解密图2(a)的效果如图2(c)所示。
表1给出了密文图像之间的相关系数,其中用于加密的密钥如下:
上述4个密钥之间都只有1位或2位不同,由相关系数考察密钥敏感性。相关系数定义如下:
其中,cov(x,y)=E((x—E(x)),(y-E(y)))为协方差;方差D(x)=E(X2) -E2(x),均值为E(x);x,y分别代表2个密文图像同一位置上像素灰度值。从中可以看出,对应位置像素的相关性可视为0,表明密文对密钥具有高度的敏感性。
2、统计特性分析
以密钥“AOC2EF52BBE5CA894405”加密的结果为例分析统计特性。
(1)灰度直方图。图3(a)是原始图像(图1)的像素灰度直方图,图3(b)则对应密文图像(图2(a))。可以看出,明文的像素值统计信息在密文图像中没有体现,明密文之间统计上的相关性非常小,表明方案能够有效抵御基于像素值统计的攻击。
(2)相邻像素相关性。比较明密文图像水平和垂直方向相邻像素相关性。利用式(17)计算相关系数,其中的xy分别代表图像内部相邻位置的像素灰度值。表2为实验结果。
图4、图5分别描述了在图像中随机选取2000个点水平和垂直方向的相关性。
结果表明,原始图像中相邻像素之间存在很高的相关性,而加密图像相邻像素之间的相关性可以忽略为0。
分析像素灰度直方图和相邻像素相关性得出结论:明文图像统计结构已经扩散到密文中,方案有很好的扩散性能。
3、密钥空间分析
本文的方案采用的密钥为80 bit,密钥空间可达280(~1.208 gx1021),加密系统的熵为80,密钥空间大小足够抵御穷举攻击。只需要修改算法某些细节,就可以使用更长的密钥,如128 bit,容易实现且不会影响算法效率。
小知识之Logistic函数
Logistic函数或Logistic曲线是一种常见的S形函数,它是皮埃尔·弗朗索瓦·韦吕勒在1844或1845年在研究它与人口增长的关系时命名的。广义Logistic曲线可以模仿一些情况人口增长(P)的S形曲线。起初阶段大致是指数增长;然后随着开始变得饱和,增加变慢;最后,达到成熟时增加停止。
一个简单的Logistic函数可用下式表示: