基于复用技术和数论的图像加密压缩同步算法
2013-08-13唐鉴波
郭 雨,柏 森,阳 溢,唐鉴波
(1.重庆通信学院,重庆 400035;2.应急通信重庆市重点实验室,重庆 400035)
传统的图像压缩和加密过程往往是分开的,这样不但增加了算法的复杂度,并且由于加密破坏了图像的相关性,还会降低图像的压缩性能。因此,发展一种能够同时对图像进行压缩和加密处理的算法就成了新的需要。对图像同时进行加密和压缩,既能够解决图像传输中带宽利用率的问题,又可以解决传输安全的问题。基于数论的图像同时压缩和加密算法[1](Number Theory based Image Compression Encryption,NTICE)正是这样的一种技术。
文献[2]中提到的方法是先压缩,后加密。由于先对图像进行压缩,没有破坏图像相关性,因此可以得到较高的压缩比,但由于其加密和压缩是两个独立的部分,增加了算法复杂度,降低了运算效率。文献[3]提出了一种基于骑士巡游的图像加密和压缩同时进行的方法。此方法可以得到较好的压缩比和加密效果,但是严格来说,此方法是先加密,后压缩。文献[1]中首先使用了NTICE算法对RGB彩色模型的彩色图像进行加密和压缩。文献[4]为了进一步提高NTICE算法的安全性和压缩效率,通过将两幅不同的图像的高4比特位和低4比特位互换的方法,使两幅图像复合成为一幅图像后,再对复合图像使用NTICE算法进行加密和压缩处理。文献[4]为多幅图像同时加密和压缩提供了一个思路。
为保证图像传输的安全性和传输效率,本文在前人应用数论知识对图像进行同步压缩和加密研究的基础之上,结合图像复用技术[6-7],提出了一种改进算法。本文首先利用图像复用技术将4幅图像复合1幅图像,再对复合图像使用NTICE算法进行压缩和加密。经由上述算法对图像进行压缩和加密,图像的压缩率和安全性都得到了一定程度的提升。
1 中国剩余定理及NTICE算法加密和压缩的原理
中国剩余定理(Chinese Remainder Theorem,CRT)解决了同余方程组的求解问题。具体表述如下。
设有以下同余方程组:
设n1,n2,…,nk(k≥1)为k个两两互素的正整数,令
则同余方程组的一般解为
式中:ci是满足同余方程(4)的一个特解。
式中:i=1,2,…,k。其求解方法可以采用“大衍求一数”或“辗转相除法”,具体方法见文献[5]。
NTICE算法是CRT的一种应用。把像素值作为同余方程组的余数ak,而将两两互素的密钥分别作为同余方程组的模数nk,从而求解出同余方程组的通解x。可以得知,多个像素值经过同余方程组的求解,最终变成了一个正整数,也就是通解,达到了图像压缩的目的。若将图像还原,只需将通解x代入式(1)就可得到原始像素值。若此时模数nk不正确,即解密密钥错误,就无法还原出原始像素值,达到了加密的目的。
2 基于图像复用技术和数论的图像加密压缩同步算法
2.1 算法思想
由于图像的像素之间存在着强相关性,在应用NTICE算法对图像加密时,如果正确的解密密钥和错误的解密密钥相差不是很大时,使用错误密钥解密仍可得到部分原始图像。为了进一步提高安全性和压缩比,本文首先对4幅m×n大小的图像进行DCT变换,得到4个m×n大小的DCT系数矩阵,再按照一定的规则将4个DCT系数矩阵结合成1个m×n大小的DCT系数矩阵,再对生成的DCT系数矩阵进行DCT逆变换,得到复合图像,最后对复合图像使用NTICE算法进行同步加密和压缩,得到加密和压缩后的数据流。解密过程是上述算法的逆过程。算法过程如图1所示。
图1 本文算法示意图
2.2 图像复用技术算法原理与步骤
文献[6]和文献[7]中的图像复用技术可以提高图像压缩效率,但是复用后的图像仍可以显示其中的部分原始图像信息。本文在其基础上进行了改进,复用后的图像不显示原始图像信息,安全性得到了一定的提升。其示意图如图2所示,步骤如下。
图2 图像复用技术示意图
1)分别对4幅m ×n大小的图像I1,I2,I3,I4以8×8为大小进行分块,将每幅图像都分别分成i×j块,得到4个块化矩阵,其中i=,j=。再分别对每一个块化矩阵的每一个8×8小块进行DCT变换,得到4个DCT 系数块化矩阵 S1,S2,S3,S4。
2)为了提高加密图像的安全性,本文采用如下方法进行旋转加密。令k1=n1mod 4,k2=n2mod 4,k3=n3mod 4,k4=n4mod 4,其中 n1,n2,n3,n4分别为 NTICE 算法中作为密钥的k个正整数中的任意4个正整数。当k1=0,1,2,3时,将S1的每个8×8小块相应地逆时针旋转180°,90°,270°,0°。也可采用其他组合方式,只要满足4个旋转角度与k1可能出现的4个数值一一对应即可。同理,k2,k3,k4分别决定S2,S3,S4的每个8×8小块的旋转角度。图2展示了DCT系数矩阵的一个8×8小块由上到下分别按照逆时针旋转180°,90°,270°,0°的方法示意图。
3)将旋转后的S1每个8×8小块的低频1/4部分置于复合图像的块化系数矩阵S对应块的左上1/4部分;将旋转后S2每个8×8小块的低频1/4部分置于复合图像的块化系数矩阵S对应块的右上1/4部分;将旋转后S3每个8×8小块的低频1/4部分置于复合图像的块化系数矩阵S对应块的左下1/4部分;将旋转后S4每个8×8小块的低频1/4部分置于复合图像的块化系数矩阵S对应块的右下1/4部分。
4)将S每个8×8块进行DCT逆变换,得到复合图像。由于复合图像的DCT系数是由原始4幅图像的DCT系数经旋转合并成的,因此复合图像不再显示出原始的图像信息,且4幅图像经运算后变成1幅图像,所以图像复用算法是一种同步进行加密和压缩的算法。
5)在接收端,按照上述过程的逆过程,还原出原始的4幅图像。
2.3 NTICE算法原理与步骤
NTICE算法的示意图如图3所示。
图3 基于NTICE算法的图像加密压缩同步方法示意图
1)读取原始图像I,图像大小为m×n,对图像进行1×k分块,其中图像的列数可以被k整除,即n≡0(mod k)。
2)对划分好的像素块中的每个像素ri按照式(5)分别得到像素值的高4比特位的十进制数值和低4比特的十进制数值。
式中:ai表示像素值的高4比特位的十进制数值;a′i表示像素值的低4比特位的十进制数值。
4)根据中国剩余定理解同余方程组,分别计算每一个一次同余式Pix≡1( mod ni)的一个特解ci。由于中国剩余定理的一次同余式计算仅与Pi和ni有关,与像素值无关,因此像素值的高4比特位a1和低4比特位a′1的一次同余式的特解ci是相同的,即无论像素值怎么变化,特解都不会变化。根据这一性质,可以在计算得出特解ci之后,将其存储起来,而不用每次都进行计算,以提高计算效率。
5)根据式(7),分别得出像素值高4比特和低4比特的加密后的数据,也就是式(6)的通解TR和TR′。计算出所有TR后,统计相同的TR的个数。将不同的TR按照出现频率的大小,依次由高到低排列后,采用Huffman方法进行编码。TR′采用同TR的方法进行编码。由上述叙述可以看出TR和TR′既是加密后的数据,又是压缩后的数据,达到了同时加密和压缩的目的。
如果仅保留图像像素值的高4比特位的数据,而将其低4比特位的数据置为0,也可以得到较好的图像显示效果。因此对解压缩后图像质量要求较高时,可以采用无损压缩模式,既同时传输高4比特位的加密数据TR和低4比特位的加密数据TR′;对解压缩后的图像质量要求不高时,可以采用有损压缩模式,仅传输高4比特位的加密数据TR。
6)在接收端还原图像,只需要将接收到的数据解码得到通解TR和TR′,并将通解TR和TR′代入式(8)
式中:mi是解密密钥;ari和ar′是解密后图像像素值的高4比特位和低4比特位。
7)将像素的高4比特位和低4比特位合并,重建图像Si,计算公式为
3 算法仿真与结果
3.1 加密效果性能分析
本文主要是针对灰度图像进行仿真实验,对彩色图像进行同时加密和压缩时,可以将彩色图像按照RGB颜色模型分解成三基色的3个矩阵,然后按照灰度图像加密和压缩方法,分别对3个矩阵进行加密和压缩。本文使用MTALAB软件对4幅520×520大小的测试图像进行仿真实验。设置密钥长度为10,即选取10个两两互素的正整数(18,25,43,31,29,37,17,23,41,19)作为密钥。其正确密钥解密效果图和错误密钥(22,21,19,44,31,32,39,17,41,23)的解密效果图如图4所示。
图4 正确密钥和错误密钥解密效果图
3.2 压缩比(CR)
压缩比是评价图像压缩算法的一个重要指标,它指的是原始图像每个像素的平均比特数c1同编码后每个像素的平均比特数c2的比值,压缩比越大表示压缩效果越好[8],定义为
压缩比测试中,采用无损压缩模式,密钥长度分别选为10和8,即分别选取10个两两互素的正整数和8个两两互素的正整数作为密钥。其中峰值信噪比(PSNR)是进行解压缩后的重建图像与原始图像进行比较得到的。
由表1 可知,密钥长度为10(29,37,17,23,41,19,18,25,43,31)的压缩比要比密钥长度为8(29,37,17,23,41,19,18,25)效果好。这是因为随着密钥长度增加,一个通解TR可以表示更多的像素。由于目前缺乏关于多幅图像同时进行加密和压缩的资料,所以无法与其他文献进行压缩比的比较。
表1 无损加密和压缩的压缩比
如果在对重建图像质量要求不是非常高,可以仅传输原始复合图像像素值的高4位比特的加密数据TR,进行有损加密和压缩来得到较高的压缩比。由表2和图5可以看出,有损加密和压缩的重建图像的质量和PSNR有所下降,但仍可较为清晰地显示出图像内容,显示效果仍在可接受范围之内。
表2 有损加密和压缩的压缩比
图5 有损加密和压缩的重建图像
3.3 安全性分析
3.3.1 密钥空间容量分析
一个好的加密算法应该是对密钥非常敏感的,且密钥空间要足够大以抵抗穷举攻击[9]。本算法安全性取决于密钥ni(由两两互素的正整数组成的)。本算法中,取每个正整数的长度为6 bit,那么当取10个两两互素的正整数作为密钥时,密钥总长度为60 bit。由于作为密钥的正整数顺序之间可以互相变化,总的变化数目是作为密钥的正整数个数的阶乘l。本算法为了进一步增加安全性,在图像复合时,将图像的旋转方向也作为密钥。令k1=n1mod 4,k2=n2mod 4 ,k3=n3mod 4 ,k4=n4mod 4 ,其中n1,n2,n3,n4分别为加密密钥的任意4个正整数,共有种
3.3.2 密钥雪崩效应分析
图6 加密模型
从密钥更换的有效性考虑,图像加密算法对密钥的变换应是敏感的,即密钥具有所谓的雪崩现象[10]。由于本文密钥是两两互素的正整数,具有特殊性,所以测试密钥雪崩效应时,在保证测试密钥是两两互素的正整数的前提下,选取与初始密钥欧氏距离最小的两两互素的正整数作为测试密钥。设初始密钥 key1 为 18,25,43,31,29,37,17,23,41,19,改变后的密钥 key2 为 16,25,43,31,29,37,17,23,41,19。测试结果如图7 所示。
图7 密文对密钥的敏感性测试
从图7中可以看出,当密钥发生细微改变时,会导致密文产生较大的变化,此加密算法对密钥有较好的敏感性。
3.3.3 明文雪崩效应
加密算法应该对明文的变化是敏感的,即明文对密文存在着雪崩现象[10]。通常攻击者可以通过对图像作微小的改变来观察加密效果,这样可能发现加密图像与原始图像的某种关系,但是如果对原始图像做细微改变,导致加密图像有很大变化,这样差分攻击将失去作用[9]。首先对4幅原始图像进行加密,然后改变4幅原图像某一个像素点的值(如:I(i,j)=I(i,j)+1),再用同样密钥进行加密,比较两个密文对应位置的像素值(如图8)。由图8可以看出,明文发生细微改变,密文多数都改变,具有较强的抗差分攻击能力。
4 结束语
本文在前人用数论对图像进行压缩和加密研究的基础之上,结合图像复用技术,提出了一个改进的算法。经实验证明,本文算法具有较大的密钥量和较好的压缩比。在图像压缩和加密技术快速发展的今天,具有较好的应用前景。
图8 密文对明文的敏感性测试
[1]JAGANNATHAN V,MAHADEVAN A,HARIHARAN R,et al.Simultaneous color image compression and encryption using number theory[C]//Proc.ICIS 2005.[S.l.]:IEEE Press,2005:1-6.
[2]侯启槟,王阳生,黄向生,等.结合EZW和AES的图像加密机制[J].中国科学院研究生院学报,2004,21(1):119-124.
[3]刘博文,柏森,刘程浩,等.基于骑士巡游的灰度图像加密压缩算法[J].电视技术,2012,36(9):10-13.
[4]JAGANNATHAN V,MAHADEVAN A,HARIHARAN R,et al.Number theory based image compression encryption and application to image multiplexing[J].Signal Processing,Communications and Networking,2007(11):59-64.
[5]胡冠章.应用近世代数[M].北京:清华大学出版社,1999.
[6]ALFALOU A,ELBOUZ M,JRIDI M,et al.A new simultaneous compression&encryption method for images suitable to recognize form by optical correlation[C]//Proc.SPIE 2009.Berlin,Germany:IEEE Press,2009:1117.
[7]LOUSSERT A,ALFAOU A,SAWDA E L R,et al.Enhances system for image’s compression and encryption by addition of biometric characteristics[J].International Journal of Software Engineering and Its Applications,2008,2(2):111-118.
[8]姚敏.数字图像处理[M].北京:机械工业出版社,2006.
[9]吴成茂,候文滨.基于SMS4分组密码的彩色图像加密方法[J].西安邮电学院学报,2011,16(5):1-6.
[10]陈果,廖晓峰.一种基于混沌映射的图像加密算法[J].计算机应用,2005,25(S1):121-123.