随着计算机技术迅速发展,Internet已经作为人们或单位之间进行信息交流的主要渠道,网上传输的方便性不容置疑,但由于因特网的基础协议TCP/iP不是一种安全的协议,现代高性能的计算机,运行自动分析和截获程序每秒可搜索数百万个底码,因此当未经特别加密的图像信息在网络上传送时就会面临极大的安全威胁。在国家安全方面,军用卫星所拍摄的图片、军用设施图纸、新型武器图等;在远程医疗系统中,医院中患者的病历(其中包括患者的图像),市场竞争中,作为公司机密的,电子设计、机械设计、金融机构的建筑图纸等,都足以大量的技术图纸形式保存的。这些图像的传输如果希望享受到网络传输的方便、快捷,又要考虑信息的安全与保密,那么不论出于法律规定,还是个人利益的需要,必须要加密后方可在网络上传输。

现代密码体制可分为两大类:一类是私钥密码体制,如DES、IDEA、Blowf18h,CAST-256.Mars等;另一类是公钥密码体制,如RSA,EIGrunal等。这两类加密算法有—个共同特点是:它们都是针对加密文本数据设计的,虽然在理论上讲,数字图像信息也可以应用这类密码系统来进行加密,但这并不是—个明智的选择。数字图像数据量一般都非常大,而且数字图像信息是允许一定的图像失真度的,这种图像失真只要控制在人的视觉不能觉察到时是完全可以接受的。有时为了初略浏览,甚至视觉上觉察到—定的失真也是完全可以的,有鉴于此,对于数字图像信息加密,需要重新设计一类适合数字图像数据特点的图像加密算法。由于混沌加密特有的优势,应用混沌加密成为一新的发展动态,基于混沌理论的图像加密方法大量出现。

一、混沌动力系统

混沌(chaos)一词在1975年由李天岩和约克(James A.Yorke)首先提出,混沌是具有伪随机性的确定性系统。它对系统的参数和初始条件极端敏感,给定—个离散混沌系统2个非常接近的初始值,经过几次迭代后,输出的结果可以完全不相关。同时,它又具有确定性,其输出值由非线性系统的方程、参数和初始条件完全决定。只要系统参数及初始条件相同,就可以重构混沌信号。混沌的这些特点使得它在密码学的应用具有天然优势,20世纪80年代末期,英国数学家Matthews首先提出混沌序列在密码学方面的应用。 现今的混沌动力系统有很多,如Logistic系统、Lorenz系统、Chua系统、Henon系统、Chen系统和一阶时延模型等等,该文中采用的是Logistic系统与Lorenz系统。

1、Logistic系统

Logistic系统的动力学模型的方程如下:

双混沌系统图像加密方案

Logistic映射由生物学家吁1976提出来的,方程的形式是完全确定的,是最简单的非线性函数,当3.5699456--≤μ≤4时,系统的动力学形态十分复杂,系统由倍周期通向混沌,将区间[o,1]非线性映射到自身。

2、Lorenz系统

Lorenz系统的动力学模型的方程如下:

1963年美国著名气象学家洛伦兹在研究天气预报问题时,首先发现确定性方程中会出现混沌现象,他将所研究的对流模型简化后,当参数在标准情形(即参数σ=10,b=8/3,r=28)下,此系统具有—个典型混沌吸引子。

3、混沌序列的产生

(1)实值序列 Log18tic系统中的{ln,n=1,2,3,…}。以及应用数值解法得到的Lorenz系统的离散数值解{xn,yn,zn。n=1,2,3,…}。

(2)[1,N]之间的整数序列 实值序列中每个值取小数点后4、5、6位构成整数,对N求余数后加1。

(3)[a、b)之间的实值序列 实值序列中每个值对b-a求余数后加a。

二、基于混沌序列的图像置乱算法

理论上,混沌的周期是无穷的,但由于混沌系统在加密时,会遇到动力学特性退化的问题,以及在计算机上实现混沌序列的时候,受到计算机精度的限制,周期本质上是有限的,这在对大幅图像进行加密时,所需混沌序列过长,单一混沌系统极易退化,加大了被破泽的可能性,因此提出的算法通过对图像分块,分别加密,将Logistic映射和Lorenz方程进行有机结合,缩短单个加密序列的长度,降低了退化引起的风险,从而提高了加密算法的安全性。

1、加密矩阵的产生

设密钥为(x0,μ,xta,yta,zta,σ,r,b)。设将图像共分成了K个 8x8小块。

(1)将(xo,p)代入式(1)生成长度为2K的区间[1,8]上的整数序列,由该序列按行顺序构成2xK矩阵,记为Logij,i= 1,2,j=1,2,…,Ko。

(2)将(x0,μ,xta,yta,zta,σ,r,b)代入式(2)生成3个长度为2K的序列,其中x1,x2,…,xk是(0.1)之间的实值序列;y1,y2,…,yk是(3.569 945 6,4)之间的实值序列;z1,z2,…,zk[l,8]之间的整数序列是分别转化为(0,1)之间的实值序列;xk+1,xk+2,…,X2X;yX+1,Yx+2,…,y2k;Zk+1,Zk+2,…,z2k是[1.4]上的整数序列,定义矩阵LOR yx使得LOR7xkX使得:

(3)令xo=LORlk,μ=LORzk代入式(1),生成长度为64的[0,256]上的整数序列,再由该序列按行顺序构成8x8异或矩阵,记为Lk,k=1,2,…,K。

2、Baker映射

该文算法采用Baker映射来完成图像置乱。离散Baker映射最先是由Pichler和Scharinger引入到图像加密中之后Fridrich在此基础上进行了改进。根据密钥的不同,离散Baker映射分为Version A和Version B两种情况。

以8x8的图像为例,σ=(2,2,4)时,任意的nk整除N,属于Version A。如图1(a);σ=(3.5)时,nk不整除N,属于VersionB。如图1(b)。

但是不论Version A还是Version B,不管迭代多少次,Baker映射都将(0.0)映射到自身,这将有助于攻击者对图像的攻击,故引入随机坐标(x,y),(x,y)可以是图像内任意一点,原Baker映射将(r,s)映射到Ba(r,5)=(R,s),现改进为将(r,s)映射到B8(r,s)=((R+s)mod 8,(S+y)mod 8),也就是说,原图像的(O,O)映射到了(x,y)。而(x,y)将由混沌序列随机给出。

3、加密算法

设原始图像为IM*N,密钥为(x0,μ,xta,yta,zta,σ,r,b)

步骤1 将IM*N分成8x8小块,记为Dk,k=1,2,…,K,相邻块之间有部分重叠,第l块不足8x8处由加密后的第1块补齐;

步骤2 令k=l;

步骤3 加密D;

(l)由w:LORu,p=LOR,i生成异或矩阵lk,k=l,2,….64;

(2)将DK与LK对应点进行按位异或;

(3)令σ=(LOR3K,LOR4k,LOR5k,LOR6k),(x,y)=(Loglk,Logu),对DI做LOR7k次Baker映射;

(4)将dk中与dk+1,重叠部分的值赋给dk+1;

(5)k=k+1。

步骤4重复步骤3,直到所有块加密完毕,第n块加密后要将由第1块补齐的像素还回;

步骤5执行分块的逆过程。

由于使用了类似CBC的模式,即当前像素的加密要受到前—像素的影响,有效地实现了扩散。

三、实验结果与分析

(1)加密实验

采用该文方法对图像2(a)进行加密实验,设密钥(x0,μ,xta,yta,zta,σ,r,b)为(0.723,3.731 482,2.0,12,7.03,10.28,2.67)。加密后得到图像2(b),密钥正确解密图像为图2(c),由于混沌序列对初始值非常敏感,即使密钥值有微小的变化(密钥其他部分不变,仅知增加10-16)也会得到完全不同的解密结果的,从而也就无法对图像进行解密,图2(d)为错误密钥解密的图像。

(2)直方图

图3(a),(b)分别是图2(a)和加密后图2(b)的直方图,从图上可以看出加密后的直方图分布很均匀,且与原图差别很大。这大大增强了图像的安全性,具有良好的抵御统计攻击能力。

双混沌系统图像加密方案

(3)相邻像素的相关系数

图像加密后应该去除原图中的相关性,该文中分别从(水平、垂直、对角方向上)明文和密文随机选取1 600对相邻的像素,计算相关系数,得到数据如表1。从中可以看到,加密后的图像各个像素的相关性很小。因此,该加密方法可以非常有效抵御采用相关分析的攻击。

(4)抗攻击性

对于一定的信道噪声攻击和几何攻击而使加密图像产生的失真,该算法均能正确解密并恢复原始图像。图4(a)、(b)分别是对密文叠加强度为2%的盐椒噪声和高斯噪声后的解密图,图4(c)的几何失真是把加密后图像20%的一块面积随机地涂成白色后的解密图,图像仍然可辨。

双混沌系统图像加密方案

小知识之矩阵在数学中,矩阵(Matrix)是指纵横排列的二维数据表格,最早来自于方程组的系数及常数所构成的方阵。这一概念由19世纪英国数学家凯利首先提出。