基于高维混沌系统图像分组加密算法是对高维Lorenz混沌系统产生的混沌序列进行预处理,使它们成为自相关是δ函数、互相关近似为0的伪随机序列。将它们作为密钥流,使图像矩阵的行列位置随密钥值变化而产生随机置乱,并将图像像素值作为明文序列采用分组加密算法使其发生随机变化,以实现对图像的全方位加密。该算法可支持二值图像、8位灰度图像、24位真彩色图像以及数据量较大的遥感图像文件加密。
一、混沌系统
混沌是指确定的宏观的非线性系统在一定条件下所呈现的不确定的或不可预测的貌似随机的现象。混沌系统的一个重要思想是使用非周期序列,即用周期无穷大的周期序列来代替有限周期序列。Lorenz混沌系统是1963年美国气象学家Lorenz通过对对流试验的研究,得到了第一个表现奇异吸引子的连续动力系统。这个系统可以用一个三维的常微分方程组:
其中t,x,y,z,σ,r,b∈R,参数σ,r,b为正常数,x正比于对流运动的强度,y正比于水平方向温度变化,z正比于竖直方向温度变化。式(1)的研究方法通常是固定常数σ和b(一般取σ=10,b=8/3),改变r(0<r<∞)以观察系统的变化情况。当r>24.74时,系统进入混沌状态。
混沌信号具有的非周期性,类噪声的特性,使得它具有天然的隐蔽性;对初始条件和微小扰动的高度敏感性,又使混沌具有长期的不可预测性。混沌信号的隐蔽性和不可预见性使得混沌适宜保密通信。混沌模型简单可行、密钥由混沌系统的一组参数表示,由用户自选,便于技术实现,且密钥的管理、分配也相对比较容易。由密码学理论可知,混沌系统在理论上可实现充分保密,达到所需的实用安全性。混沌理论及其在信息安全中的应用己成为密码学及其应用方向的研究热点之一。
二、分组加密算法
近年来分组密码新的算法不断涌现,其中TEA加密算法就是一种加密速度极快,高速高效,抗差分攻击能力强、安全性极高的分组算法n羽。TEA分组加密算法的明文密文块为64位,但密钥长度为128位。
加密算法如下:
S1:初始化过程。
64位的明文数据分成两部分v(0)和v(1)各32位:x一v(0);y—y(1);
Delta--Ox9E377989(十六进制):Sum—0;
128位的密钥分成4个部分:k(0)、k(1)、k(2)和k(3),各32位:a一k(O);b一k(1);c一k(2);d一k(3),n=32。
S2:若n>0则转S3,否则转S4。
S3:对明文数据进行n次循环迭代计算。
迭代算法如下:
Sum一Sum+Delta;
x一x+(y<<4)+(a∧y)+(sum∧(y>>5))+6;
y一y+(x<<4)+(c∧x)十(Sum∧(x>>5))+d;
注:<<为向左移位;>>为向右移位;∧为异或运算;+为加运算;
n一n-1,转S2。
S4:v(0)一xi; v(1)一y;合并加密结果,结束解密算法和加密算法类似。
三、基于混沌的图像分组加密新算法
1、加密算法基本思想
为了提高加密系统的安全性和高效性,本文采用高维Lorenz混沌系统来设计新算法。结合分组加密算法具有加密速度快,抗攻击能力强,安全性好的特点,首先对Lorenz混沌系统产生的3个混沌序列进行一系列的预处理变换,使它们成为自相关是δ函数、互相关近似为0的伪随机序列,然后将它们作为密钥流,使图像矩阵的行列位置随密钥值变化而产生随机置乱,再进一步,将图像像素值作为明文序列采用分组加密算法使其发生随机变化,从而实现对图像的全方位加密。此外,为了增强算法的通用性,本文以字节为单位对图像矩阵重新组织,使加密算法不受图像类型的限制。
2、加密算法描述
加密过程如下:
S1:产生所需的混沌序列。对Lorenz混沌系统,采用经典的四阶Runge-Kutta法求解常微分方程,得到3个混沌序列{{xi}、{yi}、{zi}|i=(1,2,…n…)}。为了提高安全性,舍去数列的
前N项,混沌序列从第N+1个数值取起。
S2:对混沌序列做变换。对混沌序列{xi}、{yi}、{zi},按式(2)作变换,使其成为自相关是δ函数、互相关近似为0的伪随机序列。
其中Ti是xi,yi,zi之一,round(x)是取最接近x的整数的运算。将变换后混沌系列记为{x'n}{y'n}{z'n}。变换后的Lorenz混沌序列的值域都在[-0.5,0.5]之间。
S3:图像行置乱。设待加密的图像大小为M个字节,用矩阵A表示,A=Aw×h。w-每行个字节数,h-总的行数。对A的第i行的w个字节,从混沌序列{xn'}中按顺序取出i*w到(i+l)*w-l的w个数值,将这w个数值与4的第f行w个字节一一对应。对从{xn'}中取出的这w个数值从大到小依次排序,得到新的排列序号,记为{s(k)|k=0,1,2...w-1)}。相应地,4的第Z行的w个字节以字节为单位,按s(k)的序号重新排列,使得图像矩阵A第i行的位置发生置乱i对i从0到h—1循环,直到所有行的位置置乱完成,实现了图像的第一次加密。
S4:图像列置乱。设经过上述行置乱的图像为B,每行有w个字节,共厅行。对于B的第j列,相应地从序列执{yn'}取出序号从j*h到(j+1)*h-1的n个数值,使其与图像矩阵B的第j列的字节一一对应。对从序列{yn'}取出的这h个数值从大到小依次排序,得到新的排列序号,记为{t(i)| i=0,1,2...h-1)。相应地,B的第j列h个字节以字节为单位依照此新序号重新排列。这样就完成了图像矩阵曰第/列的位置置乱。对B从j到w-1循环,直到所有列的位置置乱完成,即对图像实现了第三次加密。
S5:像素值变换。
(1)对混沌序列{zi'}的每个值,通过式(3)进行量化,取值为0或1,并作为TEA分组加密算法的密钥组k1k2…ki...。
(2)把经过上述行和列位置置乱的图像进行64位分组,设可以分为,2组,最后一组位数不够补。把密钥ki进行128位分组,得到密钥序列k1/k2…kr。其中:
取出图像的第f组,分为前32位和后32位,形成两个32位的无符号整数v1,v2,取出{Kr}序列的第i组,它是128位的,按顺序分为4个32的无符号整数u1,u2,u3,u4。,然后根据本文第2
节介绍的TEA分组加密算法的步骤,用u1,u2,u3,u4。作为密钥,加密图像的第f组,即第i个64位哄设循环迭代次数为R,R可取8-32的固定整数。
(3)对图像的每一组进行(2)运算,直到整个图像像素置乱完成。即实现了图像的第3次加密。
解密过程:解密过程只是把加密过程中的步骤逆运算即可。
四、加密算法仿真与分析
为了验证三维混沌分组加密算法的性能,用一幅图像做各种加密和解密仿真实验,并做进一步的分析。
1、密钥敏感性及密钥空间
密钥敏感性实验:①设置混沌系统的初值x0=1,yo=1,z0=1叫加密前后的结果如图1(a)、(b)所示h对上述加密后的图像,取x0=1,y0=1,z0=1,图像解密正确,结果如图1(c)。②对3个混沌初始值中其中一个值做微小改变,其他两个值不变。例如xo= 1.000000000000000l=1+10-15,yo=1,zo=1。以此为解密密码,图像解密不正确,结果如图1(d)所示。可见混沌系统对初值非常敏感。
密钥空间分析:以三维混沌系统的初始值作为密钥,每个分量值的精度为10-16,因此整个密钥空间可达到1048。此外,在密钥生成算法中,为了提高安全性,混沌序列一般从第N项取起,N是一个长整型数。TEA分组算法的迭代次数R可以取8-32之间的整数。若把N和R再添加为密钥,密钥空间进一步扩大。由此可见,本文所提出的新图像加密算法密钥空间大,抗破译能力强。
2、统计特性分析
图2(c)为原始图像的直方图,图2(d)为加密后图像的直方图。由图可见,对图像经过本文算法加密后,影像混乱,如同白噪声一般,在[0,255]区间上分布均匀,说明经过三维分组算
法加密的图像混沌性很强,置乱效果很好,原图像的像素分布特性已被完全掩盖,难以利用统计特性重构和预测,可有效抵抗统计攻击。
3、抗干扰、抗差分攻击分析
图像在存储、处理和传输过程中经常会受到噪声干扰,因此,加密算法必须有抗干扰的能力。用本文加密算法对图像文件加密,再对加密的图像进行叠加噪声、损坏部分画面等处理,解密后的图像如图3所示。
从图中可以看出,经过噪声攻击、局部有损攻击后的加密图像,再由本算法解密后与原始图像相比,仅一些像素值发生变化,图像有些“麻点”,但它们均匀地分散在整幅图中,对原
图的认读没有太大影响。需要的话,可以采用图像修补方法使图像复原。由此可见,本算法的鲁棒性能较强,对图像的部分受损具有一定的抗干扰能力。
此外,在对每组图像像素序列采用分组加密的过程中进行了多轮交叉位移和加法运算,并且运算中所用的密钥组是由混沌系统随机产生。因此,新加密算法可以更加有效地抵抗线性攻击和差分攻击。
4、通用性分析
从签名的图像加密算法描述可见,无论待进行加密的是二值图像、8位灰度或24位真彩色图像,加密系统会自动把图像矩阵按位拉伸成一维分量,再以字节为单位重新组织加密图像的矩阵。解密时,系统会自动还原矩阵。因此,本文提出的图像加密算法对不同类型的图像均适用。
五、遥感图像加密应用
遥感图像往往具有数据量大、获取成本高、甚至含有敏感信息等特点,因此其信息安全和版权保护问题显得十分重要。
本文提出的图像加密算法充分利用了分组加密算法加密速度快、效率高、抗攻击能力强的特点,在像素值置乱过程中将图像的每64位作为一组进行加密,与常见的将图像逐个字节逐位做运算处理的加密算法相比,加密速度明显得到提高(见表1),解决了对数据量较大的图像文件加密处理难的技术问题。
图4(a)是一幅从网上下载的遥感图像。分辨率4500x3600,数据量为43M。采用VC++6.0对本文提出的图像加密算法编写程序代码,在内存为1G、CPU为T7250 2.OGHz,操作系统
为Vista的笔记本电脑上做加密解密试验,结果如图4(b)(c)。
对一些安全级别要求不是太高的图像,为了节省加密时间,还可以有选择地只对图像的敏感信息局部加密。图4 (d)(f)是对图像局部文件加密、解密的结果,窗口大小为337x421。
实验表明:本图像加密算法加密速度非常快,是一种适合遥感等数据量大的图像进行安全可靠的无损加密和解密的新算法。
小知识之遥感图像
遥感图像即遥感影像。凡是只纪录各种地物电磁波大小的胶片(或相片),都称为遥感影像,在遥感中主要是指航空像片和卫星像片。