李倩倩,武一
(河北工业大学 电子信息工程学院 天津 300401)
一种基于AES图像加密技术改进
李倩倩,武一
(河北工业大学 电子信息工程学院 天津 300401)
基于图像加密的安全性目的,采用了基于AES算法的图像加密方法,分析了AES算法具有安全性高、图像加密效果好等优点,但鲁棒性方面有一定的局限性。为进一步提高加密效果,在此基础上提出了一种混合的加密方法,即首先进行Arnold置乱,然后再用AES算法对图像加密。通过用MATLAB仿真,分析两种加密结果,得出了改进算法鲁棒性和安全性得到改善的结论。
高级加密标准(AES);数字图像;安全性;数字图像加密;Arnold置乱
近年来,网络技术的发展迅速,网上银行、网上购物等网络方式的出现,涉及信息安全现象越来越多,使得信息安全显得越来越重要。现代信息安全方式方法中最常用的一种就是图像加密。图像加密的主要目的是把图像的真实信息隐藏起来,当图像受到某种攻击或破坏时,攻击者无法获得图像的真正的内容,这样就起到保护信息的作用,这是源于早期经典加密理论;而接收方,则可用事先约定好的密钥和解密方法把收到的加密信息解密出来。
现今,已知的图像加密方法有很多种,例如,Anold置乱,混沌理论加密方法[1],DES加密[2],AES加密,Gray码等加密算法。该文在基于AES对图像加密方法的基础上形生了一种新的算法,即把AES算法与Arnold(‘猫映射’)变换相结合。这种新的算法能够弥补原来算法的一些不足的地方。
1.1 AES算法简介
随着计算机技术的不断增强,原来作为加密算法标准的DES算法,其分组长度是64bits,密钥长度只有56bits,它的安全性已经受到了挑战。这时,3重DES便产生了,密钥长度发生了改变,由56bits变为112bits,使DES的保密性有了很大的提高。尽管DES的安全性有所提高,但产业界以及学术界就从未消除过对DES的担心。2000年10月,美国国家标准和技术协会(NIST)经过多方面的考虑和多轮筛选,从15种候选的算法中选出Rijndael算法,作为新的对称加密算法标准,称为高级加密标准,即AES加密算法[4]。
高级加密标准(Advance Encryption Standard,AES),是美国联邦政府采纳的一种区块加密标准,又叫做Rijindael加密算法在密码学中[5-6]。作为分组加密算法的AES,将128 bits设定为明文的长度,密匙长度分为128 bits,196 bits,256 bits,对应的加密轮数分别为10轮,12轮,14轮。本文采用将明文分割成128位的数据块的一种分组加密算法,并用128 bits密钥对数据块进行十轮加密运算,最后再把加密的结果连接起来,就得到了整个密文。在每轮运算中,由初始密匙进行每一轮的密匙扩展,得到下一轮要用的密匙,以此进行到第十轮,完成加密运算所需要的密钥。AES加密流程如下图1所示。
AES算法采用矩阵进行分组,一个4×4矩阵中按顺序放入16个字节,这个矩阵为状态矩阵(state),基于该状态矩阵,进行AES的所有变换[7]。AES一轮运算由四个相异块构成,称为层(layer)。
图1 加密流程图Fig.1 Flow chart of encryption
1)ByteSub变换(字节代换):一个非线性结构层,是用来抵抗线性攻击以及差分攻击的操作。
2)ShiftRow变换(行位移):一个线性层,主要作用是通过多轮变换对位进行混合。
3)MixColumn(列混合):这一层的作用和ByteSub变换层相似。
4)AddRoundkey(轮密钥加):这一轮密匙与MixColumn的结果完成异或运算,得到加密结果。
1.2 字节代换(ByteSub)
AES的ByteSub是用S-box中的字节来代替明文中对应的byte。AES定义了一个S-box,用于加密查表。S-box是由16*16 byte组成的矩阵,即矩阵共有256元素,每个元素的内容是一个byte的值,且每个元素各不相同。状态矩阵中的元素根据以上算法对应为一个新的byte,把该byte的低四位作为列值,高四位作为行值[8],取出S-box内相应的列行数值当成需要的数据结果,此数据结果即为字节代换的输出。
1.3 行位移(ShiftRow)
ShiftRow是一个普通的循环移位操作,依据密匙长度为128bits时,状态矩阵的每一行进行相应的移位操作,得到的结果即为移位后的结果。
1.4 列混合(MixColumn)
MixColumn变换是通过矩阵相乘来实现的,经过ShiftRow后的状态矩阵与预先设定好的矩阵相乘,得到混合后的状态矩阵[9],如式(1)所示。
1.5 轮密匙加(AddRoundKey)
轮密匙加是每轮中的最后一个操作,是将以上列混合运算得到的结果与子密匙进行异或逻辑运算,如式(2)。这也就完成了一轮运算。但下一节要介绍一下密匙扩展。
1.6 密匙扩展(Keyexpand)
在密钥扩展时,首先将初始密钥存储为4×4的状态矩阵,状态矩阵中的每一列构成一个字,这四个字分别记做w[0]、w[1]、w[2]以及w[3]。一个以字为单位的数组w由这4个列组成。然后,对数组进行扩充,即由w[0:3]扩充到w[0:44],总共扩展了40个新列,组成了44列的Keyexpand数组。新列以如下的递归方式产生:
1)如果i不是4的倍数,那么第i列由如下的等式确定:
2)如果i是4的倍数,那么第i列由如下的等式确定:
把w[i-1]转化为T(w[i-1])这种形式,这种形式包括字循环、字节代换和轮常量异或三方面内容,作用如下:
1)字循环:循环地将w[i-1]的元素移位,每次一字节,也就是说abcd变成了bcda;
2)字节代换:将bcda作为S-box的输入,输出结4个新的字节为efgh;
3)轮常量异或:计算一轮的常量r(i)=2(i-4)/4;
4)这样生成转化后的列:[e⊕r(i),f,g,h]。
第i轮的轮密匙组成了w(4i)、w(4i+1)、w(4i+2)和w(4i+3)。
在数字图像处理过程中,一般把数字图像当做矩阵,矩阵中每个元素所在的位置,也就是就图像中各个像素点所在的坐标,矩阵中每个元素的数值也就是像素的灰度值(灰度值一般有256个等级,范围为0到255之间的整数)。通常把彩色图像看作是一个混合的矩阵,红色(R)、绿色(G)、蓝色(B)这个三颜色与每个像素灰度值有关,彩色图像可以用3个数值矩阵来表示。
在图像加密过程中,首先对图像进行数字化处理,即把图像的灰度值转化为矩阵元素值,灰度值与元素值的坐标一一对应,即进行以字节(Byte)为单位的4×4的分块处理,处理时按照从左上角到右下角的顺序依次进行,每一个4×4的矩阵都进行AES加密,加密完将所有分块按顺序连接起来,结果与原矩阵不同,说明矩阵的元素值发生了改变,即图像灰度值也发生了改变,这就起到了图像加密的作用。在图像加密过程中,有些图像的数字矩阵不是四的倍数,处理这些图像时把不是四的倍数的行列右下方进行补零,成为完整块。对加密过程的逆运算称为解密过程,即从左上角对每个4×4分块进行AES解密运算。
图像加密流程:
①给出初始密匙SK以及原始图像Y;
②用密匙扩展函数对初始密匙SK进行密匙扩展,计算轮密匙Key;
③读入图像信息存入矩阵Y中,P=(Pij)n*m,Pij∈{0,1,…,255};
④运用AES算法对矩阵Y中的每4*4的块进行加密,在原分块中存放加密结果;
⑤最后输出加密图像TY。
图像加密流程如图2所示。
图2 图像加密流程Fig.2 Image encryption process
通过Matlab仿真得到AES加密图像及其直方图,如图3所示。
图3 AES加密效果Fig.3 AES encryption effect
从图3可以看出,原始图像通过AES加密,得到了一张杂乱无章的图像,一点也辨认不出原始图像的样子,说明原始图像被隐藏了起来,起到了加密作用。解密后的图像和原始图像一模一样,说明图像得到了正确恢复。
可以采用灰度直方图进行描述某幅图像的基本“相貌”。当直方图的形状不太宽且都聚在灰度级的某一部分时,说明图像有比较低的对比度;如果图像分散在所有可能的灰度级且比较均匀时,则其对比度比较高,灰度变化比较大。所以可以用直方图来分析比较加密的图像的效果。
从图4可以看出,原始图像的直方图像素分布不均匀,是按照图像上的像素点位置集中于直方图的左侧和中间位置,可以大概看出信息的分布情况。但是通过AES加密以后的直方图,像素分布情况得到改变,像素分布比较均匀,占满了所有的灰度级,灰度得到了均匀化,图像的对比度提高,看不出哪里是信息的主要分布区域,使图像得到了保护。解密后的直方图和原图像直方图一样,说明信息得到了正确恢复。
图4 AES加密直方图比较Fig.4 AES encryption histogram comparison
通过理论分析得出:由于AES算法是一种分组加密算法,它主要是对一个4×4分组内的数据进行加密,进而扩散到整个图像中,这样就产生了一种雪崩效应。这个雪崩效应是指,由于AES加密使一个分组内的像素值发生变化,然后进行下一个分组加密,这样一个个进行下去,使每个分组的像素值都发生了变化,即整幅图像的像素值发生了变化。从整体可以看出图像发生了变化,从图像直方图可以看出,图像得到了均匀化,即达到了加密的效果。
图5 加密涂改攻击及解密图像Fig.5 Encryption,decryption alter attack and the image
但是从图5我们可以看出,当图像遭到某些攻击时,如涂改攻击,图像无法得到完整的恢复。这是由于AES算法是分组加密的算法,是对图像一个4×4矩阵分组内的数字进行了加密,打乱了这个分组内的像素值,但是分组的位置并没有得到改变,使图像的加密具有局限性,这也就使得图像在受到攻击时,会引起图像的局部数据找不到,以至于无法恢复出来。这也就决定了AES算法在鲁棒性方面的局限性。
由于采用AES算法对图像进行的加密的方案存在一定的不足,该节应用改进方法。本文中运用经典的Arnold置乱算法进行置乱,然后再进行AES加密,即将这两种算法相结合,产生了一种新的算法。这种做法将遭遇攻击的图像中不正确的信息扩展到全部图像里面去,在提高了相应算法鲁棒性的同时也确保了算法的有效地安全性。
改进图像加密流程:
①首先给出初始密匙SK以及原始图像Y;
②通过正确的密匙扩展函数来对初始密匙Key进行扩展操作,进而计算轮密匙Key;
③读入图像信息存入矩阵Y中,P=(Pij)n*m,Pij∈{0,1,…,255};
④对图像矩阵采用Arnold算法加密;
⑤运用AES算法对矩阵中的每4×4的块进行加密,在原分块中存放加密结果;
⑥最后输出加密后图像TY。
改进图像加密流程如图6所示。
图6 改进加密图像流程图Fig.6 Improved encryption image flow chart
通过Matlab仿真得到改进后加密图像及其直方图,如图7所示。
图7 改进后加密图像Fig.7 Encryption image is improved
从图7可以看出,原始图像经过Arnold置乱后,使图像像素的位置发生了改变,成为杂乱无章的图像,然后通过AES加密,图像隐藏效果更好。
图8 改进直方图比Fig.8 Improved histogram comparison
从理论分析我们可以看出:由于Arnold算法是将离散化数字图像中的像素值重新排列的一种算法,对整体像素值是没有影响的,所以可以看做是拼接和剪切的这两种方法。Arnold置乱重新排列了离散数字图像,而离散的数字图像是有限集,经过多次的变化过程,再叠加初期可以得到加密效果的图像,但采取一定次数的操作所发生的改变再还原到最初的位置,说明这种变化有相应的周期性。这也告诉了如果知道了相应的加密算法,依据密文方式中的某一种状态来进行相应的周期性的变换,经过一定次数的操作变化就能够还原对应的明文。而这种攻击对于现代的计算机是很容易实现的,可见其保密性不好。但是Arnold算法也有它的优点,它可以把图像像素所在的位置打乱,并没有改变像素值,然后再结合AES加密算法进行加密,AES算法改变原来图像的像素的值,从而使得原图像相应的像素的值以及相对应的像素位置全部有了改变。而AES算法本身的加密效果又比较好,安全型比较高,目前很难破解,因而两者结合的保密性更好。
图9 加密涂改攻击及解密图Fig.9 Encryption,decryption altered attacks and the image
通过实验结论分析我们可以看出:改进的加密方法对应的图像遭遇到某些不确定攻击的时候,将会把某些出现错误的信息扩展到全部的图像中,降低了图像的破坏性;破译者想解密出来原始内容,非常困难,进而达到了提高了算法的鲁棒性的目的。因此改进后的算法的保密性比单独的AES算法保密性更好。
通过上面的对比分析我们得出结论,验证结果与理论期望结果相一致。经典的AES加密算法虽然具有比较强的抗破译能力,能对抗目前的所有攻击,运用AES算法对图像进行加解密,能产生较好的加密与解密现象,并且容易实现。但是这种算法应用在图像加密的鲁棒性上有很大的局限性,因为它本身是分组加密算法,只对一个分组内数字加密,以方阵的方式进行扩展到整个图像,抗破坏能力方面稍差。选择与Arnold算法进行结合,使得图像信息扩散到整个图像中,算法的安全性和鲁棒性有了一定的提高,得出该算法在对抗外界攻击时是安全性得到提高。但是抗破坏的能力还是很有限的,遇到较大的破坏时,加密图像将无法完整地恢复出来,这还需要我们对图像加密技术做进一步研究。
[1]Stallings W.Cryp tography and Network Security:Princip les and Practices(Third Edition)[M].New Jersey:Prentic Hall,2003.
[2]张浩亮.基于高级加密标准的图像置乱方法研究及其硬件设计[D].长沙:湖南大学,2011.
[3]宋国强.数字图像加密技术研究[D].长沙:国防科学技术大学,2007.
[4]谷利泽,郑世慧,杨义先.现代密码学教程[M].北京:北京邮电大学出版社,2011.
[5]Jos_e M,Granado-Criad,MiguelA,et al.A new methodology to implement the AES algorithm using partial and dynamaic reconfiguration[J].Integration,the VLSI Journal,2010(43):72-80.
[6]张小韬.基于AES的密码体制的数字图像信息隐藏研究[D].北京:北京化工大学,2013.
[7]陈燕梅,张胜元.基于AES的数字图像置乱方法[J].中国图象图形学报,2006,11(8):1076-1080.CHEN Yan-mei,ZHANG Sheng-yuan.Digital image scrambling method based on AES [J].Chinese Journal of Image and Graphics,2006,11(8):1076-1080.
[8]司银女.基于置乱的数字图像信息隐藏技术研究与应用[D].西安:西北大学,2007.
A modified symmetric image encryption technology based on AES
LI Qian-qian,WU Yi
(School of Electronic and Information Engineering,Hebei University of Technology,Tianjin 300401,China)
Based on the security of image encryption purpose,this paper using the image encryption method which is based on AES algorithm,Analyzed the AES encryption algorithms has the advantages of high safety,good effect of image encryption,but robustness aspects have certain limitations.To further improve the effect of encryption,on the basis of AESalgorithm a hybrid encryption method is proposed,namely the first Arnold scrambling,and then by AES algorithm of image encryption.Through MATLAB simulation,and analysis of two kinds of encryption as a result,it is concluded that the improved algorithm improved robustness and security.
advanced encryption standrad(AES);digital image security;digital image encryption;Arnold scrambling
TP309+.7
:A
:1674-6236(2015)18-0065-04
2014-11-26稿件编号:201411230
河北省高等学校创新团队领军人才培育计划(LJRC003)
李倩倩(1988—),女,河北邢台人,硕士。研究方向:FPGA与图像加密。