针对Logistic映射应用于罔像加密时迭代点比较集中、遍历性较差的问题,提出一种改进的基于斜帐篷映射与DNA理论的图像文件加密算法。

一、斜帐篷映射

斜帐篷映射是一种简单的混沌映射,它的表达式如下:

图像文件加密算法之DNA编码和斜帐篷映射

当a∈(0,1),Xn∈(0,1),n=l,2,…时,系统处于混沌状态。对比Logistic映射Xn+l =HXn(l-Xn),当3.569 945<μ≤4,xn∈(0,1)时,系统进入混沌状态。由此可见,斜帐篷映射有更大的参数取值范围,且变量密度比Logistic映射稳定。

对斜帐篷映射和Logistic映射分别进行仿真得到其遍历图,由图l和图2可见,相比Logistic映射中迭代点在区间两侧比较集中,斜帐篷映射的迭代点分布更加均匀,遍历性也更好。故本文选取该映射产生混沌序列。

图像文件加密算法之DNA编码和斜帐篷映射

二、DNA编码

本文采用DNA编码理论对像素位置已被置乱的图像进行编码。将每一个像素用8位二进制表示,每2位用一个DNA碱基(A,C,G,T)表示。又因为二进制数字0与1是互补的,所以00与11互补,01与10互补。由此可得到8种编码规则,见表l。

图像文件加密算法之DNA编码和斜帐篷映射

在这8种规则的选取上,采用随机函数生成一个(0,1)间的随机数,使8种规则分别对应(0,1)间的8个区域,例如:(0,0.125)对应规则1,(0.125,0.25)对应规则2,……。不同区间的随机数对应不同的编码规则,进而得到不同的加密图像。

三、基于斜帐篷映射和DNA编码的图像文件加密算法

利用Logistic混沌序列置乱像素位置和像素灰度值。利用混沌映射对像素位置和像素灰度值进行双重置换。然而仅改变像素位置或像素值的算法容易导致密钥空间小、易被穷举攻击破译等问题;并且Logistic混沌序列的分布不均匀,会延长搜索时间。

本文提出一种改进的斜帐篷映射与DNA编码结合的算法。利用混沌序列置乱图像的像素位置,之后结合混沌序列和DNA编码来置乱像素的值。

算法具体步骤如下:

(1)输入8位灰度图像A(m,n),m,n为图像的行列A维数。

(2)给定初值为x1,y1,系统参数为a1,a2,由式(l)迭代N-1次(N=mxn),产生2组序列{Xm),{yn},并按升序排列,得到2组新序列{Xm’)},{yn’)}。

(3)用序列{Xm’)},{yn’)}中各元素的下标索引替换原序列中的该元素,得到序列{Xm’')},{yn’')};用这2组新序列产生置乱地址变换码,得到灰度图像B(m,n)。

(4)将图像B转换为一个二进制序列S,像素灰度值用8位二进制数表示,则length(S)=mxnx8,再利用随机函数选取一种DNA编码规则对序列S进行编码,得到DNA序列K,则length(K)=mxnx4。

(5)给定初值ZI,以及系统参数a3,由式(1)迭代length(K)-1次,产生一组新的混沌序列,再利用阈值函数f(x)将此混沌序列二值化,若混沌序列中zi =1,则K中对应位置碱基取补,反之不变。

(6)对DNA序列利用随机函数选择一种DNA编码规则进行解码,将其还原为二值序列,重构矩阵得到加密图像。

定义闽值函数f(x),取阈值为0.5,则f(x)定义如下:

图像文件加密算法之DNA编码和斜帐篷映射

另外,由于a= 0.5时,斜帐篷映射容易趋于周期性,或收敛于稳定值0,因此在a=0.5时为迭代点添加扰动,使其跳出周期点,保证混沌映射能更好地遍历。

小知识之Logistic函数

Logistic函数或Logistic曲线是一种常见的S形函数,它是皮埃尔·弗朗索瓦·韦吕勒在1844或1845年在研究它与人口增长的关系时命名的。广义Logistic曲线可以模仿一些情况人口增长(P)的S形曲线。起初阶段大致是指数增长;然后随着开始变得饱和,增加变慢;最后,达到成熟时增加停止。