为了提高算法抵御统计分析和差分攻击的能力,提出一种改进的基于混沌的图像文件加密算法。这种加密方法根据分组密码具有混淆和扩散两个机制,结合混沌动力系统特有的优点,该方案简单、快速并且对密钥敏感,不仅有效抵抗统计分析,而且对已知明文攻击也具有较好的抵御能力。

一、Logistic强混沌和MD5算法

Logistic映射是一种广泛使用的动力系统,Logistic强混沌映射的定义为利用MD5算法生成128位二进制信息摘要,将生成的128位密钥分成8组,即Bp,BQ’(P,Q=1,2,3,4),为计算初始条件xo,将密钥组转换成二进制。

kij表示外部街钥的第i组的二进制值。

选择K,K’中不同的密钥组,计算得到16个不同的xo值,即xo(l,1),xo(l,2),…,xo(2,1),…,xo(4,4)。利用Logistic映射迭代200次以去除暂留效应,生成实数序列{ X201(1,1),X201(1,2),…,
X201(2,1),…,X201(4,4)},记做f1f2...fi。

Xi为像素扩散所中反馈机制修改密钥的输入。

二、本文加密算法

1、像素混淆

为了使攻击者无法从明文和密文的对应关系中获得它们和密钥之间的联系,采用混淆技术将图像像索的灰度值进行替换。

将明文分成16组,依次实现像素值的代替过程,若加密的明文不是16的倍数,则依次加密数据流的每个字节。具体步骤如下:

Stcpl:首先图像分成8x8块(记作P1,P2,…,P64),每块含有2x2个像素点(记作P1,p2,P3,P4),假设图像灰度级是256,即8位(b1 b2...b8)二进制构成每个像素点,根据前一像素点Pi-1的三个最重要位(blb2b3)的值和表1对应该位值的操作,修改Pi的像素值。例如,首先取出P1块,P1和P2的像素值分别是201 (11001001)和185(10111001)。像素点P1相应的位值6(110)进行查表,对P2的像素值循环左移一位后取反,由新像素值141(10001101)替代185(10111001)。根据P2新像素值修改P3的像素值,同理修改P4的像素值,并根据该值修改Pi的像素值。按照如上规律,依次完成块Pl,P2,…,P64的替代操作。

Step2:对Stepl得到的结果图像块进行操作:根据前一像素点Pi-1的两个最重要位(blb2)的值和表1对应该位值的操作,修改Pi的像素值,方法同Stepl。

Step3:再一次对Step2得到的结果图像块进行操作:根据前一像索点Pi-1的最重要位(bl)的值和表1对应该位值的操作,修改Pi的像素值,方法同Stepl。

2、像素扩散

对分组图像的像素点进行扩散操作,具体为:根据Logistic映射生成的密钥Xi=m,令ki—1=km,利用公式(9)完成像素扩散操作.其中C(i)和C(i-1)分别是子图像内部水平或垂直相邻像素点的值。

完成一轮加密后,利用反馈机制进行密钥修改,Ii是第f块所有像素点均值。

3、加密算法流程

完整图像加密流程如下,其中Original Image是原始图像,Cipher Image是加密图像。按图3加密过程反方向进行可以完成图像解密。

三、仿真实验及分析

研究表明直方图、像素相关性、密钥敏感性可有效衡量算法抵御统计分析的能力,为此我们进行了相应的实验。加密前后图像的直方图信息具有很大区别,表明密文像素达到较好的置乱和扩散效果。

算法的密钥空间是2128。密钥的敏感性是保障加密系统信息免受穷举攻击的重要特性之一。实验采用密钥Key:2F69E1063A72COCFA78 D9 F84BC-279D220采用三个与之具有微小差别的密钥对图5(b)解密效果如图(d)(e)(f)所示。结果验证了本文算法的密钥敏感性较强。

三个密钥分别为:

图像的本质特征决定了图像中相邻像素间具有较强的相关性,基于该性质,利用统计攻击方法来分析图像加密算法具有较高的可行性,因此用相关系数来衡量加密算法破坏相邻像素相关性的能力。如表3所示,与均匀置乱算法相比,该算法去相关性能力较强,表明加密图像的灰度值分布具有良好的随机性和均匀性。

利用NPCR(next pixeJ change rate)可有效度量明文图像一个像素的改变对密文图像的影响。选取100组图像进行加密实验,一幅是原图像,另一幅是在该图像基础上随机改变一个像素值得到的图像,采用加密算法获得密文图像的NPCR值并与算法进行对比。

实验表明该算法抵御已知明文攻击能力比均匀置乱和二维混沌序列的加密算法。采用均匀置乱算法,当块内像素点相对坐标和块坐标相同时会导致置乱失败。本文算法利用分组密钥生成混沌序列初值,结合像素混淆和扩散操作,降低了明文和密钥序列之间的相关性,与二维混沌映射相比,图像像素达到了更好的扩散性和随机性。

小知识之MD5算法

Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321(R.Rivest,MIT Laboratory for Computer Science and RSA Data Security Inc. April 1992)。