基于空域的图像加密算法与性能研究
2015-01-24张晨
张晨
(上海大学 通信与信息工程学院,上海 200444)
图像信息,具备许多文字信息所不具有的特点,因此图像在教育、军事、娱乐等领域被广泛应用。随着Internet的迅速发展,信息的传播变得越来越快捷,但正如任何事物都有其矛盾对立的一面,盗版、窃密等侵权问题也随着网络技术的不断推进而变得日益猖獗。对于商业授权图像,或是企业机密图像,又或是军事机密图像等的隐私保护也成了信息时代急需解决的一大难题。图像加密可分为基于空域的图像加密和基于频域的图像加密,本文主要是基于空域的图像加密,并评定其中综合性能最好的加密方法。
1 像素坐标置乱加密
1.1 Arnold变换置乱加密
Arnold变换置乱加密技术,属于基于矩阵变换/像素置换的图像加密技术,这种算法要求图像的宽度和高度必须相等,否则无法进行Arnold变换。
设一幅 N×N图像的横坐标为 x, 纵坐标为 y,x,y∈{0,1,2,…,N-1},定义 x’,y’满足式(1)
其中,a,b 均为整数,通常令 a=b=1,得式(2)
从几何意义上讲,Arnold变换实际上是对图像进行拉伸、压缩、折叠、拼接操作[1],遍历一次Arnold变换后,原图像像素点的位置坐标(x,y)被搬迁到置乱图像的坐标(x’,y’),由于单纯的坐标变换会引起图像大小的改变,所以引入取模运算(mod N),这样置乱后的图像就能保持原图像的大小,即N×N。
一次Arnold变换之后,图像仍然保留许多原始信息,为达到较好的加密效果,需要重复多次迭代Arnold变换,因此,加密公式可推
一般n>5,即迭代次数大于5次时,可以达到相对理想的加密效果。
Arnold变换置乱算法是有很大局限性的,一方面,对于尺寸较大的图像来说,多次迭代Arnold变换进行加密、解密操作,会使得计算量非常大,加密周期也会因此变得很长;另一方面,Arnold变换加密算法不符合Kerckhoffs准则,因为这种算法是经不起公开的考验的,一旦加密算法被攻击者得知,攻击者可根据Arnold变换的周期性,进行唯密文攻击,即可在不知密钥(迭代次数)的情况下,直接破解出原始图像,对此,有一种改进措施是引入新密钥(ku,kv),将Arnold变换式改进为
如此一来,密钥总数增加到 3 个(n,ku,kv),其中(ku,kv)和加密算法有效地分开,但是,新加入的密钥仅会引起图像像素点在空间上的循环平移,因此保密性依然欠缺,总而言之,这种算法一般需要与其它加密算法结合在一起使用,而不适合单独对图像进行加密。
1.2 Logistic混沌置乱加密
在非线性科学中,混沌(Chaos)是一种由确定性规律支配,却貌似无规律而不可预测的运动过程。混沌系统具有扩散性、初始条件敏感性和非周期性,正因为这3种特性,所以混沌置乱算法也被应用到了图像加密技术中。
Logistic映射定义式如式(5)所示
其中,μ 称为分枝参数[3],假设 x0∈(0, 1),若 μ 在区间(0, 4)内取值,则 xk无论迭代多少次,都将落在(0, 1)范围之内,实验表明,当3.569 945 6…≤μ≤4时,序列xk将进入混沌状态,特别地,取 μ=4,则 xk将充分占用(0, 1)区间,并且在(0,1)区间内等概率取值。因此,在密码系统的应用中,通常将Logistic映射直接写成
2 像素色度替换加密
2.1 Logistic混沌序列加密
与Logistic混沌置乱加密不同,Logistic混沌序列加密不改变图像像素点的空间位置,而改变图像像素点的色度值,其算法原理是,利用Logistic映射和阈值函数产生混沌二值序列,再用这个二值序列与原图像像素点的色度值进行异或运算,从而完成图像加密,如果继续对加密的图像用Logistic二值序列进行异或运算,则能实现图像解密。
相应地,对于整幅图像的加密也很简单,只需先把图像的二维坐标矩阵转换成一维序列的形式,并测定该序列的长度N,然后产生24×N个元素的混沌序列[xn],再产生24×N个元素的混沌二值序列[yn],最后把图像的所有像素点的RGB色度信息全部提取出来,并将其合并成一个二进制序列,与[yn]进行按位异或运算,就能实现整幅图像的加密,解密则只需再做一次异或运算即可。
2.2 Fibonacci序列加密
Fibonacci序列[4]属于线性递推序列,其递推式如式(7)所示,其中 f0和 f1均为初始值,n≥2,n∈Z。
而在实际编程实现中,为了防止数据溢出出错,需要在进行公式(7)计算时引入取模运算,把式(7)改进为式(8),不过N的取值不能过小,否则会影响加密效果。
对于整幅图像的加密与Logistic混沌序列加密的方法类似,即把图像的二维坐标矩阵转换成一维序列的形式并测定该序列的长度N,然后利用式(8)产生24×N个元素的序列[xn],最后把图像的所有像素点的RGB色度信息全部提取出来,并把它们合并成一个二进制序列,与[xn]进行按位异或运算,就能实现整幅图像的加密,图像的解密只需再做一次异或运算。Fibonacci序列加密的视觉保密性欠佳,加密图像中可以隐约看出原始图像中物体的轮廓,这点就逊色于Logistic混沌序列加密。
3 空域混合加密
正如像素坐标置乱加密存在无法保密图像颜色信息的短板,像素色度替换加密也有其缺陷,即对差分选择明文攻击[5]的抵抗薄弱,而空域混合加密就能取长补短,它是对一幅图像进行多种不同类型的加密。有两种加密方案:一种是对整幅图进行不同类型加密算法的多重加密;另一种是先对整幅图像进行分块,再对分出的每一小块进行不同类型的加密。
图1是对原始图像先后进行Logistic混沌置乱加密和Logistic混沌序列加密的最终效果,取密钥a1=0.618,密钥b1=100,密钥 a2=0.618,密钥 b2=100。
4 加密性能分析
4.1 解密图像失真度测试
用本文所述的5种加密方法分别对原始图像进行加密,再分别用正确的密钥解密,最后对各解密图像进行像素改变率测试,得到实验结果如表1所示,5种加密方法都不会引起图像的失真。
4.2 密钥空间分析
密钥空间的大小决定了加密方法能否抵御唯密文攻击,从理论上讲,密钥空间可以是无限大的,不过由于计算机数字精度的限制[6],密钥空间有一定的取值范围,但是这个范围依然非常大,因此本文中除了Arnold变换置乱加密以外,其余4种加密方法都能抵御唯密文攻击,而Arnold变换由于具有周期性,从而Arnold变换置乱加密在唯密文攻击前,超过最小回复周期的迭代次数都是冗余的,所以实际有效的密钥空间非常小,无法抵御唯密文攻击。
表1 5种加密图像的像素改变率Tab.1 NPCR of five kinds of encrypted images
4.3 密钥敏感性分析
从效果图中可以看出,除了Arnold变换置乱加密以外,其余4种加密方法即使加密密钥与解密密钥差别很小,也无法恢复出原始图像的任何信息,因此具有较好的密钥敏感性。
表2 各方法使用的加解密密钥Tab.2 Secret key of encryption and decryption
图2 原始图像与5种错误解密图像Fig.2 Original imageand five kinds of decrypted images with wrong key
4.4 直方图分析
图3 原始图像与5种加密图像的直方图Fig.3 Histogram of original image and five kinds of encrypted images
通过比较可以看出,由于Arnold变换置乱加密和Logistic混沌置乱加密都属于像素坐标置乱加密,因此加密图像的直方图不会发生变化,而其余3种加密方法均有涉及像素色度替换,使得直方图发生改变,从而起到了对图像颜色信息进行加密的效果。
4.5 相关系数分析
图像邻域像素相关性是测试图像加密性能的重要指标之一[7],而相关系数分析也是统计分析的一种,相关系数越大,图像加密效果越差,相关系数越小,图像加密效果越好。设N为参与计算的像素点对数,x和y是图像中两个相邻像素点的灰度值,则相关系数可用式(9)表示
(xi-Ex)(yi-Ey)。对原始图像与5种加密图像分别进行如下实验:在图像中随机地选取水平、垂直和对角线方向相邻的像素点各10 000对,并分别计算各方向上的相关系数,得到的实验结果如表3所示。
表3 原始图像与5种加密图像的邻域像素相关性Tab.3 Correlation between neighboring pixels of original im age and encrypted images
从表中数据可以看出,原始图像在水平、垂直和对角线方向上的相关系数都很大,经过加密之后,各方向上的相关系数都大幅度减小,对于直方图分布集中的图像,采用像素色度替换加密会使得加密图像的邻域像素相关性降低更明显。
4.6 信息熵测试
设图像灰度级为 N,灰度值为 i(i=0, 1, 2, …,N-1)的像素出现的概率为,根据Shannon定理,图像的信息熵为
信息熵可以度量图像灰度值的分布情况,信息熵越大,图像的灰度分布越一致。信息熵可用于混沌程度的识别及其混沌程度的整体度量。未加密、Arnold变换置乱加密与Logistic混沌置乱加密的信息熵均为6.234,Logistic混沌序列加密和Logistic混沌置乱与Logistic混沌序列混合加密的信息熵均为7.997,Fibonacci序列加密为7.995。可以看出,图像单纯经过像素坐标置乱加密后,信息熵都没有发生变化,而经过像素色度替换加密后,信息熵都发生了改变,本文给出的3种涉及像素色度替换的加密方法,其加密图像的信息熵都接近8,这也说明了它们具有加密图像颜色信息的能力。
表4 5种加密方法的综合评价Tab.5 Comprehensive evaluation of five kinds of encryption method
4.7 综合评价
分析表中的数据可以得出,Logistic混沌序列加密和Logistic混沌系统混合加密都是优秀的加密方法,但是前者属于单纯的像素色度替换加密,难以抵抗差分选择明文攻击,所以Logistic混沌置乱与Logistic混沌序列混合加密是综合性能最好的加密方法。
5 结束语
通过分析得出的结论:基于Logistic混沌系统的混合加密是综合性能较为理想的加密方法。不过这种加密方法依然存在缺陷:一是加密图像的输出像素并不依赖于原始图像的输入像素,即改变原始图像的一个像素只能改变加密图像的一个像素,加密算法的扩散性不好;二是由于加密图像的邻域像素相关性被减小,导致图像数据难以被压缩。而新近发展起来的SCAN算法加密技术和基于频域的加密[7]技术就能分别解决这两个问题,如何设计出扩散性好且能结合图像压缩编码技术的图像加密算法是下一步研究的目标。
[1]李昌刚,韩正之.图像加密技术新进展[J].信息与控制,2003,32(4):339-343.LI Chang-gang,HAN Zheng-zhi.New progress ofimage encryption technology[J].Information and Control,2003,32(4):339-343.
[2]张颖,杨珗.Arnold双置乱图像加密算法[J].辽宁工程技术大学学报:自然科学版,2013,32(10):1429-1432.ZHANG Ying,YANG Yue.Arnold dual scrambling image encryption algorithm[J].Journal of Liaoning Technical U-niversity:Natural Science Edition,2013,32(10):1429-1432.
[3]孙鑫,易开祥,孙优贤.基于混沌系统的图像加密算法[J].计算机辅助设计与图形学学报,2002,14(2):136-139.SUN Xin,YI Kai-xiang,SUN You-xian.The image encryption algorithmbased onchaotic system[J].Journal of Computer Aided Design&Computer Graphics,2002,14(2):136-139.
[4]孙劲光,汪洁,孟祥福.改进的Fibonacci双置乱图像加密算法[J].计算机科学,2012,39(11):249-253.SUN Jin-guang,WANG Jie,MENG Xiang-fu.An improved Fibonacci dual scrambling image encryption algorithm[J].Computer Science,2012,39(11):249-253.
[5]Mandal MK,Banik G D,Chattopadhyay D,et al.An image encryption process based on chaotic logistic map[J].IETE Technical Review,2012,29(5):395-404.
[6]任洪娥,尚振伟,张健.一种基于Arnold变换的数字图像加密算法[J].光学技术,2009,35(3):384-387.REN Hong-e,SHANG Zhen-wei,ZHANG Jian.Andigital image encryption algorithm based on Arnold transform[J].Optical Technique,2009, 5(3):384-387.
[7]戈勇,李华,宁永成.基于FPGA的DES加密算法实现[J].电子科技,2013(7):172-176.GE Yong,LI Hua,NING Yong-cheng.The implementation of DES algorithm based on FPGA[J].Electronic Science and Technology,2013(7):172-176.