计算机网络的发展和数字信息的多样化对信息保密技术提出了新的要求,人们在已有的加密算法的基础上开始着手研究新的加密方法以满足不同类型数据的保密要求,针对图像文件的特点(包括静态图像和MEPC动态图像),我们提出了一种图像频域加密算法,与传统加密算法不同的是该算法只是在图像的频域有选择地进行加密,而不是对图像文件进行全盘加密。
一、传统加密算法的局限性
利用传统的加密方法对文件加密时,不需要事先区分其格式或形式,对文件的全部数据进行加密,包括文件的附加信息,这是加密技术的一大优点,然而这个“优点”却逐渐成为加密技术的一个弊端。在今天人们需要保密的信息量越来越庞大,以MEPG格式的视频数据为例,一部几十分钟的影片的视频数据就能达到几百兆,如果用传统的加密算法来对这样数据文件加密,显然是不太现实。为了实现高效并且可靠的加密算法,有人将对称加密算法(如:DES加密算法、IDEA加密算法)和非对称加密算法(如:RSA加密算法)结合了起来,提出了混合加密算法。由于综合了两种加密体制的优点,所以与以前的加密算法相比,寂寞效率和安全性的确进步了很多。但是混合加密算法没有改变传统的加密方式,对加密的信息不加区分,仍然是全盘加密。很显然如果不改变传统的加密方式,是很难实现高效的加密算法的。
二、图像频域加密算法
1、频域加密算法的实现原理
频域是相对于图像的空域而言的,一般的可以利用离散余弦变换( DCT)、快速傅立叶变换(FFT)以及小波(WaVelet)变换等变换方法法来实现图像空域和频域之删的转换。其中离散余弦
变换可与最佳变换K-L变换相媲美。并且它的计算复杂度适中,具有可分离特性,义有快速算法等特点,所以在数字多媒体信息(如:语音、静态图像和视频)的压缩编码技术中有着广泛
的应用,国际静态图像压缩标准(JEPG)和视频压缩标准(MEPG)等都采用了DCT离散余弦变换来实现图像的空域一频域之间的转换的。
DCT变换公式如下:
DCT变换(也称前向DCT变换,记为FDCT):
DCT逆变换(记为IDCT):
其中:
F(x,y)代表图像数据,DCT(i,J)代表DCT系数,N取值为8或16。
利用IDCT变换进行图像变换时,需要将图像的空域数据分割成一条列的N×N数据子块进行处理。以N=8为例,一组8×8的图像空域数据矩阵(见图1)经过DCT变换后得到8×8的频域数据矩阵(也称为DCT系数矩阵)。见图2。
如图2所示,在DCT系数矩阵中,数值较大的系数只是集中在少数当中,并且分布在低频区内。也就是矩阵的左上角部分,这些系数包含了图像的绝大部分的信息。矩阵左上角数值最大的DCT系数(图2中为172)称为DC系数,其余63个DCT系数称为AC系数。DC系数是DCT系数矩阵中能量最高的部分,它是影响图像最终显示效果的主要因素,所以在图像处理时,对DC系数的处理必须要比AC系数精确,否则会导致图像的失真(见图3(b)),甚至不能正常显示(图3(c))。
对此笔者进行一系列的验证实验,对一幅图像频域数据的DC系数作破坏性的处理,结果见图3。其中图3(a)是原图,而图3(b)和图3(c)是DC系数遭到不同程度破坏的图像。由此可见,DC系数直接决定了图像的显示效果,该频域加密算法正是基于这一实验结果,其加密的原理很简单:在频域内对图像频域数据的DC系数进行加密,而其它的AC系数和文件附加信息不作任何加密处理。由于DC系数经过加密之后,能量值得到了彻底的改变,凶此导致图像不能正常显示。
下文就静态图像和动态图像具体来讨论频域加密算法的实现。
2、静态图像的实现算法
静态图像文件一般主要由三个部分组成:文件头、图像数据、调色板,对于特定的图像格式的文件,文件头的长度一般是固定的,它包含了图像解码所必须的信息,如图像格式的标识、
图像的大小等等。调色板主要负责图像的颜色的显示。文件头和调色板埘于图像的解码十分的重要,如果这些数据受到了破坏,那么图像将无法正常显示。传统的加密方式由于对图像文
件的全部数据进行加密,包括文件头和调色板,所以加密后的图像文件是无法打开的,也不能用图像浏览软件进行浏览。
采用该频域加密算法对图像文件加密时,不对文件的文件头和调色板加密,而是将两者直接拷贝到加密文件中去。图像的实际数据经过DCT变换后,仅仅加密DC系数。文件加密示意图如下:
由于没有对图像文件的文件头和调色板加密,所以经过加密后的图像文件仍然能够打开或者可以用图像浏览软件测览,但是图像已经面目全非(图3(c),无法识别图像的内容。由此可见频域加密算法最大的优点是只要加密少量的数据。
值得一提的是,对于JPG格式的图像文件,采用频域加密则具有最佳的加密效率。因为JPG图像是按照JEPG压缩标准压缩过的,文件中存放的图像数据本身就是经过熵编码的频域数据,因此不需要空域一频域的特换,只要对之进行相应的熵解码即可进行加密。
3、动态图像的实现算法
动态图像的加密算法,笔者是针对MPG格式的视频图像来实现的。MPG视频文件是采用MEPG视频压缩标准处理后的数据文件,为了提高压缩比,MEPG同时使用了帧内图像数据压缩和帧间图像数据压缩技术。帧内压缩算法与JFPG压缩算法大致相同,采用基于DCT的变换编码技术,用以减少空域冗余信息。帧间压缩算法采用预测法和插补法,主要减少时间轴方向的冗余信息。
MEPG在显示图像时,采用了三种类型的图像:帧内图(ln-trapictures.I)(前向)预测图(Predicted Pisiures,P)和插补图,即双向预测图(Bidirectional Prediction.B),其中帧内图为非预测图。在进行帧间预测编码时,要用到先前和过去的图(帧内图或预测图),当前的预测图通常又作为后面的预测图的参考图;双向预测图在预测时需要先前和后续的信息。帧内图和预测图都是它的参考图。另外双向预测图不能作为其它图的预测参考图。MEPC中这这三种类型的图像的组织结构是十分灵活的,它们可由应用规定的参数决定。图5的图例是在沿时间轴
方向的排列中,每8帧图像内,有一副帧内图(I),一副预测图(P),6副双向预测图(B)。(B)图处于(I)图和(P)之间。
不难发现在MEPG的三类图像中,帧内图(I)对动态图像的显示效果起到了决定性的作用。帧内图是MEPG视频显示的基本图,无论是预测图,还是双向预测图都要以它为参照图,如果帧内网小能正常显示,帧间预测就失去了正确的参照图,那么后继的预测图和双向预测图也就不能正常的显示。根据这个原理,在对MEPG动态图像进行加密时,只要对帧内图进行加密即可。
由于MEPG标准对帧内图的处理与JEPG标准的处理方法足类似的,所以对于帧内图的频域加密方法同上面的方法一样,仅对帧内图的频域数据的DC系数进行加密。
4、图像频域加密算法优缺点分析
与传统的加密方式相比,该文的频域加密算法具有一定的优越性,但也有不足之处:
(1)由于频域加密算法仅仅对图像频域数据的DC系数进行加密,所以加密效率是大大提高了。但足只有在对JEPG和MFPC等采用频域方法处理的图像进行加密时才能显示出这个优点,如果加密其它格式的图像,就必须首先用DCT频域变换将图像的空域数据转换到领域上去,这使得算法的效率大打折扣。
(2)因为频城加密算法仅仅加密少量的图像数据,所以与传统的家am算法相比,频域加密箅法的加密强度有所降低。
(3)由于图像文件的文件头和相关的附加信息保留不变,所以经过频域加密后的图像文件能够进行浏览或者播放。这个特点所带来的益处是显然的,经过频域加密的图像容易造成“没有加密”的假象,逃过恶意的破坏。而传统的加密算法对文件全盘加密,无法打开加密的文件,但这反而会引起一些人的“兴趣”,对某些人来说,解密很具有“挑战性”。
三、图像频域加密算法的相关应用
结合频域加密算法,可以设计相应的MEPC视频播放器,与现有的播放器不同的是,这种播放器不仅能够播放正常的MFPG文件,还能播放被频域加密后MEPC文件。其实其原理很简单,仅仅在现有的MEPG播放器的的基础之上作了少许改进(图6)。
播放器的解码流程中加入了DC系数的解密模块。加密图像数据在解码前,首先经过解密模块的解密,由于仅仅对DC系数进行处理,所以对解码效率的影响不会很大,这点是传统的加密算法做不到的。采用改进的MEPC视频搔放器播放MEPC视频时,默认状态与一般的播放器一样,直接对视频数据进行解码;而播放加密的视频文件时,无需事先对文件进行解密,只要进行相关的设置(如输入解密密钥等等)即可播放出正常的图像。这样一来,加酱的MEPG视频文件始终处于加密状态,有效地降低了盗版的可能,因为即使得到视频文件,如果没有解密密钥的话,是无法正常播放的。当然不排除持有解密密钥的用户盗版的可能,这不是加密所能解决的问题,需要其它的辅助技术,甚至是法律手段。
小知识之频域
频域frequency domain 是描述信号在频率方面特性时用到的一种坐标系。对任何一个事物的描述都需要从多个方面进行,每一方面的描述仅为我们认识这个事物提供部分的信息。