APP下载

基于Logistic混沌系统的图像加密算法分析与改进

2017-05-31廖雪峰

软件导刊 2017年5期

廖雪峰

摘要摘要:基于Logistic混沌系统的快速数字图像加密算法,利用混沌序列对图像像素值进行融合,然后对像素位置进行置乱操作。根据选择密文攻击原理,对该图像加密算法进行了安全性分析,结果表明该算法不能抵抗选择密文攻击,攻击者只需要选择一幅像素值全同的密文图像即可破解该算法的等效密钥。提出了一种基于Logistic混沌系统的图像加密改进算法,并对改进算法进行了安全性分析和实验测试。理论分析及实验结果表明,改进算法不仅克服了原算法不能抵御选择密文攻击的缺陷,而且在相邻像素相关性、信息熵和密钥空间等方面具有更好的密码学特性。

关键词关键词:混沌系统;图像加密;选择密文攻击;密码分析

DOIDOI:10.11907/rjdk.171111

中图分类号:TP312

文献标识碼:A文章编号文章编号:16727800(2017)005003903

0引言

混沌密码在面向图像等大数据加密场合比传统密码具有更多优势,因此混沌密码被列为现代密码学的研究前沿之一[1]。混沌密码利用了混沌系统所具有的遍历性、初值敏感性、参数可控性和伪随机性等特性,这些特性正好符合密码学中“扩散和混乱”的基本原则。文献[2]-[5]是一些典型的“扩散和混乱”型混沌图像加密算法。然而,目前提出的一些混沌密码算法存在安全漏洞,如文献[3]和[5]的算法就分别被文献[6]和[7]破解。因此,对一些已发表的混沌密码算法开展安全性分析研究,不仅可以避免实际应用时产生安全隐患,而且可以促进混沌密码学的发展。

文献[8]提出了一种基于Logistic混沌系统的图像加密算法,该算法利用混沌序列生成像素值融合加密序列和像素位置置乱序列,对图像先后实施像素值加密和像素位置的两轮置乱处理。该算法具有结构简单、加密速度快的特点。然而,笔者研究发现:文献[8]算法不能抵抗选择密文攻击,攻击者可破获该算法的等效密钥及密文图像。为此,提出了一种改进的混沌图像加密算法。理论分析和实验结果表明,改进算法不仅能抵抗选择明(密)文攻击,而且比原加密算法具有更好的密码学性能。

1原密码算法分析

1.1原密码算法概述

文献[8]算法采用式(1)所示Logistic混沌映射:

xn+1=f(xn,u)=μxn(1-xn)(1)

式(1)中,当3.57≤ μ ≤4时,迭代所得序列呈混沌特性。文献[8]加密算法的主要思路简述如下:

1.1.1像素值融合处理

该文假设输入明文图像PI大小为M×N,其中:M=256, N=256;原始外部密钥key为32个字符。(1)由Key的32个字符ASCII码值经运算得到一个(0,1)范围的小数x0,作为Logistic映射状态初值。(2)将x0和μ=3.99代入公式(1), 迭代得到状态值xi, 组成一维混沌序列X={xi},i=1,2,…, M×N, xi ∈(0, 1)。(3)设计线性变换公式(3)将xi变换成ui

ui=a+ xi(b-a)(2)

(4)令:a=0, b=255,将得到的ui取整得到一维序列U={ui},i=1,2,…, M×N。ui的取值范围为[0, 255]。

(5)把一维的整数序列U={ui}转换为M行N列的二维矩阵,从而得到文献[8]所描述的混沌矩阵ChM。(6)将原图像矩阵PI和混沌矩阵ChM对应位置按照式(5)进行像素值的融合运算(其中⊕为按比特位进行异或运算的运算符),得到中间密文图像矩阵MidPI:

MidPI = PI⊕ChM(3)

1.1.2像素位置置乱(1)令:a=1, b=256,再利用同样的线性变换公式(2),得到ui取整又得到一种一维序列U={ui},i=1,2,…, M×N, 此时的ui取值范围为[1, 256]。(2)把一维的整数序列U={ui}转换为M行N列的二维矩阵,从而得到文献[8]所描述的混沌地址矩阵ChA。(3)按照下列交换规则,对中间密文图像矩阵MidPI进行像素位置置乱操作,得到置乱后的矩阵版本MidPI2: MidPI(ChA(i, i), k)与MidPI(ChA(i+1, i+1), k)交换;MidPI(k, ChA(i, i))与MidPI(k, ChA(i+1, i+1))交换。(4)把MidPI2分成4×4的小块,再利用步骤(3)所述交换规则对这些小块进行块置乱,即得到最终加密图像EI。

1.2对原加密算法目标密文的破译

文献[8]中的等价密钥矩阵ChM和ChA仅由用户输入的外部密钥Key决定,而与被加密图像的内容无关。因此,一旦攻击者用选择明(密)文攻击法破获了ChM和ChA,即可破译目标密文图像。本文用选择密文攻击法破解文献[8]密文,操作步骤如下:(1)选择一幅由相同像素值组成的密文图像C,通过公开的解密算法,即可得到相应的明文图像PI。(2)由于密文矩阵每个元素的值都相同,因此恢复出的中间密文图像仍然与密文图像一致,即MidPI=C。(3)由于中间密文图像与明文图像之间的关系是由公式(3)决定的,因此由公式(3)反过来即可推算出ChM,即:ChM=MidPI⊕ PI=C⊕PI。(4)根据文献[8]中ChM和ChA的生成公式(2),不难发现ChM与ChA之间存在如下关系:ChA(i, j)=ChM(i, j)+1。故破获了ChM后,也就得到了ChA。(5)利用已破获的等价密钥ChM与ChA,即可解密目标密文图像。

2改进的混沌图像加密算法

设明文图像、中间密文图像和最终密文图像的像素序列分别表示为P={pi}、B={bi}和C={ci}, i=1,2,…,L;改进算法包含一轮像素位置置乱操作和一轮像素值扩散操作。

2.1像素位置置乱算法

像素位置置乱算法步骤如下:(1)输入大小为M×N的明文图像,并将其转化为一维像素序列P;输入初始密钥参数:x10, x20∈(0,1); μ1, μ2∈[3.57, 4]; N0∈Z+, C0∈[1, 255]。(2)计算明文图像所有像素的平均值m1和像素最大值m2,如果m1=m2,则省略像素置乱算法;否则,继续执行步骤(3)到(7)的置乱操作。(3)令 x=x10×m1/m2, μ=μ1;迭代式(1) N0次,以便消除混沌系统的暂态效应;并初始化置乱序列ti=i;初始化标志序列vi=0;令i=1。(4)迭代Logistic系统,得到混沌系统新的状态值x, 然后按照公式(4)由混沌系统当前状态值x计算整数j的值:

j=mod(floor(x×1014),L)+1(4)

其中,floor(x)返回小于或等于x的最大整数, mod(x, y) 返回x除以y之后的余数。(5)检查ti和vj的值:如果j=ti,则意味着明文图像的像素pi在中间密文图像B中的位置也是i,相当于没有移位;如果vj=1,则意味着B中第j个位置已经存储了像素值,不能再接受别的像素值存储到该处。因此,当j=ti或vj=1时,重复步骤(4); 否则,转步骤(6)。(6)bj=pi, 置ti值为j,并修改标志序列元素vj的值为1,即执行语句:ti =j, vj=1。(7)i=i+1, 若i≤L,返回步骤(5);否则,算法结束。

2.2像素值扩散加密算法

像素值扩散加密算法步骤如下:(1)初始化:i=1,μ=μ2,,x = x20×C0/255。(2)判断i值,若i=1, 则令di=C0; 否则令di = ci-1。(3)迭代Logistic系统一次,得到系统新的状态值x。(4)利用当前x值按式(5)计算当前密钥ki:

ki= mod(floor(x×1014), 255)+1(5)

(5)按照公式(6),对中间密文图像的第i个像素bi进行扩散加密,得到第i个密文像素ci:

ci =mod(bi⊕ ki+di⊕ ki, 256)(6)

(6)i=i+1, 若i≤L,则返回到步骤(2);否则,转步骤(7)。

(7)将得到的密文序列C={c1, c2,…,cL}转化为二维矩阵即得到最终加密图像输出,算法结束。改进算法引入了m1和m2两个与明文图像内容相关的密钥参数;因此,改进算法可以抵御明文攻击和密文攻击。

2.3实验仿真与性能分析

实验采用与文献[8]一样的256 × 256的8位灰度图像Lena,在Matlab R2014a下进行实验。原始密钥参数取值分别为:x10=0.734123, x20=0.23,μ1=3.99, μ2=4.0, N0=500, c0=53。加密前后的图像分别如图1所示。

2.3.1相邻像素的相关性

从图像中选取若干相邻像素对,按文献[8]中的公式分别计算原始图像和加密图像中相邻像素之间的相关系数(含水平、垂直和对角方向的相邻像素),所得结果如表1所示。结果表明:原始明文图像的相邻像素是高度相关的(相关系数接近1),但密文图像的相邻像素则变得几乎不相关(相关系数接近0)。表1也给出了文献[8]算法所得加密图像的相应数据,结果表明,本文加密的密文图像相邻像素具有更低的相关性,因此抗攻击性能更强。

2.3.2信息熵分析信息熵指标反映图像信息的随机程度,其计算公式参见文献[4]。对于256级灰度图像,如果每一像素值出现的概率相等,则属于完全随机图像,此时图像的信息熵为8。因此,一幅图像的信息熵越接近8,则它越接近随机图像。对本文算法加密后的密文图像计算所得的信息熵为7.9979;而文献[8]算法所得的密文图像信息熵为7.985 6。可见,本文算法比文献[8]算法加密的图像随机性更强。

2.3.3敏感性测试密文对明文或密钥的敏感性是算法抵抗差分攻击能力的测度,常用像素数改变率(NPCR)和归一化平均改变强度(UACI)来度量,其计算公式参见文献[4]。对256级灰度图像,NPCR和UACI的理想值分别是0.996 1与0.334 6。本文取Lena图像进行了100组加密实验,每组实验的明文图像只有1个像素与原Lena的像素值相差1,得到100组NPCR与UACI值的平均值分别为0.996 1与0.334 8,这表明密文对明文具有极端敏感性。为验证密文对密钥的敏感性,每次对(x10, x20, μ1, μ2)密钥中的1个施加微小改变量10-10,然后测得密钥改变前后两幅密文图像之间的NPCR和UACI值,结果如表2

3结语

本文对一种基于Logistic混沌系统的图像加密算法进行了密码分析,用选择密文攻击方法破译了该算法的等效密钥,在此基础上提出了改进的混沌图像加密算法。改进算法采用密钥与待加密图像内容相关联措施,克服了原算法不能抵抗选择密文攻击的缺陷。实验证明,改进算法比原算法具有更好的加密性能,提高了安全性。

参考文献参考文献:

[1]廖晓峰,肖迪,陈勇,等.混沌密码学原理及其应用[M].北京:科学出版社,2009:3739.

[2]朱从旭,廖建华.一种基于外部密钥和密文反馈的混沌密码新算法[J].软件导刊,2010,9(1):6264.

[3]ZHANG G,LIU Q.A novel image encryption method based on total shuffling scheme[J].Optics Communications,2011,284(12): 27752780.

[4]朱从旭,胡玉平,孙克辉.基于超混沌系统和密文交错扩散的图像加密新算法[J].电子与信息学报,2012,34(7): 17351743.

[5]WANG X Y,XU D H.A novel image encryption scheme based on Brownian motion and PWLCM chaotic system[J].Nonlinear Dynamics,2014,75(12):345353.

[6]ZHU C X,LIAO C L,DENG X H.Breaking and improving an image encryption scheme based on total shuffling scheme[J].Nonlinear Dynamics,2013,71(12):2534.

[7]ZHU C X,XU S Y,HU Y P,et al.Breaking a novel image encryption scheme based on Brownian motion and PWLCM chaotic system[J].Nonlinear Dynamics,2015,79(2):15111518.

[8]張永红,张博.基于Logistic混沌系统的图像加密算法研究[J].计算机应用研究,2015,32(6):17701773.

责任编辑(责任编辑:杜能钢)