一种基于混沌映射和混沌S盒代换的图像加密方法

文档序号:25314998发布日期:2021-06-04 16:18阅读:91来源:国知局
一种基于混沌映射和混沌S盒代换的图像加密方法
一种基于混沌映射和混沌s盒代换的图像加密方法
技术领域
1.本发明涉及图像加密技术领域,特别指一种基于混沌映射和混沌s盒代换的图像加密方法。


背景技术:

2.随着互联网和多媒体技术的发展,数字图像的传播和影响范围不断延伸,每天都有大量的数字图像在互联网上传输、共享以及存储。如何确保涉及如军事、金融、政治、医疗等敏感信息的数字图像在传输和存储过程的安全性,一直是信息安全中的热门研究内容,保护数字图像最直接的方式就是进行加密。但由于数字图像不同于文本信息,具有相关性强、数据量大、冗余度高等特点,用于文本加密的rsa、数据标准加密(des)、高级加密标准(aes)、国际数据加密算法(idea)等加密算法不适合数字图像的加密,使得数字图像在传输和存储过程中存在极大的安全隐患。
3.因此,如何提供一种基于混沌映射和混沌s盒代换的图像加密方法,实现提升图像加密的安全性,成为一个亟待解决的问题。


技术实现要素:

4.本发明要解决的技术问题,在于提供一种基于混沌映射和混沌s盒代换的图像加密方法,实现提升图像加密的安全性。
5.本发明是这样实现的:一种基于混沌映射和混沌s盒代换的图像加密方法,包括如下步骤:
6.步骤s10、获取彩色图像文件,对所述彩色图像文件进行哈希计算得到哈希值作为系统密钥,基于所述哈希值计算系统参数p;
7.步骤s20、基于所述哈希值生成四维超混沌映射的四个初始值,基于各所述初始值得到四组混沌伪随机序列;
8.步骤s30、基于所述混沌伪随机序列以及系统参数p提取长度为256的序列w
z
,并利用所述序列w
z
以及使用aes算法的s盒生成混沌s盒;
9.步骤s40、对所述彩色图像文件进行arnold置乱得到置乱图像i
s
,利用所述混沌s盒对置乱图像i
s
进行字节代换得到代换图像i
su

10.步骤s50、利用所述混沌伪随机序列以及系统参数p,对所述代换图像i
su
中rgb的三个分量进行图像扩散加密得到三个密文数据,基于各所述密文数据得到加密图像i
enc

11.进一步地,所述步骤s10具体为:
12.获取大小为m
×
n的rgb格式的彩色明文图像文件,利用哈希函数sha

256对所述彩色明文图像文件进行哈希计算得到256位的哈希值,将所述哈希值进行32等分并存储为矩阵k,对所述矩阵k求和得到系统参数p:
13.p=sum(k(1:32))。
14.进一步地,所述步骤s20具体包括:
15.步骤s21、将所述哈希值均分为8个子哈希值k(1:4)、k(5:8)、k(9:12)、k(13:16)、k(17:20)、k(21:24)、k(25:28)以及k(29:32);
16.步骤s22、基于各所述子哈希值计算得到四维超混沌映射的四个初始值x0、y0、z0、w0:
17.x0=sum(k(1:4)/mean(k(5:8)))/4;
18.y0=(sum(k(9:12))

max(k(13:16)))/4/256;
19.z0=max(bitxor(k(17:20),k(21:24)))/256;
20.w0=mean(bitxor(k(25:28),k(29:32)))/256;
21.步骤s23、将各所述初始值代入四维超混沌映射进行迭代m
×
n+10000次,得到四组混沌伪随机序列x={x
n
}、y={y
n
}、z={z
n
}、w={w
n
}。
22.进一步地,所述步骤s20中,所述四维超混沌映射的公式为:
[0023][0024]
其中x
n
、y
n
、z
n
、w
n
均表示系统状态值;a、b、c、h、k、e均表示映射系数。
[0025]
进一步地,所述步骤s30具体包括:
[0026]
步骤s31、将所述混沌伪随机序列w={w
n
}迭代的前3
×
p个数据舍弃后,按序提取长度为256的序列w
z

[0027]
步骤s32、将所述序列w
z
向左移4位,并对256取模计算,最后进行降序排序,获取排序后的索引序列w
zb

[0028]
步骤s33、通过使用aes算法的s盒对所述排序索引序列w
zb
进行字节代换后,得到混沌s盒。
[0029]
进一步地,所述步骤s30中,所述混沌s盒的计算公式为:
[0030][0031]
其中sort()表示排序函数;sub_bytes()表示字节代换函数;s_box表示生成的混沌s盒;aes_s_box表示aes算法的s盒;'descend'表示使用降序排列。
[0032]
进一步地,所述步骤s40中,所述arnold置乱的公式为:
[0033][0034]
其中a
*
、b
*
均表示置乱系数,且a
*
=3,b
*
=5;x
n
、y
n
均表示系统状态值;置乱次数n=mod(4
×
p,64)+50。
[0035]
进一步地,所述步骤s50具体包括:
[0036]
步骤s51、将所述混沌伪随机序列x={x
n
}、y={y
n
}、z={z
n
}分别舍弃前p个迭代数据后,分别取m
×
n个迭代数据组成序列x
z
、y
z
、z
z

[0037]
步骤s52、将所述序列x
z
、y
z
、z
z
依次向左移8位并其取小数部分值,得到序列x
zb
、y
zb
、z
zb

[0038]
x
zb
=108×
x
z

round(108×
x
zb
);
[0039]
y
zb
=108×
y
z

round(108×
y
zb
);
[0040]
z
zb
=108×
z
z

round(108×
z
zb
);
[0041]
步骤s53、将所述序列x
zb
、y
zb
、z
zb
左移5位对256取模计算,得到用于加密的序列encrypt
x
、encrypt
y
、encrypt
z

[0042]
encrypt
x
=uint8(mod(floor(105×
abs(x
zb
)),256));
[0043]
encrypt
y
=uint8(mod(floor(105×
abs(y
zb
)),256));
[0044]
encrypt
z
=uint8(mod(floor(105×
abs(z
zb
)),256));
[0045]
步骤s54、利用所述序列encrypt
x
、encrypt
y
、encrypt
z
分别对代换图像i
su
中rgb的三个分量进行加密,得到密文数据enc
r
、enc
g
、enc
b

[0046][0047][0048][0049]
其中i
sur
、i
sug
、i
sub
分别表示代换图像i
su
中rgb的三个颜色分量;
[0050]
步骤s55、合并所述密文数据enc
r
、enc
g
、enc
b
得到加密图像i
enc

[0051]
本发明的优点在于:
[0052]
1、通过对彩色图像文件进行哈希计算得到哈希值,基于哈希值得到系统参数p,基于哈希值生成四维超混沌映射的四个初始值,即将哈希值作为系统密钥,增强了系统密钥与彩色图像文件的关联性,且由于哈希计算具有单向特性,能有效防止攻击者使用明文、灰度统计方法进行破解,进而极大的提升了图像加密的安全性。
[0053]
2、由于高维混沌系统具有复杂性、不可预测性和初值敏感性,而混沌运动是一种具有复杂动力学特征的行为,具有对初始值的极端敏感性、遍历性、非周期性等特点,通过结合四维超混沌映射和混沌s盒对彩色图像进行加密,进一步提升了图像加密的安全性,保障图像传输和存储的安全,提高攻击者的破解成本。
附图说明
[0054]
下面参照附图结合实施例对本发明作进一步的说明。
[0055]
图1是本发明一种基于混沌映射和混沌s盒代换的图像加密方法的流程图。
[0056]
图2是本发明的加密流程示意图。
[0057]
图3是本发明的解密流程示意图。
[0058]
图4是本发明哈希值映射为系统参数的示意图。
[0059]
图5是本发明s盒字节代换的示意图。
[0060]
图6是本发明混沌s盒的示意图。
[0061]
图7是本发明加密过程的效果示意图。
[0062]
图8是本发明解密过程的效果示意图。
具体实施方式
[0063]
本申请实施例中的技术方案,总体思路如下:通过对彩色图像文件进行哈希计算得到哈希值,基于哈希值得到系统参数p,基于哈希值生成四维超混沌映射的四个初始值,即将哈希值作为系统密钥,再结合四维超混沌映射和混沌s盒对彩色图像进行加密,以提升图像加密的安全性。
[0064]
请参照图1至图8所示,本发明一种基于混沌映射和混沌s盒代换的图像加密方法的较佳实施例之一,包括如下步骤:
[0065]
步骤s10、获取彩色图像文件,对所述彩色图像文件进行哈希计算得到哈希值作为系统密钥,基于所述哈希值计算系统参数p;
[0066]
步骤s20、基于所述哈希值生成四维超混沌映射(four

dimensional hyper

chaos mapping)的四个初始值,基于各所述初始值得到四组混沌伪随机序列;
[0067]
步骤s30、基于所述混沌伪随机序列以及系统参数p提取长度为256的序列w
z
,并利用所述序列w
z
以及使用aes算法的s盒生成混沌s盒;
[0068]
步骤s40、对所述彩色图像文件进行arnold置乱得到置乱图像i
s
,利用所述混沌s盒对置乱图像i
s
进行字节代换得到代换图像i
su

[0069]
步骤s50、利用所述混沌伪随机序列以及系统参数p,对所述代换图像i
su
中rgb的三个分量进行图像扩散加密得到三个密文数据,基于各所述密文数据得到加密图像i
enc

[0070]
对所述加密图像i
enc
的解密过程为加密的逆过程,逆字节代换用到的混沌s盒inv_s_box由混沌s盒s_box生成。
[0071]
所述步骤s10具体为:
[0072]
获取大小为m
×
n的rgb格式的彩色明文图像文件(24真彩色图片),利用哈希函数sha

256对所述彩色明文图像文件进行哈希计算得到256位的哈希值,将所述哈希值进行32等分并存储为矩阵k,对所述矩阵k求和得到系统参数p:
[0073]
p=sum(k(1:32))。
[0074]
所述步骤s20具体包括:
[0075]
步骤s21、将所述哈希值均分为8个子哈希值k(1:4)、k(5:8)、k(9:12)、k(13:16)、k(17:20)、k(21:24)、k(25:28)以及k(29:32);
[0076]
步骤s22、基于各所述子哈希值计算得到四维超混沌映射的四个初始值x0、y0、z0、w0:
[0077]
x0=sum(k(1:4)/mean(k(5:8)))/4;
[0078]
y0=(sum(k(9:12))

max(k(13:16)))/4/256;
[0079]
z0=max(bitxor(k(17:20),k(21:24)))/256;
[0080]
w0=mean(bitxor(k(25:28),k(29:32)))/256;
[0081]
步骤s23、将各所述初始值代入四维超混沌映射进行迭代m
×
n+10000次,得到四组混沌伪随机序列x={x
n
}、y={y
n
}、z={z
n
}、w={w
n
}。
[0082]
所述步骤s20中,所述四维超混沌映射的公式为:
[0083][0084]
其中x
n
、y
n
、z
n
、w
n
均表示系统状态值;a、b、c、h、k、e均表示映射系数,当a=20、b=1、c=10.6、h=2.8、k=3.7、e=0.45时呈现超混沌特性。
[0085]
所述步骤s30具体包括:
[0086]
步骤s31、将所述混沌伪随机序列w={w
n
}迭代的前3
×
p个数据舍弃后,按序提取长度为256的序列w
z

[0087]
步骤s32、将所述序列w
z
向左移4位,并对256取模计算,最后进行降序排序,获取排序后的索引序列w
zb

[0088]
步骤s33、通过使用aes算法的s盒对所述排序索引序列w
zb
进行字节代换后,得到混沌s盒。
[0089]
所述步骤s30中,所述混沌s盒的计算公式为:
[0090][0091]
其中sort()表示排序函数;sub_bytes()表示字节代换函数;s_box表示生成的混沌s盒;aes_s_box表示aes算法的s盒;'descend'表示使用降序排列。
[0092]
混沌运动是一种具有复杂动力学特征的行为,具有许多特性,如对初始值的极端敏感性、遍历性、非周期性等特点。这些特点与密码学具有相似性,使得在图像加密技术领域结合混沌理论比传统的加密方式更优秀,成为解决数字图像加密问题的新方向。简单混沌系统虽然相比高维混沌系统有计算方便、时间开销小等优点,但是其密钥空间较小、序列复杂度不高,导致加密系统安全性受限。本申请采用的高维混沌系统具有两个或者以上的正李雅普诺夫(lyapunov)指数,其非线性行为更复杂也更难预测,相比使用简单混沌系统,可以提高加密系统的安全性。
[0093]
所述步骤s40中,所述arnold置乱的公式为:
[0094][0095]
其中a
*
、b
*
均表示置乱系数,且a
*
=3,b
*
=5;x
n
、y
n
均表示系统状态值;置乱次数n=mod(4
×
p,64)+50。
[0096]
所述步骤s50具体包括:
[0097]
步骤s51、将所述混沌伪随机序列x={x
n
}、y={y
n
}、z={z
n
}分别舍弃前p个迭代数据后,分别取m
×
n个迭代数据组成序列x
z
、y
z
、z
z

[0098]
步骤s52、将所述序列x
z
、y
z
、z
z
依次向左移8位并其取小数部分值,得到序列x
zb
、y
zb
、z
zb

[0099]
x
zb
=108×
x
z

round(108×
x
zb
);
[0100]
y
zb
=108×
y
z

round(108×
y
zb
);
[0101]
z
zb
=108×
z
z

round(108×
z
zb
);
[0102]
步骤s53、将所述序列x
zb
、y
zb
、z
zb
左移5位对256取模计算,得到用于加密的序列encrypt
x
、encrypt
y
、encrypt
z

[0103]
encrypt
x
=uint8(mod(floor(105×
abs(x
zb
)),256));
[0104]
encrypt
y
=uint8(mod(floor(105×
abs(y
zb
)),256));
[0105]
encrypt
z
=uint8(mod(floor(105×
abs(z
zb
)),256));
[0106]
步骤s54、利用所述序列encrypt
x
、encrypt
y
、encrypt
z
分别对代换图像i
su
中rgb的三个分量进行加密,得到密文数据enc
r
、enc
g
、enc
b

[0107][0108][0109][0110]
其中i
sur
、i
sug
、i
sub
分别表示代换图像i
su
中rgb的三个颜色分量;
[0111]
步骤s55、合并所述密文数据enc
r
、enc
g
、enc
b
得到加密图像i
enc

[0112]
本发明一种基于混沌映射和混沌s盒代换的图像加密方法的较佳实施例之二,包括如下步骤:
[0113]
步骤s10、获取大小为512
×
512的rgb格式的彩色明文图像文件,利用哈希函数sha

256对所述彩色明文图像文件进行哈希计算得到256位的哈希值c056da23302d2fb0d946e7ffa11e0d94618224193ff6e2f78ef8097bb8a3569b,将所述哈希值进行32等分并存储为矩阵k,对所述矩阵k求和得到系统参数p=3957;
[0114]
步骤s20、基于所述哈希值生成四维超混沌映射的四个初始值,基于各所述初始值得到四组混沌伪随机序列;
[0115]
步骤s30、基于所述混沌伪随机序列以及系统参数p提取长度为256的序列w
z
,并利用所述序列w
z
以及使用aes算法的s盒生成混沌s盒;
[0116]
步骤s40、对所述彩色图像文件进行arnold置乱操作,得到置乱图像i
s
,再利用所述混沌s盒对置乱图像i
s
进行字节代换得到代换图像i
su

[0117]
步骤s50、利用所述混沌伪随机序列以及系统参数p,对所述代换图像i
su
中rgb的三个分量进行图像扩散加密得到三个密文数据,基于各所述密文数据得到加密图像i
enc

[0118]
所述步骤s20具体包括:
[0119]
步骤s21、将所述哈希值均分为8个子哈希值k(1:4)、k(5:8)、k(9:12)、k(13:16)、k(17:20)、k(21:24)、k(25:28)以及k(29:32);
[0120]
步骤s22、基于各所述子哈希值计算得到四维超混沌映射的四个初始值x0、y0、z0、w0:
[0121]
x0=sum(k(1:4)/mean(k(5:8)))/4;
[0122]
y0=(sum(k(9:12))

max(k(13:16)))/4/256;
[0123]
z0=max(bitxor(k(17:20),k(21:24)))/256;
[0124]
w0=mean(bitxor(k(25:28),k(29:32)))/256;
[0125]
计算得到x0=0.829741379310345、y0=0.0830078125、z0=0.902343750、w0=
0.6630859375;
[0126]
步骤s23、将各所述初始值代入四维超混沌映射进行迭代m
×
n+10000次,得到四组混沌伪随机序列x={x
n
}、y={y
n
}、z={z
n
}、w={w
n
}。
[0127]
所述步骤s20中,所述四维超混沌映射的公式为:
[0128][0129]
其中x
n
、y
n
、z
n
、w
n
均表示系统状态值;a、b、c、h、k、e均表示映射系数。
[0130]
所述步骤s30具体包括:
[0131]
步骤s31、将所述混沌伪随机序列w={w
n
}迭代的前3
×
p个数据舍弃后,按序提取长度为256的序列w
z

[0132]
步骤s32、将所述序列w
z
向左移4位,并对256取模计算,最后进行降序排序,获取排序后的索引序列w
zb

[0133]
步骤s33、通过使用aes算法的s盒对所述排序索引序列w
zb
进行字节代换后,得到混沌s盒。
[0134]
字节代换过程如下:
[0135]
设一个待替换的4*4矩阵(数据范围0

255),矩阵内数值以十六进制表示,首位代表x位置,后者为y位置,找到s盒中对应位置数值并进行替换。
[0136]
所述步骤s30中,所述混沌s盒的计算公式为:
[0137][0138]
其中sort()表示排序函数;sub_bytes()表示字节代换函数;s_box表示生成的混沌s盒;aes_s_box表示aes算法的s盒;'descend'表示使用降序排列。
[0139]
所述步骤s40中,所述arnold置乱的公式为:
[0140][0141]
其中a
*
、b
*
均表示置乱系数,且a
*
=3,b
*
=5;x
n
、y
n
均表示系统状态值;置乱次数n=mod(4
×
p,64)+50。
[0142]
所述步骤s50具体包括:
[0143]
步骤s51、将所述混沌伪随机序列x={x
n
}、y={y
n
}、z={z
n
}分别舍弃前p个迭代数据后,分别取m
×
n个迭代数据组成序列x
z
、y
z
、z
z

[0144]
步骤s52、将所述序列x
z
、y
z
、z
z
依次向左移8位并其取小数部分值,得到序列x
zb
、y
zb
、z
zb

[0145]
x
zb
=108×
x
z

round(108×
x
zb
);
[0146]
y
zb
=108×
y
z

round(108×
y
zb
);
[0147]
z
zb
=108×
z
z

round(108×
z
zb
);
[0148]
步骤s53、将所述序列x
zb
、y
zb
、z
zb
左移5位对256取模计算,得到用于加密的序列encrypt
x
、encrypt
y
、encrypt
z

[0149]
encrypt
x
=uint8(mod(floor(105×
abs(x
zb
)),256));
[0150]
encrypt
y
=uint8(mod(floor(105×
abs(y
zb
)),256));
[0151]
encrypt
z
=uint8(mod(floor(105×
abs(z
zb
)),256));
[0152]
步骤s54、利用所述序列encrypt
x
、encrypt
y
、encrypt
z
分别对代换图像i
su
中rgb的三个分量进行加密,得到密文数据enc
r
、enc
g
、enc
b

[0153][0154][0155][0156]
其中i
sur
、i
sug
、i
sub
分别表示代换图像i
su
中rgb的三个颜色分量;
[0157]
步骤s55、合并所述密文数据enc
r
、enc
g
、enc
b
得到加密图像i
enc

[0158]
综上所述,本发明的优点在于:
[0159]
1、通过对彩色图像文件进行哈希计算得到哈希值,基于哈希值得到系统参数p,基于哈希值生成四维超混沌映射的四个初始值,即将哈希值作为系统密钥,增强了系统密钥与彩色图像文件的关联性,且由于哈希计算具有单向特性,能有效防止攻击者使用明文、灰度统计方法进行破解,进而极大的提升了图像加密的安全性。
[0160]
2、由于高维混沌系统具有复杂性、不可预测性和初值敏感性,而混沌运动是一种具有复杂动力学特征的行为,具有对初始值的极端敏感性、遍历性、非周期性等特点,通过结合四维超混沌映射和混沌s盒对彩色图像进行加密,进一步提升了图像加密的安全性,保障图像传输和存储的安全,提高攻击者的破解成本。
[0161]
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1