一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于深度学习的压缩感知与混沌系统的新型图像加密方法与流程

2022-02-21 10:27:51 来源:中国专利 TAG:


1.本发明属于图像加密领域,涉及一种基于深度学习的压缩感知与混沌系统的新型图像加密方法。


背景技术:

2.随着互联网及其相关技术的发展,大数据在银行、医疗、能源、技术、消费和制造业等各个行业都有越来越广泛的应用。由于大数据在多种业务中的应用如此广泛,使现有的与大数据相关的两大挑战显得十分的重要,即高效数据共享和数据隐私安全。上述挑战的可能解决方案包括压缩感知(cs)和原始信息加密。在cs技术中,信号在其原始域或某些变换域中被压缩以有效利用带宽。cs也可以定义为一种测量技术,它可以从极少量的数据测量中重建图像和信号。此外,一些基于cs的方法对原始信号进行稀疏处理,以便高效地获取和重建大数据。近年来,针对图像恢复问题,人们提出了一些基于深度学习的方法。经典深度网络直接将压缩样本映射为输入,将估计值映射为输出。这些网络由堆叠的非线性操作层组成,如自动编码器,卷积神经网络(cnns),生成性对抗网络(gans)等。它们的参数可以通过常见的反向传播算法进行训练,与迭代优化算法相比,这些经典的深度神经网络能快速重建图像。
3.在加密技术中,原始数据的转换方式使入侵者无法访问原始信息。加密基本上将数据变成无法理解的混乱或密文。只有使用某种类型的密钥解锁密文,告诉接收方如何解码传入的消息或数据,才能将密文恢复为可读形式。近年来,许多密码学研究的方向集中在混沌系统的应用上。混沌系统几乎是随机的,混沌系统中有许多能够良好保持特性的混沌序列。混沌系统中的混沌数的统计、模拟和随机显示的主要方法如下:将混合系统划分为m沉淀,输入一个唯一的二进制数,分离一个或所有二进制数,并在不同的区域选择一个文件区域,与随机数选择系统中的混沌数进行操作,这是一种被广泛应用的逻辑表示结构,它以线性方式生成不同区域的混沌非线性映射。


技术实现要素:

4.有鉴于此,本发明的目的在于提供一种基于深度学习压缩感知与混沌系统的新型图像加密方法。该方法能够提高压缩感知图像重建的精准度与速度,实现图像重建去噪与去块效应的功能。同时对比常规的压缩感知传输方式,该方法加入了与混沌系统结合的置乱,扩散方法来增加方案的安全性,能够有效的抵抗选择明文攻击与已知明文攻击等多种攻击形式。
5.为达到上述目的,本发明提供如下技术方案:
6.一种基于深度学习的压缩感知与混沌系统的新型图像加密方法,包括以下步骤:
7.s1:初始化阶段,在训练前的设置amp-net深度展开模型中的可训练参数,设置四维超混沌系统参数;
8.s2:采样压缩,在采样模型中使用分割函数使原始图像x分割为一系列非重叠的图
像块,然后通过矢量化函数对每个图像块进行矢量化操作,再使用采样矩阵a对图像进行采样压缩;
9.s3:置乱操作,基于混沌系统产生的混沌序列与外部密钥对测量值y进行行置乱与列置乱;
10.s4:扩散操作,置乱操作后得到的测量值y

与混沌序列进行扩散操作;
11.s5:图像解密,按照扩散与置乱的逆操作对加密图片进行解密;
12.s6:设计图像重建模型,包括初始化模块与重建模块,所述初始化模块用于生成合理的初始估计,并且将迭代去噪过程映射到深度网络来得到重建模块,所述重建模块包含对图像进行去噪处理的去噪模块以及用于消除块效应的去块模块。
13.进一步,在步骤s1中,所述可训练参数包括测量矩阵a、初始化矩阵b、控制参数s
α
={α1,α2,...,αk}、η(
·
)和β(
·
),其中αk是控制噪声和模块重构能力的一个参数,η(
·
)和β(
·
)是非线性的适应函数;
14.在训练前,将a随机初始化为高斯矩阵,并对其行进行正交化;控制参数αk初始化为1,b初始化为a
t
,其他可训练参数随机初始化;四维超混沌系统的表现形式为:
[0015][0016]
其中a,b,c,m,k是混沌系统的实参数,当参数设置为a=10,b=25,c=-2.5,k=1,m=1,初始条件设置为(0.2,0.1,0.75,-2)时,系统的lyapunov指数为l1=0.9115,l2=0.0224,l3=0,l4=0.8433,系统具有一个双涡卷超混沌吸引子。
[0017]
进一步,在步骤s2中,采用逐块采样图像的方法,利用θ(x,n)表示为一个分割函数,将灰度图像x∈r
l
×
p
分割为一系列非重叠图像块,每个图像块表示为xi∈rn×n,i∈{1,2,...,i}并且l
·
p=i
·
n2;vec(
·
)是一个矢量化函数,用于把图像块矢量化为矢量,并且满足采样模型的采样过程表示为:
[0018]
y=avec(θ(x,n))
[0019]
其中,是图像块的采样矩阵,y∈rm×i是测量值,y的每一列都是图像块的矢量化度量。
[0020]
进一步,在步骤s3中,假设普通灰度图像的大小为l
×
p,置乱步骤如下:
[0021]
s31:密钥由原始图像的哈希值、外部密钥、混沌系统参数和初始值组成,其中参数设置为a=10,b=25,c=-2.5,k=1,m=1,初始条件设置为(0.2,0.1,0.75,-2)。
[0022]
s32:迭代混沌系统1000次,避免瞬态效应,后续迭代次数由sha-512得到的原始图像哈希值每个十六进制字符转化为十进制相加后得到,表示为sum
512
,迭代后得到4个混沌序列x,y,z,w;
[0023]
s33:选择两个混沌序列作为行置乱和列置乱的索引序列,将4个混沌序列分为12
组,即λ1=(x,y),λ2=(x,z),λ3=(x,w),λ4=(y,z),λ5=(y,w),λ6=(z,w),以及它们每组的反序,即λ7=(y,x),λ8=(z,x),λ9=(w,x),λ
10
=(z,y),λ
11
=(w,y),λ
12
=(w,z);选择公式如下:
[0024]cgroup
(r1,r2)=mod(sum
512
g1,12) 1
[0025]
其中,r1,r2为选择的索引序列,g1为外部任意密钥;
[0026]
s34:定义两个向量d
row
和d
column
,对两个索引序列进行如下处理:
[0027]
输入:r1,r2[0028]
fori>1;l
×
p-1
[0029]drow
(i)=mod(floor(r1(i) g1)
×
10
20
,l
×
p-i 1) 1
[0030]dcolumn
(i)=mod(floor(r2(i) g1)
×
10
20
,l
×
p-i 1) 1
[0031]
输出:d
row
,d
column

[0032]
s35:将测量值y展开成一维数组p
row
,按照knuth-durstenfeld洗牌算法进行行置乱:
[0033]
输入:d
row
,p
row
[0034]
for i=1 to l
×
p-1
[0035]
temp=p
row
(l
×
p-i 1)
[0036]
p
row
(l
×
p-i 1)=p
row
(d
row
(i))
[0037]
p
row
(d
row
(i))=temp
[0038]
输出:置乱后的数组p

row

[0039]
s36:将置乱后的数组p

row
转换为l
×
p的矩阵,转置后再展开得到一维数组p
column
;利用步骤s35的算法使用d
column
对p
column
进行列置乱,然后进行数组到矩阵的转换,最后得到测量值为y


[0040]
进一步,在步骤s4中,混沌序列的迭代次数由原始图像每个十六进制字符转化为十进制相加后再与外部任意密钥g2相加后得到,这里取混沌序列x,y,z,w其中之一,由以下公式决定:
[0041]r′
=mod(sum
512
g2,4) 1
[0042]r′
=1对应序列x,r

=2对应序列y,r

=3对应序列z,r

=4对应序列w;矩阵y

和混沌序列扩散操作具体公式如下:
[0043][0044]
其中y

按行展开为长度为l
×
p的一维矩阵,r
′k表示混沌序列的第k位,pn表示原明文图像的第n个像素值,k和n均从0开始,lh
ω
表示循环左移位的位数:
[0045]
lh
ω
=mod(sum
512
g2 pn,7) 1
[0046]
最后将一维矩阵di转换为大小l
×
p的矩阵得到最终的用于传输的加密图像x


[0047]
进一步,在步骤s5中,按照扩散与置乱的逆操作对加密图片进行解密,扩散部分的逆操作如下:
[0048][0049]
其中各参数设置为扩散操作的简单逆操作。
[0050]
置乱部分的逆操作算法如下:
[0051]
输入:解密序列x,y,扩散操作解密后的y

[0052]
x1=hf(x),y1=hf(y)
[0053]
for i=1 to l
×
p-1
[0054]
temp=y

(i 1)
[0055]y′
(i 1)=y

(y1(i))
[0056]y′
(y1(i))=temp
[0057]
end for
[0058]
for i=1 to l
×
p-1
[0059]
temp=y

(i 1)
[0060]y′
(i 1)=y

(x1(i))
[0061]y′
(x1(i))=temp
[0062]
end for
[0063]y←y′
[0064]
输出:解密后的图像y;
[0065]
其中hf(
·
)函数把x,y序列水平翻转,最后把逆操作后的y

重组为大小l
×
p的矩阵得到解密后的图像y。
[0066]
进一步,在步骤s6中,设计图像的重建模型,该模型由初始化模块和一系列重建模块组成,初始化模块表示如下:
[0067]
x0=θ-1
(vec-1
(by),n)
[0068]
θ-1
(
·
,n)是一个将所有图像块合并为一个完整图像的串联函数,并且满足x=θ-1
(θ(x,n),n);vec-1
(
·
)是一个重塑函数,它将矢量化图像重塑为其原始状态,并且满足xi=vec-1
(vec(xi));
[0069]
由amp的迭代非线性算法得到第k个重建模块的去噪模块的数学表达式:
[0070]
xk=θ-1
(vec-1

katzk-1
vec(θ(x
k-1
,n))-hkvec(ηk(θ(x
k-1
,n)))),n)
[0071]
其中,
[0072]hk
=α
kat
a-i
[0073]zk-1
=y-avec(θ(x
k-1
,n))
[0074]
公式中αk为可训练的参数,用来提高重建过程的灵活性;非线性函数ηk(
·
)被设计成cnn,由四个卷积层构成,其中具有偏置项的前三层后跟修正线性单元,即线性整流函数relu,最后一个卷积层没有偏置项;每个卷积层的滤波器尺寸为3
×
3;为了确保输出的大小与输入的大小相同,每个卷积层的填充大小设置为1;四个卷积层的输出信道数分别为32、32、32和1;
[0075]
去块模块是为了防止逐块重建图像时可能产生的额外解块操作。第k次的重建模块中的图像去块处理表示为:
[0076][0077]
βk(
·
)输入的是整个拼接图像,而不是每个图像块。实际上,βk(
·
)是与ηk(
·
)具有相同结构的cnn,但它们的参数值不同。
[0078]
本发明的有益效果在于:本发明是基于深度学习的压缩感知,与经典的压缩感知算法相比具有重建速度快、网络参数少、重建精度高等优点。
[0079]
本发明在压缩感知过程中将cnns与采样矩阵相结合,以实现精确的噪声估计。为了消除块效应,在去噪模块之后设计了一个可训练的去块模块。
[0080]
本发明使用原始图像的sha-512哈希函数产生的散列值与外部密钥、混沌参数值、初始值组成密钥,提高了抵抗已知明文攻击与选择明文攻击的能力。在置乱过程中采用了knuth-durstenfeld洗牌算法,在保证置乱效果的前提下降低了算法的时间复杂度与空间复杂度。
[0081]
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
附图说明
[0082]
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作优选的详细描述,其中:
[0083]
图1为本发明所述基于深度学习的压缩感知与混沌系统的新型图像加密方法框架图;
[0084]
图2 amp-net框架图。
具体实施方式
[0085]
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0086]
其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本发明的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
[0087]
本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若有术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述
位置关系的用语仅用于示例性说明,不能理解为对本发明的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
[0088]
请参阅图1-图2,本发明提供一种基于深度学习的压缩感知与混沌系统的新型图像加密方法,包括以下步骤:
[0089]
步骤1:初始化阶段,amp-net深度展开模型中可训练参数在训练前的设置,四维超混沌系统参数的设置。
[0090]
步骤2:采样压缩,在采样模型中使用分割函数使原始图像x分割为一系列非重叠的图像块,然后通过矢量化函数对每个图像块进行矢量化操作。最后使用采样矩阵a对图像进行采样压缩。将θ(x,n)表示为一个分割函数,该函数将灰度图像x∈r
l
×
p
分割为一系列非重叠图像块,每个图像块表示为xi∈rn×n,i∈{1,2,...,i}并且l
·
p=i
·
n2。vec(
·
)是一个矢量化函数,负责把图像块矢量化为矢量,并且满足采样模型的采样过程可以表示为:
[0091]
y=a vec(θ(x,n))
[0092]
是图像块的采样矩阵,y∈rm×i是测量值,y的每一列都是图像块的矢量化度量。
[0093]
步骤3:置乱操作,基于混沌系统产生的混沌序列与外部密钥对测量值y进行行置乱与列置乱。置乱步骤如下:
[0094]
step1:密钥由原始图像的哈希值,外部密钥,混沌系统参数和初始值组成。其中参数设置为a=10,b=25,c=-2.5,k=1,m=1,初始条件设置为(0.2,0.1,0.75,-2)。
[0095]
step2:迭代混沌系统1000次,避免瞬态效应。后续迭代次数由sha-512得到的原始图像哈希值每个十六进制字符转化为十进制相加后得到,表示为sum
512
。迭代后得到4个混沌序列x,y,z,w。
[0096]
step3:选择两个混沌序列作为行置乱和列置乱的索引序列。将4个混沌序列分为12组,即λ1=(x,y),λ2=(x,z),λ3=(x,w),λ4=(y,z),λ5=(y,w),λ6=(z,w),以及它们每组的反序,如λ7=(y,x)。选择公式如下:
[0097]cgroup
(r1,r2)=mod(sum
512
g1,12) 1
[0098]
r1,r2为选择的索引序列,g1为外部任意密钥。
[0099]
step4:定义两个向量d
row
和d
column
,对两个索引序列进行处理。具体算法如下:
[0100]
输入:r1,r2[0101]
输出:d
row
,d
column
[0102]
1.for i>1;l
×
p-1
[0103]
2.d
row
(i)=mod(floor(r1(i) g1)
×
10
20
,l
×
p-i 1) 1
[0104]
3.d
column
(i)=mod(floor(r2(i) g1)
×
10
20
,l
×
p-i 1) 1
[0105]
4.end
[0106]
step5:将测量值y展开成一维数组p
row
,按照洗牌算法中的knuth-durstenfeld洗牌算法进行行置乱,具体算法如下:
[0107]
输入:d
row
,p
row
[0108]
输出:置乱后的数组p

row
[0109]
1.fori=1 to l
×
p-1
[0110]
2.temp=p
row
(l
×
p-i 1)
[0111]
3.p
row
(l
×
p-i 1)=p
row
(d
row
(i))
[0112]
4.p
row
(d
row
(i))=temp
[0113]
5.end
[0114]
step6:将置乱后的数组p

row
转换为l
×
p的矩阵,转置后再展开得到一维数组p
column
。同step5算法相同使用d
column
对p
column
进行列置乱,然后进行数组到矩阵的转换,最后得到测量值为y


[0115]
步骤4:扩散操作,置乱操作后得到的测量值y

与混沌序列进行扩散操作。扩散操作所使用的混沌序列的迭代次数由原始图像每个十六进制字符转化为十进制相加后再与外部任意密钥g2相加后得到,这里取混沌序列x,y,z,w其中之一,由以下公式决定:
[0116]r′
=mod(sum
512
g2,4) 1
[0117]r′
=1对应序列x,r

=2对应序列y,r

=3对应序列z,r

=4对应序列w。矩阵y

和混沌序列扩散操作具体公式如下:
[0118][0119]
其中y

按行展开为长度为l
×
p的一维矩阵,rk′
表示混沌序列的第k位,pn表示原明文图像的第n个像素值,k和n均从0开始,lh
ω
表示循环左移位的位数:
[0120]
lh
ω
=mod(sum
512
g2 pn,7) 1
[0121]
最后将一维矩阵di转换为大小l
×
p的矩阵得到最终的用于传输的加密图像x


[0122]
步骤5:图像解密,图像解密为扩散与置乱的逆操作。按照扩散与置乱的逆操作对加密图片进行解密,扩散部分的逆操作如下:
[0123][0124]
其中各参数设置为扩散操作的简单逆操作。
[0125]
置乱部分的逆操作算法如下:
[0126]
输入:解密序列x,y,扩散操作解密后的y

[0127]
输出:解密后的图像y
[0128]
1.x1=hf(x),y1=hf(y)
[0129]
2.for i=1 to l
×
p-1
[0130]
temp=y

(i 1)
[0131]y′
(i 1)=y

(y1(i))
[0132]y′
(y1(i))=temp
[0133]
3.end for
[0134]
4.for i=1 to l
×
p-1
[0135]
temp=y

(i 1)
[0136]y′
(i 1)=y

(x1(i))
[0137]y′
(x1(i))=temp
[0138]
5.end for
[0139]
6.y
←y′
[0140]
其中hf(
·
)函数把x,y序列水平翻转。最后把逆操作后的y

重组为大小l
×
p的矩阵得到解密后的图像y。
[0141]
步骤6:图像重建,该过程包括两个模块:初始化模块与重建模块。其中重建模块包含了对图像的去噪处理以及块效应的消除处理。图像重建模型,该模型包括两个模块:初始化模块与重建模块。其中重建模块包含了对图像的去噪处理以及块效应的消除处理。初始模块可以表示如下:
[0142]
x0=θ-1
(vec-1
(by),n)
[0143]
θ-1
(
·
,n)是一个将所有图像块合并为一个完整图像的串联函数,并且满足x=θ-1
(θ(x,n),n)。vec-1
(
·
)是一个重塑函数,它将矢量化图像重塑为其原始状态,并且满足xi=vec-1
(vec(xi))。
[0144]
由amp的迭代非线性算法我们可以得到第k个重建模块的去噪模块的数学表达式:
[0145]
xk=θ-1
(vec-1

katzk-1
vec(θ(x
k-1
,n))-hkvec(ηk(θ(x
k-1
,n)))),n)
[0146]
其中
[0147]hk
=α
kat
a-i
[0148]zk-1
=y-avec(θ(x
k-1
,n))
[0149]
去块模块是为了防止逐块重建图像时可能产生的额外解块操作。第k次的重建模块中的图像去块处理可以表示为:
[0150][0151]
βk(
·
)输入的是整个拼接图像,而不是每个图像块。实际上,βk(
·
)是与ηk(
·
)具有相同结构的cnn,但它们的参数值不同。最后输出的xk即为最终的重建图像。
[0152]
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献