您好, 访客   登录/注册

基于混沌系统的双图像交叉混合加密算法

来源:用户上传      作者:

  摘要:为了提高数字图像在传输过程中的安全性,并实现图像加密仅需依据混沌系统初始密钥,而与明文无关,提出基于明文hash值与高维混沌序列的双图像交叉混合加密算法。首先获取明文图像各自的hash值,然后对hash值进行交叉改造,并利用hash值生成混沌序列。加密过程基于前向扩散一置乱一后向扩散的加密体系,最终生成密文图像。仿真结果表明,该算法能够较好地抵御各种攻击,实现数字图像的安全传输。
  关键词:图像加密;混沌系统;hash值;交叉混合;扩散置乱
  DOI:10.11907/rjdk.192431开放科学(资源服务)标识码(OSID):
  中图分类号:TP309文献标识码:A 文章编号:1672-7800(2020)006-0248-05
  0 引言
  随着互联网技术的飞速发展,以及大数据时代的到来,越来越多数据需要在网络中传输,其中就包括图像数据。如何保证这些图像数据安全传输成为人们研究的热点。传统加密方法有AES、DES、RSA等,这些算法主要应用文本数据加密,数字图像与文本数据相比,不仅数据量非常大,而且相关性强、冗余度较高,所以这些传统的文本加密算法显然不适用于图像加密。因此,研究适合图像的加密算法具有很高的应用价值与较强的现实意义。
  混沌系统自从被发现以来,得到了蓬勃发展,随着研究的不断深入,发现其具有伪随机性、初值敏感性、非周期性和难预测性等特点,而这些正符合密码学中密钥和密钥流所需的特性,因此混沌系统与图像加密产生了联系。许多学者对基于混沌系统的图像加密算法进行研究,并在安全性方面获得了一定成果。如文献[2]提出基于图像像素点置乱扩散的加密算法,尽管该算法使密文抵抗攻击的能力有所增强,且密文像素值的随机性更强,从而一定程度上提高了安全性,但还存在密钥空间小等不足;文献[4]研究一种基于混沌序列与频域变换的加密算法,能够增大密钥空间,增强密钥的敏感性,然而该算法生成的密文图像存在信息熵偏小的问题;文献[7]通过多混沌序列对数字图像进行加密,该算法虽然具有密钥空间大、能够有效减少混沌周期性的优点,但由于加密过程复杂,涉及多个混沌系统,存在效率较低的問题。此外,上述算法严重依赖于密钥的安全性,密钥是加密系统的唯一依据。因此,这些算法容易受到选择明文攻击或已知明文攻击。
  为此,本文提出一种基于混沌系统的双图像交叉混合加密算法。首先利用SHA-256算法获取两幅明文图像各自的hash值,然后对两个hash值进行交叉混合改造,最后利用改造后的hash值生成混沌序列。加密过程首先将两幅明文图像合并,然后利用混沌序列基于前向扩散一置乱一后向扩散的加密体系进行加密,接着对中间密文进行均匀分割,最终得到两幅密文图像。仿真结果表明,该算法不仅具有相对较大的密钥空间,而且对于明文攻击、差分攻击等攻击的防御能力较强,因此能够较为有效地保证数字图像的传输安全。
  1 算法基础
  1.1 四维Lorenz混沌系统
  四维Lorenz混沌映射的数学表达式为:
  1.2 安全散列算法
  安全散列算法是一个密码散列函数群,主要包括5种算法,分别是SHA-1、SHA-224、SHA-256、SHA-384以及SHA-512。这些算法用于提炼信息,产生一个固定长度的字符串,一般其长度相较于原信息长度要短的多,采用不同算法产生的字符串长度也不相同。如果输入的消息不同,得到的字符串也不同。本文选用SHA-256算法,通过该算法可以生成明文图像的hash值。该hash值是一个具有256bit的值,通常用一个长度为64位的十六进制字符串表示。尽管两幅图像之间仅有任意一个bit的区别,但产生的hash值也截然不同。
  2 加密算法流程
  2.1 明文图像hash值交叉混合
  首先读取两幅明文图像,然后利用SHA-256算法分别生成两幅图像的哈希值P、Q,以8个bit为一组,则P、Q表达式如下所示:
  接着重新对这两个哈希值进行交叉混合改造,将P中的比特组与Q中的比特组每隔两个进行互换,从而形成两个新的哈希值P1、Q1,即:
  2.2 四维Lorenz混沌系统初始值生成
  利用上文改造后的哈希值产生四维Lorenz混沌映射的初始值,四维Lorenz混沌映射初始值计算公式如下:
  其中,♁表示按位异或运算,x0、y0、Z0和w0是给定的四维Lorenz混沌映射初始值。
  2.3 加密步骤设计
  加密算法设计流程如图1所示。
  设P1、P2表示输入的明文图像,大小为M×N,密钥用K表示,K={x0,y0,Z0,w0,r1,r2,r3,r4}。其中,x0、y0、z0和w0是给定的四维Lorenz混沌系统初始值,r1、r2、r3和r4为4个8位的随机整数。具体加密步骤如下:
  1)首先读取两幅明文图像P1、P2。
  (2)利用SHA-256算法求出两幅图像的哈希值,分别记为P、Q,然后对P和Q进行交叉混合改造,具体步骤如2.1节所示。
  (3)输入给定的初始值x0、y0、z0和W0,然后通过式(6)利用改造的哈希值生成四维Lorenz混沌映射的初始值。为保证混沌序列具有更好的随机性,先迭代r1+r2+r3+r4次,跳过混沌映射的过渡态;然后再迭代2MN次,生成4条混沌序列{xi}、{yi}、{zi}、{wi},i=1,2,…,2MN;最后再利用这4个伪随机序列生成随机矩阵X、Y、Z和W,生成公式如下:   其中,u=1,2,…,M,v=1,2,…,2N,.floor(l)表示返回小于等于l的最大整数,L=max(M,2N)。
  (4)将明文图像P1与P2合并,生成一幅大小为Mx2N的图像P。
  (5)通过前向扩散将明文图像P转化为矩阵A,转化公式如下:
  (6)前向扩散完成后,接着将矩阵A通过置乱算法转化为矩阵B,置乱算法具体步骤如下:
  Stepl:计算A(i,l)所在行全部元素的和(不含A(i,l),记为rowi,即为:
  rowi=sum(A(i,1to2N))-A(i,j) (9)
  Step2:计算A(i,j)所在列全部元素的和(不含A(i,j)),记为coli,即为:
  colj=sum(A(1to M,j))-A(i,j) (10)
  Step3:计算坐标(m,n)的值,按如下公式计算:
  Step4:如果m=i或n=j,则A(i,j)与A(m,n)的位置不变。否则,两者互换位置,同时根据A(m,n)低三位的值,对A(i,j)进行循环移位,公式如下:
  A(i,j)=A(i,j)<<<(A(m,n)0x7) (12)
  式(12)中,x<<
  Step5:按Stepl-Step 4的方法,首先置乱矩阵A的第M行A(M,1to 2N-1),然后置乱矩阵A的第N列A(1toM-1,2N),接着按照从左向右、从上到下的顺序置乱矩阵A的元素A(1to M-1,1to 2N-1),最后置乱矩阵A的元素A(M,2N)。按上述步骤对矩阵A进行置乱后的矩阵记为B。
  (7)置乱完成后,利用后向扩散将矩阵B轉化为矩阵C,转化公式如下:
  (8)最后,将上述矩阵C进行均匀分割,得到两幅大小为MxN的密文图像C1、C2。
  3 仿真结果与分析
  本文选取Lena和Elaine图像进行实验,其中Lena明文如图2所示,其对应哈希值为:fc3c11b7304dod81dd494894e8243b5a390c0628ba7acb753469751b28ebb764;Elaine明文如图3所示,其对应哈希值为:0cdb4339ee6173173declc01ff37e9dc2ace4d5299dobel9746584fa0481e020。加密密钥为x0=3.2134,y0=12.3783,z0=40.5684,W0=-33.4886,r1=167,r2=211,r3=198和r4=234。密文分别如图4、图5所示,正确解密的图像分别如图6、图7所示,错误解密的图像分别如图8、图9所示。
  3.1 密钥空间分析
  密钥空间是一个由加密算法中所有合法初始密钥组成的一个集合。若加密算法中的密钥空间较小,窃听方就能采用穷举攻击的暴力破解法破解加密系统。因此,如果想要保证一个加密系统的安全性,则需要一个相对较大的加密算法密钥空间。本文密钥空间K={x0,y0,z0,w0,r1,r2,r3,r4,状态变量初始值取值范围分别是:x0(-40,40),y0∈(-40,40),Zn∈(1,81),W0∈(-250,250),x0、y0、z0的步长均为10-13,w0步长为10-12。r1、r2、r3和r4取值范围为[0,255],步长均为1。因此,可计算得到该加密算法密钥空间大约为S=1.0995x 1069,则密钥长度为L=log2S≈229b,即密钥熵为229b,远大于最低要求的128b,所以该加密算法安全性较好,可以有效抵御穷举攻击。
  3.2 直方图分析
  直方图可以表现图像像素值的分布频率,描述图像灰度值的统计相关性。因此,一个加密算法的优劣能够直接从直方图中进行观测。一般来说,图像像素值分布越均匀,越能有效抵御统计分析攻击。明文Lena和Elaine的直方图分别如图10、图12所示,密文Lena和Elaine的直方图分别如图11、图13所示。可以看出,加密后的密文直方图分布近似均匀,说明该密文能够有效抵御统计分析攻击。
  3.3 相关性分析
  通常而言,在明文图像中相关性较强的是正反对角、垂直、水平方向上邻接的像素点,而这种相关性在密文图像中则没有明显表现。相关系数越小,像素点相关性越低,从而能越有效地抵御统计分析攻击。本文选取的Lena明文和密文像素点在4个方向上的相关系数如表1所示,相关性图像如图14所示。假设需要从考察图像中选取N对相邻像素点,其灰度值记为(ui,vi),l≤i≤N,则向量u={ui}与v={vi}间的相关系数计算公式如下:   3.4 信息熵分析
  信息熵能够用于表征信息具有的不确定性,通常可以认为,信息的不确定性随着熵的增加而增加。对于图像加密而言,随着图像的信息熵逐渐增加,图像信息量和像素点的随机性也逐渐增加,与此同时,可视信息逐渐减少,表明所应用算法的安全性也得到增强。采用本文与其它几个文献的算法对经典Lena图像进行加密所求得的密文信息熵如表2所示。
  式(15)中,L表示圖像灰度等级数,p(i)表示灰度值i出现的概率。设本文的灰度等级数L=256,通过计算可得信息熵H的理论值为8。
  通过表2中的数据对比可以发现,虽然文献[5]和文献[17]的密文信息熵都很接近理论值8,但本文所提出的加密算法更接近理论值,所以相对而言,本文算法能更有效地抵御外界攻击。
  3.5 差分攻击分析
  差分攻击是指通过对同一幅明文的像素点作稍许改变,然后利用同一个加密算法对其进行加密,再比较前后密文的差异。如果差异较大,则表示该算法抵御差分攻击的能力较强。衡量两幅相同大小图像的差别有定性和定量两种方式。本文采用以下两种定量方法比较图像之间的差异:
  (1)NPCR:对于两幅相同尺寸的图像,首先对其相应像素点的值进行比较,继而统计像素值不同的像素点数量,并计算出其数量在总像素数中所占百分比。
  (2)UACI:对于两幅相同尺寸的图像,首先对相应像素点的值作差,接着对全部相应像素点差值与最大差值(即255)的比值取平均。NPCR与UACI两个指标的具体表达式如下:
  由表3可知,在80次重复实验后,能够获得Lena密文NPCR和UACI两个指标平均值分别为99.6137和33.4501。通过比较两个指标的实验值和理论值,发现其实验值都很接近各自的理论值,表明该算法抵御明文攻击与差分攻击的能力较强。
  4 结语
  为了提高数字图像在传输过程中的安全性,并实现图像加密仅需依据混沌系统初始密钥,而与明文无关,本文提出一种基于混沌系统的双图像交叉混合加密算法。首先利用SHA-256算法获取两幅明文图像各自的hash值,然后对两个hash值进行混合改造,并用改造后的hash值生成混沌系统的初始值。在加密过程中,基于前向扩散一置乱一后向扩散体系加密合并后的明文图像,生成最终的密文图像。仿真分析结果表明,该算法密钥空间大,能够有效抵御暴力破解、明文攻击、差分攻击以及其它攻击,从而能有效保证明文图像传输的安全性。本文算法在运行效率方面还有一定提升空间,因此今后工作重点将对算法运行效率作进一步优化。
转载注明来源:https://www.xzbu.com/8/view-15277991.htm