为了保护有价值的数字图像信息,提高信息的安全性,通过分析图像中每一个像素点的排列关系,我们提出了一种基于Z字形编码的数字图像加密算法。下面我将为大家介绍一下这种数字图像加密方法。

一、基于Z字形编码的数字图像加密

JPEG利用人的视觉系统特性,去掉或减少那些对眼睛不敏感的数据。广泛应用于灰度和彩色图像的压缩,而Z字形编码是JEPG压缩编码算法的计算步骤之一。

首先对图像进行离散余弦变换(DCT),随着水平方向和垂直方向频率值的增加,其量化系数变为零的机会越来越大。为了利用这一特性,可将这些二维系数按照从DC系数开始到最高阶空间频率系数的顺序重新编排为一维系数,通过使用Z字形编码方法实现这种编排,即在8×8像素块中沿着空间频率增加的方向呈“Z”字形来回移动的过程。下图(a)为DCT量化后输出的矩阵系数。使用Z字形编排模式,可以产生一个如图(b)所示的一维系数。

基于Z字形编码的数字图像加密

这样就把一个8×8的矩阵变成一个1×64的矢量。重新编排后又可以得到新的矩阵。对下图进行Z字形编码重新编排后又可以得到新的8×8矩阵。因为Z字形编码即zigzag变换是一一对应的,所以每一次变换都对应一种状态,而矩阵是由有限个点组成的,所以经过有限次变换后,一定又可以回到原来的状态,即这种变换具有周期性。

基于Z字形编码的数字图像加密

定义1:zigzag变换的周期为经过一系列变换回来原来状态的最小整数次数。

定理1:zigzag变换具有周期性。

证明:假设zigzag变换不具有周期性。

即:从初始状态T0经N0次变换后第一次达到状态T1,又经N1次变为状态T1,这样重复下去,每经N1次变化后到达一次T1,无法回复到0状态,即:T0…T1…T1…。

当N0>N1时:显然第N0-1和第N0+N1-1次状态相同,第N0-2和N0+N1-2次状态相同,依次类推可得:第N0-N1和第N0+N1-N1=N0次状态相同。即:经过N0-N1次就第一次达到状态T1,此为矛盾。故变换具有周期性。

当N0=N1时:N0-N1=0,即:T0和状态T1相同,故周期为N0。

当N0<N1时:第N0-N1和第N0+N1-1次状态相同,第N0-N2和N0+N1-2次状态相同,依次类推可得:第N0-N0=N0和第N0+N1-N0=N1次状态相同。即:经过N1次后就可以达到状态T0,故周期为N1。

综上所述可见:zigzag变换具有周期性。

定理2对于维矩阵,从位置来考虑,zigzag变换的周期满足:T≤(N2-4)!

证明:由于维矩阵有N2个元素,除去1,2,N2-1和N2,4个不动点外共有N2 -4个元素,而这N2 -4个元素的全排列为N2 -4!,即共有N2 -4!种不同的状态,故zigzag变换的周期满足:T≤N2 -4!

显然这只是一个粗略的估计,和正交拉丁方,骑士巡游等加密方法的周期一样,zigzag变换的周期也有待进一步研究。

二、用Z字形编码对图像进行加密

对数字图像文件加密时,可以采取两种方式。一种是直接对图像进行加密,如图所示。

基于Z字形编码的数字图像加密

第二种方法是将图像分成小块后,对每个小块进行加密。下图为将原图分成16×16的小块后利用zigzag变换对图像进行加密的结果。

基于Z字形编码的数字图像加密

从加密效果上来看,由于先分块后加密的加密方法是基于局部加密的,所以还能看出来原来图像的部分信息,而直接对整个图像进行加密的方法是对整个图像进行加密,加密效果要比先分块后加密的加密方法好。

对于先分块后加密的加密方法,由于每个小块的维数小、周期短所以可以利用变换的周期性对加密图像进行解密。而直接对整个图像进行加密的方法,由于图像维数大周期长所以可以利用zigzag变换的反变换解密。

小知识之DCT

离散余弦变换(Discrete Cosine Transform,简称DCT变换)是一种与傅立叶变换紧密相关的数学运算。在傅立叶级数展开式中,如果被展开的函数是实偶函数,那么其傅立叶级数中只包含余弦项,再将其离散化可导出余弦变换,因此称之为离散余弦变换。