基于扑克和魔方模型的3D多图像加密方法及系统
未命名
07-23
阅读:84
评论:0
基于扑克和魔方模型的3d多图像加密方法及系统
技术领域
1.本发明属于多图像加密技术领域,尤其涉及基于扑克和魔方模型的3d多图像加密方法及系统。
背景技术:
2.本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
3.随着科技的发展和人民生活水平的提高,对大量图像、高分辨率图像的安全防护成为问题,传统密码学方法难以高效地处理大量数据,而单图像加密方法在进行批量加密时的效率也难以满足需求;多图像加密方法的诞生大大提高了加密效率,其中结合跨图像加密操作更是增大了破译难度;然而现有的多图像加密方法常伴有像素扰乱不充分的问题,导致像素置乱能力不足、时间开销大,影响多图像加密的效果。
技术实现要素:
4.为克服上述现有技术的不足,本发明提供了基于扑克和魔方模型的3d多图像加密方法及系统,结合混沌、sha函数,实现新的3d多图像加密方案,花费较小的时间开销充分扰乱像素,像素置乱能力强的同时时间开销较低,以高效而有效地保护图像安全。
5.为实现上述目的,本发明的一个或多个实施例提供了如下技术方案:
6.本发明第一方面提供了基于扑克和魔方模型的3d多图像加密方法;
7.基于扑克和魔方模型的3d多图像加密方法,包括:
8.获取待加密的多幅明文图像,通过分块、堆叠操作,构建3d立方体;
9.利用sha函数和交织logistic映射,为构建的3d立方体生成操作序列和3d密钥;
10.基于扑克和魔方模型,依据生成的操作序列,对构建的3d立方体进行平面旋转和洗牌,得到扰乱立方体;
11.将扰乱立方体与3d密钥逐位异或,得到密码立方体,将密码立方体展开生成多幅密文图像。
12.进一步的,所述为构建的3d立方体生成操作序列和3d密钥,具体为:
13.对3d立方体计算sha256,将得到的哈希值与预先选定的256位二进制用户密钥进行异或,得到一个256位二进制数;
14.利用得到的二进制数生成一个长度为32的十进制数组,并计算交织logistic映射的参数和初始值;
15.将参数和初始值进行交织logistic映射,得到混沌序列;
16.基于混沌序列,生成操作序列和3d密钥。
17.进一步的,所述扑克和魔方模型,包括魔方旋转模型和扑克洗牌模型。
18.进一步的,所述魔方旋转模型,通过多次迭代旋转平面扰乱像素位置。
19.进一步的,所述扑克洗牌模型,通过迭代操作打乱像素之间的层级关系,实现表层
和里层的跨越。
20.进一步的,所述扑克和魔方模型,具体操作为:
21.(1)将3d立方体放置在三维坐标系中,定义x平面、y平面和z平面集合;
22.(2)分别对x平面、y平面进行平面旋转;
23.(3)对z平面进行切分,得到多个牌堆,对切分的牌堆进行重排;
24.(4)迭代执行步骤(2)-(3),直到满足迭代次数,最终得到扰乱立方体。
25.进一步的,所述x平面:x坐标为固定值a的所有像素点的集合为第a个x平面;
26.所述y平面:y坐标为固定值b的所有像素点的集合为第b个y平面所述z平面:z坐标为固定值c的所有像素点的集合为第c个z平面。
27.本发明第二方面提供了基于扑克和魔方模型的3d多图像加密系统。
28.基于扑克和魔方模型的3d多图像加密系统,包括立方体构建模块、密钥生成模块、立方体扰乱模块和多图像加密模块:
29.立方体构建模块,被配置为:获取待加密的多幅明文图像,通过分块、堆叠操作,构建3d立方体;
30.密钥生成模块,被配置为:利用sha函数和交织logistic映射,为构建的3d立方体生成操作序列和3d密钥;
31.立方体扰乱模块,被配置为:基于扑克和魔方模型,依据生成的操作序列,对构建的3d立方体进行平面旋转和洗牌,得到扰乱立方体;
32.多图像加密模块,被配置为:将扰乱立方体与3d密钥逐位异或,得到密码立方体,将密码立方体展开生成多幅密文图像。
33.本发明第三方面提供了计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现如本发明第一方面所述的基于扑克和魔方模型的3d多图像加密方法中的步骤。
34.本发明第四方面提供了电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现如本发明第一方面所述的基于扑克和魔方模型的3d多图像加密方法中的步骤。
35.以上一个或多个技术方案存在以下有益效果:
36.本发明很好地权衡了加扰效果与加扰效率,同时具有高密钥敏感性、低相关性、鲁棒性,可有效抵抗针对图像加密的各种攻击,加密质量高,从损失中恢复能力强;本发明每轮迭代涉及的像素数目多,且可据需求灵活选择迭代轮数,可一次性加密多张图像,并且实现跨图像加密,不仅提高了攻击者的攻击难度,而且提高了接收方在部分数据丢失情况下恢复图像信息的概率,因此本发明可以灵活高效地实现多图像安全保护。
37.本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
38.构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
39.图1为第一个实施例的方法流程图。
40.图2为第一个实施例的加密过程示意图。
41.图3为第一个实施例的立方体构建示意图。
42.图4为第一个实施例的魔方旋转模型原理图。
43.图5为第一个实施例的扑克洗牌模型原理图。
44.图6为第一个实施例的扑克和魔方模型加扰示意图。
45.图7为第一个实施例的加扰过程z平面重排示意图。
46.图8为第一个实施例的解密流程图。
47.图9为第一个实施例的解扰过程z平面重排示意图。
48.图10为第一个实施例的仿真结果图。
具体实施方式
49.下面结合附图与实施例对本发明作进一步说明。
50.实施例一
51.本实施例公开了基于扑克和魔方模型的3d多图像加密方法;
52.如图1、图2所示,基于扑克和魔方模型的3d多图像加密方法,包括:
53.步骤s1:获取待加密的多幅明文图像,通过分块、堆叠操作,构建3d立方体。
54.待加密的明文图像是2d图像,根据明文图像的尺寸n和数量m,参考表1,灵活选择3d立方体的尺寸n,将2d图像划分为n
×
n的小块,并将这些小块按照顺序堆叠起来,构造一个3d立方体cube
original
,图3为用8张512
×
512图像构造128
×
128
×
128立方体的示意图。
55.表1输入图像和立方体的数量与尺寸之间的关系举例
[0056][0057]
步骤s2:利用sha函数和交织logistic映射,为构建的3d立方体生成操作序列和3d密钥,具体步骤为:
[0058]
①
预先选定一组256位二进制数作为用户密钥key;
[0059]
②
对3d立方体cube
original
计算sha256,与用户密钥key异或生成一个用于生成混沌映射的长度为256的二进制数;
[0060]
③
将
②
中生成的二进制数每八位转化为一个十进制数,生成一个长度为32的十进制数组h,并按照如下公式计算交织logistic映射的参数和初始值:
[0061]
k1=sum(h(4i-3))/256+33.5
[0062]
k2=sum(h(4i-2))/256+37.97
[0063]
k3=sum(h(4i-1))/256+35.7
[0064]
μ=mod(sum(h(4i))/256,3.99)+0.009
[0065]
x1=mod((k1×
k2×
k3/μ),0.999)
[0066]
y1=mod((k2×
μ/(k1×
k3×
x1)),0.999)
[0067]
z1=mod((k3×
μ
×
x1/(k1×
k2×
y1)),0.999)
[0068]
其中,k1、k2、k3、μ是交织logistic映射的参数,x1、y1、z1是它的初始值,sum()是求和函数,h(n)代表数组h的第n个数,i是已循环次数。
[0069]
④
将参数和初始值输入交织logistic映射,通过迭代计算,得到混沌序列x、y、z,然后丢弃x、y、z的前1000个数据以消除瞬态效应,其中,交织logistic映射由以下公式给出:
[0070]
x
n+1
=mod(μ
×
k1×yn
×
(1-xn)+zn,1)
[0071][0072]zn+1
=mod(μ
×
(x
n+1
+y
n+1
+k3)
×
sin zn,1)
[0073]
⑤
对混沌序列x、y、z分别进行排序,生成序列u、v、w:
[0074]
[~,u]=sort(x)
[0075]
[~,v]=sort(y)
[0076]
[~,w]=sort(z)
[0077]
其中,函数[p,q]=sort(x)中表示将序列x的所有值升序排序输出为序列p,并将x在p中对应位置的索引输出为序列q,~表示不需要输出当前值。
[0078]
⑥
基于序列u、v、w,计算操作序列:
[0079]
a=mod(u,n)+1
[0080]
b=mod(v,n)+1
[0081]
c=mod(w,3)+1
[0082]
⑦
基于取模操作,将混沌序列转换成3d密钥key
3d
,具体为:
[0083]
key
3d
(2i-1,2j-1,k)=mod(floor(x(num)
×212
),256)
[0084]
key
3d
(2i-1,2j,k)=mod(floor(y(num)
×212
),256)
[0085]
key
3d
(2i,2j-1,k)=mod(floor(z(num)
×212
),256)
[0086]
key
3d
(2i,2j,k)=mod(floor(x(num)y(num)z(num)
×212
/3),256)
[0087]
其中,floor()表示向下取整,num为嵌套循环的已循环总次数,i、j、k分别表示立方体x、y、z方向上的已循环次数。
[0088]
步骤s3:基于扑克和魔方模型,依据生成的操作序列,对构建的3d立方体进行平面旋转和洗牌,得到扰乱立方体。
[0089]
本实施例提出了一种扑克和魔方模型,通过结合魔方旋转模型和扑克洗牌模型,对构建的3d立方体进行混合加扰。
[0090]
为了便于描述,定义立方体中的x、y、z平面,将立方体放置在三维坐标系中,定义x坐标为固定值a的所有像素点的集合为第a个x平面,y坐标为固定值b的所有像素点的集合为第b个y平面,z坐标为固定值c的所有像素点的集合为第c个z平面。
[0091]
图4为魔方旋转模型的原理图,其中,图4中的(a)、(b)、(c)分别为x、y、z平面的旋转示意图;通过多次迭代旋转平面来扰乱像素位置,如果已知魔方旋转的步骤,可以十分容易地将其复原,但如果不知魔方旋转的步骤,复原起来则比较困难,加上魔方旋转模型并不像普通魔方一样每个表面只有一种颜色,而是256(灰度图像)或16777216(彩色图像)个不同的颜色呈一定的相关性排列,未知打乱步骤的情况下复原起来更加困难。
[0092]
然而,魔方旋转只能将距离表面同一层的像素异位,无法破坏立方体的层级结构,因此引入图5所示的扑克洗牌模型,步骤s1把分块后的明文图像堆叠的操作可视为n个z平面沿z轴方向串联的过程,将每个z平面视为一张“扑克牌”,整个立方体即为一个“牌堆”,如图5(a);基于扑克洗牌时将牌堆切分后重新排列的操作,提出扑克洗牌模型,图5(b)为牌堆切分,图5(c)为牌堆重新排列,通过迭代操作可以充分打乱像素之间的层级关系,实现表层和里层的跨越。
[0093]
结合二者的优势,使用图6所示的扑克和魔方模型对原始立方体进行加扰,图6(a)为x平面旋转,图6(b)为y平面旋转,根据操作序列中c(i)的值将其顺时针旋转90
°
、180
°
或270
°
;图6(c)为z平面洗牌,如图7所示根据c(i)取值对切分的牌堆进行重排,以上三次操作为一轮迭代,具体的加扰规则如下所示:
[0094]
①
选择迭代次数k,k为n的整数倍;
[0095]
②
设置i=1;
[0096]
③
选中cube
original
的第a(i)个x平面,通过如下操作旋转平面:
[0097]
如果操作序列中c(i)=1,将第a(i)个x平面顺时针旋转90
°
;
[0098]
如果操作序列中c(i)=2,将第a(i)个x平面顺时针旋转180
°
;
[0099]
如果操作序列中c(i)=3,将第a(i)个x平面顺时针旋转270
°
;
[0100]
④
选中cube
original
的第b(i)个y平面,通过如下操作旋转平面:
[0101]
如果操作序列中c(i)=1,将第b(i)个y平面顺时针旋转90
°
;
[0102]
如果操作序列中c(i)=2,将第b(i)个y平面顺时针旋转180
°
;
[0103]
如果操作序列中c(i)=3,将第b(i)个y平面顺时针旋转270
°
;
[0104]
⑤
选中cube
original
中[min,max]的所有z平面,记为牌堆2,[max+1,n]的所有z平面记为牌堆1,[1,min-1]的所有z平面记为牌堆3,其中,min=min(a(i),b(i)),max=max(a(i),b(i));如图7(a)所示,按照如下操作洗牌:
[0105]
如果操作序列中c(i)=1,将牌堆2抽出放置于顶部,如图7(b);
[0106]
如果操作序列中c(i)=2,将牌堆2抽出放置于底部,如图7(c);
[0107]
如果操作序列中c(i)=3,将牌堆1和牌堆3互换位置,如图7(d);
[0108]
⑥
i=i+1;
[0109]
⑦
重复步骤
③
至
⑥
直到i>k,生成扰乱立方体cube
scrambled
。
[0110]
步骤s4:将扰乱立方体与3d密钥逐位异或,得到密码立方体,将密码立方体展开生
成多幅密文图像。
[0111]
①
将扰乱立方体cube
scrambled
与3d密钥key
3d
逐位异或,得到密码立方体cube
enc
,公式为:
[0112][0113]
②
密码立方体参照步骤s1构造立方体的规则进行解构:沿z轴方向分层得到n个n
×
n的密文图像块,根据明文图像的尺寸n
×
n和数量m,分别将其合并生成m幅n
×
n密文图像。
[0114]
本实施例还包括对应的解密方法,解密过程与加密过程完全相反,流程图如图8所示,具体步骤为:
[0115]
(1)输入多张密文图像,依据步骤s1的方法,将密文图像分块、堆叠,生成密码立方体cube
enc
;
[0116]
(2)基于保存的用户密钥key与接收到的明文哈希值,通过步骤s2的方法生成操作序列a(i)、b(i)、c(i)及3d密钥key
3d
;
[0117]
(3)用3d密钥key
3d
恢复扰乱立方体cube
scrambled
,公式为:
[0118][0119]
(4)依据操作序列a(i)、b(i)、c(i),通过如下操作,对扰乱立方体cube
scrambled
进行解扰恢复,得到3d立方体cube
dec
:
[0120]
①
获取迭代次数k;
[0121]
②
设置i=0;
[0122]
③
按照如下操作恢复z平面洗牌,其中min=min(a(k-i),b(k-i)),max=max(a(k-i),b(k-i)):
[0123]
如果操作序列中c(k-i)=1,将扰乱立方体cube
scrambled
的所有z平面按照z坐标取值范围[max+1,n]、[max-min+2,max]、[1,max-min+1]分为三个牌堆,分别记为牌堆1、2、3,如图9(a)所示,将牌堆1插入牌堆2、3之间,恢复如图9(d)所示的牌堆;
[0124]
如果操作序列中c(k-i)=2,将扰乱立方体cube
scrambled
的所有z平面按照z坐标取值范围[n-max+1,n]、[min,n-max]、[1,min-1]分为三个牌堆,分别记为牌堆1、2、3,如图9(b)所示,将牌堆3插入牌堆1、2之间,恢复如图9(d)所示的牌堆;
[0125]
如果操作序列中c(k-i)=3,将扰乱立方体cube
scrambled
的所有z平面按照z坐标取值范围[n-min+2,n]、[n-max+1,n-min+1]、[1,n-max]分为三个牌堆,分别记为牌堆1、2、3,如图9(c)所示,交换牌堆1、3,恢复如图9(d)所示的牌堆;
[0126]
④
选中cube
original
的第b(i)个y平面,通过如下操作旋转平面:
[0127]
如果操作序列中c(k-i)=1,将第b(k-i)个y平面顺时针旋转270
°
;
[0128]
如果操作序列中c(k-i)=2,将第b(k-i)个y平面顺时针旋转180
°
;
[0129]
如果操作序列中c(k-i)=3,将第b(k-i)个y平面顺时针旋转90
°
;
[0130]
⑤
选中cube
original
的第a(k-i)个x平面,通过如下操作旋转平面:
[0131]
如果操作序列中c(k-i)=1,将第a(k-i)个x平面顺时针旋转270
°
;
[0132]
如果操作序列中c(k-i)=2,将第a(k-i)个x平面顺时针旋转180
°
;
[0133]
如果操作序列中c(k-i)=3,将第a(k-i)个x平面顺时针旋转90
°
;
[0134]
⑥
i=i+1;
[0135]
⑦
重复步骤
③
至
⑥
直到i=k结束循环,生成扰乱立方体cube
scrambled
。
[0136]
(5)参考步骤s1构造立方体的规则对3d立方体cube
dec
进行解构,沿z轴方向分层得到n个n
×
n的解密图像块,根据明文图像的尺寸n
×
n和数量m,分别将解密图像块合并生成m幅n
×
n的解密图像。
[0137]
以8张512
×
512图像构建128
×
128
×
128立方体为例,本实施例的仿真结果如图10所示,其中,(a)-(h)为输入的明文图像,(i)-(p)为加密图像,(q)-(x)为解密图像。
[0138]
从仿真结果中可以看到,本发明很好地权衡了加扰效果与加扰效率,同时具有高密钥敏感性、低相关性、鲁棒性,可有效抵抗针对图像加密的各种攻击,加密质量高,从损失中恢复能力强。
[0139]
实施例二
[0140]
本实施例公开了基于扑克和魔方模型的3d多图像加密系统;
[0141]
基于扑克和魔方模型的3d多图像加密系统,包括立方体构建模块、密钥生成模块、立方体扰乱模块和多图像加密模块:
[0142]
立方体构建模块,被配置为:获取待加密的多幅明文图像,通过分块、堆叠操作,构建3d立方体;
[0143]
密钥生成模块,被配置为:利用sha函数和交织logistic映射,为构建的3d立方体生成操作序列和3d密钥;
[0144]
立方体扰乱模块,被配置为:基于扑克和魔方模型,依据生成的操作序列,对构建的3d立方体进行平面旋转和洗牌,得到扰乱立方体;
[0145]
多图像加密模块,被配置为:将扰乱立方体与3d密钥逐位异或,得到密码立方体,将密码立方体展开生成多幅密文图像。
[0146]
实施例三
[0147]
本实施例的目的是提供计算机可读存储介质。
[0148]
计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本公开实施例一所述的基于扑克和魔方模型的3d多图像加密方法中的步骤。
[0149]
实施例四
[0150]
本实施例的目的是提供电子设备。
[0151]
电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现如本公开实施例一所述的基于扑克和魔方模型的3d多图像加密方法中的步骤。
[0152]
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
技术特征:
1.基于扑克和魔方模型的3d多图像加密方法,其特征在于,包括:获取待加密的多幅明文图像,通过分块、堆叠操作,构建3d立方体;利用sha函数和交织logistic映射,为构建的3d立方体生成操作序列和3d密钥;基于扑克和魔方模型,依据生成的操作序列,对构建的3d立方体进行平面旋转和洗牌,得到扰乱立方体;将扰乱立方体与3d密钥逐位异或,得到密码立方体,将密码立方体展开生成多幅密文图像。2.如权利要求1所述的基于扑克和魔方模型的3d多图像加密方法,其特征在于,所述为构建的3d立方体生成操作序列和3d密钥,具体为:对3d立方体计算sha256,将得到的哈希值与预先选定的256位二进制用户密钥进行异或,得到一个256位二进制数;利用得到的二进制数生成一个长度为32的十进制数组,并计算交织logistic映射的参数和初始值;将参数和初始值进行交织logistic映射,得到混沌序列;基于混沌序列,生成操作序列和3d密钥。3.如权利要求1所述的基于扑克和魔方模型的3d多图像加密方法,其特征在于,所述扑克和魔方模型,包括魔方旋转模型和扑克洗牌模型。4.如权利要求3所述的基于扑克和魔方模型的3d多图像加密方法,其特征在于,所述魔方旋转模型,通过多次迭代旋转平面扰乱像素位置。5.如权利要求3所述的基于扑克和魔方模型的3d多图像加密方法,其特征在于,所述扑克洗牌模型,通过迭代操作打乱像素之间的层级关系,实现表层和里层的跨越。6.如权利要求1所述的基于扑克和魔方模型的3d多图像加密方法,其特征在于,所述扑克和魔方模型,具体操作为:(1)将3d立方体放置在三维坐标系中,定义x平面、y平面和z平面集合;(2)分别对x平面、y平面进行平面旋转;(3)对z平面进行切分,得到多个牌堆,对切分的牌堆进行重排;(4)迭代执行步骤(2)-(3),直到满足迭代次数,最终得到扰乱立方体。7.如权利要求6所述的基于扑克和魔方模型的3d多图像加密方法,其特征在于,所述x平面:x坐标为固定值a的所有像素点的集合为第a个x平面;所述y平面:y坐标为固定值b的所有像素点的集合为第b个y平面所述z平面:z坐标为固定值c的所有像素点的集合为第c个z平面。8.基于扑克和魔方模型的3d多图像加密系统,其特征在于,包括立方体构建模块、密钥生成模块、立方体扰乱模块和多图像加密模块:所述立方体构建模块,被配置为:获取待加密的多幅明文图像,通过分块、堆叠操作,构建3d立方体;所述密钥生成模块,被配置为:利用sha函数和交织logistic映射,为构建的3d立方体生成操作序列和3d密钥;所述立方体扰乱模块,被配置为:基于扑克和魔方模型,依据生成的操作序列,对构建的3d立方体进行平面旋转和洗牌,得到扰乱立方体;
所述多图像加密模块,被配置为:将扰乱立方体与3d密钥逐位异或,得到密码立方体,将密码立方体展开生成多幅密文图像。9.一种电子设备,其特征是,包括:存储器,用于非暂时性存储计算机可读指令;以及处理器,用于运行所述计算机可读指令,其中,所述计算机可读指令被所述处理器运行时,执行上述权利要求1-7任一项所述的方法。10.一种存储介质,其特征是,非暂时性地存储计算机可读指令,其中,当所述非暂时性计算机可读指令由计算机执行时,执行权利要求1-7任一项所述方法的指令。
技术总结
本发明提出了基于扑克和魔方模型的3D多图像加密方法及系统,涉及多图像加密技术领域,具体方案包括:获取待加密的多幅明文图像,通过分块、堆叠操作,构建3D立方体;利用SHA函数和交织Logistic映射,为构建的3D立方体生成操作序列和3D密钥;基于扑克和魔方模型,依据生成的操作序列,对构建的3D立方体进行平面旋转和洗牌,得到扰乱立方体;将扰乱立方体与3D密钥逐位异或,得到密码立方体,将密码立方体展开生成多幅密文图像;本发明结合混沌、SHA函数,实现新的3D多图像加密方案,花费较小的时间开销充分扰乱像素,像素置乱能力强的同时时间开销较低,以高效而有效地保护图像安全。以高效而有效地保护图像安全。以高效而有效地保护图像安全。
技术研发人员:傅蓉蓉 庄金成
受保护的技术使用者:山东大学
技术研发日:2023.03.22
技术公布日:2023/7/21
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
