一种基于改进类提升方案的图像加密方法

文档序号:28268444发布日期:2021-12-31 19:10阅读:71来源:国知局
一种基于改进类提升方案的图像加密方法

1.本发明涉及图像加密技术领域,具体涉及使用超混沌序列与改进类提升方案的图像加密方法。


背景技术:

2.随着互联网和多媒体技术的快速发展,人们在网络上获取信息越来越方便。由于图像会携带私人和敏感的信息,所以图像信息安全受到了更多的关注。而图像加密技术是保证图像信息安全的最有效手段之一。zhang yong提出了基于类提升方案的统一图像加密系统,该系统使用类提升变换来扩散图像信息,从而实现图像加密。虽然该系统具有较快的加解密速度和良好的加密效果,但是该系统存在更新和预测函数过于简单的缺点,解密者很容易找出其中的线性关系,从而对该其实现破解。因此,研究更加复杂的更新和预测函数,提升图像加密的安全性与可靠性是一项有积极意义的工作。


技术实现要素:

3.针对现有技术类提升方案中更新和预测函数过于简单的问题,本发明提出了一种基于改进类提升方案的图像加密方法,其将类感知器网络与类提升方案相结合,从而达到更好的加密效果。
4.为实现上述目的,本技术的技术方案为:一种基于改进类提升方案的图像加密方法,包括以下步骤:
5.根据明文图像信息获取超混沌系统的参数;
6.通过所述明文图像信息生成类感知器网络所需要的权重;
7.将所述参数带入到超混沌系统中获得混沌序列,使用洗牌算法对所述混沌序列进行混洗;
8.对混洗后的混沌序列预处理,得到加密所需的序列;
9.将所述明文图像与所述序列一起带入改进的类提升方案中,得到密文图像,其中所述改进的类提升方案是基于所述类感知器网络实现的。
10.进一步的,根据明文图像信息获取超混沌系统的参数,具体为:利用sha512函数生成明文图像的hash值k,将hash值k转化成二进制数后按4位一组生成128组十进制数组h=h1,h2,h3,...,h
128
,随后通过所述十进制数组h获得超混沌的初始值,具体为:
[0011][0012][0013]
[0014][0015]
进一步的,通过所述明文图像信息生成类感知器网络所需要的权重,具体为:通过十进制数组h=h1,h2,...,h
128
生成两个类感知器网络的初始权重,其中类感知器网络pln

1的权重分别为:
[0016][0017][0018][0019][0020]
类感知器网络pln

2的权重分别为:
[0021][0022][0023][0024][0025]
进一步的,将所述参数带入到超混沌系统中获得混沌序列,使用洗牌算法对所述混沌序列进行混洗,具体为:
[0026]
将所述参数带入超混沌系统中,生成4个长度为m
×
n+300的序列a1,a2,a3,a4,将每个序列前300个元素抛弃,对剩余数列进行以下处理,得到范围在正常明文像素值的序列(i=1,2,3,...,n);
[0027]
b1(i)=mod(abs(floor(a1(i)
×
10
10
)),256)
[0028]
b2(i)=mod(abs(floor(a2(i)
×
10
10
)),256)
[0029]
b3(i)=mod(abs(floor(a3(i)
×
10
10
)),256)
[0030]
b4(i)=mod(abs(floor(a4(i)
×
10
10
)),256)
[0031]
生成用于knuth

durstenfeld洗牌算法的随机值数组(i=1,2,3,...,n),num为总的序列长度;
[0032]
aa1(i)=mod(abs(floor(a1(i)
×
10
10
)),num

i+1)+1
[0033]
aa2(i)=mod(abs(floor(a2(i)
×
10
10
)),num

i+1)+1
[0034]
aa3(i)=mod(abs(floor(a3(i)
×
10
10
)),num

i+1)+1
[0035]
aa4(i)=mod(abs(floor(a4(i)
×
10
10
)),num

i+1)+1
[0036]
用生成的随机值数组对产生的序列使用洗牌算法进行混洗。
[0037]
进一步的,对混洗后的混沌序列预处理,得到加密所需的序列,具体为:将所得序列b1,b2,b3,b4用洗牌算法进行混洗后,分别取b1,b2,b3,b4数组中第一个数为一组作为序列{a
i
}中前四个数,之后取b1,b2,b3,b4数组中第二个数为一组插入序列{a
i
}中,重复上述步骤直到序列{a
i
}中有m
×
n/2个数为止,生成所需的序列{a
i
},i=1,2,3,...,m
×
n/2直接用于图像加密,其中m为明文图像的行数,n为明文图像的列数。
[0038]
进一步的,所述改进的类提升方案包括正变换模块、反转模块、逆变换模块,三个
模块中运算都是基于gf(28)域的运算。
[0039]
更进一步的,在正变换模块中,首先将明文图像转换为一维序列{x
i
},i=1,2,3,...,m
×
n,然后将序列{x
i
}按奇偶索引分为两个子序列{e
j
},{o
j
},e
j
=x
2j
‑1,o
j
=x
2j
,j=1,2,3,...,l,其中
[0040]
由子序列{e
j
}和序列{a
i
}获得序列{p
j
}为:
[0041]
p
j
=e
j
+a
i
,j=1,2,3,...,l
[0042]
将序列{p
j
}经过类感知器网络pln

1更新后,与子序列{o
j
}结合,获得序列{d
j
}为:
[0043]
d
j
=d
j
‑1+o
j
+pln

1(p
j
,p
j+1
),j=1,2,3,...,l
[0044]
其中d0=0,p
l+1
=0;
[0045]
将序列{d
j
}经过类感知器网络pln

2更新后,与序列{p
j
}结合,获得序列{s
j
}为:
[0046]
s
j
=p
j
+p
j
‑1+pln

2(d
j
‑1,d
j
),j=1,2,3,...,l
[0047]
其中d0=0,p0=0;
[0048]
将获得的序列{s
j
},{d
j
}合并成新的序列{r
i
},i=1,2,3,...,m
×
n,r
2j
‑1=s
j
,r
2j
=d
j
,j=1,2,3,...,l。
[0049]
更进一步的,在翻转模块中,将所述序列{r
i
},i=1,2,3,...,m
×
n,左右翻转得到一个新的序列{r'
i
},i=1,2,3,...,m
×
n。
[0050]
更进一步的,在逆变换模块中,将所述序列{r'
i
}按奇偶索引分为两个不同序列{s'
j
}和{d'
j
},s'
j
=r'
2j
‑1,d'
j
=r'
2j
,j=1,2,3,...l;
[0051]
将序列{d'
j
}经过类感知器网络pln

2更新后,与序列{s'
j
}结合,得到{s'
j
}序列为:
[0052]
s'
j
=s'
j

s'
j
‑1‑
pln

2(d'
j
‑1,d'
j
),j=1,2,3,...l
[0053]
d'0=0,s'0=0;
[0054]
将{s'
j
}经过类感知器网络pln

1更新后,与序列{d'
j
}结合,得到序列{o'
j
}为:
[0055]
o'
j
=d'
j

d'
j
‑1‑
pln

1(s'
j
,s'
j+1
),j=1,2,3,...l
[0056]
d'0=0,s'
l+1
=0;
[0057]
由序列{s'
j
}和序列{a
i
}得到序列{e'
j
}为:
[0058]
e'
j
=s'
j

a
i
,j=1,2,3,...l
[0059]
将{e'
j
}和{o'
j
}结合为新的序列{y
i
},i=1,2,...,m
×
n,y
2j
‑1=e'
j
,y
2j
=o'
j
,j=1,2,3,...,l。
[0060]
最后,将所得序列转换为大小为m
×
n的矩阵,即获得加密图像。
[0061]
经过本发明获得的加密图像,相比已有生成的密文图像的方案,具有更快的加密解密速度,具有较高的信息熵,从而难以获取原始图像的相关信息,同时具有较好的明文敏感性、密文敏感性及密钥敏感性。也可以抵抗各种攻击。
[0062]
本发明与已有的方法相比较,在以下方面存在优势:
[0063]
1、与传统的置换扩散结构相比较,本方案具有更快的加密解密速度,在只需要加密一轮的情况下,具有更高的信息熵和更好的加密效果;
[0064]
2、与原来类提升方案不同的是,本发明通过将类感知器网络作为类提升方案的预测和更新函数,使原来的线性函数变为线性与非线性函数相结合的复杂结构。并且类感知
器网络的参数与明文相关,同时具有自更新功能,可以做到每次运算各不相同,增大了图像加密的随机性和不可预测性,对图像加密的安全具有重要意义;
[0065]
3、混沌序列与类感知器网络所需要的参数与明文图像相关,可以做到不同图像生成的参数也不同,更大的提高了加密的随机性和安全性。
附图说明
[0066]
图1为类感知器网络结构图;
[0067]
图2为改进类提升方案原理图;
[0068]
图3为应用本发明方法的加解密对比图;
[0069]
图4为应用本发明方法的实例直方分析图;
[0070]
图5为lena原图与加密图像像素相关性比较图。
具体实施方式
[0071]
下面结合附图和具体实施例对本发明作进一步详细的描述:以此为例对本技术做进一步的描述说明。
[0072]
本发明首先利用has512函数生成明文图像的hash值,通过hash值生成超混沌系统所需的参数和类感知网络所需要的权重,其次将生成的混沌序列用洗牌算法混洗,最后将所获得的随机序列和明文图像带入到改进的类提升方案中获得最终的密文图像。解密过程只需将密文图像和密钥带入到改进的类提升方案中,即可无损的恢复出明文图像。
[0073]
本发明用到的混沌系统为超混沌系统。
[0074][0075]
式中i=1,2,3,4是关于时间t的导数,m,n,p,q,r分别为混沌系统的参数,当m=35,n=3,p=12,q=7,r=0.58时,称该系统为超混沌的。
[0076]
本发明用到的knuth

durstenfeld洗牌算法具体步骤为:
[0077]
步骤一:将长度为n的数组存贮在数组arr[]中。
[0078]
步骤二:生成随机数[1,n],将生成的随机数作为数组下标,输出为x。
[0079]
步骤三:将输出的x与arr[]数组中最尾元素互换。
[0080]
步骤四:生成一个随机数[1,n

1],将生成的随机数作为数组下标,输出为x'。
[0081]
步骤五:将输出的x'与arr[]数组中倒数第二个元素互换。
[0082]
重复以上步骤,直到n个数都被处理。
[0083]
本发明用到的类感知器网络,其加密过程以及权重更新的具体步骤如下:
[0084]
步骤一:输入信号x1,x2经过线性变换得到隐藏层的x'1,x'2[0085]
x'1=x1×
ω
11
+x2×
ω
21
[0086]
x'2=x1×
ω
12
+x2×
ω
22
[0087]
步骤二:隐藏层到输出层的权重由函数f(x)代替,且输出层的输出结果如下所示。
[0088]
y'1=f(x'1)
[0089]
y'2=f(x'2)
[0090]
其中f(x)=mod(x,16)。
[0091]
步骤三:通过s盒,计算得到输出信号y。
[0092]
y=s

box(y'1,y'2)
[0093]
步骤四:权重函数进行自动更新。
[0094]
ω
11
=ω
11
+mod(x1,2)
[0095]
ω
12
=ω
12
+mod(x2,2)
[0096]
ω
21
=ω
21
+mod(x'1,2)
[0097]
ω
22
=ω
22
+mod(x'2,2)
[0098]
其类感知器网络的初始权重由hash值生成。
[0099]
实施例1
[0100]
本发明的实施例是基于本发明技术方案进行实施的,本发明给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述实施例。实例中使用lena256
×
256图像,经过hash函数生成hash值后,经过处理得到超混沌系统的原始参数为x1=0.3750,x2=0.5313,x3=0.1875,x4=0.2500,类感知器网络的参数分别为,在pln

1中,w
11
=7,w
12
=7,w
21
=7,w
22
=6,在pln

2中步w
11
=2,w
12
=7,w
21
=5,w
22
=2。
[0101]
步骤1:将所得原始参数带入到超混沌系统中,生成4个长度为m
×
n+300的序列a1,a2,a3,a4,将每个序列前300个元素抛弃,对剩余数列进行以下处理。
[0102]
b1(i)=mod(abs(floor(a1(i)
×
10
10
)),256)
[0103]
b2(i)=mod(abs(floor(a2(i)
×
10
10
)),256)
[0104]
b3(i)=mod(abs(floor(a3(i)
×
10
10
)),256)
[0105]
b4(i)=mod(abs(floor(a4(i)
×
10
10
)),256)
[0106]
步骤2:使用a1,a2,a3,a4四个序列生成用于洗牌算法的随机数组aa1,aa2,aa3,aa4,并将b1,b2,b3,b4通过洗牌算法进行混洗。其中生成aa1,aa2,aa3,aa4算法如下所示。
[0107]
aa1(i)=mod(abs(floor(a1(i)
×
10
10
)),num

i+1)+1
[0108]
aa2(i)=mod(abs(floor(a2(i)
×
10
10
)),num

i+1)+1
[0109]
aa3(i)=mod(abs(floor(a3(i)
×
10
10
)),num

i+1)+1
[0110]
aa4(i)=mod(abs(floor(a4(i)
×
10
10
)),num

i+1)+1
[0111]
步骤3:将步骤2中用洗牌算法混洗后的序列b1,b2,b3,b4进行预处理,分别取b1,b2,b3,b4数组中第一个数为一组作为{a
i
}中前四个数,之后取b1,b2,b3,b4数组中第二个数为一组插入{a
i
}中,重复上述步骤直到{a
i
}中有m
×
n/2个数为止,生成所的序列{a
i
},i=1,2,3,...,m
×
n/2直接用于图像加密。
[0112]
步骤四:将所得序列{a
i
}和明文图像一起带入到改进的类提升方案中,生成最终的密文图像。
[0113]
本发明提出基于改进类提升方案的图像加密方法,根据将类感知器网络加入到改进类提升方案中,使该方案的不可预测性大大增强,能够获得较好的加密结果。本发明是在基于intel(r)core(tm)i5

9400cpu@2.90ghz2.90ghz,64位操作系统,基于x64的处理器的电脑上进行仿真,使用的编程语言为matlab 2019b,应用上述加密方法对图像处理后,通过图3

5表明本发明具有较好的加密效果。
[0114]
以上所述,仅为本发明创造较佳的具体实施方式,但本发明创造的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明创造披露的技术范围内,根据本发明创造的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明创造的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1