通过构造S-Boxes执行替换操作的图像加密方法和图像解密方法

文档序号:35464833发布日期:2023-09-16 03:41阅读:42来源:国知局
通过构造S-Boxes执行替换操作的图像加密方法和图像解密方法

本发明涉及信息安全,尤其涉及一种通过构造s-boxes执行替换操作的图像加密方法和图像解密方法。


背景技术:

1、随着多媒体技术的不断发展,数字图像克服了以往因数据量大而带来的存储及传输问题,它正在成为一种主流的信息表达方式。可不断发生的黑客事件以及网上盗版,严重制约着互联网应用的进一步发展。因而图像数据的保护越来越受到社会的普遍重视。

2、图像和视频加密是图像数据的保护的一种重要手段。现有技术存在大量的图像加密算法。基于混沌的图像加密方法是最常见的图像加密方法。该方法的基本思想是利用混沌系统产生的伪随机数作为扩散过程中的异或或模运算的操作数,或应用混沌系统构造置乱算法,s-box,或像素替换算法。非线性置乱变换是图像加密的另一种方法,如arnold变换,元胞自动机,骑士巡游,拉丁方,gray码,hilbert曲线、fibonacci变换、幻方和仿射变换。非线性置乱变换常用于设计混淆阶段的空间位置置乱算法,或生成伪随机数。

3、但是,本发明人在实施本发明时发现,采用上述的每种图像加密算法对图像进行加密无法满足不同安全性需求,选择性较为单一,而且加密后仍然存在一定的安全隐患。因此,如何提供一种全新的图像加密方法,实现提升图像加密的安全性以及在提高图像加密的安全性方面会有更多的选择,成为一个亟待解决的问题。


技术实现思路

1、本发明的目的在于提供一种通过构造s-boxes执行替换操作的图像加密方法和图像解密方法,其能够有效解决现有技术中所存在的上述技术问题。

2、为了实现上述目的,本发明实施例提供了一种通过构造s-boxes执行替换操作的图像加密方法,包括步骤:

3、s1、接收包括外部密钥和原图像的输入信息;其中,原图像是大小为m×n的明文图像;

4、s2、初始化、生成密钥流以及构造s-boxes;具体包括:

5、s21、使用输入的外部密钥和原图像计算混沌映射sine-chebyshev map的初始状态z和系统参数az,并生成两个长度为m序列km1、km2的密钥流和两个长度为n序列kn1、kn2的密钥流,其中m和n表示原图像的行数和列数;

6、s22、使用输入的外部密钥和原图像计算混沌映射logistic-sine map的初始状态x和系统参数ax,使用混沌映射logistic-sine map和lnbt并基于初始状态x和系统参数ax构造多个s-box;

7、s3、基于构造的s-boxes执行包括行替换、列替换中的至少一项操作,其中:

8、行替换是根据所述密钥流中的km1和km2对输入的图像的不同行随机选择不同的s-box,然后用选择的s-box替换对应行的像素值,得到行替换后的图像;

9、列替换是根据所述密钥流中的kn1和kn2对输入的图像的不同列随机选择不同的s-box,然后用选择的s-box替换对应列的像素值,得到列替换后的图像;

10、其中,所述操作中的首项操作所输入的图像为所述原图像,所述操作中除所述首项操作外的其他项操作所输入的图像为经前一项操作所得到的图像,经过所述操作中的最后一项操作所得到的图像为加密后的密文图像;

11、s4、将加密后的密文图像输出。

12、较佳地,在所述步骤s3中,还执行包括行扩散、列扩散中的至少一项操作,其中:

13、行扩散是根据所述密钥流中的km1和km2并基于预设公式计算输入的图像的每行的新像素值,从而得到行扩散后的图像;

14、列扩散是根据所述密钥流中的kn1和kn2并基于预设公式计算输入的图像的每列的新像素值,从而得到列扩散后的图像。

15、较佳地,通过以下步骤计算{x,ax,z,az}中的初始状态和系统参数:

16、计算属性参数和

17、将t1、t2转换为二进制字符串,并取小数点后面的50位,从而得到两个属性键u={u1u2…u50}和v={v1v2…v50};

18、计算

19、通过下面公式计算{x,ax,z,az},并保留到小数点后14位:

20、

21、

22、

23、

24、较佳地,所述步骤s21具体包括:

25、s211、输入az和z,通过下面公式计算2m+2n+l个状态值{z1,z2,…,z2m+2n+l}:

26、zn+1=(az sin(πzn)+(4-az)cos(barccos(zn))/4) mod 1

27、s212、通过下面公式计算km1、km2、kn1和kn2:

28、

29、

30、

31、

32、较佳地,所述lnbt是应用nbt构造的从n到n的双射,称为局部负整数基变换,nbt表示为负整数基变换,如下面公式所示:

33、

34、其中x=(anan-1…a0)-b;用(anan-1…a0)-b表示-b进制整数,其中b是自然数且b>1,自然数的子集{a,a+1,…,b}用表示;

35、lnbt如下面公式所示:

36、

37、其中当q=p时l(x;b,μ,p)是上的双射,lnbt也是从到的双射,且l(x;b,μ,p)的定义域是

38、通过算法1并使用y=l(x;b,μ,p)表示lnbt的计算过程:

39、其中,算法1如下:

40、

41、算法1中的符号表示不小于x的最小整数;

42、其中,lnbt的最小变换周期满足:

43、(1)l(x;b,μ,p)的最小转变周期不大于bμ;

44、(2)如果b=2k且p是奇数,则最小变换周期为bμ;

45、(3)如果b是偶数并且p=1,则最小变换周期也是bμ。

46、较佳地,在所述步骤s22中,通过以下算法3或算法4并使用sbox=subbox(x,ax,λ,b,p)来表示多个s-box的构建过程:

47、其中,算法3如下:

48、

49、其中,算法4如下:

50、

51、其中λ为原图像的灰度级,{b,p}是作为输入信息的lnbt的参数;sbox(i,j)表示第i个s-box中的第j个值,sbox(i,:)表示sbox的第i行,即第i个s-box,sbox(1,:)为预先构建的初始s-box。

52、较佳地,在所述步骤s3中,所述列替换操作过程如下:

53、首先用公式(17):

54、

55、为第j列计算一个索引值v,然后使用公式(18):

56、g(i,j)=sbox(v,f(i,j)+1)        (18)

57、替换第j列像素f(i,j)的灰度值,其中i=1,2,…,m;

58、所述行替换操作也通过上述公式(17)和公式(18)实现,具体实现过程

59、为首先对前一项操作为列操作后所输入的图像进行转置,然后将上述公式(17)的参数kn1和kn2更改为km1和km2后,再通过公式(17)和公式(18)进行替换操作,所述列操作包括列置乱、列替换或列扩散。

60、较佳地,在所述步骤s3中,所述列扩散操作过程如下:

61、假设g是输入的图像,首先使用公式(22):

62、

63、从上到下计算每列像素的灰度值,从而获得新图像ξ,然后使用公式(23):

64、

65、自底向上计算新的灰度值h(i,j),得到新图像h;其中ξ(0,j)=kn1(j),h(n+1,j)=kn2(j),j=1,2,…,m,m和n分别为输入的图像的行数与列数;

66、所述行扩散操作也通过上述公式(22)和公式(23)实现,具体实现过程为首先对前一项操作为列操作后输入的图像进行转置,然后用公式(22)和公式(23)计算新像素值,在计算过程中,需要将公式(22)和公式(23)中的kn1和kn2换成km1和km2,且ξ(0,j)=km1(j),h(m+1,j)=km2(j)。

67、本发明实施例还公开了一种通过构造逆s-boxes执行替换操作的图像加密方法,包括步骤:

68、s1、接收包括密文图像、外部密钥和属性密钥的输入信息;所述密文图像是大小为m×n的密文图像;

69、s2、初始化、生成密钥流以及构造逆s-boxes;具体包括:

70、s21、使用输入的外部密钥和属性密钥计算混沌映射sine-chebyshev map的初始状态z和系统参数az,并生成两个长度为m序列km1、km2的密钥流和两个长度为n序列kn1、kn2的密钥流,其中m和n表示密文图像的行数和列数;

71、s22、使用输入的外部密钥和属性密钥计算混沌映射logistic-sine map的初始状态x和系统参数ax,使用混沌映射logistic-sine map和lnbt并基于初始状态x和系统参数ax构造多个逆s-box;

72、s3、基于构造的逆s-boxes执行包括行替换、列替换中的至少一项操作,得到解密后的原图像,其中:

73、行替换是根据所述密钥流中的km1和km2对输入的图像的不同行随机选择不同的逆s-box,然后用选择的逆s-box替换对应行的像素值,得到行替换后的图像;

74、列替换是根据所述密钥流中的kn1和kn2对输入的图像的不同列随机选择不同的逆s-box,然后用选择的逆s-box替换对应列的像素值,得到列替换后的图像;

75、其中,所述操作中的首项操作所输入的图像为所述密文图像,所述操作中除所述首项操作外的其他项操作所输入的图像为经前一项操作所得到的图像,经过所述操作中的最后一项操作所得到的图像为解密后的原图像;

76、s4、将解密后的原图像输出。

77、与现有技术相比,本发明实施例提供的一种通过构造s-boxes执行替换操作的图像加密方法和图像解密方法,具有如下技术效果:

78、(1)利用局部负整数基变换(local negative base transform,lnbt)和混沌映射构造多个s-box(或逆s-box),可以对每行、每列随机选择不同的s-box(或逆s-box),从而实现像素值的替换操作。所构建的s-box(或逆s-box)不仅依赖于外部密钥和明文图像,而且还依赖于参数b、μ和p,替换过程是动态和随机的,能完全消除相邻像素的相关性。另外,每列每行的s-box(或逆s-box)的选择也依赖明文图像、外部密钥以及lnbt,因此替换操作是动态的,能够有效提升图像加密的安全性。

79、(2)能够根据安全性不同要求选择执行行替换(row substitution)、列替换(column substitution)中的至少一项操作进行图像加密处理,因此能够满足在提高图像加密的安全性方面会有更多的选择。

80、(3)在选择执行行替换(row substitution)、列替换(column substitution)中的至少一项操作的基础上,进一步增加选择进行包括行扩散(row diffusion)、列扩散(column diffusion)中的至少一项操作进行图像加密处理,从而进一步提高图像加密的安全性和满足在提高图像加密的安全性方面的不同选择的需求。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1