基于混沌分割的多扩散图像加密解密方法转让专利

申请号 : CN201810922473.5

文献号 : CN108965639B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李锦青底晓强毕琳解男男祁晖从立钢任维武王欢王晶春丁勇李佳欢赵巍刘晓杰满振龙陈晓冬管红梅

申请人 : 长春理工大学

摘要 :

基于混沌分割的多扩散图像加密解密方法,涉及图像加密技术领域,解决现有计算机网络环境中,多媒体数据存在安全隐患的问题,本发明提出的基于混沌分割的多扩散图像加密解密方法,通过混沌图像分割方法更有效的去除图像块彼此之间的相关性。并且由细胞神经网络生成的混沌控制表与混沌交换表,用以对明文图像进行图像的块内与块间加扰,并通过静态扩散和动态扩散多个混沌扩散步骤用以去掉图像像素彼此之间的相关性。提供了一种密钥空间大,敏感性好,能够有效抵抗安全攻击的图像加密解密方法。

权利要求 :

1.基于混沌分割的多扩散图像加密解密方法,包括图像加密过程和图像解密过程,其特征是,加密过程和解密过程由以下步骤实现:用户加密密钥为:细胞神经网络初值和迭代次数,混沌密钥矩阵的控制参数ku1,ku2,混沌控制矩阵的控制参数ku3,ku4,混沌控制表的控制参数ku5,混沌交换表的控制参数ku6,混沌动态扩散密钥流的控制参数ku7,ku8,动态加密控制参数ku9;

加密过程:

步骤一、获取大小为M×N的图像作为原始图像Image;

步骤二、采用混沌系统生成伪随机序列S,并将所述伪随机序列S进行数值映射变换得到图像分割混沌序列Fgs,变换方法为:步骤三、将伪随机序列S中元素的数值按下式方法映射为大于等于1,小于等于M之间的整数,构成整数随机序列fs:5

fs=ceil(mod(S*10),M)

其中,mod表示求余操作,ceil表示向上取整操作;

消除整数随机序列fs中数值相等的重复数据,并从前至后截断保留前M/2个数据,获得混沌分割序列Fgs,用公式表示为:Fgs(i)=~ismember(Fgs(i),fs(l))

式中,i=1,2,3...M/2, ~ismember表示去除重复元素的函数;

步骤四、对步骤一所述原始图像Image进行混沌图像分割,获得图像块img1和图像块img2,所述混沌分割方法为:采用步骤三所得混沌分割序列Fgs中的元素表示原始图像中的行号,将原始图像中所有的第Fgs(j)行提取出来构成图像块img1,剩余的图像行构成图像块img2,采用下式表示为:img1(i,:)=Image(Fgs(j),:)

img2=Image-img1

其中j=1,2,3,...N/2;

步骤五、以用户加密密钥中的细胞神经网络初值和迭代次数,迭代细胞神经网络超混沌系统,选取迭代1000次之后的M×N次的迭代结果生成六个伪随机序列X1,Y1,Z1,W1,F1,H1;

步骤六、构建混沌控制集合;将步骤五所述的伪随机序列X1,Y1,Z1,W1,F1,H1组合成为混沌控制集合Set1={X1,Y1,Z1,W1,F1,H1};

步骤七、生成控制开关序列;由步骤五所述的六个伪随机序列X1,Y1,Z1,W1,F1,H1以下式方法构建三个控制开关序列K1,K2,K3:式中abs为是求绝对值的函数,floor为向下取整操作,且k=1,2,3....M×N;

步骤八、构建混沌密钥集合;选取步骤五中获得的六个伪随机序列Z1,Y1,Z1,W1,F1,H1,并将每个伪随机序列中的前一半元素构成混沌序列,分别为混沌序列X2,Y2,Z2,W2,F2,H2,将所述混沌序列X2,Y2,Z2,W2,F2,H2分别按由上到下,由左到右的顺序进行矩阵变换得到混沌矩阵CNNX,CNNY,CNNZ,CNNW,CNNF,CNNH;将所述混沌矩阵CNNX,CNNY,CNNZ,CNNW,CNNF,CNNH组合成为一个三维矩阵,获得混沌密钥集合Set={CNNX,CNNY,CNNZ,CNNW,CNNF,CNNH};

步骤九、构建混沌密钥矩阵CNN1、CNN2、CNN3、CNN4;构建方法如下式:步骤十、构建混沌控制表CCT;构建方法采用下式:

bitxor为按位异或函数;

步骤十一、构建混沌交换表CEXT,CEYT,方法如下表示为:

其中n=1,2,3……,N;

步骤十二、对步骤四中获得的图像块img1和图像块img2分别进行加扰;获得加扰图像块Pimg1和加扰图像块Pimg2;

步骤十三、采用步骤九中获得的混沌密钥矩阵CNN1和CNN2对步骤十二中得到的加扰图像块Pimg1进行静态扩散,获得静态扩散矩阵J1,扩散方法如下式:J1(i,n)=bitxor(CNN2(i,n),bitxor(CNN1(i,n),Pimg1(i,n)))采用混沌密钥矩阵CNN3和CNN4对加扰图像块Pimg2进行静态扩散,获得静态扩散矩阵J2,扩散方法用下式表示为:J2(i,n)=bitxor(CNN4(i,n),bitxor(CNN3(i,n),Pimg2(i,n)))步骤十四、将步骤十三中所述静态扩散序列J1和静态扩散序列J2进行拼接,获得长度为M×N合并静态扩散序列CJ,拼接方法用下式表示为:步骤十五、由步骤六获得的混沌控制集合Set1生成混沌动态扩散密钥流CK1和CK2,方法用下式表示为:步骤十六、对步骤十四中所述静态扩散序列CJ进行动态加密,获得动态加密序列D_G,用下式表示为:步骤十七、将步骤十六中得到的动态加密序列D_G按由上到下,由左到右的顺序进行矩阵变换,得加密图像Cimage;

设定用户解密密钥,细胞神经网络初值和迭代次数,dku1,dku2为解密混沌密钥矩阵的控制参数,dku3,dku4为解密混沌控制矩阵的控制参数,dku5为解密混沌控制表的控制参数,dku6为解密混沌交换表的控制参数,dku7,dku8为解密混沌动态扩散密钥流的控制参数,dku9为动态逆扩散的控制参数;

解密过程:

步骤十八、使用混沌系统生成解密伪随机序列DS,将所述解密伪随机序列DS进行数值映射变换得到解密图像分割混沌序列DFgs;

步骤十九、以用户解密密钥中的细胞神经网络初值和迭代次数,迭代细胞神经网络超混沌系统,选取迭代tm次之后的M×N次的迭代结果生成六个解密伪随机序列DX1,DY1,DZ1,DW1,DF1,DH1;

步骤二十、构建解密混沌控制集合,将步骤十九所述的解密伪随机序列DX1,DY1,DZ1,DW1,DF1,DH1组合成为序列集合,获得解密混沌控制集合DSet1={DX1,DY1,DZ1,DW1,DF1,DH1};

步骤二十一、生成解密控制开关序列;由步骤十九所述的六个解密伪随机序列DX1,DY1,DZ1,DW1,DF1,DH1以下式方法构建三个解密控制开关序列DK1,DK2,DK3;

步骤二十二、构建解密混沌密钥集合;选取步骤十九中获得的解密伪随机序列DX1,DY1,DZ1,DW1,DF1,DH1,将每个解密伪随机序列中的前一半元素构成解密混沌序列,分别为DX2,DY2,DZ2,DW2,DF2,DH2;将所述解密混沌序列DX2,DY2,DZ2,DW2,DF2,DH2分别按由上到下,由左到右的顺序进行矩阵变换得到解密混沌矩阵DCNNX,DCNNY,DCNNZ,DCNNW,DCNNF,DCNNH;将所述解密混沌矩阵DCNNX,DCNNY,DCNNZ,DCNNW,DCNNF,DCNNH组合成为一个三维矩阵,获得解密混沌密钥集合DSet,DSet={DCNNX,DCNNY,DCNNZ,DCNNW,DCNNF,DCNNH);

步骤二十三、构建解密混沌密钥矩阵DCNN1、DCNN2、DCNN3、DCNN4;构建方法如下式:步骤二十四、构建解密混沌控制表DCCT;构建方法如下式:

步骤二十五、构建解密混沌交换表DCEXT和解密混沌交换表DCEYT,方法由下式表示:步骤二十六、生成解密混沌动态扩散密钥流DCK1和DCK2,方法用下式表示为:步骤二十七、将步骤十七中得到的加密图像Cimage按由上到下,由左到右的顺序进行矩阵变换得一维序列SC并进行动态逆扩散,获得动态逆扩散序列DCJ,方法如下式:步骤二十八、将步骤二十七获得的动态逆扩散序列DCJ前后拆分为逆扩散序列DJ1和逆扩散序列DJ2,方法如下式:步骤二十九、将步骤二十八所述的逆扩散序列DJ1和逆扩散序列DJ2,按照从上到下,从左到右的顺序进行矩阵变换,获得逆扩散矩阵DJ1M和逆扩散矩阵DJ2M;

步骤三十、对步骤二十三中所述解密混沌密钥矩阵DCNN1、DCNN2、DCNN3和DCNN4对步骤二十九获得的逆扩散矩阵DJ1M和逆扩散矩阵DJ2M进行静态扩散的逆操作,获得静态逆扩散矩阵DE1和静态逆扩散矩阵DE2,方法如下式:DE1(i,n)=bitxor(DCNN1(i,n),bitxor(DCNN2(i,n),DJ1M(i,n)))DE2(i,n)=bitxor(DCNN3(i,n),bitxor(DCNN4(i,n),DJ2M(i,n)))步骤三十一、将步骤三十中所述的静态逆扩散矩阵DE2和静态逆扩散矩阵DE1进行逆向加扰,获得逆加扰图像块DPME2和逆加扰图像块DPME1;

步骤三十二、建立大小为M×N的全零矩阵DZ,将逆加扰图像块DPME1中的行放入DZ中的第DFgs(i)行,将逆加扰图像块DPME2中的每行元素,按由上到下的顺序填充到所述DZ剩余行中,填充完成后得到完整的解密图像Dimage。

2.根据权利要求1所述的基于混沌分割的多扩散图像加密解密方法,其特征在于,所述细胞神经网络超混沌系统状态方程由下式表示为:pt=0.5*(abs(w+1))-abs(w-1))

式中x,y,z,w,h,f为细胞神经网络超混沌系统的状态变量。

3.根据权利要求1所述的基于混沌分割的多扩散图像加密解密方法,其特征在于,步骤十二中,对步骤四中获得的图像块img1进行加扰,具体过程为:遍历图像块img1中的所有像素点img1(i,n),采用步骤十中建立的混沌控制表CCT和步骤十一中建立的混沌交换表CEXT,CEYT,当混沌控制表CCT(i,n)=0时,进行块内加扰,交换图像块img1中位置为(i,n)的像素点和位置为(CEXT(i,n),CEYT(i,n))的像素点;

当混沌控制表CCT(i,n)>0时,则进行块间加扰,交换图像块img1中位置为(i,n)的像素点和图像块img2中位置为(CEXT(i,n),CEYT(i,n))的像素点,经过块内、块间交换的结果为加扰图像块Pimg1;

对步骤四中获得的图像块img2进行加扰,具体过程为:

遍历图像块img2中所有像素点img2(i,n),使用步骤十中建立的混沌控制表CCT和步骤十一中建立的混沌交换表CEXT,CEYT,当混沌控制表CCT(i,n)=0时,进行块内加扰,交换图像块img2中位置为(i,n)的像素点与位置为(CEXT(i,n),CEYT(i,n))位置的像素点;

当混沌控制表CCT(i,n)>0时,则进行块间加扰,交换图像块img2中位置为(i,n)的像素点和图像块img1中位置为(CEXT(i,n),CEYT(i,n))的像素点,经过块内、块间交换的结果为加扰图像块Pimg2。

4.根据权利要求1所述的基于混沌分割的多扩散图像加密解密方法,其特征在于,步骤八中,所述混沌序列X2,Y2,Z2,W2,F2,H2,用下式表示为:将混沌序列X2,Y2,Z2,W2,F2,H2分别按由上到下,由左到右的顺序进行矩阵变换得到混沌矩阵CNNX,CNNY,CNNZ,CNNW,CNNF,CNNH;分别用下式表示为:

5.根据权利要求1所述的基于混沌分割的多扩散图像加密解密方法,其特征在于,步骤十八中,将所述解密伪随机序列DS进行数值映射变换得到解密图像分割混沌序列DFgs,变换方法具体为:将解密伪随机序列DS中元素的数值按照下式方法映射为大于等于1,小于等于256之间的整数,构成解密整数随机序列Dfs:Dfs=ceil(mod(DS*105),256)

以下述公式方法消除解密整数随机序列Dfs中数值相等的重复数据并从前之后截断保留128个数据得到解密混沌分割序列DFgs:DFgs(i)=~ismember(DFgs(i),Dfs(l))。

6.根据权利要求1所述的基于混沌分割的多扩散图像加密解密方法,其特征在于,步骤二十二中,构成的解密混沌序列DX2,DY2,DZ2,DW2,DF2,DH2;用下式表示为:将解密混沌序列DX2,DY2,DZ2,DW2,DF2,DH2分别按由上到下,由左到右的顺序进行矩阵变换得到解密混沌矩阵DCNNX,DCNNY,DCNNZ,DCNNW,DCNNF,DCNNH;

7.根据权利要求1所述的基于混沌分割的多扩散图像加密解密方法,其特征在于,步骤三十一中,将步骤三十中所述的静态逆扩散矩阵DE2和静态逆扩散矩阵DE1进行逆向加扰,操作方法为:遍历静态逆扩散矩阵DE2中的所有像素点DE2(i,n),当步骤二十四中所述解密混沌控制表DCCT中位置为(i,n)对应的DCCT(i,n)=0时,则将静态逆扩散矩阵DE2中位置为(i,n)的像素点DE2(i,n)与位置为(DCEXT(i,n),DCEYT(i,n))的像素点DE2(DCEXT(i,n),DCEYT(i,n))进行块内交换;

当步骤二十四中所述解密混沌控制表DCCT中位置为(i,n)对应的DCCT(i,n)>0时,则将静态逆扩散矩阵DE2中位置为(i,n)的像素点DE2(i,n)与反向逆扩散矩阵DE1中位置为(DCEXT(i,n),DCEYT(i,n))的像素点DE1(DCEXT(i,n),DCEYT(i,n))进行块间交换;经过块内、块间交换的结果为逆加扰图像块DPME2;

将静态逆扩散矩阵DE1进行逆向加扰,操作方法为:

遍历静态逆扩散矩阵DE1中的所有像素点DE1(i,n),当步骤二十四中所述解密混沌控制表DCCT中位置为(i,n)对应的DCCT(i,n)=0时,将静态逆扩散矩阵DE1中位置为(i,n)的像素点DE1(i,n)与位置为(DCEXT(i,n),DCEYT(i,n))的像素点DE1(DCEXT(i,n),DCEYT(i,n))进行块内交换;

当步骤二十四中所述解密混沌控制表DCCT中位置为(i,n)对应的DCCT(i,n)>0时,将静态逆扩散矩阵DE1中位置为(i,n)的像素点DME1(i,n)与静态逆扩散矩阵DE2中位置为(DCEXT(i,n),DCEYT(i,n))的像素点DE2(DCEXT(i,n),DCEYT(i,n))进行块间交换,经过块内、块间交换的结果为逆加扰图像块DPME1。

说明书 :

基于混沌分割的多扩散图像加密解密方法

技术领域

[0001] 本发明涉及图像加密技术领域,具体涉及一种基于混沌系统的图像分割方法与细胞神经网络超混沌系统的多扩散的图像加密解密方法。

背景技术

[0002] 随着移动互联网、云计算等新兴技术的飞速发展,人类已经进入了大数据时代,诸如图像,视频,音频等多媒体数据在医疗、金融、军事、电子商务等各种应用中被广泛传输。用户的安全与隐私已成为大数据环境中最为重要的安全问题之一。网络安全与信息安全问题逐渐成为制约计算机网络飞速发展的安全壁垒。由于多媒体信息数据量大,冗余度高,相邻像素之间的相关性高,传统的加密算法难以满足当前社会多媒体信息的安全需求。
[0003] 具有确定性的混沌系统是一种非线性动力学系统,是一个类随机过程,过程中的不规则性,对初始条件与控制参数极端敏感的特性和良好的遍历范围,是的它非常符合现代密码学的混淆和扩散原则。同时因为神经网络具有与密码学相吻合的高度非线性特征,将混沌与神经网络相结合的细胞神经网络超混沌系统,由于其规则的结构以及每个细胞单元仅与邻近的细胞相耦合从而易于在超大规模集成电路中实现。细胞神经网络超混沌系统作为一种灵活而有效的高维动力学结构得到了广泛的应用。

发明内容

[0004] 本发明为解决现有计算机网络环境中,多媒体数据存在安全隐患的问题,提供一种基于混沌分割的多扩散图像加密解密方法。
[0005] 基于混沌分割的多扩散图像加密解密方法,包括图像加密过程和图像解密过程,所述加密过程和解密过程由以下步骤实现:
[0006] 用户加密密钥为:细胞神经网络初值和迭代次数,混沌密钥矩阵的控制参数ku1,ku2,混沌控制矩阵的控制参数ku3,ku4,混沌控制表的控制参数ku5,混沌交换表的控制参数ku6,混沌动态扩散密钥流的控制参数ku7,ku8,动态加密控制参数ku9;
[0007] 加密过程:
[0008] 步骤一、获取大小为M×N的图像作为原始图像Image;
[0009] 步骤二、采用混沌系统生成伪随机序列S,并将所述伪随机序列S进行数值映射变换得到图像分割混沌序列Fgs,变换方法为:
[0010] 步骤三、将伪随机序列S中元素的数值按下式方法映射为大于等于1,小于等于M之间的整数,构成整数随机序列fs:
[0011] fs=ceil(mod(S*105),M)
[0012] 其中,mod表示求余操作,ceil表示向上取整操作;
[0013] 消除整数随机序列fs中数值相等的重复数据,并从前至后截断保留前M/2个数据,获得混沌分割序列Fgs,用公式表示为:
[0014] Fgs(i)=~ismember(Fgs(i),fs(l))
[0015] 式中,i=1,2,3...M/2, ~ismember表示去除重复元素的函数;
[0016] 步骤四、对步骤一所述原始图像Image进行混沌图像分割,获得图像块img1和图像块 img2,
[0017] 所述混沌分割方法为:采用步骤三所得混沌分割序列Fgs中的元素表示原始图像中的行号,将原始图像中所有的第Fgs(j)行提取出来构成图像块img1,剩余的图像行构成图像块img2,采用下式表示为:
[0018] img1(i,:)=Image(Fgs(j),:)
[0019] img2=Image-img1
[0020] 其中j=1,2,3,…N/2;
[0021] 步骤五、以用户加密密钥中的细胞神经网络初值和迭代次数,迭代细胞神经网络超混沌系统,选取迭代1000次之后的M×N次的迭代结果生成六个伪随机序列 X1,Y1,Z1,W1,F1,H1;
[0022] 步骤六、构建混沌控制集合;将步骤五所述的伪随机序列X1,Y1,Z1,W1,F1,H1组合成为混沌控制集合Set1={X1,Y1,Z1,W1,F1,H1};
[0023] 步骤七、生成控制开关序列;由步骤五所述的六个伪随机序列X1,Y1,Z1,W1,F1,H1以下式方法构建三个控制开关序列K1,K2,K3:
[0024]
[0025] 式中abs为是求绝对值的函数,floor为向下取整操作,且k=1,2,3....M×N;
[0026] 步骤八、构建混沌密钥集合;选取步骤五中获得的六个伪随机序列X1,Y1,Z1,W1,F1,H1,并将每个伪随机序列中的前一半元素构成混沌序列,分别为混沌序列X2,Y2,Z2,W2,F2,H2,将所述混沌序列X2,Y2,Z2,W2,F2,H2分别按由上到下,由左到右的顺序进行矩阵变换得到混沌矩阵CNNX,CNNY,CNNZ,CNNW,CNNF,CNNH;将所述混沌矩阵 CNNX,CNNY,CNNZ,CNNW,CNNF,CNNH组合成为一个三维矩阵,获得混沌密钥集合 Set={CNNX,CNNY,CNNZ,CNNW,CNNF,CNNH};
[0027] 步骤九、构建混沌密钥矩阵CNN1、CNN2、CNN3、CNN4;构建方法如下式:
[0028]
[0029]
[0030]
[0031]
[0032] 步骤十、构建混沌控制表CCT;构建方法采用下式:
[0033]
[0034] bitxor为按位异或函数;
[0035] 步骤十一、构建混沌交换表CEXT,CEYT,方法如下表示为:
[0036]
[0037] 其中n=1,2,3......,N;
[0038] 步骤十二、对步骤四中获得的图像块img1和图像块img2分别进行加扰;获得加扰图像块Pimg1和加扰图像块Pimg2;
[0039] 步骤十三、采用步骤九中获得的混沌密钥矩阵CNN1和CNN2对步骤十二中得到的加扰图像块Pimg1进行静态扩散,获得静态扩散矩阵J1,扩散方法如下式:
[0040] J1(i,n)=bitxor(CNN2(i,n),bitxor(CNN1(i,n),Pimg1(i,n)))
[0041] 采用混沌密钥矩阵CNN3和CNN4对加扰图像块Pimg2进行静态扩散,获得静态扩散矩阵 J2,扩散方法用下式表示为:
[0042] J2(i,n)=bitxor(CNN4(i,n),bitxor(CNN3(i,n),Pimg2(i,n)))
[0043] 步骤十四、将步骤十三中所述静态扩散序列J1和静态扩散序列J2进行拼接,获得长度为 M×N合并静态扩散序列CJ,拼接方法用下式表示为:
[0044]
[0045] 步骤十五、由步骤六获得的混沌控制集合Set1生成混沌动态扩散密钥流CK1和CK2,方法用下式表示为:
[0046]
[0047] 步骤十六、对步骤十四中所述静态扩散序列CJ进行动态加密,获得动态加密序列D_G,用下式表示为:
[0048]
[0049] 步骤十七、将步骤十六中得到的动态加密序列D_G按由上到下,由左到右的顺序进行矩阵变换,得加密图像Cimage;
[0050] 设定用户解密密钥,包括细胞神经网络初值和迭代次数,解密混沌密钥矩阵的控制参数 dku1,dku2,解密混沌控制矩阵的控制参数dku3,dku4,解密混沌控制表的控制参数dku5,解密混沌交换表的控制参数dku6,解密混沌动态扩散密钥流的控制参数dku7,dku8,动态逆扩散的控制参数dku9;
[0051] 解密过程:
[0052] 步骤十八、使用混沌系统生成解密伪随机序列DS,将所述解密伪随机序列DS进行数值映射变换得到解密图像分割混沌序列DFgs;
[0053] 步骤十九、以用户解密密钥中的细胞神经网络初值和迭代次数,迭代细胞神经网络超混沌系统,选取迭代tm次之后的M×N次的迭代结果生成六个解密伪随机序列 DX1,DY1,DZ1,DW1,DF1,DH1;
[0054] 步骤二十、构建解密混沌控制集合,将步骤十九所述的解密伪随机序列 DX1,DY1,DZ1,DW1,DF1,DH1组合成为序列集合,获得解密混沌控制集合 DSet1={DX1,DY1,DZ1,DW1,DF1,DH1};
[0055] 步骤二十一、生成解密控制开关序列;由步骤十九所述的六个解密伪随机序列 DX1,DY1,DZ1,DW1,DF1,DH1以下式方法构建三个解密控制开关序列DK1,DK2,DK3;
[0056]
[0057] 步骤二十二、构建解密混沌密钥集合;选取步骤十九中获得的解密伪随机序列 DX1,DY1,DZ1,DW1,DF1,DH1,将每个解密伪随机序列中的前一半元素构成解密混沌序列,分别为DX2,DY2,DZ2,DW2,DF2,DH2;将所述解密混沌序列DX2,DY2,DZ2,DW2,DF2,DH2分别按由上到下,由左到右的顺序进行矩阵变换得到解密混沌矩阵 DCNNX,DCNNY,DCNNZ,DCNNW,DCNNF,DCNNH;将所述解密混沌矩阵 DCNNX,DCNNY,DCNNZ,DCNNW,DCNNF,DCNNH组合成为一个三维矩阵,获得解密混沌密钥集合DSet,DSet={DCNNX,DCNNY,DCNNZ,DCNNW,DCNNF,DCNNH};
[0058] 步骤二十三、构建解密混沌密钥矩阵DCNN1、DCNN2、DCNN3、DCNN4;构建方法如下式:
[0059]
[0060]
[0061]
[0062]
[0063] 步骤二十四、构建解密混沌控制表DCCT;构建方法如下式:
[0064]
[0065] 步骤二十五、构建解密混沌交换表DCEXT和解密混沌交换表DCEYT,方法由下式表示:
[0066]
[0067] 步骤二十六、生成解密混沌动态扩散密钥流DCK1和DCK2,方法用下式表示为:
[0068]
[0069] 步骤二十七、将步骤十七中得到的加密图像Cimage按由上到下,由左到右的顺序进行矩阵变换得一维序列SC并进行动态逆扩散,获得动态逆扩散序列DCJ,方法如下式:
[0070]
[0071] 步骤二十八、将步骤二十七获得的动态逆扩散序列DCJ前后拆分为逆扩散序列DJ1和逆扩散序列DJ2,方法如下式:
[0072]
[0073] 步骤二十九、将步骤二十八所述的逆扩散序列DJ1和逆扩散序列DJ2,按照从上到下,从左到右的顺序进行矩阵变换,获得逆扩散矩阵DJ1M和逆扩散矩阵DJ2M;
[0074] 步骤三十、对步骤二十三中所述解密混沌密钥矩阵DCNN1、DCNN2、DCNN3和DCNN4 对步骤二十九获得的逆扩散矩阵DJ1M和逆扩散矩阵DJ2M进行静态扩散的逆操作,获得静态逆扩散矩阵DE1和静态逆扩散矩阵DE2,方法如下式:
[0075] DE1(i,n)=bitxor(DCNN1(i,n),bitxor(DCNN2(i,n),DJ1M(i,n)))[0076] DE2(i,n)=bitxor(DCNN3(i,n),bitxor(DCNN4(i,n),DJ2M(i,n)))[0077] 步骤三十一、将步骤三十中所述的静态逆扩散矩阵DE2和静态逆扩散矩阵DE1进行逆向加扰,获得逆加扰图像块DPME2和逆加扰图像块DPME1;
[0078] 步骤三十二、建立大小为M×N的全零矩阵DZ,将逆加扰图像块DPME1中的行放入DZ中的第DFgs(i)行,将图像块DPME2中的每行元素,按由上到下的顺序填充到所述DZ剩余行中,填充完成后得到完整的解密图像Dimage。
[0079] 本发明的有益效果:本发明提出的基于混沌分割的多扩散图像加密解密方法,通过混沌图像分割方法更有效的去除图像块彼此之间的相关性。并且由细胞神经网络生成的混沌控制表与混沌交换表,用以对明文图像进行图像的块内与块间加扰,并通过静态扩散和动态扩散多个混沌扩散步骤用以去掉图像像素彼此之间的相关性。提供了一种密钥空间大,敏感性好,能够有效抵抗安全攻击的图像加密解密方法。

附图说明

[0080] 图1本发明所述的基于混沌分割的多扩散图像加密解密方法中加密过程流程图;
[0081] 图2本发明所述的基于混沌分割的多扩散图像加密解密方法中解密过程流程图;
[0082] 图3为采用本发明所述的基于混沌分割的多扩散图像加密解密方法进行加密解密方法效果图:其中图3A为“考拉”原始图像;其中图3B为“考拉”图像的正混沌行图像;其中图3C 为“考拉”图像的负混沌行图像;其中图3D为“考拉”图像最终的加密结果图;
[0083] 图4为采用本发明所述的基于混沌分割的多扩散图像加密解密方法进行加密解密方法的加密性能分析图:其中图4A为图3D 的直方图;其中图4B为图3A的x方向的像素相关性;其中图4C为图3D 的x方向的像素相关性;其中图4D为图3A的y方向的像素相关性;其中图4E为图3D 的y方向的像素相关性;其中图4F为图3A的正对角方向的像素相关性;其中图4G为图3D 的正对角方向的像素相关性;其中图4H为图3A的反对角方向的像素相关性;其中图4I为图3D 的反对角方向的像素相关性。

具体实施方式

[0084] 具体实施方式一、结合图1至图4说明本实施方式,基于混沌分割的多扩散图像加密解密方法,包括图像加密过程和图像解密过程,其特征是,加密过程和解密过程由以下步骤实现:
[0085] 设定用户加密密钥为:细胞神经网络初值和迭代次数,混沌密钥矩阵的控制参数ku1,ku2,混沌控制矩阵的控制参数ku3,ku4,混沌控制表的控制参数ku5,混沌交换表的控制参数ku6,混沌动态扩散密钥流的控制参数ku7,ku8,动态加密控制参数ku9;
[0086] 图像加密过程为:
[0087] 步骤一、取大小为256×256的“考拉”图像作为原始图像Image,如附图3A所示。
[0088] 步骤二、使用Lorenz混沌系统生成伪随机序列S。以xx10,yy10,zz10为Lorenz混沌系统初值,本实施方式中xx10=0.1,yy10=2.12,zz10=8.98,将Lorenz混沌系统迭代次数为10000。 Lorenz混沌系统状态方程为:
[0089]
[0090] 式中xx,yy,zz,为Lorenz混沌系统的状态变量,a,b,c为Lorenz混沌系统的控制参数,当参数c∈[-1.59 7.75]时系统出现混沌态,本实施方式中a=-10,b=30,c=8/3。舍弃前128次迭代结果,以避免瞬态修效应。使用xx状态变量的迭代结果生成伪随机序列S S={xx(129),xx(130),xx(131),......,xx(10000)}
[0091] 步骤三、将伪随机序列S中元素的数值按照公式(1)所述方法映射为大于等于1,小于等于256之间的整数,构成整数随机序列fs:
[0092] fs=ceil(mod(S*105),256)  (1)
[0093] 消除整数随机序列fs中数值相等的重复数据,并从前至后截断保留前128个数据得到混沌分割序列Fgs,方法如公式(2)所示:
[0094] Fgs(i)=~ismember(Fgs(i),fs(l))  (2)
[0095] 其中~ismember表示去除重复元素的函数。i=1,2,3...128,l=1,2,3,...16384。
[0096] 步骤四、对步骤一所述原始图像Image进行混沌图像分割得到图像块img1和图像块img2,本发明所述混沌分割方法为:使用步骤三所得混沌分割序列Fgs中的元素表示原始图像中的行号,将原始图像中所有的第Fgs(j)行提取出来构成图像块img1,剩余的图像行构成图像块 img2,方法如公式(3)所示:
[0097] img1(i,:)=Image(Fgs(j),:)   (3)
[0098] img2=Image-img1
[0099] 其中j=1,2,3,…128。
[0100] 步骤五、以用户加密密钥中的细胞神经网络初值和迭代次数,迭代细胞神经网络超混沌系统,本实施方式中x10=0.1,y10=0.2,z10=0.3,w10=0.4,f10=0.5,h10=0.6,,迭代次数 t1=70000,细胞神经网络超混沌系统状态方程由公式(4)所示。选取1000之后的65536次的迭代结果生成6个伪随机序列X1,Y1,Z1,W1,F1,H1,。
[0101] 步骤六、构建混沌控制集合。将步骤五所述的伪随机序列X1,Y1,Z1,W1,F1,H1组合成为混沌控制集合Set1={X1,Y1,Z1,W1,F1,H1}。
[0102] 步骤七、生成控制开关序列。由步骤五所述的6个伪随机序列X1,Y1,Z1,W1,F1,H1以公式(5)所示的方法构建三个控制开关序列K1,K2,K3:
[0103]
[0104] 其中abs为是求绝对值的函数,floor为向下取整操作,且k=1,2,3...,65536。
[0105] 步骤八、构建混沌密钥集合。选取步骤五中获得的伪随机序列X1,Y1,Z1,W1,F1,H1中前一半元素构成混沌序列X2,Y2,Z2,W2,F2,H2。即:
[0106] X2=X1(1:32768)
[0107] Y2=Y1(1:32768)
[0108] Z2=Z1(1:32768)
[0109] W2=W1(1:32768)
[0110] F2=F1(1:32768)
[0111] H2=H1(1:32768)
[0112] 将混沌序列X2,Y2,Z2,W2,F2,H2分别按由上到下,由左到右的顺序进行矩阵变换得到混沌矩阵CNNX,CNNY,CNNZ,CNNW,CNNF,CNNH
[0113]
[0114]
[0115]
[0116]
[0117]
[0118]
[0119] 将混沌矩阵CNNX,CNNY,CNNZ,CNNW,CNNF,CNNH组合成为一个三维矩阵,获得混沌密钥集合Set={CNNX,CNNY,CNNZ,CNNW,CNNF,CNNH}。
[0120] 步骤九、构建混沌密钥矩阵CNN1、CNN2、CNN3、CNN4。构建方法如公式(6)所示:
[0121]
[0122] CNN3=Set(K2(mod(floor(abs(ku3×107)),32768)))
[0123] CNN4=Set(K2(mod(floor(abs(ku4×107)),32768)))
[0124] ku1,ku2为用户加密密钥中混沌密钥矩阵的控制参数,ku3,ku4为用户加密密钥中混沌控制矩阵的控制参数。本实施方式中ku1=4,ku2=7,ku3=14,ku4=9
[0125] 步骤十、构建混沌控制表CCT。构建方法如公式(7)所示:
[0126] CCT=mod(bitxor(CNN1,CNN2),mod(floor(abs(ku5×107)),32768))   (7)[0127] bitxor为按位异或函数。ku5为用户加密密钥中混沌控制表的控制参数。本实施方案中ku5=9。
[0128] 步骤十一、构建混沌交换表CEXT,CEYT。方法由公式(8)所示:
[0129]
[0130] 其中n=1,2,3......,256;ku6为用户加密密钥中混沌交换表的控制参数。本实施方案中ku6=1。
[0131] 步骤十二、对步骤四中获得的图像块img1进行加扰。
[0132] 加扰方法为:遍历图像块img1中的所有像素点img1(i,n)。
[0133] 使用步骤十中建立的混沌控制表CCT和和步骤十一中建立的混沌交换表CEXT,CEYT,当混沌控制表CCT(i,n)=0时,进行块内加扰,交换图像块img1中位置为(i,n)的像素点和位置为 (CEXT(i,n),CEYT(i,n))的像素点。
[0134] 当混沌控制表CCT(i,n)>0时,则进行块间加扰,交换图像块img1中位置为(i,n)的像素点和图像块img2中位置为(CEXT(i,n),CEYT(i,n))的像素点。
[0135] 经过块内、块间交换的结果为加扰图像块Pimg1。
[0136] 步骤十三、对步骤四中获得的图像块img2进行加扰。
[0137] 加扰方法为:遍历图像块img2中所有像素点img2(i,n),
[0138] 使用步骤十中建立的混沌控制表CCT和步骤十一中建立的混沌交换表CEXT,CEYT。
[0139] 当混沌控制表CCT(i,n)=0时,进行块内加扰,交换图像块img2中位置为(i,n)的像素点与位置为(CEXT(i,n),CEYT(i,n))位置的像素点。
[0140] 当混沌控制表CCT(i,n)>0时,则进行块间加扰,交换图像块img2中位置为(i,n)的像素点和图像块img1中位置为(CEXT(i,n),CEYT(i,n))的像素点。
[0141] 经过块内、块间交换的结果为加扰图像块Pimg2。
[0142] 步骤十四、通过步骤九中获得的混沌密钥矩阵CNN1和CNN2对步骤十二中得到的加扰图像块Pimg1进行静态扩散,得到静态扩散矩阵J1。扩散方法如公式(9)所示:
[0143] J1(i,n)=bitxor(CNN2(i,n),bitxor(CNN1(i,n),Pimg1(i,n)))   (9)[0144] 步骤十五、通过步骤九中获得的混沌密钥矩阵CNN3和CNN4对步骤十三中得到的加扰图像块Pimg2进行静态扩散,得到静态扩散矩阵J2。扩散方法如公式(10)所示:
[0145] J2(i,n)=bitxor(CNN4(i,n),bitxor(CNN3(i,n),Pimg2(i,n)))  (10)[0146] 步骤十六、将步骤十三中所述静态扩散序列J1和步骤十四中所述静态扩散序列J2进行拼接,得到长度为M×N合并静态扩散序列CJ,拼接方法如公式(11)所示:
[0147] CJ={J1(1,1),J1(1,2),......,J1(128,256),J2(1,1),J2(1,2),......,J2(128,256)}   (11)
[0148] 步骤十七、由步骤六获得的混沌控制集合Set1生成混沌动态扩散密钥流CK1和CK2,方法如公式(12)所示:
[0149]
[0150] ku7,ku8为用户加密密钥中混沌动态扩散密钥流的控制参数。本实施方案中ku7=8,ku8=4
[0151] 步骤十八、对步骤十六中所述静态扩散序列CJ进行动态加密得动态加密序列D_G,方法如公式(13):
[0152]
[0153] ku9为用户加密密钥中动态扩散的控制参数。本实施方案中ku9=52。
[0154] 步骤十九、将步骤十八中得到的扩散序列D_G按由上到下,由左到右的顺序进行矩阵变换,得加密图像Cimage。
[0155]
[0156] 设定用户解密密钥,细胞神经网络初值和迭代次数,dku1,dku2为解密混沌密钥矩阵的控制参数,dku3,dku4为解密混沌控制矩阵的控制参数,dku5为解密混沌控制表的控制参数, dku6为解密混沌交换表的控制参数,dku7,dku8为解密混沌动态扩散密钥流的控制参数,dku9为动态逆扩散的控制参数;
[0157] 解密过程为:
[0158] 步骤二十、使用Lorenz混沌系统生成解密伪随机序列DS。
[0159] 以dxx10,dyy10,dzz10为Lorenz混沌系统初值,本实施方式中
[0160] dxx10=0.1,dyy10=2.21,dzz10=8.98,迭代次数为10000。舍弃前128次迭代结果,将dxx 状态变量的迭代结果中作为解密伪随机序列DS
[0161] DS={dxx(129),dxx(130),dxx(131),......,dxx(10000)}
[0162] 步骤二十一、将步骤二十所述的解密伪随机序列DS进行数值映射变换得到解密图像分割混沌序列DFgs,变换方法具体由以下步骤所示:
[0163] 将解密伪随机序列DS中元素的数值按照公式(14)所述方法映射为大于等于1,小于等于256之间的整数,构成解密整数随机序列Dfs:
[0164] Dfs=ceil(mod(DS*105),256)  (14)
[0165] 以公式(15)所述方法消除解密整数随机序列Dfs中数值相等的重复数据并从前之后截断保留128个数据得到解密混沌分割序列DFgs:
[0166] DFgs(i)=~ismember(DFgs(i),Dfs(l))      (15)
[0167] 步骤二十二、以用户解密密钥中的细胞神经网络初值和迭代次数,迭代细胞神经网络超混沌系统。细胞神经网络超混沌系统状态方程由公式(4)所示。舍弃前1000次的迭代结果,以避免瞬态修效应。选取1000之后的M×N次的迭代结果生成6个解密伪随机序列 DX1,DY1,DZ1,DW1,DF1,DH1。
[0168] 步骤二十三、构建解密混沌控制集合。将步骤二十二所述的解密伪随机序列 DX1,DY1,DZ1,DW1,DF1,DH1组合成为一个序列集合,获得解密混沌控制集合 DSet1={DX1,DY1,DZ1,DW1,DF1,DH1}。
[0169] 步骤二十四、生成解密控制开关序列。由步骤二十二所述的6个解密伪随机序列 DX1,DY1,DZ1,DW1,DF1,DH1以公式(16)所示的方法构建三个解密控制开关序列DK1,DK2, DK3:
[0170]
[0171] 步骤二十五、构建解密混沌密钥集合。选取步骤二十二中获得的解密伪随机序列 DX1,DY1,DZ1,DW1,DF1,DH1中前一半元素构成解密混沌序列 DX2,DY2,DZ2,DW2,DF2,DH2。即:
[0172] DX2=DX1(1:32768)
[0173] DY2=DY1(1:32768)
[0174] DZ2=DZ1(1:32768)
[0175] DW2=DW1(1:32768)
[0176] DF2=DF1(1:32768)
[0177] DH2=DH1(1:32768)
[0178] 将解密混沌序列DX2,DY2,DZ2,DW2,DF2,DH2分别按由上到下,由左到右的顺序进行矩阵变换得到解密混沌矩阵DCNNX,DCNNY,DCNNZ,DCNNW,DCNNF,DCNNH。
[0179]
[0180]
[0181]
[0182]
[0183]
[0184]
[0185] 将解密混沌矩阵DCNNX,DCNNY,DCNNZ,DCNNW,DCNNF,DCNNH组合成为一个三维矩阵,获得解密混沌密钥集合DSet={DCNNX,DCNNY,DCNNZ,DCNNW,DCNNF,DCNNH)。
[0186] 步骤二十六、构建解密混沌密钥矩阵DCNN1、DCNN2、DCNN3、DCNN4.
[0187] 构建方法如公式(17)所示:
[0188]
[0189] DCNN3=DSet(DK2(mod(floor(abs(dkua×107)),32768)))
[0190] DCNN4=DSet(DK2(mod(floor(abs(dku4×107)),32768)))
[0191] dku1,dku2为用户解密密钥中解密混沌密钥矩阵的控制参数。dku3,dku4为用户解密密钥中解密混沌密钥矩阵的控制参数。本实施方式中dku1=4,dku2=7,dku3=14,dku4=9
[0192] 步骤二十七、构建解密混沌控制表DCCT。构建方法如公式(18)所示:
[0193] DCCT=mod(bitxor(DCNN1,DCNN2),mod(floor(abs(dku5×107)),32768))  (18)[0194] dku5为用户解密密钥中解密混沌控制表的控制参数。本实施方案中ku5=9[0195] 步骤二十八、构建解密混沌交换表DCEXT,DCEYT。方法由公式(19)所示:
[0196]
[0197] dku6为用户解密密钥中解密混沌交换表的控制参数。本实施方案中dku6=1。
[0198] 步骤二十九、生成解密混沌动态扩散密钥流DCK1和DCK2,方法如公式(20)所示:
[0199]
[0200] dku7,dku8为用户解密密钥中解密混沌动态扩散密钥流的控制参数。本实施方案中 dku7=8,dku8=4。
[0201] 步骤三十、将步骤十九中得到的加密图像Cimage按由上到下,由左到右的顺序进行矩阵变换得一维序列SC并进行动态逆扩散,获得动态逆扩散序列DCJ,方法如公式(21)所示:
[0202]
[0203] dku9为用户解密密钥中动态逆扩散的控制参数。本实施方案中dku9=52。
[0204] 步骤三十一、将步骤三十得到的动态逆扩散序列DCJ前后拆分为逆扩散序列DJ1和逆扩散序列DJ2,方法如公式(22)所示:
[0205]
[0206] 步骤三十二、将步骤三十一所述逆扩散序列DJ1和逆扩散序列DJ2,按照从上到下,从左到右的顺序进行矩阵变换,得到逆扩散矩阵DJ1M和逆扩散矩阵DJ2M。
[0207] 步骤三十三、通过步骤二十六中所述解密混沌密钥矩阵DCNN1、DCNN2、DCNN3和DCNN4 对步骤三十二得到的逆扩散矩阵DJ1M和逆扩散矩阵DJ2M进行静态扩散的逆操作。方法如公式(23)所示,得静态逆扩散矩阵DE1和静态逆扩散矩阵DE2:
[0208] DE1(i,n)=bitxor(DCNN1(i,n),bitxor(DCNN2(i,n),DJ1M(i,n)))[0209] DE2(i,n)=bitxor(DCNN3(i,n),bitxor(DCNN4(i,n),DJ2M(i,n)))   (23)[0210] 步骤三十四、将步骤三十三中所述的静态逆扩散矩阵DE1和静态逆扩散矩阵DE2进行逆向加扰,操作方法为:
[0211] 遍历静态逆扩散矩阵DE2中的所有像素点DE2(i,n);
[0212] 当步骤二十七中所述解密混沌控制表DCCT中位置为(i,n)对应的DCCT(i,n)=0时,则将静态逆扩散矩阵DE2中位置为(i,n)的像素点DE2(i,n)与位置为(DCEXT(i,n),DCEYT(i,n))的像素点DE2(DCEXT(i,n),DCEYT(i,n))进行块内交换;
[0213] 当步骤二十七中所述解密混沌控制表DCCT中位置为(i,n)对应的DCCT(i,n)>0时,则将静态逆扩散矩阵DE2中位置为(i,n)的像素点DE2(i,n)与反向逆扩散矩阵DE1中位置为 (DCEXT(i,n),DCEYT(i,n))的像素点DE1(DCEXT(i,n),DCEYT(i,n))进行块间交换;
[0214] 经过块内、块间交换的结果为逆加扰图像块DPME2。
[0215] 遍历静态逆扩散矩阵DE1中的所有像素点DE1(i,n)。
[0216] 当步骤二十七中所述解密混沌控制表DCCT中位置为(i,n)对应的DCCT(i,n)=0时,将静态逆扩散矩阵DE1中位置为(i,n)的像素点DE1(i,n)与位置为(DCEXT(i,n),DCEYT(i,n))的像素点DE1(DCEXT(i,n),DCEYT(i,n))进行块内交换;
[0217] 当步骤二十七中所述解密混沌控制表DCCT中位置为(i,n)对应的DCCT(i,n)>0时,将静态逆扩散矩阵DE1中位置为(i,n)的像素点DME1(i,n)与静态逆扩散矩阵DE2中位置为 (DCEXT(i,n),DCEYT(i,n))的像素点DE2(DCEXT(i,n),DCEYT(i,n))进行块间交换。
[0218] 经过块内、块间交换的结果为逆加扰图像块DPME1。
[0219] 步骤三十五、建立一个大小为M×N的全零矩阵DZ,将逆加扰图像块DPME1中的行放入 DZ中的第DFgs(i)行,方法如公式(24)所示:
[0220] Dimage(DFgs(i),:)=DPME1(i,:)  (24)
[0221] 步骤三十六、将图像块DPME2中的每行元素,按由上到下的顺序补充到步骤三十四填充后的DZ剩余行中。填充完成后得到完整的解密图像Dimage。