一种基于3D正交拉丁方和混沌系统的图像加密方法转让专利

申请号 : CN201910494213.7

文献号 : CN110225222B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 甘志华柴秀丽张继通贾培艳袁科张苗辉支相丞毕建强

申请人 : 河南大学

摘要 :

本发明提供一种基于3D正交拉丁方和混沌系统的图像加密方法。该方法包括:步骤1:对明文图像P进行预处理,得到预处理后图像P2;预处理包括:利用4D忆阻混沌系统根据明文图像P的信息熵生成随机数序列,将随机数序列嵌入到明文图像P中得到嵌入后图像P1,并对所述嵌入后图像P1进行字母异或操作;步骤2:根据索引序列和控制参数生成3D正交拉丁方;步骤3:将所述预处理后图像P2转化为3D位矩阵,利用所述3D正交拉丁方对所述3D位矩阵进行置乱操作和扩散操作,得到与所述明文图像P对应的密文图像。本发明解决了置乱方法对特殊图像置乱无效,算法效率低的问题,且对明文图像高度敏感,可以有效地抵御已知明文和选择明文攻击,具有较高的安全性能。

权利要求 :

1.一种基于3D正交拉丁方和混沌系统的图像加密方法,其特征在于,包括:步骤1:对明文图像P进行预处理,得到预处理后图像P2;其中,所述预处理包括:利用4D忆阻混沌系统根据明文图像P的信息熵生成随机数序列,将所述随机数序列嵌入到明文图像P中得到嵌入后图像P1,并对所述嵌入后图像P1进行字母异或操作;

步骤2:根据索引序列和控制参数生成3D正交拉丁方;

步骤3:将所述预处理后图像P2转化为3D位矩阵,利用所述3D正交拉丁方对所述3D位矩阵进行置乱操作和扩散操作,得到与所述明文图像P对应的密文图像,其中,所述位矩阵是指元素取值为0或1的矩阵。

2.根据权利要求1所述的方法,其特征在于,步骤1中的利用4D忆阻混沌系统根据明文图像P的信息熵生成随机数序列包括:步骤1.1:根据明文图像P的信息熵s和预设密钥参数x`0、y`0、z`0、w`0按照式(1)计算4D忆阻混沌系统的初始值x0、y0、z0、w0:其中,x`0、y`0、z`0、w`0∈(0,+∞),所述明文图像P的大小为M×N;

步骤1.2:将所述初始值x0、y0、z0、w0带入所述4D忆阻混沌系统迭代N0+n次,并舍弃前N0个值,得到大小均为1×MN的四个混沌序列HX、HY、HZ、HW;其中,按照式(2)计算N0:步骤1.3:根据所述混沌序列HX、HY按照式(3)得到[0,255]之间的随机数序列X_1、Y_1:其中,xi、yi、x_1i、y_1i分别表示序列HX、HY、X_1、Y_1中的第i个元素;i=1,2,…,MN。

3.根据权利要求2所述的方法,其特征在于,步骤1中的将所述随机数序列嵌入到明文图像P中得到嵌入后图像P1,并对所述嵌入后图像P1进行字母异或操作包括:步骤1.4:从随机数序列X_1中选取M-1个长度为N的元素构成序列Q,从随机数序列Y_1中以f1为间隔选取长度为2×(2M-1)的元素构成序列R,从Y_1中以f2为间隔选取长度为2×(N+2)的元素构成序列O,将序列Q、R、O嵌入到明文图像P中,得到嵌入后图像P1,所述嵌入后图像P1的大小为((2M+1)×(N+2)),f1≠f2,f1<(1/4)min(M,N)且f2<(1/4)min(M,N)且f1,f2均为正整数;

步骤1.5:在所述嵌入后图像P1中任意选取6个大小均为3×3的子图像,根据6个所述子图像按照式(4)构建6种字母异或方法,所述6种字母分别为大写英文字母L、I、T、X、Y和Z:其中,L(i,j)、I(i,j)、T(i,j)、X(i,j)、Y(i,j)和Z(i,j)表示图像P1(i,j)对应位置元素值;i=2,4,6,…,2M,j=2,3,4,…,N;

步骤1.6:选定所述嵌入后图像P1的第一列元素记为W=P1(:,1);按照式(5)生成[1,6]之间的随机数序列w:wi=mod(W(i)×113,6)+1 i=2,4,...,2M    (5)步骤1.7:根据随机数wi选取相应的字母异或方法对所述嵌入后图像P1的第i行进行异或操作,在所述嵌入后图像P1的所有元素都被异或操作后,将嵌入的所述序列Q、R、O全部去掉,得到预处理后图像P2,所述预处理后图像P2的大小为M×N。

4.根据权利要求3所述的方法,其特征在于,步骤1.7中的根据随机数wi选取相应的字母异或方法对所述嵌入后图像P1的第i行进行异或操作包括:若wi=1,则表示嵌入后图像P1的第i行选择字母L异或方法;

若wi=2,则表示嵌入后图像P1的第i行选择字母I异或方法;

若wi=3,则表示嵌入后图像P1的第i行选择字母T异或方法;

若wi=4,则表示嵌入后图像P1的第i行选择字母X异或方法;

若wi=5,则表示嵌入后图像P1的第i行选择字母Y异或方法;

若wi=6,则表示嵌入后图像P1的第i行选择字母Z异或方法。

5.根据权利要求2所述的方法,其特征在于,步骤2包括:

步骤2.1:将所述预处理后图像P2的元素按位展开,得到尺寸为M×N×8的第一3D矩阵,再将所述第一3D矩阵转化为尺寸为c×c×c的第二3D矩阵P3,并将第二3D矩阵P3中多余元素取值均用0填充,所述多余元素指第二3D矩阵P3比第一3D矩阵多出部分的元素;其中,按照式(6)计算c:其中,ceil(x)表示得到大于等于x的最小整数;

步骤2.2:根据所述混沌序列HX、HY、HZ、HW按照式(7)得到序列S:S=HX-HY+HZ+HW    (7)

步骤2.3:在序列S中选取一个长度为c的序列,记为序列D_1=[d1,d2,…,dc];对所述序列D_1进行升序排序,得到索引序列D_2;

步骤2.4:根据所述索引序列D_2以及预设控制参数l1、l2、l3按照式(8)、式(9)和式(10)得到三个3D正交拉丁方L1、L2、L3:2

L1(i,j,k)=D_2+l1×D_2+l1×D_2    (8)L2(i,j,k)=D_2+l2×D_2+l22×D_2    (9)L3(i,j,k)=D_2+l3×D_2+l32×D_2    (10)其中,l1、l2、l3均为正整数,i,j,k=1,2,…,c。

6.根据权利要求5所述的方法,其特征在于,步骤3中的将所述预处理后图像P2转化为

3D位矩阵,利用所述3D正交拉丁方对所述3D位矩阵进行置乱操作包括:步骤3.1:按照式(11)生成参数t1,并根据所述参数t1和所述三个3D正交拉丁方L1、L2、L3对第二3D矩阵P3中的元素位置进行随机移动,得到立方体矩阵P4:其中,P3(i,j,k)、P4(i,j,k)、L1(i,j,k)、L2(i,j,k)、L3(i,j,k)分别表示矩阵P3、P4、L1、L2、L3中第(i,j,k)位置的元素;i,j,k=1,2,…,c;

步骤3.2:按照式(12)生成参数t2,并根据所述参数t2在所述三个3D正交拉丁方L1、L2、L3中选取其中两个3D正交拉丁方进行比较,根据选中的两个3D正交拉丁方的比较结果按照式(12)生成扩散矩阵KS:其中,L`1和L`2表示选中的两个3D正交拉丁方;L`1(i,j,k)和L`2(i,j,k)表示L`1和L`2中第(i,j,k)位置的元素;KS(i,j,k)表示扩散矩阵KS中第(i,j,k)位置的元素;i,j,k=1,

2,…,c。

7.根据权利要求6所述的方法,其特征在于,步骤3.1中的根据所述参数t1和所述三个3D正交拉丁方L1、L2、L3对第二3D矩阵P3中的元素位置按照式(11)进行随机移动包括:设定初始状态下,L1(i,j,k)、L2(i,j,k)、L3(i,j,k)分别表示第二3D矩阵P3在坐标方向(X,Y,Z)的坐标位置;

若t1=1,则第二3D矩阵P3中L1(i,j,k)、L2(i,j,k)、L3(i,j,k)向左循环移动3个位置,等于不移动,仍为L1(i,j,k)、L2(i,j,k)、L3(i,j,k),此时P4(i,j,k)=P3(L1(i,j,k),L2(i,j,k),L3(i,j,k));

若t1=2,则第二3D矩阵P3中L1(i,j,k)、L2(i,j,k)、L3(i,j,k)向左循环移动2个位置,为L3(i,j,k)、L1(i,j,k)、L2(i,j,k),此时P4(i,j,k)=P3(L3(i,j,k),L1(i,j,k),L2(i,j,k));

若t1=3,则第二3D矩阵P3中L1(i,j,k)、L2(i,j,k)、L3(i,j,k)向左循环移动1个位置,为L2(i,j,k)、L3(i,j,k)、L1(i,j,k),此时P4(i,j,k)=P3(L2(i,j,k),L3(i,j,k),L1(i,j,k))。

8.根据权利要求6所述的方法,其特征在于,步骤3.2中的根据所述参数t2在三个3D正交拉丁方L1、L2、L3中选取其中两个3D正交拉丁方进行比较包括:若t2=1,则选择L1、L2进行比较;

若t2=2,则选择L2、L3进行比较;

若t2=3,则选择L1、L3进行比较。

9.根据权利要求6所述的方法,其特征在于,步骤3中的利用所述3D正交拉丁方对所述

3D位矩阵进行扩散操作包括:

步骤3.3:按照式(13)生成中间值h,并根据所述中间值h在所述三个3D正交拉丁方L1、L2、L3中选取其中一个3D正交拉丁方作为扩散矩阵Lh:步骤3.4:根据扩散矩阵KS、Lh,按照式(14)对立方体矩阵P4进行扩散,得到第三3D矩阵P5:其中,P4(i,j,k)、P5(i,j,k)、KS(i,j,k)、Lh(i,j,k)表示矩阵P4、P5、KS、Lh中第(i,j,k)位置的元素;i,j,k=1,2,…,c;

步骤3.5:将第三3D矩阵P5转化为2D矩阵C,所述2D矩阵C即为与所述明文图像P对应的密文图像。

10.根据权利要求9所述的方法,其特征在于,步骤3.3中的根据所述中间值h在所述三个3D正交拉丁方L1、L2、L3中选取其中一个3D正交拉丁方作为扩散矩阵Lh包括:若h=1,则Lh=L1;

若h=2,则Lh=L2;

若h=3,则Lh=L3。

说明书 :

一种基于3D正交拉丁方和混沌系统的图像加密方法

技术领域

[0001] 本发明涉及图像加密技术领域,尤其涉及一种基于3D正交拉丁方和混沌系统的图像加密方法。

背景技术

[0002] 随着互联网技术以及通信技术的高速发展,越来越多的数字图像应用于不同领域,如灾害检测、军事侦察、远程医疗等。数字图像具有直观、形象、逼真的特点,在生活中,已经成为我们信息交流的主要媒介之一。但是数字图像常常涉及个人隐私或敏感信息,在公共网络传输和存储过程中,存在被黑客截获、篡改或交易泄漏等不安全问题。因此,图像传输的安全性已成为学术研究及其实际应用中的热点问题,而图像加密是一种保护图像信息安全的最有效技术。
[0003] 数字图像私密性较强,具有高冗余、高数据量和强相邻像素相关性等特点。而传统的图像加密方案,如DES、AES和RSA是针对文本信息加密设计的,不适合对图像加密。混沌系统对初始条件和控制参数高度敏感,具有遍历性、伪随机性和拓扑传递性等特点,因此被广泛应用于图像加密方案设计中。2008年,HP实验室证实了忆阻器件的存在。通过忆阻器件设计的电路具有更加复杂的动力学和初始条件敏感特性,把忆阻混沌系统与密码学相结合,可以设计出高安全的图像加密方案,具有广阔的应用前景。
[0004] 混沌图像加密方法的研究主要是基于Fridrich提出的置乱和扩散的加密框架。在置乱阶段,利用混沌映射打乱像素的位置,在扩散阶段,改变像素的像素值。为了取得更好的加密效果,置乱与扩散过程需要循环多次。“置乱+扩散”作为图像加密的一个基本框架而被广泛采用,取得了大量的研究成果。
[0005] 当前,一些“置乱+扩散”的图像加密中,置乱方法对特殊图像(如全白、全黑图像)置乱无效,算法效率低。此外,提出的加密方法存在与明文图像信息不相关的问题,故不能有效抵抗选择明文和已知明文攻击。因此,需要设计一种采用置乱方法有效且与明文图像信息相关性高的图像加密方法。

发明内容

[0006] 针对现有的图像加密方法中存在的置乱方法对特殊图像置乱无效,以及加密方法本身与明文图像信息相关性不大的问题,本发明提供一种基于3D正交拉丁方和混沌系统的图像加密方法,解决了置乱方法对特殊图像(全白、全黑图像)置乱无效,算法效率低的问题,且对明文图像高度敏感,可以有效地抵御已知明文和选择明文攻击,具有较高的安全性能。
[0007] 本发明提供一种基于3D正交拉丁方和混沌系统的图像加密方法,该方法包括:
[0008] 步骤1:对明文图像P进行预处理,得到预处理后图像P2;其中,所述预处理包括:利用4D忆阻混沌系统根据明文图像P的信息熵生成随机数序列,将所述随机数序列嵌入到明文图像P中得到嵌入后图像P1,并对所述嵌入后图像P1进行字母异或操作;
[0009] 步骤2:根据索引序列和控制参数生成3D正交拉丁方;
[0010] 步骤3:将所述预处理后图像P2转化为3D位矩阵,利用所述3D正交拉丁方对所述3D位矩阵进行置乱操作和扩散操作,得到与所述明文图像P对应的密文图像,其中,所述位矩阵是指元素取值为0或1的矩阵。
[0011] 进一步地,步骤1中的利用4D忆阻混沌系统根据明文图像P的信息熵生成随机数序列包括:
[0012] 步骤1.1:根据明文图像P的信息熵s和预设密钥参数x`0、y`0、z`0、w`0按照式(1)计算4D忆阻混沌系统的初始值x0、y0、z0、w0:
[0013]
[0014] 其中,x`0、y`0、z`0、w`0∈(0,+∞),所述明文图像P的大小为M×N;
[0015] 步骤1.2:将所述初始值x0、y0、z0、w0带入所述4D忆阻混沌系统迭代N0+n次,并舍弃前N0个值,得到大小均为1×MN的四个混沌序列HX、HY、HZ、HW;其中,按照式(2)计算N0:
[0016]
[0017] 步骤1.3:根据所述混沌序列HX、HY按照式(3)得到[0,255]之间的随机数序列X_1、Y_1:
[0018]
[0019] 其中,xi、yi、x_1i、y_1i分别表示序列HX、HY、X_1、Y_1中的第i个元素;i=1,2,…,MN。
[0020] 进一步地,步骤1中的将所述随机数序列嵌入到明文图像P中得到嵌入后图像P1,并对所述嵌入后图像P1进行字母异或操作包括:
[0021] 步骤1.4:从随机数序列X_1中选取M-1个长度为N的元素构成序列Q,从随机数序列Y_1中以f1为间隔选取长度为2×(2M-1)的元素构成序列R,从Y_1中以f2为间隔选取长度为2×(N+2)的元素构成序列O,将序列Q、R、O嵌入到明文图像P中,得到嵌入后图像P1,所述嵌入后图像P1的大小为((2M+1)×(N+2)),f1≠f2,f1,f2<(1/4)min(M,N)且f1,f2均为正整数;
[0022] 步骤1.5:在所述嵌入后图像P1中任意选取6个大小均为3×3的子图像,根据6个所述子图像按照式(4)构建6种字母异或方法,所述6种字母分别为大写英文字母L、I、T、X、Y和Z:
[0023]
[0024] 其中,L(i,j)、I(i,j)、T(i,j)、X(i,j)、Y(i,j)和Z(i,j)表示图像P1(i,j)对应位置元素值;i=2,4,6,…,2M,j=2,3,4,…,N;
[0025] 步骤1.6:选定所述嵌入后图像P1的第一列元素记为W=P1(:,1);按照式(5)生成[1,6]之间的随机数序列w:
[0026] wi=mod(W(i)×113,6)+1 i=2,4,...,2M (5)
[0027] 步骤1.7:根据随机数wi选取相应的字母异或方法对所述嵌入后图像P1的第i行进行异或操作,在所述嵌入后图像P1的所有元素都被异或操作后,将嵌入的所述序列Q、R、O全部去掉,得到预处理后图像P2,所述预处理后图像P2的大小为M×N。
[0028] 进一步地,步骤1.7中的根据随机数wi选取相应的字母异或方法对所述嵌入后图像P1的第i行进行异或操作包括:
[0029] 若wi=1,则表示嵌入后图像P1的第i行选择字母L异或方法;
[0030] 若wi=2,则表示嵌入后图像P1的第i行选择字母I异或方法;
[0031] 若wi=3,则表示嵌入后图像P1的第i行选择字母T异或方法;
[0032] 若wi=4,则表示嵌入后图像P1的第i行选择字母X异或方法;
[0033] 若wi=5,则表示嵌入后图像P1的第i行选择字母Y异或方法,
[0034] 若wi=6,则表示嵌入后图像P1的第i行选择字母Z异或方法。
[0035] 进一步地,步骤2包括:
[0036] 步骤2.1:将所述预处理后图像P2的元素按位展开,得到尺寸为M×N×8的第一3D矩阵,再将所述第一3D矩阵转化为尺寸为c×c×c的第二3D矩阵P3,并将第二3D矩阵P3中多余元素取值均用0填充,所述多余元素指第二3D矩阵P3比第一3D矩阵多出部分的元素;其中,按照式(6)计算c:
[0037]
[0038] 其中,ceil(x)表示得到大于等于x的最小整数;
[0039] 步骤2.2:根据所述混沌序列HX、HY、HZ、HW按照式(7)得到序列S:
[0040] S=HX-HY+HZ+HW  (7)
[0041] 步骤2.3:在序列S中选取一个长度为c的序列,记为序列D_1=[d1,d2,…,dc];对所述序列D_1进行升序排序,得到索引序列D_2;
[0042] 步骤2.4:根据所述索引序列D_2以及预设控制参数l1、l2、l3得到三个3D正交拉丁方L1、L2、L3。
[0043] 进一步地,步骤3中的将所述预处理后图像P2转化为3D位矩阵,利用所述3D正交拉丁方对所述3D位矩阵进行置乱操作包括:
[0044] 步骤3.1:按照式(11)生成参数t1,并根据所述参数t1和所述三个3D正交拉丁方L1、L2、L3对第二3D矩阵P3中的元素位置进行随机移动,得到立方体矩阵P4:
[0045]
[0046] 其中,P3(i,j,k)、P4(i,j,k)、L1(i,j,k)、L2(i,j,k)、L3(i,j,k)分别表示矩阵P3、P4、L1、L2、L3中第(i,j,k)位置的元素;i,j,k=1,2,…,c;
[0047] 步骤3.2:按照式(12)生成参数t2,并根据所述参数t2在所述三个3D正交拉丁方L1、L2、L3中选取其中两个3D正交拉丁方进行比较,根据选中的两个3D正交拉丁方的比较结果按照式(12)生成扩散矩阵KS:
[0048]
[0049] 其中,L`1和L`2表示选中的两个3D正交拉丁方;L`1(i,j,k)和L`2(i,j,k)表示L`1和L`2中第(i,j,k)位置的元素;KS(i,j,k)表示扩散矩阵KS中第(i,j,k)位置的元素;i,j,k=1,2,…,c。
[0050] 进一步地,步骤3.1中的根据所述参数t1和所述三个3D正交拉丁方L1、L2、L3对第二3D矩阵P3中的元素位置按照式(11)进行随机移动包括:
[0051] 若t1=1,则第二3D矩阵P3中L1、L2、L3向左循环移动3个位置;
[0052] 若t1=2,则第二3D矩阵P3中L1、L2、L3向左循环移动2个位置;
[0053] 若t1=3,则第二3D矩阵P3中L1、L2、L3向左循环移动1个位置;
[0054] 其中,L1、L2、L3分别表示第二3D矩阵P3的三个方向的坐标位置。
[0055] 进一步地,步骤3.2中的根据所述参数t2在三个3D正交拉丁方L1、L2、L3中选取其中两个3D正交拉丁方进行比较包括:
[0056] 若t2=1,则选择L1、L2进行比较;
[0057] 若t2=2,则选择L2、L3进行比较;
[0058] 若t2=3,则选择L1、L3进行比较。
[0059] 进一步地,步骤3中的利用所述3D正交拉丁方对所述3D位矩阵进行扩散操作包括:
[0060] 步骤3.3:按照式(13)生成中间值h,并根据所述中间值h在所述三个3D正交拉丁方L1、L2、L3中选取其中一个3D正交拉丁方作为扩散矩阵Lh:
[0061]
[0062] 步骤3.4:根据扩散矩阵KS、Lh,按照式(14)对立方体矩阵P4进行扩散,得到第三3D矩阵P5:
[0063]
[0064] 其中,P4(i,j,k)、P5(i,j,k)、KS(i,j,k)、Lh(i,j,k)表示矩阵P4、P5、KS(i,j,k)、Lh中第(i,j,k)位置的元素;i,j,k=1,2,…,c;
[0065] 步骤3.5:将第三3D矩阵P5转化为2D矩阵C,所述2D矩阵C即为与所述明文图像P对应的密文图像。
[0066] 进一步地,步骤3.3中的根据所述中间值h在所述三个3D正交拉丁方L1、L2、L3中选取其中一个3D正交拉丁方作为扩散矩阵Lh包括:
[0067] 若h=1,则Lh=L1;
[0068] 若h=2,则Lh=L2;
[0069] 若h=3,则Lh=L3。
[0070] 本发明的有益效果:
[0071] 本发明实施例提供的基于3D正交拉丁方和混沌系统的图像加密方法,有如下有益效果:
[0072] (1)嵌入明文图像中的数据与明文图像相关,对明文图像高度敏感,可以有效地抵御已知明文和选择明文攻击,增加了图像加密的安全性,具有较高的安全性能。
[0073] (2)通过加入字母异或操作改变明文图像的像素值,解决了置乱方法对特殊图像(全白、全黑图像)置乱无效,算法效率低的问题。
[0074] (3)将图像的像素矩阵转化为3D位矩阵,然后利用3D正交拉丁方直接对其置乱和扩散,避免数据转换(将数据降维为2D或1D)操作,提高加密效率,同时置乱方法也增强了扩散效果,适合于实际图像加密应用中。
[0075] (4)由明文特征信息和密钥参数得到混沌系统初始值,然后迭代混沌系统得到混沌序列,通过混沌序列生成3D正交拉丁方的索引序列,使得3D正交拉丁方的产生依赖于明文信息,提升了图像加密算法的安全性。
[0076] (5)利用明文特征信息和密钥参数得到忆阻混沌系统初始值,然后迭代忆阻混沌系统得到混沌序列,分别用于预处理、置乱和扩散过程中。具体内容如下:在预处理操作中,利用混沌序列得到随机数,然后嵌入明文图像中,并利用字母异或操作对明文像素进行修改;另外,对混沌序列进行排序得到索引序列,利用索引序列和控制参数生成置乱和扩散所需的3D正交拉丁方。上述操作增强了算法对明文信息的依赖性,使得提出算法可以有效抵抗选择明文和已知明文攻击。

附图说明

[0077] 图1为本发明实施例提供的一种基于3D正交拉丁方和混沌系统的图像加密方法的流程示意图之一;
[0078] 图2为本发明实施例提供的一种基于3D正交拉丁方和混沌系统的图像加密方法的流程示意图之二;
[0079] 图3为本发明实施例提供的构造正交拉丁方的示意图;
[0080] 图4为本发明实施例提供的随机数序列嵌入明文图像的示意图之一;
[0081] 图5为本发明实施例提供的随机数序列嵌入明文图像的示意图之二;
[0082] 图6为本发明实施例提供的6种字母异或示意图;
[0083] 图7为本发明实施例提供的有限域中4元素的加法表和乘法表;
[0084] 图8为本发明实施例提供的一种基于3D正交拉丁方和混沌系统的图像加密方法的仿真结果示意图;
[0085] 图9为本发明实施例提供的一种基于3D正交拉丁方和混沌系统的图像加密方法的密钥敏感性测试结果示意图;
[0086] 图10为本发明实施例提供的一种基于3D正交拉丁方和混沌系统的图像加密方法的直方图测试结果示意图;
[0087] 图11为本发明实施例提供的一种基于3D正交拉丁方和混沌系统的图像加密方法的相邻像素相关性测试结果示意图。

具体实施方式

[0088] 为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0089] 如图1所示,本发明实施例提供一种基于3D正交拉丁方和混沌系统的图像加密方法,该方法包括:
[0090] S101:对明文图像P进行预处理,得到预处理后图像P2;其中,所述预处理包括:利用4D忆阻混沌系统生成随机数序列,将所述随机数序列嵌入到明文图像P中得到嵌入后图像P1,并对所述嵌入后图像P1进行字母异或操作;
[0091] 具体地,2018年,Njitacke等人研究了一种新型4D忆阻动力学系统,通过用磁通控制忆阻器代替原电路的二极管桥忆阻器获得新模型。其如下式所示:
[0092]
[0093] 其中,m=(-d+e|w|)x,x、y、z、w为忆阻混沌系统的状态变量,a、b、c、d、e为忆阻混沌系统的控制参数。
[0094] S102:根据索引序列和控制参数生成3D正交拉丁方;
[0095] 具体地,n阶拉丁立方体L=(ai,j,k)是n×n×n立方体(n行,n列和n阶),其中每一单元格元素来自集合S={0,1,2,...,n-1}的单个数,使得每一数字在立方体每一阶的每一行、每一列仅出现一次。
[0096] 从上述定义中,可以得到拉丁立方体是二维拉丁方阵的立体化。在图3(a)中,集合S={0,1,2}构造的正交拉丁立方体L,由L1,L2和L3表示。用3个正方形列出每个立方体元素,显示了拉丁立方体的不同阶次。
[0097] 如果集合为S的3个正交拉丁体,然后逐项叠加,S×S×S中的每个有序三元组恰好出现一次,则由集合S得到的三个拉丁立方体是正交的。正交拉丁立方体的存在和构造方法已在相关文献中进行了研究说明。例如,使用正交拉丁立方体M,可以对构造的3D空间矩阵进行置乱。如图3(b)示。M0、M1、M2叠加组成了三元组立方体M,其中M0、M1、M2是正交拉丁方L0、L1、L2对应位置三元素的集合。
[0098] 每个三元组在立方体M中恰好出现一次,然后在三维空间中实现置乱:(0,0,0)→(0,0,0),(0,1,0)→(1,1,2),(0,2,0)→(2,2,1),…,(2,2,2)→(0,2,2)。这种置乱可用于任何3D空间矩阵。其中“→”表示元素的置乱,即(0,0,0)处的元素被转移到(0,0,0)位置。通常,A(i,j,k)处的元素将被转移到新位置B(i1,j1,k1),实现了3D矩阵空间置乱。
[0099] S103:将所述预处理后图像P2转化为3D位矩阵,利用所述3D正交拉丁方对所述3D位矩阵进行置乱操作和扩散操作,得到与所述明文图像P对应的密文图像。
[0100] 具体地,本步骤中的位矩阵,所述“位”表示“比特位”,比特位有两种取值情况:即0和1;因此,位矩阵是指元素取值为0或1的矩阵。
[0101] 通常在混沌图像加密中,采用“置乱+扩散”的加密框架,对特殊图像(全白、全黑图像)进行加密处理时,存在置乱无效以及算法执行效率低的问题,本发明实施例提供的基于3D正交拉丁方和混沌系统的图像加密方法,首先,嵌入明文图像中的数据与明文图像相关,对明文图像高度敏感,可以有效地抵御已知明文和选择明文攻击,增加了图像加密的安全性,具有较高的安全性能。其次,通过加入字母异或操作改变明文图像的像素值,解决了置乱方法对特殊图像(全白、全黑图像)置乱无效,算法效率低的问题;此外,将图像的像素矩阵转化为3D位矩阵,然后利用3D正交拉丁方直接对其置乱和扩散,避免数据转换(将数据降维为2D或1D)操作,提高加密效率,同时置乱方法也增强了扩散效果,适合于实际图像加密应用中。
[0102] 如图2所示,本发明实施例提供又一种基于3D正交拉丁方和混沌系统的图像加密方法,该方法包括:生成随机数序列阶段、随机数序列嵌入阶段、字母异或操作阶段、生成3D正交拉丁方阶段、采用3D正交拉丁方进行置乱阶段和扩散阶段。其中:
[0103] (1)生成随机数序列阶段
[0104] S201:根据明文图像P的信息熵s和预设密钥参数x`0、y`0、z`0、w`0按照式(1)计算4D忆阻混沌系统的初始值x0、y0、z0、w0:
[0105]
[0106] 其中,x`0、y`0、z`0、w`0∈(0,+∞),所述明文图像P的大小为M×N;
[0107] 具体地,明文图像P的信息熵s的计算公式为: 其中,L表示像素值的二进制表示的位数(例如,256级灰度图像,L=8),P(mi)表示mi的发生概率。
[0108] S202:将所述初始值x0、y0、z0、w0带入所述4D忆阻混沌系统迭代N0+n次,并舍弃前N0个值,得到大小均为1×MN的四个混沌序列HX、HY、HZ、HW;其中,按照式(2)计算N0:
[0109]
[0110] S203:根据所述混沌序列HX、HY按照式(3)得到[0,255]之间的随机数序列X_1、Y_1:
[0111]
[0112] 其中,xi、yi、x_1i、y_1i分别表示序列HX、HY、X_1、Y_1中的第i个元素;i=1,2,…,MN。
[0113] (2)随机数序列嵌入阶段
[0114] S204:从随机数序列X_1中选取M-1个长度为N的元素构成序列Q,从随机数序列Y_1中以f1为间隔选取长度为2×(2M-1)的元素构成序列R,从Y_1中以f2为间隔选取长度为2×(N+2)的元素构成序列O,将序列Q、R、O嵌入到明文图像P中,得到嵌入后图像P1,所述嵌入后图像P1的大小为((2M+1)×(N+2)),f1≠f2,f1,f2<(1/4)min(M,N)且f1,f2均为正整数;
[0115] 具体地,作为一种可实施方式,例如,f1=15,f2=25,如图4所示,利用序列Q对明文图像数据行内部嵌入,然后利用序列R、O对明文图像的四周进行嵌入。
[0116] (3)字母异或操作阶段
[0117] S205:在所述嵌入后图像P1中任意选取6个大小均为3×3的子图像,根据6个所述子图像按照式(4)构建6种字母异或方法,所述6种字母分别为大写英文字母L、I、T、X、Y和Z:
[0118]
[0119] 其中,L(i,j)、I(i,j)、T(i,j)、X(i,j)、Y(i,j)和Z(i,j)表示图像P1(i,j)对应位置元素值;i=2,4,6,…,2M,j=2,3,4,…,N;i的取值间隔为2,j的取值间隔为1。
[0120] 例如,设定明文图像P的尺寸参数M=2,N=3。首先,对明文图像P进行数据嵌入得到嵌入后图像P1,如图5示;然后,在嵌入后图像P1任意选取6个大小均为3×3的子图像,如图6所示,得到6种大写英文字母形状(L,I,T,X,Y,Z);据此,得到6种字母形异或方法,如式(4)。
[0121] S206:选定所述嵌入后图像P1的第一列元素记为W=P1(:,1);按照式(5)生成[1,6]之间的随机数序列w:
[0122] wi=mod(W(i)×113,6)+1 i=2,4,...,2M  (5)
[0123] S207:根据随机数wi选取相应的字母异或方法对所述嵌入后图像P1的第i行进行异或操作,在所述嵌入后图像P1的所有元素都被异或操作后,将嵌入的所述序列Q、R、O全部去掉,得到预处理后图像P2,所述预处理后图像P2的大小为M×N。
[0124] 具体地,若wi=1,则表示嵌入后图像P1的第i行选择字母L异或方法;若wi=2,则表示嵌入后图像P1的第i行选择字母I异或方法;若wi=3,则表示嵌入后图像P1的第i行选择字母T异或方法;若wi=4,则表示嵌入后图像P1的第i行选择字母X异或方法;若wi=5,则表示嵌入后图像P1的第i行选择字母Y异或方法,若wi=6,则表示嵌入后图像P1的第i行选择字母Z异或方法。
[0125] 从本步骤内容可知,本发明实施例对明文图像的不同行元素选用不同的字母异或方法,选择过程利用混沌序列生成的随机数来确定,而混沌序列的生成与明文图像相关,可增强本发明算法对明文图像的敏感性。此外,可将矩阵P1进行分割,利用多台计算机并行计算操作,提高加密效率。
[0126] (4)生成3D正交拉丁方阶段
[0127] S208:将所述预处理后图像P2的元素按位展开,得到尺寸为M×N×8的第一3D矩阵,再将所述第一3D矩阵转化为尺寸为c×c×c的第二3D矩阵P3,并将第二3D矩阵P3中多余元素取值均用0填充,所述多余元素指第二3D矩阵P3比第一3D矩阵多出部分的元素;其中,按照式(6)计算c:
[0128]
[0129] 其中,ceil(x)表示得到大于等于x的最小整数;
[0130] S209:根据所述混沌序列HX、HY、HZ、HW按照式(7)得到序列S:
[0131] S=HX-HY+HZ+HW  (7)
[0132] S210:在序列S中选取一个长度为c的序列,记为序列D_1=[d1,d2,…,dc];对所述序列D_1进行升序排序,得到索引序列D_2;
[0133] S211:根据所述索引序列D_2以及预设控制参数l1、l2、l3,按照式(8)、式(9)和式(10)得到三个3D正交拉丁方L1、L2、L3:
[0134] L1(i,j,k)=D_2+l1×D_2+l12×D_2  (8)
[0135] L2(i,j,k)=D_2+l2×D_2+l22×D_2  (9)
[0136] L3(i,j,k)=D_2+l3×D_2+l32×D_2  (10)
[0137] 其中,l1、l2、l3均为正整数,i,j,k=1,2,…,c。
[0138] 需要说明的是,式(8)至式(10)中的“+”和“×”不同于通常意义上的加号和乘号,而是表示有限域中的加法和乘法。图7为有限域中4个元素的加法和乘法表。
[0139] (5)采用3D正交拉丁方进行置乱阶段
[0140] S212:按照式(11)生成参数t1,并根据所述参数t1和所述三个3D正交拉丁方L1、L2、L3对第二3D矩阵P3中的元素位置进行随机移动,得到立方体矩阵P4:
[0141]
[0142] 其中,P3(i,j,k)、P4(i,j,k)、L1(i,j,k)、L2(i,j,k)、L3(i,j,k)分别表示矩阵P3、P4、L1、L2、L3中第(i,j,k)位置的元素;i,j,k=1,2,…,c;
[0143] 具体地,L1、L2、L3分别表示第二3D矩阵P3的三个方向的坐标位置。设定初始状态下,L1、L2、L3分别表示第二3D矩阵P3在坐标方向(X,Y,Z)的坐标位置。若t1=1,则第二3D矩阵P3中L1、L2、L3向左循环移动3个位置,等于不移动,仍为L1、L2、L3,此时P4(i,j,k)=P3(L1(i,j,k),L2(i,j,k),L3(i,j,k));若t1=2,则第二3D矩阵P3中L1、L2、L3向左循环移动2个位置,为L3、L1、L2,此时P4(i,j,k)=P3(L3(i,j,k),L1(i,j,k),L2(i,j,k));若t1=3,则第二3D矩阵P3中L1、L2、L3向左循环移动1个位置,为L2、L3、L1,此时P4(i,j,k)=P3(L2(i,j,k),L3(i,j,k),L1(i,j,k))。
[0144] (6)扩散阶段
[0145] S213:按照式(12)生成参数t2,并根据所述参数t2在所述三个3D正交拉丁方L1、L2、L3中选取其中两个3D正交拉丁方进行比较,根据选中的两个3D正交拉丁方的比较结果按照式(12)生成扩散矩阵KS:
[0146]
[0147] 其中,L`1和L`2表示选中的两个3D正交拉丁方;L`1(i,j,k)和L`2(i,j,k)表示L`1和L`2中第(i,j,k)位置的元素;KS(i,j,k)表示扩散矩阵KS中第(i,j,k)位置的元素;i,j,k=1,2,…,c。
[0148] 具体地,若t2=1,则选择L1、L2进行比较;若t2=2,则选择L2、L3进行比较;若t2=3,则选择L1、L3进行比较。
[0149] S214:按照式(13)生成中间值h,并根据所述中间值h在所述三个3D正交拉丁方L1、L2、L3中选取其中一个3D正交拉丁方作为扩散矩阵Lh:
[0150]
[0151] 具体地,若h=1,则Lh=L1;若h=2,则Lh=L2;若h=3,则Lh=L3。
[0152] S215:根据扩散矩阵KS、Lh,按照式(14)对立方体矩阵P4进行扩散,得到第三3D矩阵P5:
[0153]
[0154] 其中,P4(i,j,k)、P5(i,j,k)、KS(i,j,k)、Lh(i,j,k)表示矩阵P4、P5、KS、Lh中第(i,j,k)位置的元素;i,j,k=1,2,…,c;
[0155] S216:将第三3D矩阵P5转化为2D矩阵C,所述2D矩阵C即为与所述明文图像P对应的密文图像。
[0156] 本发明实施例提供的基于3D正交拉丁方和混沌系统的图像加密方法,有如下有益效果:
[0157] (1)嵌入明文图像中的数据与明文图像相关,对明文图像高度敏感,可以有效地抵御已知明文和选择明文攻击,增加了图像加密的安全性,具有较高的安全性能。
[0158] (2)通过加入字母异或操作改变明文图像的像素值,解决了置乱方法对特殊图像(全白、全黑图像)置乱无效,算法效率低的问题。
[0159] (3)将图像的像素矩阵转化为3D位矩阵,然后利用3D正交拉丁方直接对其置乱和扩散,避免数据转换(将数据降维为2D或1D)操作,提高加密效率,同时置乱方法也增强了扩散效果,适合于实际图像加密应用中。
[0160] (4)由明文特征信息和密钥参数得到混沌系统初始值,然后迭代混沌系统得到混沌序列,通过混沌序列生成3D正交拉丁方的索引序列,使得3D正交拉丁方的产生依赖于明文信息,提升了图像加密算法的安全性。
[0161] (5)利用明文特征信息和密钥参数得到忆阻混沌系统初始值,然后迭代忆阻混沌系统得到混沌序列,分别用于预处理、置乱和扩散过程中。具体内容如下:在预处理操作中,利用混沌序列得到随机数,然后嵌入明文图像中,并利用字母异或操作对明文像素进行修改;另外,对混沌序列进行排序得到索引序列,利用索引序列和控制参数生成置乱和扩散所需的3D正交拉丁方。上述操作增强了算法对明文信息的依赖性,使得提出算法可以有效抵抗选择明文和已知明文攻击。
[0162] 一个好的加密方法应该能够抵抗各种攻击,密钥空间足够大,密钥的敏感性足够高。下面将通过实验仿真验证本发明所提出的图像加密算法的安全有效性。
[0163] 实验平台如下:CPU:Intel(R)Core(TM)i5-4590,3.30GHz;Memory:4.00GB;Operating system:Windows 7;Coding tool:Matlab 2016a。
[0164] 正确密钥x1`(0)=0.0101065457,x2`(0)=0.0015116456,x3`(0)=0.0028786400,x4`(0)=0.0001894600。针对大小512×512的All black的明文图像(如图8中:(a)所示),进行实验仿真。
[0165] 仿真结果见图8。图8中,(a)为明文图像,(b)为密文图像,(c)为解密图像。由图8可知,密文图像是类噪声图像,可以有效保护明文图像的安全,解密图像与明文图像一样,因此本发明提供的加密方法可以对明文图像进行有效的加密和解密。
[0166] 1密钥空间分析
[0167] 好的加密方法需要抵御针对密钥的穷举攻击(或暴力攻击),且使得各种攻击在一定时间内无法遍历全部密钥空间,所以密钥空间越大,抵抗各种攻击的能力也就越强。在本发明所提出的方法中密钥包括:(1)外部密钥x1`(0)、x2`(0)、x3`(0)、x4`(0);(2)控制参数l1、l2、l3。若计算机的计算精度是10-14,则所提出的加密算法的密钥空间Key=(1014)4×(1014)3>1091>2273。因此,本发明所提出的图像加密方法,其密钥空间足够大,足以抵抗任何穷举攻击。
[0168] 2密钥敏感性分析
[0169] 密钥敏感性高是指密钥发生轻微的改变后,在对密文图像解密时候无法获得明文图像。也就是说,当攻击者用一个和正确密钥很相近的数据进行图像解密时,不能恢复出原始图像,则证明该加密方法的密钥敏感性高。利用变化的密钥对图8(b)的密文图像进行解密,测试结果见图9。图9中:(a)为正确密钥x1`(0)微小变化△(设△=10-14),密钥为x1`(0)+△的解密图像;(b)为正确密钥x2`(0)微小变化,密钥为x2`(0)+△的解密图像;(c)为正确密钥x3`(0)微小变化,密钥为x3`(0)+△的解密图像;(d)为正确密钥x4`(0)微小变化,密钥为x4`(0)+△的解密图像。通过解密图像可知,仅仅对密钥进行微小变化,无法得到明文图像,这说明提出方法对密钥的变化敏感性高,因此本发明提出的图像加密方法的加密安全性较好。
[0170] 3直方图分析
[0171] 直方图直观描述了数字图像中所有像素的灰度值出现的频率。一个好的图像加密方法在对不同图像进行加密后,得到的密文图像的灰度直方图应该是平坦、均匀的,这样可以防止窃密者通过直方图的漏洞来破解图像。All black(512×512)明文图像和密文图像的直方图如图10示。
[0172] 此外,采用直方图的方差来定量评估密文图像的均匀性。得到方差数值越小,密文图像的均匀性越好。直方图的方差可以根据公式(15)计算得到:
[0173]
[0174] 式中,Z表示像素灰度值出现的频率,且Z={z1,z2,…,z256}。zi和zj分别是灰度值等于i和j的像素个数,n表示测试图像灰度级别。计算All black(512×512)的明文图像和密文图像直方图的方差,如表1所示。由表1可知,密文图像的方差远远小于明文图像的,这表明利用本加密方法得到的密文图像非常均匀,可以有效保护明文信息。
[0175] 表1 All black明文图像和密文图像直方图的方差
[0176]
[0177] 4相邻像素相关性分析
[0178] 对于大多数图像,每个像素与它周围的像素点之间存在着很大的联系,像素点与它临近的像素点在水平、垂直和对角方向上存在着强相关性。All black(512×512)明文图像和密文图像的相邻像素分布如图11所示。
[0179] 此外,利用相关系数来定量评价图像相邻像素的相关性。相关系数越大,说明相邻像素的相关性越大;反之,相邻像素的相关性越小。计算公式分别如式(16)、(17)和(18)所示:
[0180]
[0181]
[0182]
[0183] 式中,E(x)和D(x)分别是变量x的期望值和方差值。rx,y表示像素x和y之间相关系数,N表示从图像中选取的像素值的数量。对All black(512×512)图像,从明文图像和密文图像中分别选取10000对水平、垂直、对角方向相邻像素对进行测试,其测试结果如表2所示。
[0184] 表2 All black的明文图像和密文图像相邻像素相关性
[0185]
[0186] 5差分攻击分析
[0187] 差分攻击作为衡量加密方法优劣的一个重要标准,可以通过像素数改变率NPCR和归一化平均改变强度UACI来衡量。一个好的加密方法必须能够抵抗差分攻击,这要求明文图像的轻微变化带来完全不同的加密图像。其中,NPCR和UACI的值可以通过公式(19)和公式(20)计算:
[0188]
[0189]
[0190] 式中,D(i,j)被定义为:
[0191]
[0192] 式中,C1和C2表示明文图像的一个像素改变之前和改变之后的密文图像,W和H分别是图像的宽度和高度。
[0193] 首先,将测试的All black(512×512)明文图像的第一个像素值修改为1,即P(1,1)=1,然后得到新的明文图像,接着用相同的密钥,对原始明文图像和改变像素的明文图像进行加密,可以得到对应的密文图像C1和C2。理想的256灰度级图像的NPCR和UACI值分别为0.996094和0.334635,利用本发明方法进行加密时,测试密文图像的NPCR和UACI,如表3所示。由结果可知,测试结果接近理想值,所提图像加密方法可以有效抵御差分攻击。
[0194] 表3测试密文图像的NPCR和UACI
[0195]
[0196] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。