基于映像网络的数字图像反馈加密方法与流程

文档序号:11201079阅读:295来源:国知局
基于映像网络的数字图像反馈加密方法与流程

本发明涉及信息技术安全领域,具体涉及基于映像网络的数字图像反馈加密方法。



背景技术:

当今是一个信息化时代。有关科学研究和统计表明,人类从外界获得的信息约有75%是源于图像。网络环境下传输图像,容易遭到第三方窃取、篡改、非法复制和传播。因此,图像的安全传输与加密问题是一直受到人们的关注。

置乱和扩散是实现图像加密算法安全性的基本原则。按照加密手段,加密方法大致可以分为:基于传统密码体制的加密方法,基于置乱变换的加密方法,基于混沌理论的加密方法等。数字图像,是二维图像用有限数字数值像素的表示。其特点是数据量大、数据冗余度高及相邻像素点相关性强,这使得一些传统的加密方法如des、idea、aes等,在对数字图像进行快速置乱和扩散操作时非常困难。

基于置乱变换的加密方法是通过变换来置乱图像像素位置的加密技术。现阶段关于数字图像置乱变换的方法有很多,常见的有仿射变换、arnold变换、standard映射、fibonacci-q变换、baker变换等,这些变换均是二维变换,置乱效率和置乱程度不高,要想达到较好的置乱效果,往往需要进行多次操作。2004年chen提出的三维arnold变换克服了这一缺点,在对图像的像素位置进行置乱时,具有较高的置乱效率和较高的置乱程度。已有基于三维arnold变换进行图像置乱的研究具有三个特点:1)利用三维arnold变换置乱像素位置而获得加密图像,利用arnold变换的周期性将密文图像恢复为明文图像;2)三维arnold变换对像素位置(0,0,0)置乱的无效性;3)在多轮置乱操作中,置乱矩阵一直采用经典的常数矩阵,未为与明文图像信息建立关联。这些使得基于三维arnold变换的图像加密方法,存在较大的安全隐患。

1989年,英国数学家matthews提出基于混沌理论的加密方法。混沌序列的高度随机性、不可预测性、宽带频谱特性和系统控制方程及初始条件的确定性与易于实现性,使得混沌系统具有良好的密码学特性,并在保密通讯中得到广泛应用。单一混沌系统、复合混沌系统、超混沌系统等低维混沌系统,甚至时空混沌系统不断地在图像加密算法中得到应用。耦合映像格子(cml)是一种时间离散、空间离散和状态连续的时空动力学系统,易于解析和数值处理。cml具有较大的参数空间、强伪随机性的时空混沌序列,这使得cml相对于低维混沌系统较适合于图像加密。已有基于cml的加密技术中,具有如下特点:1)cml模型是由格点上是一维logistic映射、经过最近邻耦合而形成,这使得相邻格点上混沌序列的相关性较强;2)基于cml产生的混沌序列构造密钥流,利用密钥流对图像直接进行扩散操作形成密文图像,这种对明文图像像素位置混淆过程的缺失,使得明文和密文之间的统计特性不足以复杂化;3)在多轮扩散操作中,采用静态加密算法,密钥流仅依赖于一个混沌序列而保持不变,这使得加密算法难于抵抗已知明文攻击和选择明文攻击。提升混沌序列的伪随机性和复杂性、建立混沌加密的反馈机制,成为混沌加密算法设计的关键。



技术实现要素:

针对上述现有技术中存在的缺陷或不足,本发明提供了一种基于映像网络的数字图像反馈加密方法,其特征在于,具体包括以下步骤:

1)、对于像素为h×w、灰度级水平为g的数字明文图像,获得它的二维像素值矩阵pi_1,并将二维像素值矩阵pi_1转化为大小为t×t×t的三维像素值矩阵pi_2;将三维像素值矩阵pi_2对应的图像作为当前明文图像;

2)、构建节点是超混沌系统、具有非近邻连接方式的映像网络;选取映像网络的初始条件和网络控制参数,迭代映像网络产生多维时空混沌陈列{xn(i)}、{yn(i)}、{zn(i)},n为时刻,i为映像网络的节点;

3)、根据当前明文图像获取时刻n0;结合n0和步骤2)中获得的多维时空混沌阵列{xn(i)}、{yn(i)}、{zn(i)},获取图像置乱的混沌控制参数;

4)、根据步骤3获取的图像置乱的混沌控制参数,通过三维arnold变换对当前明文图像进行置乱处理,得到置乱后图像的像素值矩阵pi_3;将pi_3存入置乱序列{φ1(j)};将三维像素值矩阵pi_3对应的图像作为当前明文图像;

5)、根据当前明文图像获取指标τ;结合指标τ和步骤2)中获得的多维时空混沌阵列{xn(i)}、{yn(i)}、{zn(i)},产生密钥流{k(j)};对步骤4)获取的置乱序列{φ1(j)},利用密钥流{k(j)}进行密文反馈机制的图像扩散处理,得到扩散后的像素值序列{c(j)};将{c(j)}存入三维像素值矩阵pi_2;将三维像素值矩阵pi_2对应的图像作为当前明文图像;

6)、重复步骤3)-步骤5)m轮,将每轮获取的指标τ存入序列{τ},将每轮获取的时刻n0存入序列{n0},将最后一轮得到的扩散后的像素值序列{c(j)}存至二维矩阵像素值矩阵pi_4,按照图像标准格式保存pi_4,得到密文图像。

进一步的,解密过程具体包括以下步骤:

7)、从密文图像中获取二维像素值矩阵ci_1,将二维像素值矩阵ci_1存入像素值序列{c1(j)};

8)、构建节点是超混沌系统、具有非近邻连接方式的映像网络;使用步骤2)选取的映像网络的初始条件和网络控制参数,迭代映像网络产生多维时空混沌陈列{xn(i)}、{yn(i)}、{zn(i)},n为时刻,i为映像网络的节点;

9)、获取步骤6)中的序列{τ},取其最后一个元素作为当前τ的取值;同时,获取步骤6)中的序列{n0},取其最后一个元素作为当前n0的取值;

10)、结合当前τ的取值和步骤8)获取的多维时空混沌阵列{xn(i)}、{yn(i)}、{zn(i)},产生消除图像扩散效果的密钥流{k(j)};对像素值序列{c1(j)},利用密钥流{k(j)}进行密文反馈机制的图像像素值替换,得到消除扩散后的像素值序列{φ2(j)};将消除扩散后的像素值序列{φ2(j)}存入三维像素值矩阵ci_2;

11)、结合当前n0的取值和步骤8)中获得的时空混沌阵列{xn(i)}、{yn(i)}、{zn(i)},获取消除图像置乱效果的混沌控制参数;根据获取的混沌控制参数,对步骤10)获取的三维像素值矩阵ci_2进行加密过程中三维arnold变换的逆三维arnold变换,获得逆三维arnold变换后的三维像素矩阵ci_3;将三维像素值矩阵ci_3存入像素值序列{c1(j)},实现对序列{c1(j)}的更新;

12)、重复步骤10)-步骤11)m轮,按照逆序依次取序列{τ}中元素作为每轮中当前τ的取值;按照逆序依次取序列{n0}中元素作为每轮中当前n的取值;将最后一轮得到的像素值序列{c1(j)}存入二维像素值矩阵ci_4中;按照图像标准格式保存二维像素值矩阵ci_4,得到大小解密图像。

进一步的,所述步骤2)中所述的节点是超混沌系统、具有非近邻连接方式的映像网络用式(1)表示:

式中,n为时刻,n=1,2,......,n,n为时间的长度,1000≤n≤3000,i为映像网络的节点,i=1,2,…,l,l为映像网络的节点数,50≤l≤200;tn(i)=(xn(i),yn(i),zn(i))t∈r3为节点i在时刻n的状态变量,局部映射f:r3→r3为三维folded-towel超混沌系统,其具体形式为式(2):

集合具体由式(3)所示的三维arnold变换决定:

其中为三维arnold变换中经典的常数变换矩阵;映像网络具有周期边界,即xn(l)=xn(0),ε,a,b为网络控制参数;

所述的选取映像网络的初始条件和控制参数,然后迭代映像网络产生多维时空混沌陈列{xn(i)}、{yn(i)}、{zn(i)},具体包括如下步骤:

21)选取如式(4)所示的三维folded-towel超混沌系统:

其中x(n),y(n),z(n)表示三维folded-towel超混沌系统在时刻n的状态变量,a1=3.8,b1∈[-1.57,1.02];给定初始条件x(1)∈[0,1],y(1)∈[0,1],z(1)∈[0,1],迭代三维folded-towel超混沌系统;分别取x(m0+i),y(m0+i),z(m0+i),i=1,2…,l作为映像网络的初始条件x1(i),y1(i),z1(i),i=1,2…,l;m0∈[100,200];

22)选取网络控制参数ε∈(0,0.3),a=3.8,b∈[-1.57,1.02];

23)迭代映像网络,产生多维时空混沌阵列{xn(i)}、{yn(i)}、{zn(i)};

进一步的,所述步骤3)中所述的根据当前明文图像获取时刻n0,具体是:n0=fix(mod(arctan(pi_2(0,0,0))×212,256))+150,其中arctan(·)表示反正切运算;

所述的结合n0和步骤2)中获得的多维时空混沌阵列{xn(i)}、{yn(i)}、{zn(i)},获取的图像置乱的混沌控制参数,具体为:

i0可取1~10的整数。

进一步的,所述步骤4)包括如下步骤:

41)根据步骤3)获取的图像置乱的混沌控制参数,通过式(6)所示的三维arnold变换对当前明文图像的像素值矩阵pi_2进行置乱处理,获得置乱后的图像像素值矩阵pi_3:

其中(x,y,z)t与(x′,y′,z′)t分别表示三维arnold变换前与变换后图像像素的坐标,t表示图像的阶数,置乱矩阵a由式(7)表示:

其中,ai,i=1,2,…,6,为图像置乱的混沌控制参数,由式(5)决定:

i0可取1~10的整数,n0表示时空混沌阵列{xn(i)}的某一时刻;

42)交换置乱后的图像像素值矩阵pi_3中位置(0,0,0)与位置(l,m,n)的像素值,其中,l,m,n是介于1与t-1之间的整数;将三维像素值矩阵pi_3对应的图像作为当前明文图像;

43)从底层至高层逐层读取pi_3中的元素,对每列操作时按照从左至右逐列读取,将读取的元素依次至入置乱序列{φ1(j)}。

进一步的,所述步骤5)中,所述的根据当前明文图像获取指标τ,具体是指:τ=mod((sum(pi_3)+g),3),其中sum(·)表示求和运算,mod(·,·)表示求余运算;

所述的结合指标τ和步骤2)中获得的多维时空混沌阵列{xn(i)}、{yn(i)}、{zn(i)},产生密钥流{k(j)},具体是指:依据τ的值为0、1、2时,对应取多维时空混沌阵列{xn(i)}、{yn(i)}、{zn(i)},去除暂态过程后,逐列取时空混沌陈列的t3个元素,依次放至序列{k0}中,并按照式(8)转换处理为含有当前明文图像反馈信息的密钥流{k(j)}:

k(j)=mod[round(k0(j)×1015),g],j=1,2…,t3(8)

其中round(·)表示四舍五入运算;

所述的对步骤4)获取的置乱序列{φ1(j)},利用密钥流{k(j)}进行密文反馈机制的图像扩散处理,得到扩散后的像素值序列{c(j)},具体是指:将获得的密钥流{k(j)}与步骤4)得到的置乱序列{φ1(j)}按照式(9)进行位异或运算,得到扩散后的像素值序列{c(j)}:

其中表示位异或运算,c(j)与c(j-1)分别为当前时刻和前一时刻扩散后输出的像素值,初始值c(0)设为一常量;由c(j),j=1,2…,t3组成扩散后的像素值序列{c(j)};

所述的将{c(j)}存至三维像素值矩阵pi_2,具体是指:依次读取{c(j)}的元素,将其由底层至高层逐层放至三维像素值矩阵pi_2,对每层操作时按照从左向右逐列放入,更新三维像素值矩阵pi_2。

进一步的,所述步骤8)中所述的节点是三维超混沌系统、具有非近邻连接的映像网络用式(1)表示:

式中,n为时刻,n=1,2,......,n,n为时间的长度,1000≤n≤3000,i为映像网络的节点,i=1,2,…,l,l为映像网络的节点数,50≤l≤200;tn(i)=(xn(i),yn(i),zn(i))t∈r3为节点i在时刻n的状态变量,局部映射f:r3→r3为三维folded-towel超混沌系统,其具体形式为式(2):

集合具体由式(3)所示的三维arnold变换决定:

其中为三维arnold变换中经典的常数变换矩阵;映像网络具有周期边界,即xn(l)=xn(0),ε,a,b为网络控制参数;

所述的使用步骤2)选取的三维超混沌系统的初始条件和网络控制参数,迭代映像网络产生多维时空混沌陈列{xn(i)}、{yn(i)}、{zn(i)},具体包括如下步骤:

81)选取如式(4)所示的三维folded-towel超混沌系统:

其中x(n),y(n),z(n)表示三维folded-towel超混沌系统在时刻n的状态变量,a1=3.8,b1∈[-1.57,1.02];根据三维folded-towel超混沌系统初始条件x(1)∈[0,1],y(1)∈[0,1],z(1)∈[0,1],迭代三维folded-towel超混沌系统;分别取x(m0+i)、y(m0+i)、z(m0+i),i=1,2…,l作为映像网络的初始条件x1(i)、y1(i)、z1(i),i=1,2…,l;m0∈[100,200];

82)选取网络控制参数ε∈(0,0.3),a=3.8,b∈[-1.57,1.02];迭代映像网络,产生多维时空混沌序列{xn(i)}、{yn(i)}、{zn(i)}。

进一步的,所述步骤10)中具体包括如下步骤:

1001)依据当前τ的值为0、1、2时,对应取多维时空混沌阵列{xn(i)}、{yn(i)}、{zn(i)},去除暂态过程后,逐列取时空混沌陈列的t3个元素,依次放至序列{k0}中,并按照式(8)转换处理为消除图像扩散效果的密钥流{k(j)}:

k(j)=mod[round(k0(j)×1015),g],j=1,2…,t3(8)

其中round(·)表示四舍五入;

1002)将消除图像扩散效果的密钥流{k(j)}与像素值序列{c1(j)}按照式(10)进行逆位异或运算,得到消除扩散后像素值序列{φ2(j)}:

其中表示按位异或操作,c1(j)与c1(j-1)分别为当前时刻和前一时刻像素值序列{c1(j)}的元素,初始值c1(0)设为一常量;

1003)依次读取像素值序列{φ2(j)}的元素,将其从底层至高层逐层放至三维像素值矩阵ci_2,对每层操作时按照从左向右逐列放入,矩阵ci_2的大小为t×t×t。

进一步的,所述步骤11)具体包括如下步骤:

1101)交换步骤10)获取的三维像素值矩阵ci_2中位置(0,0,0)与位置(l,m,n)的像素值;

1102)结合当前n0的取值和步骤8)中获得的时空混沌阵列,获取消除图像置乱效果的混沌控制参数为:

i0可取1~10的整数;

1103)利用加密过程中三维arnold变换的逆三维arnold变换对像素值矩阵ci_2进行变换,获得逆三维arnold变换后的三维像素值矩阵ci_3;

1104)从底层至高层逐层读取矩阵ci_3中元素,对每层操作时从左向右逐列逐列读取,并依次放至像素值序列{c1(j)}中,实现对序列{c1(j)}的更新;

所述三维arnold变换的逆三维arnold变换由式(11)给出:

其中(x′,y′,z′)t与(x,y,z)t分别表示逆三维arnold变换前与变换后图像像素的坐标,逆置乱矩阵a-1表示置乱矩阵a的逆矩阵,逆置乱矩阵a-1由式(12)给出:

其中,ai,i=1,2,…,6,为图像置乱的混沌控制参数,由式(5)决定;

i0可取1~10的整数,n0表示时空混沌阵列{xn(i)}的某一时刻。

进一步的,如果所述的数字明文图像为彩色图像,在步骤1)之前还包括步骤0),从彩色图像中提取红、黄、蓝三个颜色分量的像素值矩阵;分别对所述的三个颜色分量的像素值矩阵执行步骤1)-步骤6);步骤6)之后还包括步骤7),将得到的加密处理的红、黄、蓝三个颜色分量的密文图像合成原始彩色图像的密文图像。

本发明的有益结果如下:

1.在混淆-扩散循环加密过程中,每轮引入了含有当前明文图像和密文图像信息的反馈机制,每轮加密使用的置乱矩阵和密钥流动态变化而互不相同,使密文对明文和密钥都非常敏感,加密算法能够有效地抵御已知明文攻击和选择明文攻击。

2.通过构建节点是超混沌系统、具有非近邻连接方式映像网络,从节点本身和耦合方式两方面提升映像网络的复杂性;该映像网络能够产生伪随机性更强、更具有密码学特性多维时空混沌陈列,这极大提高了加密技术的安全性;而且本发明的加密方法法具有密钥空间大、加密速度快等优越性。

3.本加密方法中置乱-扩散交替进行,像素位置乱和像素值替换相互关联,这使得密文图像隐蔽性强,大大增加了破译的难度,而且使得加密算法能够抗各种统计攻击、暴力攻击和差分攻击。

4.本发明的解密过程中消除扩散-消除置乱交替进行,每轮操作中逆置乱矩阵和密钥流动态变化而不同,打破了已有图像加密算法中,逆置乱矩阵和密钥流保持不变的局限,使得本发明提出的加密方法安全性高、能够有效地抵御已知明文攻击和选择明文攻击。

附图说明

图1是本发明中加密过程的流程图。

图2是本发明中解密过程的流程图。

图3是本发明中映像网络的多维时空混沌阵列图。

图4是本发明中明文图像、密文图像、解密图像及其它们像素值分布的直方图。

图5是本发明中明文图像与密文图像分别在垂直、水平以及对角线方向相邻像素相关性分析图。

图6为本发明中的密钥敏感性测试图。

具体实施方式

实验环境:本试验的硬件测试平台是:inter(r)core(tm)i7-4500ucpu,主频1.8ghz,内存8.0gb;软件平台为:windows10操作系统和matlab2012a。仿真图像采用灰度级为256,大小为256×256的lena图像。

下面结合附图对本发明的实施例做进一步说明。

本实施例给出的基于映像网络的数字图像反馈加密方法,包括图1所示的加密流程和图2所示的解密流程,包括以下步骤:

1)、对于像素为h×w、灰度级水平为g的数字明文图像,获得它的二维像素值矩阵pi_1,并将二维像素值矩阵pi_1转化为三维像素值矩阵pi_2,其大小为t×t×t,当为整数时,否则fix(·)表示取整运算;将三维像素值矩阵pi_2对应的图像作为当前明文图像;

将二维像素值矩阵pi_1转化为三维像素值矩阵pi_2的具体转化过程为:首先,产生大小为t×t×t的三维矩阵pi_2,然后,从左至右逐列读取矩阵pi_1的元素,并从底层到高层逐层放至矩阵pi_2中,对每层操作时从左至右逐列放入;最后,随机产生t×t×t-h×w个0~255之间的整数,对矩阵pi_2中的后t×t×t-h×w个冗余信息进行填充;这种读取和存入方式便于计算机快捷操作、能够提高加密算法的效率;

本实施例中,选择256×256的“lena.bmp”作为数字明文图像,灰度级水平g=256,图4(a)为数字明文图像,其像素值存至大小为256×256的二维像素值矩阵pi_1,此时h=w=256;转化后得到的三维像素值矩阵pi_2的大小为41×41×41,此时t=41。

2)、构建节点是超混沌系统、具有非近邻连接方式的映像网络;选取映像网络的初始条件和网络控制参数,迭代映像网络产生多维时空混沌陈列{xn(i)}、{yn(i)}、{zn(i)},n为时刻,i为映像网络的节点;

其中,所述的节点是超混沌系统、具有非近邻连接方式的映像网络用式(1)表示:

式中,n为时刻,n=1,2,......,n,n为时间的长度,1000≤n≤3000,i为映像网络的节点,i=1,2,…,l,l为映像网络的节点数,50≤l≤200;tn(i)=(xn(i),yn(i),zn(i))t∈r3为节点i在时刻n的状态变量,局部映射f:r3→r3为三维folded-towel超混沌系统,其具体形式为式(2):

集合刻画节点i的非近邻连接方式,该集合具体由式(3)所示的三维arnold变换决定:

其中为三维arnold变换中经典的常数变换矩阵;映像网络具有周期边界,即xn(l)=xn(0),ε,a,b为网络控制参数;

本发明按照该种方式构建的映像网络,提升了时空混沌阵列的复杂性和伪随机性,对保证加密算法的安全性至关重要;

所述的选取网络初始条件和网络控制参数,迭代映像网络产生多维时空混沌陈列{xn(i)}、{yn(i)}、{zn(i)},具体包括如下步骤:

21)选取如式(4)所示的三维folded-towel超混沌系统:

其中x(n),y(n),z(n)表示三维folded-towel超混沌系统在时刻n的状态变量,a1=3.8,b1∈[-1.57,1.02];当a1=3.8,b1∈[-1.57,1.02]时,三维folded-towel超混沌系统恒有两个正的lyapunov指数,处于超混沌状态;给定初始条件x(1)∈[0,1],y(1)∈[0,1],z(1)∈[0,1],用欧拉数值方法迭代三维folded-towel超混沌系统;分别取x(m0+i),y(m0+i),z(m0+i),i=1,2…,l作为映像网络的初始条件x1(i),y1(i),z1(i),i=1,2…,l;m0∈[100,200];

22)选取网络控制参数ε∈(0,0.3),a=3.8,b∈[-1.57,1.02];

23)用欧拉数值方法迭代映像网络,产生多维时空混沌序列{xn(i)}、{yn(i)}、{zn(i)};

这里选取网络初始条件和网络控制参数的方式,便于计算机对映像网络进行初值化,使得映像网络产生的空间单元序列和时间单元序列都是混沌的,而且加密系统的密钥空间大;

本实施例中,取n=1250,l=60,a=3.8,b=0.2,给定初始条件迭代三维folded-towel超混沌系统,去掉前m0=100暂态值,分别取x(100+i)、y(100+i)、z(100+i),i=1,2…,60作为映像网络的初始条件x1(i)、y1(i)、z1(i),i=1,2…,60;进一步选取合适的网络控制参数ε=0.1,a=3.8,b=0.2,映像网络产生多维时空混沌阵列{xn(i)}、{yn(i)}、{zn(i)},分别如图3(a)、3(b)、3(c)所示,多维时空混沌阵列的各空间单元序列和时间单元序列都是混沌的。

3)、根据当前明文图像获取时刻n0;结合n0和步骤2)中获得的多维时空混沌阵列{xn(i)}、{yn(i)}、{zn(i)},获取图像置乱的混沌控制参数;

所述的根据当前明文图像获取时刻n0,具体是:n0=fix(mod(arctan(pi_2(0,0,0))×212,256))+150,其中arctan(·)表示反正切运算;

所述的结合n0和步骤2)中获得的多维时空混沌阵列{xn(i)}、{yn(i)}、{zn(i)},获取的图像置乱的混沌控制参数,具体为:

i0可取1~10的整数。

其中,n0依赖于当前明文图像的像素值矩阵pi_2在(0,0,0)的像素值,这使得每轮加密时图像置乱的混沌控制参数不同;

本实施例中,取i0=2,时刻n0依赖于加密过程中当前明文图像在位置(0,0,0)的像素值,与当前明文图像建立关联;n0,ai随着循环加密轮数r而动态变化。

4)、根据步骤3获取的图像置乱的混沌控制参数,通过三维arnold变换对当前明文图像进行置乱处理,得到置乱后图像的像素值矩阵pi_3;将pi_3存入置乱序列{φ1(j)};将三维像素值矩阵pi_3对应的图像作为当前明文图像;所述步骤4)包括如下步骤:

41)根据步骤3)获取的图像置乱的混沌控制参数,通过式(6)所示的三维arnold变换对当前明文图像的像素值矩阵pi_2进行置乱处理,获得置乱后的图像像素值矩阵pi_3:

其中(x,y,z)t与(x′,y′,z′)t分别表示三维arnold变换前与变换后图像像素的坐标,t表示图像的阶数,置乱矩阵a由式(7)表示:

其中,ai,i=1,2,…,6,为图像置乱的混沌控制参数,由式(5)决定;

i0可取1~10的整数,n0表示时空混沌阵列{xn(i)}的某一时刻;

本发明提出利用三维arnold变换对图像置乱处理,它具有置乱速度快、置乱效果好的优点;同时,本发明中三维arnold变换的置乱矩阵a受时空混沌陈列和当前明文图像信息的驱动,置乱矩阵a具有混沌控制参数,且置乱矩阵a在每轮加密时动态变化而不同,这打破了已有基于三维arnold变换的图像加密中,置乱矩阵一直采用经典的常数矩阵而不变的局限,这种具有明文信息反馈机制的加密算法,能够有效地抵御已知明文攻击和选择明文攻击;

42)交换置乱后的图像像素值矩阵pi_3中位置(0,0,0)与位置(l,m,n)的像素值,其中,l,m,n是介于1与t-1之间的整数;将三维像素值矩阵pi_3对应的图像作为当前明文图像;

这种对矩阵pi_3中位置(0,0,0)与位置(l,m,n)的像素值交换,可以弥补三维arnold变换对像素位置(0,0,0)置乱无效的缺陷,进一步增强了加密算法的安全性;

43)从底层至高层逐层读取pi_3中的元素,对每列操作时按照从左至右逐列读取,将读取的元素依次至入置乱序列{φ1(j)};

本实施例中,设定(l,m,n)=(r,2r,3r),其中r,r=1,...,m表示加密轮数。

5)、根据当前明文图像获取指标τ;结合指标τ和步骤2)中获得的多维时空混沌阵列{xn(i)}、{yn(i)}、{zn(i)},产生密钥流{k(j)};对步骤4)获取的置乱序列{φ1(j)},利用密钥流{k(j)}进行密文反馈机制的图像扩散处理,得到扩散后的像素值序列{c(j)};将{c(j)}存入三维像素值矩阵pi_2;将三维像素值矩阵pi_2对应的图像作为当前明文图像;

所述的根据当前明文图像获取指标τ,具体是指:τ=mod((sum(pi_3)+g),3),其中sum(·)表示求和运算,mod(·,·)表示求余运算;

所述的结合指标τ和步骤2)中获得的多维时空混沌阵列{xn(i)}、{yn(i)}、{zn(i)},产生密钥流{k(j)},具体是指:依据τ的值为0、1、2时,对应取多维时空混沌阵列{xn(i)}、{yn(i)}、{zn(i)}(即τ为0时,取时空混沌阵列{xn(i)};τ为1时,取时空混沌阵列{yn(i)};τ为2时,取时空混沌阵列{zn(i)});去除暂态过程后,逐列取时空混沌陈列的t3个元素,依次存入序列{k0}中,并按照式(8)转换处理为含有当前明文图像反馈信息的密钥流{k(j)}:

k(j)=mod[round(k0(j)×1015),g],j=1,2…,t3(8)

其中round(·)表示四舍五入;

由于引入当前明文图像信息的反馈机制,密钥流{k(j)}随着循环加密轮数r而动态变化,这打破了已有基于混沌的加密算法中,密钥流保持不变的局限性;这种含有当前明文图像反馈机制的加密算法,能够有效地抵御已知明文攻击和选择明文攻击;

所述的对步骤4)获取的置乱序列{φ1(j)},利用密钥流{k(j)}进行密文反馈机制的图像扩散处理,得到扩散后的像素值序列{c(j)},具体是指:将获得的密钥流{k(j)}与步骤4)得到的置乱序列{φ1(j)}按照式(9)进行位异或运算,得到扩散后的像素值序列{c(j)}:

其中表示位异或运算,c(j)与c(j-1)分别为当前时刻和前一时刻扩散后输出的像素值,初始值c(0)设为一常量;由c(j),j=1,2…,t3组成扩散后的像素值序列{c(j)};

扩散过程中关联前一时刻的密文输出c(j-1),使得每一个像素值的影响都能被有效地扩散至后续所有的像素点中,这能很大程度地提高密文对明文的敏感性;

所述的将{c(j)}存至三维像素值矩阵pi_2,具体是指:依次读取{c(j)}的元素,将其由底层至高层逐层放至三维像素值矩阵pi_2,对每层操作时按照从左向右逐列放入,更新三维像素值矩阵pi_2;

本实施例中,取初始值c(0)=112。

6)、重复步骤3)-步骤5)m轮(m取1至5之间的整数),将每轮获取的指标τ存入序列{τ},将每轮获取的时刻n0存入序列{n0},将最后一轮得到的扩散后的像素值序列{c(j)}存至二维矩阵像素值矩阵pi_4,其中pi_4的大小为h×s,当t3/h为整数时,s=t3/h,否则s=fix(t3/h)+1;随机产生h×s-t×t×t个0~255之间的整数,对pi_4中的后h×s-t×t×t个冗余信息进行填充;将像素值矩阵pi_4按照图像标准格式保存,得到大小为h×s的密文图像;

本实施例中,为了充分地对图像进行置乱和扩散操作,反复执行步骤3)-步骤6)3轮,此时s=270,图4(c)为大小256×270的密文图像。

优选的,由本发明的加密方法得到的密文图像的解密过程包括以下步骤:

7)、密文图像的量化和处理:从密文图像中获得二维像素值矩阵ci_1,从左至右逐列读取其元素,去除后h×s-t×t×t个冗余信息,并依次存入像素值序列{c1(j)}中;

本实施例中,h×s-t×t×t=256×270-413=199。

8)、构建节点是超混沌系统、具有非近邻连接方式的映像网络;使用步骤2)选取的映像网络的初始条件和网络控制参数,迭代映像网络产生多维时空混沌陈列{xn(i)}、{yn(i)}、{zn(i)};n为时刻,i为映像网络的节点;具体如下:

所述的节点是三维超混沌系统、具有非近邻连接的映像网络用式(1)表示:

式中,n为时刻,n=1,2,......,n,n为时间的长度,1000≤n≤3000,i为映像网络的节点,i=1,2,…,l,l为映像网络的节点数,50≤l≤200;tn(i)=(xn(i),yn(i),zn(i))t∈r3为节点i在时刻n的状态变量,局部映射f:r3→r3为三维folded-towel超混沌系统,其具体形式为式(2):

集合刻画节点i的非近邻耦合方式,该集合具体由式(3)所示的三维arnold变换决定:

其中为三维arnold变换中经典的常数变换矩阵;映像网络具有周期边界,即xn(l)=xn(0),ε,a,b为网络控制参数;

按照该种方式构建的映像网络,提升了时空混沌序列的复杂性和伪随机性,对保证加密算法的安全性至关重要;

优选的,所述的使用步骤2)选取的三维超混沌系统的初始条件和网络控制参数,迭代映像网络产生多维时空混沌陈列{xn(i)}、{yn(i)}、{zn(i)},具体包括如下步骤:

81)选取如式(4)所示的三维folded-towel超混沌系统:

其中x(n)、y(n)、z(n)表示三维folded-towel超混沌系统在时刻n的状态变量,a1=3.8,b1∈[-1.57,1.02];根据三维folded-towel超混沌系统初始条件x(1)∈[0,1],y(1)∈[0,1],z(1)∈[0,1],迭代三维folded-towel超混沌系统;分别取x(m0+i),y(m0+i),z(m0+i),i=1,2…,l作为映像网络的初始条件x1(i),y1(i),z1(i),i=1,2…,l;m0∈[100,200];

82)选取网络控制参数ε∈(0,0.3),a=3.8,b∈[-1.57,1.02],用欧拉数值方法迭代映像网络,产生多维时空混沌序列{xn(i)}、{yn(i)}、{zn(i)};

本实施例中,取n=1250,l=60a=3.8,b=0.2,给定初始条件(x(1),y(1),z(1))=(0.5,0.1,0.2),迭代三维folded-towel超混沌系统,去掉前m0=100暂态值,分别取x(100+i)、y(100+i)、z(100+i),i=1,2…,60作为映像网络的初始条件x1(i)、y1(i)、z1(i),i=1,2…,60;选取ε=0.1,a=3.8,b=0.2,迭代映像网络产生多维时空混沌阵列{xn(i)}、{yn(i)}、{zn(i)},各空间单元序列和时间单元序列都是混沌的。

9)、获取步骤6)中的序列{τ},取其最后一个元素作为当前τ的取值;同时,获取步骤6)中的序列{n0},取其最后一个元素作为当前n0的取值;

本实施例中,τ={2,0,1},n0={158,164,151}。

10)、结合当前τ的取值和步骤8)获取的多维时空混沌阵列{xn(i)}、{yn(i)}、{zn(i)},产生消除图像扩散效果的密钥流{k(j)};对像素值序列{c1(j)},利用密钥流{k(j)}进行密文反馈机制的图像像素值替换,得到消除扩散后的像素值序列{φ2(j)};将消除扩散后的像素值序列{φ2(j)}存入三维像素值矩阵ci_2;具体如下:

1001)依据当前τ的值为0、1、2时,对应取时空混沌阵列{xn(i)}、{yn(i)}、{zn(i)}(即τ为0时,取时空混沌阵列{xn(i)};τ为1时,取时空混沌阵列{yn(i)};τ为2时,取时空混沌阵列{zn(i)}),去除暂态过程后,逐列取时空混沌陈列的t3个元素,依次放至序列{k0}中,并按照式(8)转换处理为消除图像扩散效果的密钥流{k(j)}:

k(j)=mod[round(k0(j)×1015),g],j=1,2…,t3(8)

其中round(·)表示四舍五入;

1002)将消除图像扩散效果的密钥流{k(j)}与像素值序列{c1(j)}按照式(10)进行逆位异或运算,得到消除扩散后像素值序列{φ2(j)}:

其中表示按位异或操作,c1(j)与c1(j-1)分别为当前时刻和前一时刻像素值序列{c1(j)}的元素,初始值c1(0)设为一常量;

这种处理方式使得解密过程中,每轮密钥流动态变化而不同,打破了已有基于混沌的解密算法中,密钥流保持不变的局限,从而使得本发明提出的加密方法能够有效地抵御已知明文攻击和选择明文攻击。

1003)依次读取像素值序列{φ2(j)}的元素,将其从底层至高层逐层放至三维像素值矩阵ci_2,对每层操作时按照从左向右逐列放入,矩阵ci_2的大小为t×t×t;本实施例中,取初始值c(0)=112。

11)、结合当前n0的取值和步骤8)中获得的时空混沌阵列{xn(i)}、{yn(i)}、{zn(i)},获取消除图像置乱效果的混沌控制参数;根据获取的混沌控制参数,对步骤10)获取的三维像素值矩阵ci_2进行加密过程中三维arnold变换的逆三维arnold变换,获得逆三维arnold变换后的三维像素矩阵ci_3;将三维像素值矩阵ci_3存入像素值序列{c1(j)},实现对序列{c1(j)}的更新;具体如下:

1101)交换步骤10)获取的三维像素值矩阵ci_2中位置(0,0,0)与位置(l,m,n)的像素值;

1102)结合当前n0的取值和步骤8)中获得的时空混沌阵列,获取消除图像置乱效果的混沌控制参数为:

i0可取1~10的整数;

1103)利用加密过程中三维arnold变换的逆三维arnold变换对像素值矩阵ci_2进行变换,获得逆三维arnold变换后的三维像素值矩阵ci_3;

1104)从底层至高层逐层读取矩阵ci_3中元素,对每层操作时从左向右逐列逐列读取,并依次放至像素值序列{c1(j)}中,实现对序列{c1(j)}的更新;

其中,所述三维arnold变换的逆三维arnold变换由式(11)给出:

其中(x′,y′,z′)t与(x,y,z)t分别表示逆三维arnold变换前与变换后图像像素的坐标,逆置乱矩阵a-1表示矩阵a的逆矩阵,逆置乱矩阵a-1由式(12)给出:

其中,ai,i=1,2,…,6,为图像置乱的混沌控制参数,由式(5)决定;

i0可取1~10的整数,n0表示时空混沌阵列{xn(i)}的某一时刻;

这种处理方式使得每轮解密过程中,逆置乱矩阵a-1动态变化而不同,使得逆这打破了已有基于逆三维arnold变换的消除图像置乱中,逆置乱矩阵一直采用经典常数矩阵的局限,从而使得本发明提出的加密方法能够有效地抵御已知明文攻击和选择明文攻击;

本实施例中,设定(l,m,n)=(m-r+1,2(m-r+1),3(m-r+1)),其中r=1,...,m表示加密轮数。

12)、重复步骤10)-步骤11)m轮(m取1至5之间的整数),按照逆序依次取{τ}中元素作为每轮中当前τ的取值;按照逆序依次取{n0}中元素作为每轮中当前n的取值;将最后一轮得到的像素值序列{c1(j)},去除后t×t×t-h×w个冗余信息,从左向右逐列存入二维像素值矩阵ci_4中,ci_4的大小为h×w;将二维像素值矩阵ci_4按照图像标准格式保存,得到大小为h×w的解密图像;

本实施例中,m=3,解密图像如图4(e)所示,解密图像像素值的直方图如图4(f)所示。

如果所述的数字明文图像为彩色图像,在步骤1)之前还包括步骤0),从彩色图像中提取红、黄、蓝三个颜色分量的像素值矩阵;分别对所述的三个颜色分量的像素值矩阵执行步骤1)-步骤6);步骤6)之后还包括步骤7),将得到的加密处理的红、黄、蓝三个颜色分量的密文图像合成原始彩色图像的密文图像。

为了更好的说明该加密方法的安全性,本发明分别从抗统计攻击测试、密钥敏感性测试、抗穷举攻击(密钥空间)分析、抗差分攻击四方面进行分析。

1)抗统计攻击测试

(1.1)灰度直方图

灰度直方图直观地描述了一幅图像中像素值的分布情况。图4(a)、4(b)分别为明文图像及其像素值分布的直方图,图4(c)、4(d)分别为密文图像及其像素值分布的直方图。图4(e)、4(f)分别为解密图像及其像素值分布的直方图。对比图4(b)与4(d)可以看出,与明文图像相比,密文图像的直方图呈现平坦而均匀的分布,说明密文图像的像素值分布具有良好的均衡性和随机性,可以将明文图像信息特征完全隐藏起来,攻击者从中无法得到任何明文与密文之间关系的信息。

(1.2)相邻像素间的相关性

为了比较明文图像和密文图像相邻像素的相关性,本发明分别从明文图像和密文图像中随机地选取垂直方向、水平方向以及对角方向3000对相邻像素,然后利用如下公式计算像素间的相关性:

其中xj和yj分别是图像中两个相邻点的像素值,n为采样点的个数。

表1列出了明文图像和密文图像在垂直、水平以及对角线方向的相关系数。

将两相邻像素的像素值作为(x,y)坐标并以点的形式绘制于平面上,明文图像与密文图像相邻像素相关性的可视化结果见图5。图5(a)和5(d)、图5(b)和5(e)、图5(c)和5(f)分别对应于水平、垂直以及对角线方向的情形。可以看出,明文图像相邻像素间的相关性呈明显线性关系,而密文图像相邻像素间的相关性呈现随机关系。

专利(cn103455971b)提出三维arnold变换和混沌序列结合的图像加密方法,进行若干次三维arnold置乱变换,再利用logistic混沌序列与图像进行逐位异或运算来改变图像的像素值。该算法的置乱加密和替换加密互相独立,置乱矩阵为经典的常数矩阵且保持不变,改变图像的像素值基于一维的logistic映射、仅进行一轮简单的位异或运算。基于该专利加密算法的思想,对大小为256×256的“lena.bmp”图像进行加密,密文图像的相关系数见表1。

近期提出一些基于混沌进行图像加密的改进算法,如利用复合混沌映射、超混沌系统、耦合映像格子替换一维logistic映射,置乱操作和替换操作交替进行,置乱操作时采用arnold变换、baker变换等,但是在多轮加密中置乱变换和密钥流保持不变。以如下算法作为改进算法的代表(以下简称改进算法):利用三维arnold变换对图像像素位置置乱,每次操作时置乱矩阵为经典的常数矩阵且保持不变,然后基于耦合映像格子(局部映射为一维logistic映射)对像素值替换,置乱操作和替换操作交替进行若干轮完成加密图像。基于改进算法思想,对大小为256×256的“lena.bmp”图像进行加密,加密图像的相关系数见表1。

从表1中可以看出,明文图像的相邻像素具有高度相关性,ρ接近1,而本明算法所得密文图像相邻像素的相关性几乎接近于0,低于基于已有两种算法思想所得的相关系数,再次说明了本方法具有很强的抗统计攻击能力、在打破相邻像素相关性方面更优越。

表1

(1.3)shannon信息熵

shannon信息熵是刻画信息源的不可预测性和随机性重要指标。shannon信息熵可以由平均信息量来描述,由公式(16)表示:

其中{yi},i=1,2,…,n,表示信息源y的n种取值,p(yi)表示yi出现的概率;信息源的随机性越大,熵也就越大;对于一个灰度水平为256的密文图像,其信息熵的理论值为8。利用公式(17),计算得出明文图像(图4(a))与密文图像(图4(c))的信息熵分别为h=7.4532和h=7.9978。基于专利(cn103455971b)和改进算法思想所得密文图像的信息熵分别为7.9969和7.9973。可见,本发明所得密文图像的信息熵非常接近于理论值8,这说明密文图像的像素值分布具有极高的随机性,很难被攻击者破译。

2)密钥空间分析

本发明的算法密钥空间中的密钥共9个,包括:初值条件x(1),y(1),z(1),,映像网络控制参数ε,,a,b,其它控制参数i0,m0,(l,m,n)。根据ieee浮点数标准,以64位双精度作为计算精度,其精度为10-15,则整个密钥空间大小约为1015×3×1015×1015×10×100×413=1079≈2263,相当于263位的密钥空间。可见密钥空间充分大,远远大于传统加密方法如des、idea、aes的密钥空间,这足够满足实际应用的抗暴力破解需求。

3)密钥敏感性测试

为验证本发明中密钥的敏感性,在解密时,仅改变某一密钥的值,使其与加密时密钥仅相差10-15。令δ=10-15,将密钥由ε=0.1改为ε=0.1+δ,或将密钥由z(1)=0.2改为z(1)=0.2+δ,或将密钥由m0=100改为m0=101,分别如图6(a)、6(b)、6(c)所示,均得到错误的解密图像。可以看出错误解密后的图像与明文图像(图4(a))差别甚大,完全看不出明文图像所隐含的任何信息,说明本发明的加密方法具有极强的密钥敏感性,即使使用一个与加密密钥具有极其微小差异的解密密钥,也不能解密得到任何与明文相关的信息;解密时对其它密钥改变时,也得到错误解密图像。

4)抗差分攻击分析

像素变化比率(npcr)和统一平均变化度(uaci),常作为对图像加密算法差分攻击分析的测评指标,具体计算公式如下:

其中c1(i,j),c2(i,j)分别为密文图像c1、c2位于(i,j)点的像素值,密文图像c1、c2所对应的明文图像仅存在一个像素点的差异,g表示图像的灰度级。当两个明文图像仅在第5个像素点的像素值相差为1时,npcr和uaci的计算结果如表2。基于专利(cn103455971b)思想和改进算法思想所得结果也见表2。可见,本发明提出的加密发法,仅需1轮加密,npcr与uaci就能够接近理论值99.61%与33.46%,这说明本方法较已有算法具有良好的抗差分攻击性能。

表2

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1