静止图像可以看做是平面区域上的二元连续函数:
Z =f(x,y) ,0≤ x≤ Lx;0≤ y≤ Ly
对区域中任意的点 (x,y) ,则 f(x,y)代表图像在这一点的灰度值 ,与图像在这一点的亮度相对应 。并且图像的亮度值是有限的 ,因而函数 Z=f(x,y)也是有界的 。在图像数字化之后 ,Z=f(x,y)则相应于一个矩阵 ,矩阵的元素所在的行与列就是图像显示在计算机屏幕上诸像素点的坐标 ,元素的数值就是该像素的灰度 。矩阵的初等变换可以将一幅图像变换成另一种图像 ,但它的缺点是像素置乱作用较差 ,因而保密性不高 。图像加密主要采用以下几种方法 。
基于矩阵变换 /像素置换的图像加密技术
1、Arnold变换
设像素的坐标 x,y∈ S={ 0 ,1 ,2 ,… ,N - 1 } ,Arnold变换为x′y′=1 11 2xy (mod N ) ,x,y∈ S。
记变换中的矩阵为 A,反复进行这一变换 ,则有迭代公式 :
Qn+1 ij =AQnij(mod N ) ,n =0 ,1 ,2… ,
其中 :Q0ij∈ S,Qnij=(i,j) T 为迭代第 n步时点的位置 。
Arnold变换可以看做是裁剪和拼接的过程 。通过这一过程将离散化的数字图像矩阵 S中的点重新排列 。由于离散数字图像是有限点集 ,这种反复变换的结果 ,在开始阶段 S中像素点的位置变化会出现相当程度的混乱 ,但由于动力系统固有的特性 ,在迭代进行到一定步数时会恢复到原来的位置 ,即变换具有庞加莱回复性 。这样 ,只要知道加密算法 ,按照密文空间的任意一个状态来进行迭代 ,都会在有限步内恢复出明文 。这种攻击对于现代的计算机来说其计算时间是很短的 ,因而其保密性不高 。
2、按幻方做图像像素置乱变换
假设数字图像相应于 n阶数字矩阵 B,对取定的 n阶幻方 An× n,将 B与 A按行列做一一对应 。把A中的元素 1移到元素 2的位置 ,将元素 2移到 3的位置等等 ,依此规律进行 ,并把第 n2元素移到 1 。经过这样的置换后 ,矩阵 A变成了矩阵 A1 ,记为 A1=EA,对 A1 来说可以重复上述过程 ,得 A2 =EA1… ,这便是一系列的置换 。经过 n2步 ,则 An2 =A。对于数字图像矩阵 B,注意它与矩阵 A元素之间的对应关系 ,随 A转换为 A1 而把 B中对应像素的灰度值做相应的移置 ,产生对应的数字图像矩阵 B1 ,记为 EB=B1 。一般地 ,有 Em B=Bm。经过这种对图像像素的置换 ,打乱了像素在图像中的排列位置 ,从而达到加密的目的 。这种变换实质上是矩阵的初等变换 ,并且由于幻方矩阵是一有限维矩阵 ,经过 n2 次置换 ,又会回到原来的位置 ,因而也可以用 (1 )所述的方法加以破译 ,因而其加密效果也是不好的 。但若能把初等矩阵变换转化为某种非线性变换则有可能增强置乱效果 ,再结合其它的现代密码学的一些成熟的加密算法 ,如 DES,RSA等则可以增加算法的保密性 。
基于置乱技术的图像加密技术总体上来说可以等效为对图像矩阵进行有限步的初等矩阵变换 ,从而打乱图像像素的排列位置 。但初等矩阵变换是一线性变换 ,其保密性不高 。而且基于 Arnold变换的加密算法和基于幻方的加密算法是不能公开的 ,这是因为它的加密算法和密钥没有有效地分开 ,这和现代密码体制的要求是不相容的 ,即它不符合 Kerckhoffs准则 ,属于古典密码体制的范畴 。在实际应用中应该加以适当的改进 ,一是使这类加密算法的保密性提高 ;二是要使这类加密算法符合 Kerckhoffs准则 ,适应现代密码学的要求 。另外 ,基于 Arnold变换的图像加密算法还有其动力学系统的庞加莱回复特性 ,而幻方矩阵也是由有限域上的元素所组成的 ,因而都容易受到唯密文迭代攻击 ,因而从根本上来说这类算法是不能公开的 。从加密算法不能公开、秘密不是完全寓于密钥这一点来看 ,这类加密算法是属于被淘汰之列的 ,除非它们能和其它加密算法有效地结合 ,从而符合现代加密体制的规范 。