一种基于 SS盒的自适应图像加密算法安全性改进
2015-11-25张斌
张 斌
(宝鸡文理学院计算机学院,陕西 宝鸡 721016)
陈刚等人在论文[1]中提出了一种新的自适应图像加密算法,并证明了加密后的图像可以有效防止已知明文攻击。与此同时,算法还具有良好的完整性保护功能,可以用于图像验证。然而加密算法最重要的指标是算法的安全性,即算法应该不仅能够抵抗已知明文攻击,还应该能抵抗其他攻击方式。周庆等学者在论文[2]中针对自适应图像加密算法提出了两种选择明文攻击和统计学攻击。本文针对自适应图像加密算法所面临的威胁提出了一种改进算法,改进算法在原算法每一轮加密后增加了一个S变换的步骤。理论分析和实验结果表明,改进算法可以有效地提高原算法的安全性。
1 算法描述
我们将数字图像每64比特长度即8个像素点分成一组,最后行数和列数不足的部分用0填充补足。图1给出了组内一轮S变换的内部结构。
图1 一轮S变换处理过程
每组8个像素点被分成左右两个部分,逻辑关系如下:
Li=Ri-1
Li=Li-1⊕S(Ri)
扩展变换的原理与DES扩展变换的原理相同。自适应图像加密算法描述:
①生成密钥序列。
获取用户口令并且把它转化成二进制序列的形式S,例如“1010110…”。
②图像分割
IfS[i]=0
分割图像为上下两部分;
Else if S[i]=1
分割图像为左右两部分;
③互换加密
首先,我们把后部Ir标准化为RIr,然后用RIr混乱前部Ih为 Ih'。然后,我们标准化Ih'为,接着使用混乱后部Ir为Ir'。最后,我们把Ih'和Ir'结合起来构成I'。
④循环
迭代加密直到密钥序列S[i]结束。改进算法描述:
①生成密钥序列。
②图像分割
③互换加密
④S变换
把数字图像I′输入S盒,进行S变换。
⑤循环
2 算法的安全性研究
2.1 第一种选择明文攻击分析
密钥首位为0时,第一轮自适应换位操作过后,该数字图像保持不变。当算法运行到第④步时,把数字图像I′分组进行S变换。此时,像素i(N+1,1)可能的分组有4种情况,像素i(2N,2N)可能分组有两种情况,如图2(a,b)。
图2(a)像素i(N+1,1)可能的分组
密钥首位为1时,第一轮自适应换位操作过后,数字图像右下1/4部分的1元素循环左移一个位置到i(2N,2N-1)。当算法运行到第④步时,把数字图像I′分组进行S变换。此时,像素i(N+1,1)可能的分组有4种情况,同图2(a),像素i(2N,2N-1)可能的分组有两种情况,如图2(c)。图3(a-c)为这8种情况分别通过S变换后的结果。图4(a,b)给出了其余分组及通过S变换后的结果。
图2(b)像素i(N+1,1)可能的分组
图2(c) 像素i(2N,2N-1)可能的分组
图3(a)像素i(N+1,1)通过S变换后的结果
图3(b)像素i(2N,2N)通过S变换后的结果
图3(c)像素i(2N,2N-1)通过S变换后的结果
图4(a) 其余像素分组情况图
图4(b) 其余像素通过S变换后的结果
通过分析结果我们发现从改进算法运行的第一轮开始就破坏了第一种选择明文攻击所需的条件,密文中的元素不再是有规律的排列,而是一种貌似杂乱无章的变化。我们可以得出结论,改进的算法方案可以有效地抵抗通过第一种选择明文攻击来破译原算法。
2.2 第二种选择明文攻击分析
同理,采用第二种选择明文攻击方式对改进算法攻击。不管密钥序列k当前的值为0还是为1,一轮自适应换位操作过后,右上角的元素2右移一个位置,左下角的元素0左移一个位置。当算法运行到第④步时把数字图像I′分组进行S变换。此时,元素值0可能的分组有两种情况,元素值2可能分组有两种情况,如图5(a,b)。图6(a,b)为这四种情况,分别通过S变换后的结果。
图5(a) 元素值0可能的分组情况
图5(b) 元素值2可能的分组情况
图6(a) 元素值0通过S变换后的结果
图6(b) 元素值2通过S变换后的结果
通过分析结果我们可以看出从改进算法运行的第一轮开始同样破坏了第二种选择明文攻击所需的条件,密文中的元素不再是有规律的改变,而是一种貌似杂乱无章的变化。我们可以得出结论,改进的算法方案可以有效地抵抗通过第二种选择明文攻击来破译自适应图像加密算法的密钥。
2.3对改进算法的统计学攻击分析
改进算法在每轮自适应换位加密过后,增加了一个非线性操作——S盒变换。通过S盒变换可以实现代替操作,是明文中的像素值被其他像素值所取代的一种处理方法。每轮加密有一半的像素点实现了代替操作,具体来说每组8个像素点中,对4个像素点进行了S变换。所以基于DES密码S盒改进的自适应图像加密算法能够改变图像像素值分布的统计信息。对Lenna.jpg使用基于DES密码S盒改进算法密钥序列为“10110”时加密的结果和图像的像素值分布直方图,如图7所示。
图7 改进算法明文、密文及其像素值分布直方图
2.4 密文相关性
在明文图像中,相邻像素的相关性通常很高,一个实用的图像加密算法应去除相邻像素的相关性。我们使用改进算法加密lenna.jpg图像,从明文和密文图像随机地选取500对相邻像素位置计算对应的相关系数。实验证明,改进算法加密后的图像相邻像素位置相关系数趋近于0。
图8 lenna.jpg明文图像和密文图像
表1 明文和密文相邻像素位置
3 结语
本文提出了基于DES密码S盒的改进自适应图像加密算法。这种方法解决了原算法面临的几种安全性威胁。同时,实验表明密文图像的相邻像素相关性几乎为0。
[1]Chen G,Zhao X Y,LiJ L.Self-adaptive algorithm on image encryption[J].Ruan Jian Xue Bao(Journal of Software),2005,16(11):1975-1982.
[2]周庆,胡月,廖晓峰.一种自适应的图像加密算法的分析及改进[J]. 电子学报,2009(12):2730-2734.