APP下载

基于混沌映射组合的高效图像加密新算法

2010-01-12廖雪峰

关键词:明文密文解密

廖雪峰

(温州大学瓯江学院,浙江温州 325035)

基于混沌映射组合的高效图像加密新算法

廖雪峰

(温州大学瓯江学院,浙江温州 325035)

提出了一种结合Logistic映射和标准混沌映射的混沌图像加密算法.由Logistic映射和标准混沌映射产生的混沌序列生成中间密钥,利用像素密文输出控制后继明文的加密密钥生成,使密文对明文具有敏感性.仿真结果表明,该密码系统的时间开销很小;密钥空间足以抵抗强力攻击;密文对明文或初始密钥的任何微小变化均有强烈敏感性;密文分布均匀,相邻像素满足零相关性.故该密码系统具有高安全性.

图像加密;Logistic映射;标准混沌映射

随着计算机网络通讯技术的飞速发展,越来越多的信息将通过互联网传播,安全高效的保密通信方式已成为研究热点.混沌系统具有许多优良特性,如敏感依赖于初始条件和系统参数,各态历经的遍历性及混合扩散(伸展和折叠)特性等.这些特性正好符合密码系统对混乱和散布特性的要求,因此混沌系统成为构造密码系统的理想选择.

近年来,许多基于离散混沌系统的密码算法被相继提出[1-3].一些一维混沌映射系统如Logistic映射[3]和分段线性映射[4]常被用于构造离散混沌密码系统.然而,这些离散混沌密码系统多数只采用一个混沌映射,存在如下缺点:一是密钥空间小,使得抗穷举攻击的功能弱;二是容易遭到相空间辨识的攻击[5].此外,许多现有混沌密码系统所加密的密文不具备对明文的敏感性.为了提高一维混沌映射密码系统的安全性,文献[6]专门针对彩色图像提出了一种基于Logistic映射和标准混沌映射相结合的加密方法.

本文提出一种结合Logistic映射和标准混沌映射双混沌系统的新型图像加密方法.与文献[6]的密钥产生方法不同,本文使用两个混沌系统的序列值生成中间密钥,将标准混沌映射的分量{zn}序列作为控制序列,将控制随机选择Logistic映射的{xn}或标准混沌映射的{yn}作为中间密钥,使混淆性能增强.混淆特性越强的密码系统具有越高的安全性[7].此外,在加密过程中,还引入了一种新的密文输出反馈机制,从而提高了密文对明文的敏感性.

1 算法方案

1.1 Logistic混沌映射和标准混沌映射

Logistic映射是一种性能良好的动力系统,定义为:

式中,0 ≤μ≤ 4称为分岔参数.当xn∈(0, 1)且3.569 945 <μ≤ 4时,Logistic映射工作于混沌状态.也就是说,由两个不同初始状态x01和x02,式(1)迭代生成的两个序列是非周期、不收敛、不相关的.

标准混沌映射模型的迭代方程为:

其中K为系统参数.随着参数K的变化,当K足够大时,系统将从固定点失稳,经倍周期分岔进入混沌.给定方程的初值(y0,z0)进行迭代运算,将生成两组伪随机序列{yn,zn,n= 1, 2,}.

1.2 加密解密算法

算法的设计既要充分考虑最终密钥对初始密钥各种细微变化的敏感性,也要考虑密文对明文各种细小变化的敏感性,还要考虑密文扩散分布的均匀性,以及初始密钥空间的广阔性.本文将两个混沌系统的初始状态参量x0、y0、z0以及系统参数μ、K和预迭代次数N作为初始密钥,随机选择迭代生成的混沌实数序列{xn}和{yn}作为密钥序列源,将经过处理后得到的一字节的整数密钥序列,作为对图像像素加密的中间密钥.分别采用下面式(3)或式(4)所表示的算法,可由混沌序列实数得到整数中间密钥,其中,式(3)或式(4)随机交替被采用,具体控制策略由{zn}决定.

其中,floor(x)为取小于或等于x的最大整数的函数,mod(x, y)是求x对y的模运算.

利用混沌实数序列{zn}作为控制序列,控制随机选择{xn}和{yn}中的实数来构造整数中间密钥序列IntKey1;加密一个像素的最终密钥为IntKey(n),IntKey(n)由中间密钥序列IntKey1(n)与前一像素点加密后输出的密文Cn–1经异或而成;然后用当前的最终密钥IntKey(n)对当前像素点明文Pn加密,得到当前的密文像素Cn.由中间密钥生成最终密钥的公式如式(5)所示,加密采用的算法如式(6)所示.

其中,Pn和Cn分别代表明文像素值和相应的密文像素值,IntKey1和IntKey分别代表中间密钥和最终密钥.这里,为了使加密密文敏感依赖于被加密对象,引入了由前一点密文输出控制后一点加密密钥生成的机制.对整个图像进行两轮加密,对第一轮的第一点加密时使用的C0则预先指定,对第二轮的第一点加密时使用前一轮最后一点输出的密文进行控制,这样就使得不管明文的变化发生在任何位置,都有可能引起整个图像全部像素的变化,使得生成的密钥序列{IntKey}敏感地依赖于任意明文点的变化.为了提高密文对密钥的敏感性,混沌映射首先经过N次预迭代,以后继续迭代生成的序列才被采用作为生成中间密钥的序列.

设待加密的图像为M×M的256级灰度图象,先将图像降维成一维序列形式,用H(n) (n= 1, 2,,M×M)表示,加密算法利用文字结合Matlab伪代码的形式可详细描述如下:

Step 1 给定初始化参数μ、x0、y0、z0、K、N、C0;以此作为密钥参数.

Step 2 混沌映射式(1)和式(2)都作N次预迭代,以提高混沌序列对初值的敏感性.

Step 3 两个混沌映射各迭代2 ×M×M次,得到3个实数序列{x(n),y(n),z(n),n= 1, 2,, 2 ×M×M}.并根据如下规则生成混沌中间密钥序列{IntKey1(n),n=1, 2,, 2 ×M×M}:

Step 6 对图像中第n点加密,得到第n点的密文H1(n):

Step 7 若n

经第一轮加密后得到的图像像素序列用H1表示,接着对H1再重复第二轮与上述Step 4 – Step 5类似的操作,将得到最后的加密图像H2.第二轮操作算法的主要步骤和伪代码如下:

Step 1n取值为第一轮结束时的值(即n=M×M),令n1= 1.

Step 2 单独对图像中第1点采用如下公式加密,得到密文H2(1):

Step 3 修改n1的值:n1=n1+ 1.

Step 4 对图像中第n1点加密,得到第n1点的密文H2(n1):

Step 5 重复Step 3 – Step 4的操作,直到H1中所有像素点处理完毕(即n1=M×M),即完成全部加密操作.加密完成后,将H2转化为二维矩阵形式就得到加密图像矩阵.

解密算法与加密算法类似,是加密的对称逆过程.这里值得指出的是,解密操作的顺序应该是先对第二轮加密操作进行逆操作,像素的循环则是从最后一点到第一点逆向循环.然后对第一轮加密操作进行逆操作,像素的循环也是从最后一点到第一点进行逆向循环.特别地,每一轮对图像第一个像素要单独处理.假设由密文图像Hk解密得到图像Bk(k= 1, 2),其中的最终解密图像版本为B1.解密过程的关键步骤和伪代码可描述如下:

第一轮解密

Step 1 初始化n1值:n1=M×M,其它参数同加密过程.

Step 2 按序取H2中的一个像素点H2(n1),对该像素作如下解密操作:

1)由混沌中间密钥Intkey1生成当前点的最终解密密钥:

2)解密当前点的像素,得到解密后的值B2(n1):

Step 3 修改n1的值:n1=n1– 1.

Step 4 若n1> 1,则重复Step 2 – Step 3的操作;若n1= 1,则转Step 5.

Step 5 单独处理图像中第一个像素点.此时应根据下列公式计算密钥:

1)由第一轮加密后所得的最后一点的密文值,即解密版本B2中最后那一点的值B2(M*M),结合混沌中间密钥序列中第(M*M+1)点的值IntKey1(M*M+1);得到最后密钥IntKey:

第二轮解密

解密的步骤和算法与第一轮解密几乎相同,关键步骤描述如下:

Step 1 初始化n值:n=M×M.

Step 2 按序取B2中的一个像素点B2(n),对该像素作如下解密操作:

Step 3 修改n的值:n=n– 1.

Step 4 若n> 1,则重复Step 2 – Step 3的操作;若n= 1,则转Step 5.

Step 5 单独处理图像中第一个像素点.此时应根据下列公式计算密钥:

以上步骤完成后,得到的B1就是最终解密图像的像素序列,将此像素序列B1转换为M×M的矩阵形式就得到了最终解密图像矩阵.

2 实验结果与分析

实验采用256 × 256的8位Lena灰度图像,给定参数为:π= 3.141 59,μ= 4.000 0,x0= 0.7,y0= 2.71,z0= 1.379 1,N= 1 000,C0= 50,K= 108.543 6.原始图像和加密图像分别如图1所示.

图1 原始图像和加密图像Fig 1 Original Image and Encrypted Image

2.1 密文敏感性分析

2.1.1 密文对密钥的敏感性

对同一明文图像,采用两个略有差异的密钥进行两次加密,两次加密时仅Logistic映射的初始值x0略有差异(分别取0.700 0和0.700 1),然后得到两个加密图像加以对比.经过这样的两个不同密钥加密后得到的密文图像的差别可以由实验结果反映出来.图2是取两个密图前100个密文像素的差值得到的分布图.由图2结果可见,相同的明文在密钥发生细微变化时,密文会有显著变化,这反映了密文对密钥的敏感性.多次实验表明,任何密钥细小的改变都会引起任何位置段的密文发生显著的变化.

2.1.2 密文对明文的敏感性

用相同初始密钥对略有差别的明文图像加密,设两明文图像仅仅第1行第10列的那个像素的值相差5,图3是加密后两密图前100个密文像素的差值分布图.可见在相同密钥下明文1个点的细微变化也会导致密文的明显变化,反映了密文对明文的敏感性.

图2 密文对密钥的敏感性Fig 2 Sensitivity of Ciphertext to Secret Key

图3 密文对明文的敏感性Fig 3 Sensitivity of Ciphertext to Plaintext

2.2 统计特性分析

2.2.1 直方图分析

直方图描绘的是一幅图像在每一种灰度值上的像素数目,它反映出一幅图像中像素的分布情况.图4是本文实验所采用的明文Lena图像的直方图,图5是用本文算法加密后得到的相应密文图像的直方图.对比图4和图5可见,原始图像的像素在各种灰度级上的分布很明显是不均匀的,但经过混沌系统加密调制后的密文像素在各种灰度级上的分布趋于均匀(像素值在0 − 255的范围内取值概率接近相等),可见本文加密算法产生的密文扩散性好.

2.2.2 相邻像素的相关性

为了检验明文图像和密文图像相邻像素的相关性,从图像中选取65 280对相邻像素(水平、垂直或对角的),然后使用以下公式定量计算相邻像素的相关系数[8]:

其中,x和y分别表示图像中两个相邻像素的灰度值,γxy即为两个相邻像素的相关系数.

图4 明文图像的直方图图Fig 4 Histogram of Plaintext Image

图5 密文图像的直方图Fig 5 Histogram of Ciphertext Image

图6和图7分别描述了明文和密文水平方向相邻像素的相关性.表1列出了按3种方向计算所得的相关系数结果.由结果可知,原始明文图像的相邻像素是高度相关的,相关系数接近于1.而加密图像的相邻像素相关系数接近于0,相邻像素已基本不相关,说明明文的统计特征已被很好地扩散到随机的密文中.

图6 明文图像水平方向相邻像素的相关性Fig 6 Correlation of Horizontal Direction Adjacent Pixels in Plaintext Image

图7 密文图像水平方向相邻像素的相关性Fig 7 Correlation of Horizontal Direction Adjacent Pixels in Ciphertext Image

表1 明文和密文相邻像素的相关系数Table 1 The Correlation Coefficients of Adjacent Pixels in Plaintext Image and Ciphertext Image

表1同时还列出了文献[6]对于彩色Lena图像R、G、B等3个基色密文平面的相邻像素相关系数的平均值(参见文献[6]表5).对比可见,本文加密算法所得的水平方向密文相邻像素的相关系数值比文献[6]的平均值要好一个数量级;垂直方向密文相邻像素的相关系数值与文献[6]的数量级相当;关于对角方向密文相邻像素的相关系数值文献[6]未报道,故未能比较.因此从总体上可以判断本文的这个指标与文献[6]的是相当的.

2.3 密钥空间和加密速度分析

如果以混沌系统初值x0、y0、z0及系统参数μ、K为最初密钥,采用精确到小数点后15位的双精度实数表示,则密钥空间为1015× 1015× 1015× 1015× 1015= 1075≈ 2249,相当于249比特长的密钥空间,是单个一维Logistic混沌系统密钥空间(1015× 1015)的1045倍;如果将混沌系统预迭代次数N和参数C0也作为密钥,则密钥空间更大.故该密码系统足以抵抗现有硬件条件下的强力攻击.

下面分析本文算法与文献[6]算法的时间复杂度.首先从理论上做一个初步分析,因为本文算法只有两轮加密,因此对图像所有点的遍历次数为2轮.若图像的像素数为M×N,则本文加密算法的时间复杂度为2 × O(M×N)量级.文献[6]的算法包含1轮异或运算混淆操作,2轮(水平、垂直方向)扩散操作,1轮产生混沌密钥图像的操作,1轮利用混沌密钥图像进行混淆的操作.共计要遍历M×N个像素点5轮,因此其算法时间复杂度为5 × O(M×N)量级.从数量级来看,两者的时间复杂度在同一个数量级.为了进行实质性的算法速度对比,在同样的计算机系统平台与相同的编程语言下对两种算法都进行了实现(2.13GHz CPU、1GB内存的笔记本电脑以及Windos Xp操作系统,编程语言为Matlab7).按照文献[6]的思想,其混沌密钥图像可以预先生成保存下来供加密解密调用,因此生成混沌密钥图像的过程可以不计入加密时间开销.相应地,本文的混沌中间密钥也可预先生成,同样可不计入加密过程的时间开销中.取同样两种大小不同的图像进行实验,对图像加密过程的时间开销都取 10次实验的平均值,所得结果如表2所示.结果表明,本文算法加密过程的时间开销小于文献[6]的加密过程时间开销.

3 结 论

表2 加密过程的时间开销对比Table 2 Comparison of Time Expenditure in Encryption Process

本文提出了一种结合Logistic映射和标准混沌映射的图像混沌加密算法.该算法具有的优点是:1)像素的替代基于双一维混沌系统组合加密,克服了单一的一维混沌系统密钥空间不足和不能抵御相空间重构攻击的缺点;2)引入了密文输出反馈控制策略,使密文对任意位置明文的变化具有强烈敏感性;3)混沌系统每次随机产生的密钥不同,具有一次一密的特性;4)密文具有在整个取值空间均匀分布的特性;相邻像素具有近似于零的相关性;5)算法的时间开销小,比较适用于网络通信的实时图像加密.

[1]Wong K W. A Fast Chaotic Cryptography Scheme with Dynamic Look-up Table [J]. Physics Letters A, 2002, 298(4): 238-242.

[2]Wong K W, Ho S W, Yung C K. A Chaotic Cryptography Scheme for Generating Short Ciphertext [J]. Physics Letters A, 2003, 310(1): 67-73.

[3]Pareek N K, Patidar V, Sud K K. Discrete Chaotic Cryptography Using External Key [J]. Physics Letters A, 2003, 309(1-2): 75-82.

[4]Huang F, Guan Z H. A Modified Method of a Class of Recently Presented Cryptosystems [J]. Chaos, Solitons and Fractals, 2005, 23(5): 1893-1899.

[5]Jakimoski G, Kocarev L. Analysis of Some Recently Proposed Chaos-based Encryption Algorithms [J]. Physics Letters A, 2001, 291(6): 381-384.

[6]Patidar V, Pareek N K, Sud K K. A New Substitution-diffusion Based Image Cipher Using Chaotic Standard and Logistic Maps [J]. Communication in Nonlinear Science and Numerical Simulation, 2009, 14(7): 3056-3075.

[7]Schneier B. Applied Cryptography: Protocols, Algorithms and Source Code in C [M]. 2nd. New York: John Wiley and Sons, 1996: 330-340.

[8]Chen G, Mao Y, Chui C K. A Symmetric Image Encryption Scheme Based on 3D Chaotic Cat Maps [J]. Chaos, Solitons and Fractals, 2004, 21(3): 749-761.

New Efficient Algorithm of Image Encryption Based on Combined Chaotic Maps

LIAO Xuefeng
(Oujiang College, Wenzhou University, Wenzhou, China 325035)

A new chaotic encryption algorithm based on combined Logistic map and standard chaotic map was proposed. The chaotic sequences randomly generated by the Logistic map and standard chaotic map were adopted to generate intermediate key. Then the generated ciphertext of encrypted pixels was used to control the generation of encryption key of successor plaintext to make the ciphertext sensitive to the plaintext. Simulation results showed that the proposed cryptosystem requires very little time to encrypt the plaintext. The key space is large enough to resist the brute-force attack. The ciphertext varies sensitively with any minimal changes of the initial secret key and the plaintext. For the encrypted image, the distribution of pixel-values has a random-like behavior and the values of adjacent pixels satisfy zero correlation, showing that the proposed scheme is of high reliability.

Image Encryption; Logistic Map; Standard Chaotic Map

(编辑:王一芳)

TP309.7

A

1674-3563(2010)01-0033-08

10.3875/j.issn.1674-3563.2010.01.006 本文的PDF文件可以从xuebao.wzu.edu.cn获得

2009-03-20

廖雪峰(1980- ),女,湖南新化人,助教,硕士,研究方向:混沌密码学,数字水印技术

猜你喜欢

明文密文解密
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
炫词解密
解密“一包三改”
炫词解密
奇怪的处罚
一种基于密文分析的密码识别技术*
一种基于密文分析的密码识别技术*
奇怪的处罚
四部委明文反对垃圾焚烧低价竞争