基于混沌系统和人工神经网络的图像加密算法①

2020-03-22 07:42森,薛
计算机系统应用 2020年8期
关键词:明文人工神经网络像素点

陈 森,薛 伟

(江南大学 物联网工程学院,无锡 214122)

图像作为信息的重要载体,在信息传播中起到重要的作用,但在这一过程中容易遭到攻击导致信息泄露.对图像安全获取、安全存储和安全传播的研究显得尤为重要,而对图像进行加密是一种有效的处理方式.

混沌系统具有不可预测性、伪随机性及对初始条件极为敏感等特性,研究者将其引入图像加密体系中,提出了一些基于“置乱-扩散”体系的混沌图像加密算法[1–3].这些加密算法各有其特点,但也存在一些问题,影响最终的加密效果.文献[1]提出一种基于DNA 编码和混沌系统的图像加密算法,但其混沌系统初始值与明文无关,算法较难抵抗明文攻击[4].文献[2]在加密方案中引入Hash 函数来解决这一问题.但由于混沌映射参数和状态模拟精度的限制,混沌序列在一定程度上呈现周期性,这会对加密效果产生极大的影响.文献[3]提出使用人工神经网络对混沌序列进行训练学习,可以消除其混沌周期性,但由于置乱和扩散操作相对单一而影响了最终的加密效果.

综合考虑以上问题,本文综合SHA-384,人工神经网络和混沌系统,提出一种新的加密方案.对加密图像进行安全分析,结果表明加密效果比较理想.

1 算法基础

1.1 Lorenz 混沌系统

Lorenz 混沌系统是最常用的混沌系统之一,本文采用改进后的Lorenz 混沌系统,其数学模型为[5]:

式中,x,y,z分别表示系统变量;a,b,c分别表示系统的参数.当a=10,b=40,c=2.5时,系统会进入混沌状态.

1.2 基于神经网络训练混沌序列

混沌系统产生的混沌序列会呈现一定程度的周期性[6],引入人工神经网络对混沌序列进行训练学习以消除周期性,其结构如图1所示.

图1 人工神经网络的结构

隐藏层的输出值:

训练误差值:

反向训练的过程如下:

根据得到的误差值,使用下列方程式更新每个单元的连接权重和输入输出偏差直到每个单元均可收敛.

式中,i为迭代次数,Ψ为学习率.

2 图像加密过程

对于一个大小为M×N的明文图像P,以下为图像加密的全过程.

2.1 加密序列的产生

首先通过明文图像灰度值和SHA-384 产生一个384 位的密钥,将其按每8 位分段,其可表示为:

Lorenz 混沌映射的初始值计算如下:

式中,x,y,z为给定值,

代入混沌系统得到混沌序列,然后使用人工神经网络进行训练,输出最终的加密序列.

2.2 图像置乱

对图像的置乱操作是指在不改变像素点的像素值的情况下,改变其在图像矩阵中的位置.在改变像素点位置时,有时会产生重复置乱,即两个像素点的位置交换两次,使得置乱无效,因此进行以下操作.

首先利用混沌系统得到两个混沌序列,长度分别为M和N,然后使用神经网络进行训练,得到两个加密序列X和Y.

首先对序列X进行量化处理:

其中,i=1,2,···,M/2,这样序列中的每个随机数X(i)∈{1,2,···,M},然后对X进行去重,即在X中重复的数字只保留一个.接着,将集合 {1,2,···,M}中没有出现在X中的数按从小到大的顺序排在X的末尾.最后依次交换图像矩阵P的第X(i)行与X(M−i+1)行,完成行置乱,得到图像矩阵S.

对序列Y进行量化处理:

其中,j=1,2,···,N/2,序列中的每个随机数Y(j)∈{1,2,···,N},将对序列X的操作同样对Y使用.最后依次将图像矩阵P的第Y(j)列和第Y(N−i+1)列进行交换,完成列置乱,得到图像矩阵R.

2.3 图像扩散

经过置乱操作,像素点的位置发生了变化,扩散操作的则是要改变像素点的像素值.

首先将图像矩阵R进行分割,每个子矩阵Q的大小为S×T.利用混沌系统产生长度为(M/S)×(N/T)的混沌序列U,其长度与子矩阵的个数一致.使其中的数字按从小到大的顺序排列,然后将每个数字在序列U中的原始位置存入数组V中.

使用混沌系统和人工神经网络得到长度为S×T的随机序列E,对其进行量化处理:

将其转换为S行T列的二维矩阵E',最终的扩散操作如下:

最终得到加密图像P'.

整个加密方案的流程图如图2所示.

图2 加密方案流程图

3 实验与分析

选择大小为2 56×256的Lena 灰度图,在Matlab 平台上完成仿真实验.关键参数分别为:x=0.12,y=0.23,z=0.34,a=0.35,Ψ=0.6.结果如图3所示.

图3 实验结果

3.1 图像直方图

灰度直方图显示的是一幅图像里全部灰度值的分布情况,其中横坐标表示灰度值,纵坐标表示具有各个灰度值的像素在图像中出现的次数,横纵坐标均无量纲.图4表示的是明文和密文图像各自的直方图.

从图4中可以直观地看出,Lena 明文的直方图显示灰度值分布很不均匀,而相应的密文直方图中灰度值分布则比较均匀.这使得对加密图像的统计分析攻击十分困难,从而使攻击者很难获得有效信息.

3.2 相邻像素间相关性分析

普通图像的相邻像素之间存在高相关性,它们的相邻像素可以是水平,垂直或对角线方向.为测试量图像加密前后相邻像素间的相关性,各在其水平、竖直以及对角方向上任意选取2000 对邻近的像素点.根据以下公式计算相关系数,并将结果记录在表1中.

式中,x和y是图像中两个相邻像素的灰度值,N是所选相邻像素的数量.

图4 明文和密文图像直方图

表1 相邻像素间相关系数

从表1中能够看出,明文图像中水平、垂直和对角方向上的像素间相关系数较大,而在对应的密文图像中,相关系数则与0 比较靠近.另外,对比文献[2,7]中提出方法,本文提出算法可以很好地消除相邻像素相关性,掩盖原始图像的数据特征.

选取Lena 明文和密文在各方向上的像素点分布情况,如图5所示.可以直观地观察到明文在各个方向上的相关性被消除.

3.3 信息熵

信息熵反映了图像信息的不确定性,一般熵越大,信息量越大,可视信息越少[8].信息熵的计算公式如下:

式中,(mi)表示像素值,P(mi)表示灰度值mi出现的概率.

对于L=256的灰度图像,信息熵H的理论值为8.表2中记录了图像加密前后的信息熵,同时与其他算法进行了比较.结果表明,经过本文提出方案加密后的图像可以较好地掩饰信息.

3.4 密钥空间及密钥敏感性分析

密钥空间是指所有合法的密钥构成的集合.在本文提出的加密算法中,密钥主要是由两部分构成:给定的初始值x,y,z,如果计算精度为1 0−15,那么该部分产生的密钥大小是1 045,另外SHA-384 产生了384 位的密钥,因此可提供2384×1045≈3.9×10160大小的密钥空间,其值足够大以抵抗对图像的暴力攻击.

具有密钥敏感性对加密算法来说也是必要的[9].是如图3(d)所示,当x发生微小改变其他密钥都不变的情况下,无法得到正确的解密图像,说明本文算法对密钥具有很强的敏感性.

3.5 差分攻击

差分攻击是指攻击者稍微改变明文之后,比较改变前后相应密文的差异,从而找出明文图像和密文图像的相应关系.一般使用像素数目变化率(Number of Pixels Change Rate,NPCR)和平均改变强度(Unified Average Change Intensify,UACI)这两个指标来评价算法抵抗差分攻击的能力[10].

相关计算公式如下:

式中,M×N为图像大小,假设两个明文图像仅有一个像素点不同,使用同一算法加密后,密文图像中(m,n)处的像素值分别为I1(m,n)和I2(m,n),两者相同则C(m,n)值为0,否则C(m,n)值为1.在Lena 明文中,随机选取一个像素并使其值加1,使用同样的算法加密,计算NPCR和UACI 值,结果如表3所示.

图5 明文和密文在各方向上的像素相关性

由表3可以看出,通过本文算法加密的图像,NPCR均超过0.996,UACI 均超过0.334,且相比于其他算法有一定的提升,可知本文算法能够更有效地抵抗差分攻击.

表2 信息熵值

表3 NPCR和UACI的均值及比较

4 结论

本文提出一种结合混沌映射和人工神经网络的图像加密算法.首先使用SHA-384和明文图像产生Lorenz 混沌系统的初始值,控制其产生混沌序列,然后将其引入人工神经网络进行训练以消除其混沌周期性.使用人工神经网络输出的序列完成置乱和扩散操作.使用行置乱和列置乱结合的方式完成置乱操作,在扩散阶段使用分组扩散的方式进行处理.实验结果表明,本文算法能较好地隐藏明文信息,密钥空间大,密钥敏感性强并能抵抗差分攻击等攻击方式.

猜你喜欢
明文人工神经网络像素点
使用人工神经网络改进2022年北京冬奥会数值天气预报后处理过程的算法研究
基于人工神经网络的Ni-ZrO2纳米镀层耐腐蚀性能预测
基于局部相似性的特征匹配筛选算法
一种X射线图像白点噪声去除算法
基于canvas的前端数据加密
奇怪的处罚
图像采集过程中基于肤色理论的采集框自动定位
基于人工神经网络的优化配置研究
奇怪的处罚