刘艳华
(盐城工学院信息工程学院,盐城 224051)
数字图像加密与水印技术是数字图像处理的重要应用技术,随着信息技术的飞速发展,图像信息的安全传输愈加重要,图像的加密、解密技术就应运而生了。为保证图像传输过程的安全保密,人们在传输发送端利用某种算法,把数字图像明文打乱成某种密文,使第三方不可见。而接收端通过已知的解密算法来解密操作,便可获取原图的数据信息。目前数字图像的加密技术研究备受瞩目,许多学者提出的加密算法种类繁多,图像像素的置乱是研究的主要方向,应用也最为广泛[1-4]。
图像置乱的功能是运用矩阵变换或其他数学方法将原始图像的每个像素点的位置或色彩度置乱,实现掩盖住原始图像信息的效果,使第三方无法获取,若分析不出所应用的置乱加密算法,就无法获取到原始图像的信息。基于矩阵变换像素置乱的图像加密方法实质上来看,就是通过数学知识对数字矩阵实现一定次数的线性变换,来达到扰乱像素排列的效果。但由于图像矩阵变换作为有限维矩阵变换在置换达到一定步数后会出现回复性,容易被第三方破译,致使其安全性较低[5-9]。置乱加密作为多种多媒体安全技术工作的基础性工作,其算法的优劣会对加密安全工作造成直接的影响,因此需要从多个层面对置乱算法的优劣进行足够的比较分析。
利用MATLAB软件,通过编程实现三种图像的加密解密算法,包含像素点置乱算法,图像行列置乱算法,色彩饱和度置乱算法[10-13]。
像素,是数字图像信息的基本单元。像素点置乱算法是将数字图像的所有像素都进行随机置乱,使原图的信息数据不可见。该算法的加密效果很好,随机数列在加密过程中的使用也使该算法的加密性得以提高,但是对于矩阵元素非常多的真彩图像而言,此加密算法的运算速度较慢。
对图像矩阵的行或列进行打乱的算法所需的计算难度小、用时少、效率较高,可应用于包含数据较多、本身庞大的图像信息,但因为算法本质是对行列的置乱,所以对某些特殊的图像不能加密。
每个像素的值表现在图像中即为其色彩值,为了实现色彩饱和度混乱重置的加密算法,可以通过矩阵运算的方式使原始图像矩阵每个像素点的大小发生改变,从而打乱了原图信息,实现了加密的效果。通过原图矩阵A与另一个大小相同的矩阵B进行点乘和点除运算来达到像素置乱目的,虽然算法简单易操作,但其加密效果一般。通过改变参与加密的另一矩阵B的混乱程度,可以提升图像的加密效果,但仍然可见原图的某些信息,而且该加密算法易被攻击,安全性低。
选取256*256的灰度图像,采用基于像素点混乱重置的图像加密解密算法对其进行加密。用Logistic序列对图像矩阵元素(灰度值)进行二进制位异或运算,完成图像的像素置乱。再用得到的混沌序列对加密图像的像素点灰度值进行异或运算,可以恢复出原始图像。原始图像、加密图像与还原的图像对比如图1所示。
由图可见,只对像素值打乱的加密还是存有部分原始图像的信息,因而效果以及安全性一般。
选取256*256的灰度图像,利用像素点行列打乱算法对其进行像素位置置乱。首先,利用MATLAB在输入初值后产生Logistic混沌序列。然后,对图像矩阵进行像素点移位,即将每行与每列的像素点分别依次左移/右移到该行/列的其他位置,并保持像素值不变,从而得到基于图像行列置乱的加密图。最后,对加密后的图像,将每行以及每列的像素点分别依次右移或上移,恢复到其原位置,得到恢复图像。原始图像、加密图像与还原的图像如图2所示。
对比像素加密和位置加密,基于图像像素行列的置乱将原始图像的像素点打乱,其加密图的像素分布比较均匀,加密直观效果更好。
选取341*341的彩色图像,采用基于色彩饱和度混乱重置的图像加密解密算法对其进行加密。首先,利用 rand函数生成一个随机数组,再用原图矩阵与随机矩阵相乘使矩阵元素大小发生改变,从而得到一个新的置乱后的矩阵,得到加密图像。最后,用加密后图像矩阵与随机矩阵相除,就可得到解密图像。原始图像、加密图像与还原的图像如图3所示。
图1 像素点混乱重置加密解密Fig.1 Pixel chaotic reset encryption and decryption
图2 像素行列乱序图像加密解密Fig.2 Encryption and decryption of pixel row sequence image
图3 色彩饱和度混乱重置加密解密Fig.3 Color saturation chaotic reset encryption and decryption
由图3可见,基于色彩饱和度混乱重置的加密方法的加密效果不太好。加密图像保留有原始图像的许多信息,隐藏效果不佳。并且解密图像也出现了一定程度的失真,总体效果不理想。
以大小为 512*512的灰度图像 lena512.bmp为例,用像素点置乱算法、像素位置置乱算法以及色彩饱和度混乱重置算法分别对其进行像素置乱加密。三种算法下的加密效果图,如图4所示。
观察图4可看出,经过像素行列打乱算法加密的图像加密效果是比较不错的,加密图的像素点散布较均匀,完全掩盖了图像的原始信息。经过像素点重置的加密图像完全隐藏了原图片中的的人物,观察不到任何人物信息,加密效果比较好。而经过色彩饱和度混乱重置的加密图像对原始图像的信息仍然可见,没有很好隐藏,加密效果较差。
加密前后的直方图如图5所示。
图4 加密效果比较Fig.4 Comparison of encryption effect
图5 直方图对比效果Fig.5 Histogram contrast effect
由图5可知:像素行列置乱的加密技术在相对繁琐的变换之后,其灰度直方图仍然与原图的一致,这不能改变图像数据的统计特性,易被攻击者破解;像素点置乱加密技术对图像像素点进行了打乱,像素值未发生置换,因此加密后的图像直方图也没有发生改变,但所得到的加密效果相对较好,由于此算法需要遍历图像的所有像素点,加密过程相当缓慢;色彩饱和度混乱重置的加密技术虽然使加密后的图像的直方图与原图的不再相同,但加密效果不好,安全性低,虽可通过增加置乱次数来提升效果,但是总体仍不理想。
[1] 张晓强, 王蒙蒙, 朱贵良. 图像加密算法研究新进展[J].计算机工程与科学, 2012, 34(5): 1-6.
[2] 赵戈, 万玉晴. 移动终端的图像快速加密方法研究[J].计算机应用与软件, 2015, 32(9): 246-250.
[3] 任帅. 基于混沌的数字图像加密技术研究与应用[D]. 郑州: 解放军信息工程大学, 2011.
[4] 苏莉萍, 冯健. 基于混沌的图像置乱加密算法及MATLAB的实现[J]. 装备制造技术, 2007(8): 79-81.
[5] 林明星. 数据加密技术的具体应用[J]. 软件, 2014, 35(1):100.
[6] 钟彩. 边缘检测算法在图像预处理中的应用[J]. 软件,2013, 34(1): 158-159.
[7] 陈国强. 基于GPU的图像处理算法研究[J]. 软件, 2014,35(2): 135-136.
[8] 曹妍, 陈伟, 徐森. 图像去噪方法研究与仿真[J]. 软件,2015, 36(4): 33-36.
[9] 陈静, 朱家明, 盛朗, 等. 基于区域信息的水平集医学图像分割[J]. 软件, 2014, 35(4): 21-23, 28.
[10] 王洪均. 数字图像加密算法研究[D]. 南京: 南京理工大学,2007, 7.
[11] 阮秋琦, 阮宇智. 数字图像处理[M]. 北京: 电子工业出版社, 2011: 25-43.
[12] 张博. 基于MATLAB的数字图像置乱方法研究[J].计算机与数字工程, 2010, 38(7): 139-142.
[13] 李娟. 替代和置乱相结合的图像分块加密算法[J].自动化仪表, 2014(3): 55-59.