基于四维超混沌系统的图像加密方法、介质、设备及终端
技术领域
本发明属于图像处理
技术领域
,尤其涉及一种基于四维超混沌系统的图像加密方法、介质、设备及终端。背景技术
目前,数字图像是最流行的多媒体形式之一,为了实现数字图像保密,实际操作中一般先将二维图像转换成一维数据,再采用加密算法进行加密。传统的数字图像加密算法按加密思路主要分为以下几类:基于空间域的像素置乱、基于变换域的加密、基于秘密分割与秘密共享的加密、基于神经网络和元胞自动机的加密、基于盲源分离的加密。
传统的图像加密技术是一种基于像素置乱的加密算法,一般密钥和算法不能有效地分开。近年发展起来的基于混沌动力学系统的加密技术是一种密码加密技术,有把图像作为普通数据流的局限性。目前,混沌加密技术的研究大都基于一维和二维混沌系统。在基于混沌的图像加密方法中,有的利用混沌系统产生伪随机序列,进行序列密码形式的加密;有些利用混沌的遍历性,对产生的伪随机序列作处理,得到像素置乱后的位置,然后对像素位置进行置乱;有些利用一些混沌计算表达式可逆的特点,将像素值代入混沌计算式以进行像素的代换和扩散。常用于图像加密的混沌系统有:Logistic混沌系统、Henon混沌系统、Lorenz混沌系统、Chen混沌系统、Rossler混沌系统等。
通过上述分析,现有技术存在的问题及缺陷为:传统加密算法以及低维混沌系统的数字图像加密算法逐渐暴露出密钥空间小、安全性不高等问题。
解决以上问题及缺陷的难度为:目前的混沌加密主要是低维的混沌系统并且只拥有一个大于零的李氏指数,如何在系统状态变量个数尽可能少而正性李氏指数又尽可能多的条件下,寻找到非线性形式简单的系统,是第一个难度。传统的算法例如像素位置的置乱或者代换仍然拥有原像素的某些特征,这在加密中是非常不好的,可以利用这些像素点进行解密,而找到一种能够很好的打乱像素点的算法是第二个难度。传统的加密算法密钥空间小,密钥的位数越长,密钥空间就大,但是密钥的位数受制于算法。而混沌加密的密钥可以自己定义任意的实数,由于实数是稠密的,所以密钥空间的理论大小为无限大,现实中即为计算机所能识别的最大浮点数的位数。
解决以上问题及缺陷的意义为:1.有学者指出低维的混沌系统保密性是不够的,因此研究基于高维混沌系统乃至超混沌系统的图像加密技术是很有意义的。2.若算法能将像素点的所有特征均抹除,可以说想要解出原图像几乎是不可能的。安全性大大提升。
发明内容
针对现有技术存在的问题,本发明提供了一种基于四维超混沌系统的图像加密方法、介质、设备及终端。
本发明是这样实现的,一种基于四维超混沌系统的图像加密方法,所述基于四维超混沌系统的图像加密方法,包括:
步骤一,提取图像中R,G,B三个通道上的矩阵大小为MxNx3,将这个三维矩阵合并为一个3M x N的二维矩阵记作P1;
步骤二,将P1转化为一行矩阵同时将此行矩阵转化为二进制矩阵P2;
步骤三,输入初始密钥ko;使用龙格库塔法解微分方程组,使用不同的自变量值得出3M x N个解;产生四条混沌序列所组成的矩阵记作X;
步骤四,将四条混沌序列进行处理:
步骤五,将P2中的每一行二进制数进行扰乱,具体做法为将p3(i,:)中的每一个元素按顺时针移动H1(i)个单位;
步骤六,把P3中的每两列进行交换记为p4并将p4转化为一行3M x N列的十进制矩阵,记为p5;增加算法的复杂度,将传统加密算法的像素位置的置换融入本算法。
步骤七,将p5(1:MxN),p5(MxN+1:2xMxN),p5(2xMxN+1:3xMxN)分别与x1,y1,z1进行异或运算并还原为M x N的矩阵记为p6,p7,p8;
步骤八,将三个二维M x N的矩阵p6,p7,p8合并为一个M x N x 3的三维矩阵,记为p9。
步骤一-步骤四为准备工作,将原图矩阵以及加密矩阵得出并且处理成为行向量能更好的进行下一步操作。步骤五以一个像素点为例子,将它转化为二进制后并且顺时针移动原像素点的值相比于加密后的像素点的值几乎没有关联,可以阻挡大部分的解密方式。步骤六和步骤七增加算法的复杂度,将传统加密算法的像素位置的置换融入本算法。
进一步,所述步骤三中,龙格库塔法解微分方程组为:
进一步,所述步骤四中,四条混沌序列做如下处理如下:
进一步,所述步骤八中,将矩阵p9转化为unit8格式后输出为.jpg格式即为最终加密图片。
本发明的另一目的在于提供一种接收用户输入程序存储介质,所存储的计算机程序使电子设备执行所述基于四维超混沌系统的图像加密方法包括下列步骤:
步骤一,提取图像中R,G,B三个通道上的矩阵大小为MxNx3,将这个三维矩阵合并为一个3M x N的二维矩阵记作P1;
步骤二,将P1转化为一行矩阵同时将此行矩阵转化为二进制矩阵P2;
步骤三,输入初始密钥ko;使用龙格库塔法解微分方程组,使用不同的自变量值得出3M x N个解;产生四条混沌序列所组成的矩阵记作X;
步骤四,将四条混沌序列进行处理:
步骤五,将P2中的每一行二进制数进行扰乱,具体做法为将p3(i,:)中的每一个元素按顺时针移动H1(i)个单位;
步骤六,把P3中的每两列进行交换记为p4并将p4转化为一行3M x N列的十进制矩阵,记为p5;
步骤七,将p5(1:MxN),p5(MxN+1:2xMxN),p5(2xMxN+1:3xMxN)分别与x1,y1,z1进行异或运算并还原为M x N的矩阵记为p6,p7,p8;
步骤八,将三个二维M x N的矩阵p6,p7,p8合并为一个M x N x 3的三维矩阵,记为p9。
本发明的另一目的在于提供一种存储在计算机可读介质上的计算机程序产品,包括计算机可读程序,供于电子装置上执行时,提供用户输入接口以实施所述的基于四维超混沌系统的图像加密方法。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:近年来,现代网络技术的发展势态迅猛,图像加密技术也飞速发展,基于传统加密算法以及低维混沌系统的数字图像加密算法逐渐暴露出密钥空间小、安全性不高等问题。为此,本发明在三维Lorenz系统的基础上,通过增加变量w使其成为四维超混沌Lorenz系统,针对该系统,Lyapunov指数的计算结果和系统运动轨迹的仿真结果验证了系统的超混沌性。对于该系统,提出了基于混沌序列的交换以及异或算法来对图像进行加密。此算法的安全性分析和测试结果表明,新算法对密钥非常敏感,具有较好的扩散性及安全性,能抵抗蛮力攻击、已知明文攻击和选择明文攻击。
附图说明
图1是本发明实施例提供的基于四维超混沌系统的图像加密方法流程图。
图2是本发明实施例提供的x-t平面图。
图3是本发明实施例提供的y-t平面图。
图4是本发明实施例提供的z-t平面图。
图5是本发明实施例提供的w-t平面图。
图6是本发明实施例提供的x-y-z三维图。
图7是本发明实施例提供的y-z-w三维图。
图8是本发明实施例提供的x-y-w三维图。
图9是本发明实施例提供的x-z-w三维图。
图10是本发明实施例提供的基于四维超混沌系统的图像加密算法流程图。
图11是本发明实施例提供的原图、加密图和解密图。
图12是本发明实施例提供的加密前的统计直方图。
图13是本发明实施例提供的加密后的统计直方图。
图14和图15是本发明实施例提供的用于初始正确密钥与相差10-14的密钥对加密后的Lena图像进行解密后的结果示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种基于四维超混沌系统的图像加密方法、介质、设备及终端,下面结合附图对本发明作详细的描述。
本发明提供的基于四维超混沌系统的图像加密方法业内的普通技术人员还可以采用其他的步骤实施,图1的本发明提供的基于四维超混沌系统的图像加密方法仅仅是一个具体实施例而已。
如图1所示,本发明实施例提供的基于四维超混沌系统的图像加密方法,包括:
S101:提取图像中R,G,B三个通道上的矩阵大小为MxNx3,将这个三维矩阵合并为一个3M x N的二维矩阵记作P1。
S102:将P1转化为一行矩阵同时将此行矩阵转化为二进制矩阵P2。
S103:输入初始密钥ko;使用龙格库塔法解微分方程组,使用不同的自变量值得出3M x N个解。产生四条混沌序列所组成的矩阵记作X。
S104:将四条混沌序列进行处理:
S105:将P2中的每一行二进制数进行扰乱,具体做法为将p3(i,:)中的每一个元素按顺时针移动H1(i)个单位。
S106:把P3中的每两列进行交换记为p4并将p4转化为一行3M x N列的十进制矩阵,记为p5。
S107:将p5(1:MxN),p5(MxN+1:2xMxN),p5(2xMxN+1:3xMxN)分别与x1,y1,z1进行异或运算并还原为M x N的矩阵记为p6,p7,p8。
S108:将三个二维M x N的矩阵p6,p7,p8合并为一个M x N x 3的三维矩阵,记为p9。
本发明实施例提供的S103中,龙格库塔法解微分方程组为:
本发明实施例提供的S104中,四条混沌序列做如下处理如下:
本发明实施例提供的S108中,将矩阵p9转化为unit8格式后输出为.jpg格式即为最终加密图片。
下面结合具体实施例对本发明的技术方案作进一步的描述。
1、四维超混沌Lorenz系统
在三维Lorenz系统的基础上通过引入一个新变量w,增加一个微分方程,使其成为个四维微分方程组:
上式即构造的四维超混沌Lorenz系统,其中的非线性项用于增加系统运动的复杂性,a,b,c,d为系统参数,且a,b,c的取值与经典三维Lorenz系统中的取值一样。
本发明应用了计算微分方程组Lyaponov指数的方法,得到当a=10,b=8/3,c=28,d=2时,式(1)的Lyapunov指数为入1=2.0438,入2=1.9735,入3=-2.1918,入4=-35.4927,有2个大于0的Lyapunov指数,此时式(1)产生了超混沌运动,称其为新的超混沌Lorenz系统。
当a=10,b=8/3,c=28,d=2时,该系统的运动轨迹如图3-图6所示,实验结果表明,x,y,z,w各序列值均具有随机性、遍历性、确定性和对初值极其敏感等特点。
2、基于四维超混沌系统的数字图像加密算法
加密算法过程如图10所示,
具体步骤如下:
Stepl:提取图像中R,G,B三个通道上的矩阵大小为MxNx3,将这个三维矩阵合并为一个3M x N的二维矩阵记作P1。
Step2:将P1转化为一行矩阵同时将此行矩阵转化为二进制矩阵P2。
Step3:输入初始密钥ko;使用龙格库塔法解微分方程组(1),使用不同的自变量值得出3M x N个解。产生四条混沌序列所组成的矩阵记作X。
Step4:将四条混沌序列做如下处理:
Step5:将P2中的每一行二进制数进行扰乱,具体做法为将p3(i,:)中的每一个元素按顺时针移动H1(i)个单位。
Step6:把P3中的每两列进行交换记为p4并将p4转化为一行3M x N列的十进制矩阵,记为p5。
Step7:将p5(1:MxN),p5(MxN+1:2xMxN),p5(2xMxN+1:3xMxN)分别与x1,y1,z1进行异或运算并还原为M x N的矩阵记为p6,p7,p8。
Step8:将三个二维M xN的矩阵p6,p7,p8合并为一个M x N x 3的三维矩阵,记为p9。
Step8:将矩阵p9转化为unit8格式后输出为.jpg格式即为最终加密图片。
图像的解密步骤即为加密步骤的逆过程,原图,加密图及解密如图11。
本发明还可以除了图像加密还可以应用到任意二进制数有关的加密;比如文字加密,将文字转化为ASCII值并且转化为二进制进行加密。
下面结合仿真实验对本发明的技术方案作进一步的描述。
加密算法安全性分析与实验仿真
在一个加密算法中,安全性是首要的问题。下面将对本发明的加密算法的安全性进行验证。本发明采用一个220X 280像素的彩色图像Lena作为加密图像。
1、密匙空间分析
本发明的密钥又系统的四个初始值来决定,初始值均为实数,由于实数是稠密的,在理论上此超混沌系统可以提供无限大密钥空间。但实际上由于现代计算机的发展限制,无法提供无限大的空间。设加密系统采用双精双浮点型,则各初始值均取得15位有效数。4个15位实数一起作为密钥,则加密算法的密钥空间为1015x4=1060≈2200。为了能抵抗蛮力攻击,密钥空间k应该大于2100远小于2200,所以,本发明设计的加密算法足以抵抗当前的蛮力攻击。
2、统计直方图分析
根据Shannon理论,一个密码系统在抗统计攻击方面应该具有很好的性能。图8、图9给出原始图像和密文图像的统计直方图。直方图分析考查的是密文图像中0到255每个像素值的个数是否是分布均匀的重要指标,很好的反映了图像像素值的分布情况,直方图越平坦则像素值分布就越均匀,可以看出,加密前图像的直方图分布不均匀,图像的主要信息聚集在某一区域内,而加密后的密文图像统计直方图是均匀分布的统计特性良好,有着很好的扰乱性,可以有效抵抗已知明文攻击或者选择明文攻击。
3、不动点分析
不动点比指的是图像加密后像素值未发生改变的像素点数占总像素点数的一个百分比值,其计算公式如下:
其中,
从理论,上来讲,密文图像的不动点比值越小,则说明所提出的加密方案越好。基于本发明的系统计算出的不动点比
比值小于1%说明此加密方案很安全。
4、密钥敏感性测试与分析
从密码学的观点来看,所设计的加密算法对密钥应该足够敏感,必须保证能产生雪崩效应。雪崩效应是指即使密钥发生微小的变化,对应的加密密文数据也会发生剧烈变化。在理想的情况下,希望至少一半的密文发生了变化。本发明加密算法将密钥k0=(x0,y0,z0,w0)作为初始密钥,由四个分量合在一起作为算法的密钥。
为测试算法对密钥的敏感性,稍微改变密钥中任一子密钥的值(改变10-14),再进行加密,比较前后加密两幅图像对应的不同像素个数。
当初始值k1=(0.1+10-14,0.2+10-14,2+10-14,0.5+10-14)时:两幅加密后图像的像素比p=99.61%。
当初始值k2=(0.1+10-14,0.2+2x10-14,2+10-14,0.5+10-14)时:两幅加密后图像的像素比p=99.61%。
当初始值k3=(0.1+10-14,0.2+2x10-14,2+10-14,0.5+2x10-14)时:两幅加密后图像的像素比p=99.62%。
结果表明,即使加密密钥相差10-14,得到的加密后图像约有99.62%以上的像素不同。图14和图15给出用于初始正确密钥与相差10-14的密钥对加密后的Lena图像进行解密后的结果,可以看出完全正确解密,且不透露原图信息。因此,本发明的加密算法对密钥非常敏感。
本发明基于三维Lorenz系统构造出一个新的超混沌系统,然后在其基础上提出一-种数字图像加密算法,最后分别从图像的直方图、相邻像素相关性、密钥敏感性和密钥空间大小4个方面对本发明加密算法的安全性进行分析。结果表明该算法具有加密效果好、对密钥敏感性强和密钥空间大的特点,并能抵抗当前的蛮力攻击、已知明文攻击、选择明文攻击,具有较高的安全性。后续准备将超混沌系统与明文相结合,研究满足现代密码学要求的自适应加密算法。
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。