0 引言 图像加密是一种有效的图像保护技术,它将有意义图像转换成混乱状态,使攻击者无法观察到任何原始信息,实现图像保护.为保证图像的安全传输,人们提出了许多单图像加密算法[1 -11 ] .如YANG Bo等[1 -2 ] 提出基于矩阵变换的图像加密算法,ZHOU Guo-min等[4 -5 ] 提出基于混沌系统的图像加密算法,LIU Zheng-jun [5 -6 ] 提出基于离散余弦变换域的彩色图像加密算法和ZHANG Qiang等[7 -8 ] 提出的基于DNA编码的图像加密算法等.以上方法均只能对单张图像进行多次单独加密,加密效率低,无法对多张图像同时加密.因此,高安全性和高效性的多图像加密成为新的需求.
目前,多图像加密方法按密文数量可分为两类.第一类方法是将多张图像加密成一张密文图像,如DAS S等[12 ] 提出基于遗传算法的多图像加密方法,利用遗传算法对原始图像进行扩散,采用逐位异或运算,消除邻域像素的相似性,以获得加密图像.TANG Zhen-jun等[13 ] 提出基于位平面分解和混沌映射的多灰度图加密方法,利用混沌映射产生的序列对分解的位平面进行随机交换位块和异或处理,获得一个PNG密文图像.该类算法无法通过密文数量得到明文数量,因而更加有效地掩盖了明文信息,但一次加密数量较少,加密效率低.第二类方法是将多张图像加密成多张密文图像,如LIU Lei [14 ] 等提出的利用稀疏化和空间复用的多图像加密方法以及HUANG Zhi-jing等[15 ] 提出的基于混沌系统和二维线性正则变换的非线性光学多图像加密方法.ZHANG Xiao-qiang等[16 -17 ] 提出一种基于脱氧核糖核酸编码和混沌系统的多张图像加密算法,与传统的图像加密算法不同,新算法的排列和扩散是在三维的脱氧核糖核酸矩阵上进行的.XIONG Y等[18 ] 提出一种新的基于像素交换操作和傅里叶域基本矢量分解的多图像加密方法,利用像素位置矩阵和相位密钥作为额外的私钥来增强基于4-f系统的密码系统的安全性.该类算法提高了加密图像数量,尤其文献[16 -17 ]可同时加密任意数量图像,但密文图像数量与明文图像数量一致,安全性低.且都局限于一次加密同类型、同大小的多张图像,整体加密效率低,无法完成一次加密任意数量、不同类型和不同大小图像的现实需求.
针对以上问题,本文提出了一种基于图像重组和比特置乱的多图像加密算法,该算法通过将任意数量、不同大小和类型的多张图像像素依次提取出来,重新组合成设定大小新多图像的方式.使多图像加密不在局限于同大小、同类型的情况,为多图像加密提供新思路,增加了算法的实用性.采用高低位分开进行比特置乱的方式,减少了加密时间,极大地提高了加密效率和系统抗噪声攻击能力.采用一种新型Logistic与广义三阶Fibonacci级联的混沌系统(Logistic-Fibonacci,L-F)产生随机序列,序列分布均匀、随机性高、生成时间短,处于满映射区间宽,参数和初值个数多.利用密钥关联明文哈希值,使得加密系统达到“一次一密”的效果,提高明文敏感性和抗选择明密文攻击能力.
1 原理介绍
1.1 构建L-F级联混沌 为克服logistic产生的随机序列的稳定窗与空白区问题,构建一种Logistic与广义三阶Fibonacci级联的混沌系统,使得在参数μ 处于混沌区间时能达到满映射且分布更加均匀.Logistic与广义三阶Fibonacci函数[19 ] 分别为
1
$
{x_{n + 1}} = \mu {x_n}\left( {1 - {x_n}} \right)
$
2
$
{F_n} = \left( {A{F_{N - 1}} + B{F_{n - 2}} + C{F_{n - 3}}} \right)\bmod M
$
式中,式(1)生成的序列xn 作为式(2)中的A ,B ,C ,每生成一个F 换一组A ,B ,C 值.为使F 初值具有很好的敏感性,三个初值取同一值即F 1 =F 2 =F 3 =intF ,并将生成的序列对1取余,即
3
$
{F_n} = \left( {{x_{n - 1}}{F_{n - 1}} + {x_{n - 2}}{F_{n - 2}} + {x_{n - 3}}{F_{n - 3}}} \right)\bmod M
$
4
$
{B_n} = {F_n}\bmod 1
$
为对比该级联混沌的可行性,令μ =3.9、x 0 =0.5、intF =0.9和M =191.分叉图和序列分布图如图 1 .
图 1. Bifurcation diagram and sequence distribution diagram of Logistic chaotic system and L-F chaotic systemFig. 1. Bifurcation diagram and sequence distribution diagram of Logistic chaotic system and L-F chaotic system 下载图片 查看所有图片
由图 1 可知L-F级联混沌系统的参数μ 范围比Logistic更宽,且在处于混沌区间内不存在空白窗,分布更加均匀,同时增加了初值和控制参数个数.因此L-F用于图像加密安全性更高,能更好地抵御统计分析和蛮力攻击.
1.2 多图像重组与比特置乱
1.2.1 多图像重组 为达到可同时加密不同类型与大小图像的目的,采用多图像重组的方式.首先,依次读取M 张原图像;其次,按先行后列再页的顺序依次提取所有像素值,并放入预先设定大小为m ×n ×N 的矩阵中.其中矩阵页数N 由式(5)得出,若第N 张有空余位置则由十进制数170(10101010)填充.本文以设定新多图像尺寸大小为512×512,对4张256×256灰度图、2张280×180彩色图和3张520×460二值图同时加密为例,重组过程如图 2 .
图 2. Multiple-image recombination processFig. 2. Multiple-image recombination process 下载图片 查看所有图片
5
$
N = \left\lfloor {\frac{{\sum\limits_{i = 1}^M {{a_i}} \times {b_i} \times {c_i}}}{{m \times n}}} \right\rfloor \;\;\;\;i = 1,2, \cdots ,M
$
式中$\left\lfloor {} \right\rfloor $ ,为向上取整,m ×n 表示预先设定的矩阵大小,M 表示原图像个数,a , b , c 分别表示矩阵的行数、列数和页数,当明文为彩色图时ci 为1,当明文为彩色图时ci 为3.
1.2.2 比特置乱 将每个图像分解成8个位平面,由于每个位平面的权重不同,因此每个位平面所蕴含的图像信息也各不相同.各位平面所蕴含图像的信息量百分比计算表达式为
6
$
{I^i} = \frac{{{2^{i - 1}}}}{{255}}\;\;\;i = 1,2,3,4,5,6,7,8
$
可以看出b 1 位到b 8 位,图像信息逐渐增多,而b 1 位到b 4 位含信息不足整体的6%.为了提高加密速度和抗噪声能力,采用将高位和低位分别进行比特置乱,高位先在每一页上分别按给出的随机序列进行行列循环移位置乱,所有页完成之后,再对页与页之间进行跨页行列循环移位操作,低位按随机数列进行整页的置乱即可.将高位页页数设为4的情况下高低位平面分解与置乱过程如图 3 、图 4 和图 5 所示.
图 3. 3D binary matrixFig. 3. 3D binary matrix 下载图片 查看所有图片
图 4. High plane bit scramblingFig. 4. High plane bit scrambling 下载图片 查看所有图片
图 5. Low plane bit scramblingFig. 5. Low plane bit scrambling 下载图片 查看所有图片
按照图 3 、图 4 、图 5 所示的位平面分解和高、低位分别置乱的方式操作之后,将置乱后的高位矩阵H ″ 和置乱后的低位矩阵L ′ 组合起来,按图 3 逆过程得到十进制下的中间密文TC .
2 加解密过程 该算法加密主要分为三大部分:1)密钥及混沌序列的产生; 2)3D比特置乱; 3)扩散运算.加密过程如图 6 .
图 6. Encryption processFig. 6. Encryption process 下载图片 查看所有图片
2.1 密钥及混沌序列的产生 针对现有图像加密系统的抗选择明密文攻击能力弱,以及扩散效果不明显的问题.本文将混沌密钥与明文SHA-256关联产生随明文自适应变化的动态密钥,提高抗选择明(密)文攻击的能力.
1) 密钥产生
先将所有的图像按图 2 所示重组形成一个三维矩阵F ,求出其SHA-256并将256位哈希值每八位分为一组,可以表示为H =h 1 , h 2 , …, h 32 ;其中hi 为h i =[h i , 0 , h i , 1 , …, h i , 7 ].设定密钥为key1(x 0, 1 , μ 1 , intF 0, 1 , k )、key2(x 0, 2 , μ 2 , intF 0, 2 ),分别作为3D比特置乱和扩散的混沌初值和参数,由式(7)~ (9)求取
7
$
{x_{0,1}} = \bmod \left\{ {\left\{ {x_{0,1}^\prime + \bmod \left[ {\left( {{h_1} \oplus {h_2} \oplus {h_3} \oplus {h_4} \oplus {h_5} \oplus {h_6} \oplus {h_7} \oplus {h_8}} \right),256} \right]/256} \right\},1} \right\}
$
8
$
{\rm int}{F_{0,1}} = \bmod \left\{ {\left\{ { {\rm int} F_{0,1}^\prime + \bmod \left[ {\left( {{h_9} \oplus {h_{10}} \oplus {h_{11}} \oplus {h_{12}} \oplus {h_{13}} \oplus {h_{14}} \oplus {h_{15}} \oplus {h_{16}}} \right),256} \right]} \right\},1} \right\}
$
9
$
{x_{0,2}} = \bmod \left\{ {\left\{ {x_{0,2}^\prime + \bmod \left[ {\left( {{h_{17}} \oplus {h_{18}} \oplus {h_{19}} \oplus {h_{20}} \oplus {h_{21}} \oplus {h_{22}} \oplus {h_{24}} \oplus {h_{25}}} \right),256} \right]/256} \right\},1} \right\}
$
10
$
{\rm int}{F_{0,2}} = \bmod \left\{ {\left\{ {{\rm int}F_{0,2}^\prime + \bmod \left[ {\left( {{h_{25}} \oplus {h_{26}} \oplus {h_{27}} \oplus {h_{28}} \oplus {h_{29}} \oplus {h_{30}} \oplus {h_{31}} \oplus {h_{32}}} \right),256} \right]} \right\},1} \right\}
$
式中,mod为取余运算,⊕为异或运算,x 0, 1 ′ 、x 0, 2 ′ ∈[0, 1],intF 0, 1 ′ 、intF 0, 2 ′ ∈[0, 1].再利用产生的x 0, 1 、intF 0, 1 、x 0, 2 、intF 0, 2 计算控制参数μ 1 、μ 2 .
11
$
{\mu _1} = \bmod \left( {\mu _1^\prime /4 + {x_{0,1}} + {\rm int}{F_{0,1}},1} \right) \times \left( {4 - 1.5} \right) + 1.5
$
12
$
{\mu _2} = \bmod \left( {\mu _2^\prime /4 + {x_{0,2}} + {\rm int}{F_{0,2}},1} \right) \times (4 - 1.5) + 1.5
$
式中,μ 1 ′ 、μ 2 ′ ∈[1.5, 4],x 0, 1 ′ 、x 0, 2 ′ 、intF 0, 1 ′ 、intF 0, 2 ′ 、μ 1 ′ 、μ 2 ′ 、k 根据需要设定,其中,高位页页数k 为了直接控制,不与哈希值相关联.
2) 混沌序列产生
随机序列由混沌序列L-F级联混沌生成,为了消除暂态效应预先迭代N 0, 1 、N 0, 2 次,N 0, 1 、N 0, 2 均与初值与参数有关,其表达式为
13
$
{N_{0,1}} = 200 + \left\lfloor {\bmod \left[ {\left( {{x_{0,1}} + {\rm int} {F_{0,1}} + {\mu _1}} \right) \times 1012,200} \right]} \right\rfloor
$
14
$
{N_{0,2}} = 200 + \left\lfloor {\bmod \left[ {\left( {{x_{0,2}} + {\rm int} {F_{0,2}} + {\mu _2}} \right) \times 1012,200} \right]} \right\rfloor
$
式中,$\left\lfloor {} \right\rfloor $ 为向上取整.迭代Z次后继续迭代(kN +1)×(m +n )次,得到混沌序列T .再利用式(15)~(19)将T 转化为可直接运用的序列,其中,X 1 ~X 4 和X 1 ′ 的范围分别为{0≤X 1 ≤n X 1 ∈N * }、{0≤X 2 ≤m X 2 ∈N * }、{0≤X 3 ≤kN +1 X 3 ∈N * }、{0≤X 4 ≤kN +1 X 4 ∈N * }和{0≤X 1 ′ ≤(8-k )N X 1 ′ ∈N * }.再次设定初值和参数先迭代N 0, 2 次后再迭代N ×m ×n 次得到序列T′ 并由式(20)转换为0至255的整数序列X 5 ,作为扩散序列.
15
$
{X_{1i}} = \left\lfloor {\bmod \left( {{T_i} \times 1012,n + 1} \right)} \right\rfloor \;\;\;\;i = 1,2, \cdots ,kN \times m
$
16
$
{X_{2i}} = \left[ {\bmod \left( {{T_{kN \times m + i}} \times 1012,m + 1} \right)} \right]\;\;\;\;i = 1,2, \cdots ,kN \times n
$
17
$
{X_{3i}} = \left[ {\bmod \left( {{T_{kN \times \left( {m + n} \right) + i}} \times 1012,kN + 1} \right)} \right]\;\;\;\;i = 1,2, \cdots ,m
$
18
$
{X_{4i}} = \left\lfloor {\bmod \left( {{T_{kN \times (m + n) + i}} \times 1012,kN + 1} \right)} \right\rfloor \;\;\;\;i = 1,2, \cdots ,n
$
19
$
X_1^\prime = {s_{{\rm{ort}}}}\left( {{T_{i = 1,2, \cdots ,(8 - k)N}}} \right)
$
20
$
{X_{5i}} = \left\lfloor {\bmod \left( {T_i^\prime \times 1012,256} \right)} \right\rfloor \;\;\;\;i = 1,2, \cdots \cdots
$
式中,s ort 表示将序列X 1i 按从小到大顺序的排列,取得对应点位置的索引用序列X 1 ′ 表示.
2.2 3D比特置乱加密 1) 将重组图像f 1 ~f N 按图 3 方式转换为512×512×kN 的高平面矩阵H 和512×512×(8-k )N 的低平面矩阵L ;
2) 按图 4 方式运用序列X 1 、X 2 、X 3 、X 4 对矩阵H 进行比特置乱,采用先行后列的顺序,先对每一页进行行列循环,再在页与页之间进行行列循环,得到矩阵H ″ ;
3) 运用序列X 1 ′ 对矩阵L 进行整页排序,得到矩阵L ′ ;
4) 将置乱后矩阵H ″ 和排序后矩阵L ′ 利用1.2.2节的3D转换方式反向操作,得到十进制下的512×512×N 中间密文TC .
2.3 扩散操作 3D比特置乱虽然改变了图像0、1比特的位置,但并未改变总体的比重.因此,为更好地掩盖图像的统计特性,增加明密文的雪崩效应,本文利用随机序列X 5 对置乱排序后的中间密文图像TC 进行异或扩散,首先将TC 按先行后列再页的顺序转换成一维矩阵TC ′ ,再对其进行异或扩散过程.
21
$
\left\{ {\begin{array}{*{20}{l}}
{C_1^\prime = \bmod \left( {{X_{51}} + TC_1^\prime ,256} \right) \oplus {C_0}\quad i = 1}\\
{C_i^\prime = \bmod \left( {X_{5i}^\prime + TC_i^\prime ,256} \right) \oplus C_{i - 1}^\prime \quad i \ne 1}
\end{array}} \right.
$
式中,C 0 为异或扩散初始值,取0~255之间的整数,本文取150.
最后,将C ′ 按先行后列再页的顺序转换成三维矩阵C ,即密文图像C .
2.4 解密算法 解密过程为加密过程的逆过程,运用式(22)进行扩散的解密,得到一维矩阵TC ′ ,按先行后列再页转换成三维矩阵TC ,即中间密文.
22
$
\left\{ {\begin{array}{*{20}{c}}
{TC_1^\prime = \bmod \left( {{C_0} \oplus C_n^\prime + 256 - {X_{51}},256} \right)}&{i = 1}\\
{TC_i^\prime = \bmod \left( {C_{i - 1}^\prime \oplus C_i^\prime + 256 - {X_{5i}},256} \right)}&{i \ne 1}
\end{array}} \right.
$
将中间密文转化为3D二进制状态,运用X 4 、X 3 、X 2 、X 1 和X 1 ′ 进行比特置乱的反向置乱,再将反向置乱后的高低位页组合起来,转化成十进制矩阵,最后根据明文图像的大小进行重组的逆过程得到解密图像.
3 实验分析 为验证本文算法的有效性和可行性,本文选取一张lena(256×256)和gril(260×280)的灰度图、一张彩色图lena(200×200×3)和monkey(512×512×3)的彩色图像和一张dragon(500×269)二值图作为明文图像.并设置x 0, 1 ′ 、x 0, 2 ′ 、intF 0, 1 ′ 、intF 0, 2 ′ 、μ 1 ′ 、μ 2 ′ 和k 分别为0.9、0.95、0.9、0.95、1.6、1.65和3,再根据图像的SHA-256生成动态密钥.采用MATLAB R2016a作为仿真平台,加解密结果如图 7 .
图 7. Effect of encryption and decryptionFig. 7. Effect of encryption and decryption 下载图片 查看所有图片
本算法将五张不同大小和类型的图像一次性进行了加密,得到的密文为类噪声图像,完全看不出明文特征,很好地掩盖了明文信息,而解密后得到的图像也与明文图像完全一样,证明本算法加解密效果良好,实用性强.
3.1 明文敏感性分析 明文敏感性指当明文发生微小的变化时,密文将会完全不同.为测试该算法的明文敏感性,将明文图像任意一点加1,交换两个像素值不同两点位置后进行加密,利用式(23)、(24)计算明文变化后与未变化的密文间的像素值变化率(The Number of Pixels Change Rate, NPCR)和归一化平均变化强度(The Unified Average Changing Intensity, UACI)的值,结果如表 1 .
表 1. 明文敏感性分析Table 1. Analysis of clear text sensitivityAny position pixel plus 1 Swap positions of two different pixel values NPCR UACI NPCR UACI 0.996 1 0.334 8 0.996 0 0.335 1
查看所有表
23
$
{\rm{NPCR}} = \frac{{\sum\limits_i {\sum\limits_j {p\left( {i,j} \right)} } }}{{M \times N}}
$
24
$
{\rm{UACI}} = \frac{1}{{M \times N}}\left[ {\sum\limits_i {\sum\limits_j {\left| {{C_1}(i,j) - {C_2}(i,j)} \right|} } } \right] \times 100\%
$
式中,当C 1 (i , j )=C 2 (i , j )时p (i , j )=0,否则p (i , j )=1.
从表 1 可以看出当明文的像素值作微小的改变时,密文的所有像素基本都得到了改变,而且改变强度能达到33%以上,说明该算法具有很好的明文敏感性.
3.2 密钥敏感性分析 密钥敏感性指当密钥发生微小变化时,得到的加密图像将完全不同,同样密钥发生的改变不同解密的结果也将不同.为测试算法的密钥敏感性,将加密过程的密钥值作不同的微小改变,并利用式(25)求出两密文相关系数(Correlation Coefficient, CC),如表 2 所示.解密过程中改变密钥后的解密效果如图 8 .
表 2. 加密过程中密钥发生变化时前后密文的相关系数Table 2. Correlation coefficient of ciphertext before and after key changes in encryption processΔx 0, 1 ′ =10-14 ΔintF 0, 1 ′ =10-14 Δu 1 ′ =10-14 Δk =1 Δx0, 2 ′ =10-14 ΔintF 0, 2 ′ =10-14 Δu 2 ′ =10-14 0.007 8 0.005 9 0.008 9 0.006 3 -0.002 0 -0.001 0 0.000 1
查看所有表
图 8. The decrypted image after changing the key during decryptionFig. 8. The decrypted image after changing the key during decryption 下载图片 查看所有图片
25
$
{\rm{CC}} = \frac{{\sum\limits_{i = 1}^m {\sum\limits_{j = 1}^n {\left[ {f\left( {x,y} \right) - \bar f} \right]\left[ {F\left( {x,y} \right) - \bar F} \right]} } }}{{\sqrt {\sum\limits_{i = 1}^m {\sum\limits_{j = 1}^n {{{\left[ {f\left( {x,y} \right) - \bar f} \right]}^2}} } } \sqrt {\sum\limits_{i = 1}^m {\sum\limits_{j = 1}^n {{{\left[ {F\left( {x,y} \right) - \bar F} \right]}^2}} } } }}
$
式中,$\bar{f}$ 和$\bar{F}$ 为对应图像像素值的均值.
如表 2 所示,加密过程中密钥发生微小变化前后得到的密文图像相关系数均接近于0,两密文之间几乎没有关系.图 8 为解密过程中Δx 0, 1 ′ =10-14 时的解密图像,解密失败,同时其他密钥变换量为表 2 中一样时解密图像也是如图 8 所示的类噪声图像.因此,说明加密和解密过程都对密钥非常敏感,即本文算法具有良好的密钥敏感性.
3.3 密钥空间分析 本文的密钥key1(x 0, 1 , u 1 , intF 0, 1 , k )、key2(x 0, 2 , u 2 , intF 0, 2 )分别为用于3D比特置乱的初值和参数以及用于扩散操作的初值与参数.其中{0≤k ≤8 k ∈N },由密钥分析可得,x 0, 1 、x 0, 2 、u 1 、u 2 、intF 0, 1 、intF 0, 2 变化量为10-14 时密钥已极为敏感,因此将其保留到小数点后14位,得到密钥空间至少为8×(1014 )6 =8×1084 .本文加密算法还可将混沌的另一参数M 、混沌序列预迭代次数、明文的SHA-256值和扩散初值C 0 作为密钥,从而使得密钥空间进一步扩大.从安全的角度分析,密钥空间≥2100 ≈1030 ,就能满足较高的安全级别[20 ] ,所以本算法的密钥空间对穷举攻击是安全的.
3.4 抗选择明密文攻击分析 由于选择明密文攻击对加密系统最有威胁,如果加密系统能够抵抗选择明密文攻击,则可以抵抗针对加密系统的其他攻击.因此,用选择明文攻击来进一步测试系统的安全性.选择明文攻击,即攻击者已经知道加密和解密算法,并且可以任意选择明文,放入加密系统获取相应的密文,进而分析出密钥的过程.将图 7 中明文任意位置的像素值加1的图像作为攻击图像得到密钥流,并对其对应的密文解密,结果如图 9 .
图 9. Decrypted image with arbitrary pixel value plus 1Fig. 9. Decrypted image with arbitrary pixel value plus 1 下载图片 查看所有图片
从图 9 可知即便当攻击图像与明文仅仅只有一个像素值差,也无法攻击成功,说明本算法具有很强的抗攻击能力.主要原因在于采用了密钥与明文的哈希值SHA-256进行了联系,实现“一次一密”的效果.
3.5 统计特性分析
3.5.1 直方图 直方图表示数字图像中每个灰度级和其出现的概率的对应关系,是反映图像像素值分布的重要图形化指标,明文和密文直方图如图 10 .
图 10. Histogram of plaintext and ciphertextFig. 10. Histogram of plaintext and ciphertext 下载图片 查看所有图片
由图 10 可知密文的直方图与明文的相差巨大,说明明文的像素值得到了很大的变化,能很好地隐藏明文信息.
3.5.2 信息熵 信息熵指图像整体随机性,在uint8类型的数据下信息熵理想值为8.如果密文图像的信息熵越接近于8,抗攻击性越强.本文算法的信息熵如表 3 所示,其中彩色明文的信息熵为RGB三通道的均值.
表 3. 图像信息熵Table 3. Image information entropyLena Gril Lena Monkey Dragon Ciphertext1 Ciphertext 2 Ciphertext 3 Ciphertext 4 Ciphertext 5 7.460 3 7.524 3 7.724 2 7.659 2 0.768 2 7.999 2 7.999 3 7.999 3 7.999 3 7.999 3
查看所有表
由表 3 可知本文算法密文图像信息熵达到7.999以上,接近理想值8,说明该算法有很强的密文抗攻击能力.
3.5.3 相邻像素相关性分析 明文图像相邻像素在水平垂直和对角三个方向上具有很高的相关性,攻击者可以通过分析相关信息来恢复平面图像.因此,有效的加密算法应该去除这些像素相关性,生成低相关性的密文.为了更加直观地看出像素间的相关性,给出本加密算法明文和密文左上角10 000个水平方向的相邻像素点关系图,如图 11 ,并用式(24)计算相邻像素的相关系数,如表 4 .
图 11. Correlation diagram of adjacent horizontal pixelsFig. 11. Correlation diagram of adjacent horizontal pixels 下载图片 查看所有图片
表 4. 相邻像素相关性Table 4. Correlation of adjacent pixelsLena Gril Lena Monkey Dragon Cipher- text1 Cipher- text 2 Cipher- text 3 Cipher- text 4 Cipher- text 5 Level 0.968 4 0.916 8 0.960 3 0.876 9 0.936 0 0.001 7 0.001 6 0.001 9 -0.002 2 0.000 3 Vertical 0.935 2 0.917 3 0.919 6 0.916 9 0.922 4 0.002 3 0.000 1 -0.000 6 -0.000 1 -0.001 2 Diagonal 0.908 3 0.870 0 0.891 2 0.845 9 0.894 9 -0.002 5 0.000 1 0.000 3 -0.000 2 -0.003 3
查看所有表
由图 11 得出,Lena(灰)、Gril(灰)、Lena(彩)和Monkey明文主要分布在对角线上,说明其相邻像素基本相同,而Dragon明文只有四个点,可知这是个二值图像,而所有明文图像对应的密文分布比较均匀,说明本算法很好地破坏了明文相邻像素相关性.由表 4 中密文相关系数几乎接近于0可知,本算法密文相关性已经非常低.
3.6 鲁棒性分析 由于密文在传输过程中极易发生噪声污染和数据丢失的情况,因此要求加密算法必须具备一定的抗剪切和噪声攻击的能力.将图 7 中所有密文剪切1/4的区域和用式(26)加入强度为0.2的高斯噪声,其相应的解密图像如图 12 .
图 12. Robustness analysisFig. 12. Robustness analysis 下载图片 查看所有图片
26
$
r = {r_1} \times \left( {1 + sG} \right)
$
式中,s 为噪声强度,G 为均值为0,方差为1的高斯噪声,r 1 为原图,r 为加入噪声后的图像.
从图 12 可以看出,当数据丢失1/4和加入强度为0.2的高斯噪声时,解密后的图像仍然可以识别,这说明本加密算法对裁剪和噪声攻击具有较强的鲁棒性.
3.7 对比分析 为验证本算法的先进性,利用不同的多图像加密算法和本算法同样对4张512×512灰度图进行一次加密,通过明密文敏感性、抗选择明密文攻击能力、密文随机性及加密时间进行对比,结果如表 5 .
表 5. 对比分析Table 5. Comparative analysisNPCR UACI Information entropy Correlation coefficient (horizontal, vertical, diagonal) Times Ref.[16 ] 0 0 7.997 9 -0.078 1 0.066 5 0.060 7 9.656 Ref.[17 ] 0 0 7.614 8 -0.007 1 -0.001 4 -0.002 6 - Ref.[18 ] 0.996 2 0.334 3 7.999 3 -0.002 2 -0.003 1 0.001 6 0.710 3 This paper 0.996 1 0.334 8 7.999 2 0.001 7 0.002 3 -0.002 5 0.502 3
查看所有表
由表 5 可知,当明文像素值作微小变化时,文献[16 ]、[17 ]的密文间像素值变化率NPCR和归一化平均变化强度UACI的值为0.这是由于明文与密钥无关,及加密算法的扩散效果不明显或较弱导致的,而文献[16 ]的NPCR值和UACI值也没有本文算法高,主要是由于文献[18 ]明文与密钥关联性不强.本文算法的明文与密钥关联实现“一密一钥”,使得明文发生微小变化而密钥发生巨大变化,密钥也发生巨大变化,说明本文算法敏感性更好.由信息熵和相关系数对比可以看出,本文算法的密文随机性更好,相邻像素相关性最低,说明抗差分能力及抗攻击能力最强.本文算法的加密时间最短,效率更高.另外,文献[16 ]、[17 ]一次只能加密4张同大小的灰度图像,文献[18 ]一次只能加密同大小的灰度图像,而本文算法一次可对任意数量、不同大小和不同类型的图像同时加密,实用性更高.
4 结论 本文提出了一种图像重组和比特置乱的多图像加密方法,利用构建新多图像的方法实现一次加密任意数量、不同类型和大小图像的目的,极大地提高了图像加密的效率.采用3D比特置乱的方式,高位进行行列循环移位置乱,低位只进行整页简单排序的方法,减少了加密时间,提高了加密算法抗噪声攻击能力.采用L-F级联混沌解决了低维logistic混沌系统序列分布不均匀,存在空白窗等问题,同时还提高其序列的随机性,增加了控制参数和初值个数,更加有效地抵御蛮力攻击.将明文的SHA256作为密钥的一部分,有效地提高了明文敏感性和抗选择明密文攻击能力.实验表明,本算法的密文分布均匀,明文、密钥敏感性强,还能抵御常见的多种攻击方式.在多图像加密中具有更高的实用性和安全性.
郭媛, 周艳艳, 敬世伟. 基于图像重组和比特置乱的多图像加密[J]. 光子学报, 2020, 49(4): 0410002. Yuan GUO, Yan-yan ZHOU, Shi-wei JING. Multiple-image Encryption Based on Image Recombination and Bit Scrambling[J]. ACTA PHOTONICA SINICA, 2020, 49(4): 0410002.