随着互联网技术的迅速发展和对大量图像信息传输需求的日益增加,图像文件加密技术已变得越来越重要,为此,我们提出了一种基于随机区域移位和随机像素映射的图像文件加密方法,该方法首先对待加密图像进行分割,然后将分割出来的图像单元顺序随机打乱,扰乱了图像的原始信息;然后再对每个图像单元进行像素映射扰乱,切断了各个单元像素值之间的联系。该方法结合了区域移位算法和像素映射算法的优点,自由度大,文件加密效果好对二值图像和灰度图像加密都取得了很好的效果。
一、基于随机区域移位和随机像素映射的图像加密算法
1、 像素映射法
像素映射法是一种简单的图像文件加密方法,对于一幅灰度图它首先建立从原灰度值到新灰度值的映射表,然后把图像中所有原灰度替换成在映射表中该灰度对应的新灰度,打乱图像中原来的像素分布,从而达到加密图像文件的目的;而在解密时只要依照映射表用旧灰度替代加密后图像中的新灰度,就可以还原出原来的图像,完成解密,从原灰度值到新灰度值的映射函数可以表示如下,假设Gold表示原图中某一灰度,Gnew表示新灰度,构造一个函数f(.),使:
建立了映射函数后,用新灰度去取代对应的旧灰度,实现对原图像文件加密。该函数可以任意选取,选取的函数不同,加密的效果就会不同,所以为了达到加密图像文件的目的,需选用合适的映射函数。本文所采用的映射函数是随机产生的,就是用随机像素映射法来加密图像文件。随机像素映射法是将256个灰度值随机排列产生新的灰度值,在这里用到rand(.)函数,该函数能产生一个值在0到1的随机数;把函数y= fix(rand(x).255)的值作为新灰度值,当每一次产生新灰度值的时候,要和之前产生的所有新灰度值进行比较,如果当前灰度值已经出现过了,那么该新灰度值不人选,重新产生新灰度值,直到产生的新灰度值包含256个灰度值为止,这样就产生了随机排列的256个灰度值,与它们对应的位置序号一起构成随机像素映射表。
图1(b)是用随机像素映射法来加密图1(a)的效果,加密后图像已经失去了表示原事物的能力;图1(c)是用错误的映射表来解密的图像,从结果来看,用错误的映射表来解密得不到原图像的信息。
然而随机映射法有着很大的缺陷,如果对一个二值图进行加密,那么它就无能为力了,图2(b)是用随机像素映射法来加密字符二值图图2(a)的效果,由于原图像的对比度很强,灰度等级二级(即只有二个灰度值)的性质从而导致了加密后图像的对比度仍然很大(仍然是两个灰度值),原图的信息依稀可见,从而违背了图像文件加密的原则。
2、区域移位法
区域移位法是一种基本的加密算法,它是先把待加密的图像分割成N×N个单元块,然后对分割后的单元块进行移位,形成加密图像,其中涉及到一张移位表用来放单元块移位的信息,解密时仍将图像分割成N×N个单元块,根据移位表还原回去,得到原图像。
图3是区域移位法的示意图,假设将原图像分割成4个单元块如(a),按照移位表(e)将单元块进行移位(见(b))得到加密的图像;解密时仍将图像分割成4个单元块如图(c),括号中是原图像单元块序号,通过移位表将单元块移位,得到解密的图像(d),由括号中的序号可知,图像已经恢复成原图像。
对于区域移位表的选择可以是任意的,但一定要起到图像文件加密的效果,本文的移位表仍是用前面所论述的产生随机像素映射表的原理得到,即为随机区域移位法的图像文件加密,图4是用随机区域移位加密图像图1(a)的效果,图4(a)将原图像分割成4×4个单元块进行区域移位加密;图4(b)将原图分解成8×4个单元块进行图像文件加密。
作为一种基本加密技术的随机区域移位法,若将原图像分成4×4单元块,则有16!加密方式,其中有一部分是起不到加密效果的,因为加密效果不好,容易被非授权者破解,这势必要增加分割单元块数,通过这个方法虽然能使图像保密性增强,但同时也会增加计算量,导致加密速度的降低(特别对于视频信号);另外随着高性能计算机的出现,只要利用现有的各种解密算法对被截获信息进行穷举运算,则很有可能破解出原图像,所以要寻找其它加密方法,该方法一方面运算量不是很大,另一方面又要有很好的保密性。
二、基于随机区域移位和随机像素映射的图像文件加密方法
基于随机区域移位和随机像素映射的图像文件加密法结合了像素映射法和区域移位法这两种方法,该法充分发挥了两种方法的各自文件加密优点,在运算量不大的同时提高了图像的保密性。该方法首先用随机区域移位法对待加密的图像文件进行加密,初步置乱图像区域位置,然后对每一个分割单元块进行随机映射法加密,使像素信息再一次置乱,最后得到的图像就是文件加密后的图像。
下面来讨论该图像文件加密法的保密性程度,如果把图像仍分成4×4个单元块,则共有16!种区域移位方式;然后用像素映射法对每一个单元块进行加密,则共有256!种映射关系,由于每一个单元块都对应一个映射表,且每个单元块的映射表都是独立的,所以4×4个单元块就有(256 !)16种加密方式,那么总共有(2561)16×16!种加密方式,由此可见该方法比单一的随机区域移位法具有更好的保密性能,不仅运算量不大而且图像保密性更好,自由度更大。
由于移位表和映射表都是一一对应的关系,授权者只要知道了¨钥匙”,就可以依照“钥匙”还原出原图像。而非授权者在没有得到“钥匙”的条件下,试图得到原图信息是非常困难的。传输“钥匙¨时,可以将移位表和映射表组成一张表传输,并且可以制定“规则”来隐藏表的信息,这样就更能提高图像的安全性。
基于随机区域移位和随机像素映射的图像加密法不仅具有很强的保密性,同时还克服了随机映射法对二值图加密无效的缺陷(见图2和图6),这也说明该加密方法具有很好的通用性。
三、计算机仿真
本文在Matlab7.O软件平台上对以上提到的基于随机区域移位和随机像素映射的图像文件加密法进行了仿真。
图5展示用基于随机区域移位和随机像素映射法加密图像(图1(a))的效果,图5(a)是将原图分成了4×4个单元块进行区域移位,图5(b)是对移位后的图像中每一个单元块进行随机像素映射法置乱像素,得到最后的加密图像;图5(c)和图5(d)是将原图分成8×8个单元进行图像文件加密,图6用基于随机区域移位和随机像素映射法对二值图进行加密,图6(b)是将图分割成了4×4个单元块进行区域移位,在加密图中可以看见原图的主特征;图6(c)是对图6(b)中每个单元块进行随机像素映射来置乱像素,得到加密图像.从图中可看到图6(b)中的主特征已经被湮灭,在加密后的图像文件中巳找不到任何关于原图的相关信息,这就说明了该方法克服了随机映射法对二值图文件加密无效的缺陷,具有很好的通用性。
小知识之二值图像
二值图像是指每个像素不是黑就是白,其灰度值没有中间过渡的图像。二值图像一般用来描述文字或者图形,其优点是占用空间少,缺点是,当表示人物,风景的图像时,二值图像只能描述其轮廓,不能描述细节。这时候要用更高的灰度级。