数字图像加密技术
1、引言
随着计算机网络的开放、共享性以及互联程度的日益扩大,Internet 得到了飞速的发展和应用,网络的重要性及其对社会的影响也越来越大。
与此同时,网络的安全保密问题也已成为日益严重的现实问题。
近年来,无论官方还是民间机构,都对信息的安全存储、保密传输、真伪验证等问题高度重视。
2、数字图像加密技术的背景知识
一幅二维平面图像可用一个二元函数I= f (x, y) 来表示,(x, y) 表示二维空间坐标系中一个坐标点的位置, 则f (x, y) 代表图像在这一点的灰度值, 与图像在这一点的亮度相对应。
并且图像的亮度值是有限的, 因而函数I= f (x, y) 也是有界的。
在图像数字化之后, I= f (x, y) 则相应于一个矩阵, 矩阵元素所在的行与列就是图像显示在计算机屏幕上诸像素点的坐标, 元素的数值就是该像素的灰度(通常有256 等级, 用整数0 至255 表示)。
常见的加密算法,如DES 、AES 、RSA 等都是针对文本、数据加密而提出的。
对于在数字图像方面的加密来说,常见的也是采用这些文本加密技术的思想。
但是,文本和图像也存在很多区别,主要是:
(1)图像信息量非常大.
(2) 相邻像素具有相关性. 由于图像的可视性,一定区域内色彩是相似的,因此相邻像素间有很强的相关性. 文本加密技术并没有考虑这种相关性,而是依次加密每个像素.
(3) 加密图像在解密时常允许一定失真. 这种图像失真只要控制在人的视觉内是完全可以接受的.显然在加密和解密时,需要考虑图像的这种特点. 文本加密技术没有考虑失真度的问题.
(4) 需要预处理. 数字图像一般以二维数组的数据格式存储,而文本加密技术都要求先将待加密的数据转换为二进制的数据流,如果图像很大的话,需要一定的图像预处理时间,降低了加密效率.
3、数字图像加密方法
1)基于Arnold 变换的图像加密算法
(1)基于二维Arnold 变换的图像加密算法
Arnold 变换是Arnold 在研究环面上的自同态时提出的一种变换,俗称猫脸变换。
利用Arnold 变换的周期性,即当迭代到某一步时将重新得到原始图像,这使得很容易进行图像的加密与解密。
基于Arnold 变换,可以通过置乱图像的位置空间或相空间两种方式对图像进行加密。
设有单位正方形上的点(x ,y ),将点(x ,y )变到另一点(x ’,y ’)的变换为⎪⎪⎭⎫ ⎝⎛''y x =()l y x mod 2111⎪⎪⎭⎫ ⎝⎛⎪⎪⎭⎫ ⎝
⎛,此变换称为二维Arnold 变换。
将二维Arnold 变换应用在图像f (x ,y )上,可以通过像素坐标的改变而改变原始图像灰度值的布局。
原始图像可以看作一个矩阵,经过Arnold 变换后的图像会变的“混乱不堪”,由于Arnold 变换的周期性,继续使用Arnold 变换,可以重现图像。
利用Arnold 变换的这种特性,可实现图像的加密与解密。
(2)基于n 维Arnold 变换的图像相空间置乱
对于给定的正整数N ,下列变换称为n 维Arnold 变换:
⎪⎪⎪⎪⎪⎭⎫ ⎝⎛'...'2'1xn x x =⎪⎪⎪⎪⎪⎭⎫ ⎝⎛n .21............2 (21)
1...11⎪⎪⎪⎪⎪⎭
⎫ ⎝⎛xn x x ...21()N mod n 维Arnold 变换同二维Arnold 变换一样具有周期性,继续使用Arnold 变换,也可以重现原始图像。
利用n 维Arnold 变换对图像的相空间进行置乱,也能实现图像的加密。
2)基于混沌系统的加密算法
混沌理论与相对论、量子力学并列为二十世纪的三大发现之一。
混沌的发现,为决定论和随机论之间架起了一座桥梁,改变了人们以前对随机性和确定性的认识。
研究人员发现,混沌和加密有天然的联系,Shannon 曾经说过:一个好的混合变换疆场是由两个简单的、不可交换的操作得到。
混沌和加密的关系如下表所示:
(1)混沌镜像加密算法 设f 代表大小为M ×N ,通过混沌系统产生混沌序列{}0
1)(=-i MN i X ,并将其量化为二值序列{}0
1)(=-i MN i b ,各比特位与原图各像素点相对应。
将原图划分为上下两部分,当上半部分图像像素对应的比特位为“1”时就与下半部图像对应像素交换位置,当对应的比特位为“0”时,图像像素位置保持不变。
为了提高加密程度,应该在置乱前应用其他方式对图像进行划分,然后进行置乱。
该加密算法的密钥为混沌系统的初始值x (0),解密过程中选用相同的混沌系统为初值,然后按照相反步骤对加密图像进行镜像置换操作即可恢复原始图像。
(2)基于混沌的像素位置置乱算法
设f 代表大小为M ×N 的图像,选定两个混沌系统分别以初值x (0),y (0)产生两个混沌序列,将序列归一化后分别乘以M 和N ,并将两列序列取整,使得序列值取值分别为[]1,0-M 与[]1,0-N 区间的整数。
对两个序列进一步处理得到遍历[]1,0-M 的序列{}01)(=-i MN i X 与遍历[]1,0-N 的序列{}0
1)(=-i MN i y ,用这两个序列作为置乱矩阵f m 的行地址和列地址,对原图像进行置乱。
(3)基于混沌的像素值置乱算法
设f 代表大小为M ×N ,有L 个灰度级的图像。
选定一维混沌系统,并将其初始值x (0)
作为加密密钥,通过该混沌系统产生混沌序列{}0
1)(=-i LMN i X ,并将其量化为二值随即序列{}01)(=-i LMN i b 。
将得到的序列{}0
1)(=-i LMN i b 与原始图像数据按比特位进行异或得到加密图像f ’。
原始图像的像素点f (x ,y )(0≤x ≤M-1,0≤y ≤N-1),对应于加密图像的像素点f (x ’,y ’)。
4基于Arnold 变换的图像加密算法与基于混沌系统的加密算法比较
虽然基于Arnold 变换的图像加密方式效果良好,可是如果将他直接用于图像加密则存在一定缺陷:首先,他的安全性是基于攻击者不知道 加密算法的前提下,若攻击者了解加密算法,则很容易破译加密图像,因而该加密方式不符合现代密码体制的要求;其次,用于图像乱置的Arnold 变换的周期比较长,造成加密或解密过程计算量较大。
另外,基于幻方的像素置换加密也由于具有类似的缺点,但它可以有效的打乱输入明文的顺序,掩盖明文的统计特性,因而能抵御统计分析,可以构成SP 网络中的置换部件,而不应该单独作为一个独立的密码系统。
对于基于混沌系统的加密方式,由于混沌系统具有非周期性和伪随机的特性,使用混沌系统产生的伪随机序列具有对初值的高度敏感性,这使得在解密过程中,如果不能给出精确的初值,则不能够进行正确的解密。
因此,利用混沌系统对数字图像进行加密,具有更大的优势。
5改进的基于混沌加密技术
由于将图像进行分块处理会提高图像处理效率,并且使用小块加密模板会降低运算量,本方式可选用大小为K ×K 的加密模板对原图像分块进行加密。
设f 代表大小为M ×N 的图像,f (x ,y )(0≤x ≤M-1,0≤y ≤N-1)为图像f 在位置(x,y)处的灰度值,选取四个16位加密密钥k x ,k y ,k z ,k w 。
加密过程如下:
(1)任选四个不同的辅助密钥,假定从原始图像f 中任取16个像素点,两两配对,按比特异位操作,得到四个16位的辅助密钥ka, k b, k c k d .
(2)选定四个一维混沌系统,初值分别取:x (0)=k x ⊕k a , y(0)=k y ⊕k b , z(0)=k z ⊕k c ,k(0)=k w ⊕k d .
(3)通过四个混沌系统以选定的初值产生混沌序列,将四个混沌序列量化为二值序列,并通过异或运算,将他们合并为序列{}0
1)(=-i LMN i b 。
若原图像有L 个灰度级,则序列长度取为K ×K ×L ,从而得到K ×K 的图像加密模板f m 。
(4)用加密模板fm 对冤死图像f 分块进行加密得到加密图像f ’,原图像像素点f (x ,y )对应于加密图像的f ’(x,y)。
解密过程如下:
(1)解密一方通过公共信道获得依赖于原始图像的辅助密钥ka, k b, k c k d ,并通过辅助
密钥与密钥k x,k y,k z,k w确定四个混沌系统的初值x(0),y(0),z(0),w(0).
(2)通过四个混沌系统产生与加密方式相同的加密模板f m。
(3)用f m实现图像的解密。
从安全角度看,对于改进的基于混沌系统的加密方式,其安全性完全取决于密钥长度,而密钥长度可以通过增加混沌系统数目的方法任意增加。
该方式最大的特点就是可以抵抗已知明文系统攻击,由于实际应用的密钥是不段变化的,即使攻击者得到了一对已知明文和密文,也无法破译以后的加密图像。
6结束语
采用的混沌加密理论上是无法破解的一种加密方式, 而且替代加密添加了辅助密钥, 使得加密与解密过程不但依赖于初始密钥而且依赖于辅助密钥, 加大了密钥空间。
而辅助密钥与明文有关, 使得混沌初值与明文有关, 导致加密算法对明文具有敏感性。
将各个混沌系统的初值和系统参数作为密钥, 增大了密钥空间。
采用两个序列交替生成密钥, 增加了安全性。