杨宇光,王茜茜
(北京工业大学 信息学部,北京 100124)
目前,人们每天收到的信息中有约75%的信息为图像信息.图像信息暴露于公共视野,很容易受到攻击,其安全性受到社会关注.混沌加密算法存在安全隐患,有很大的改进空间.量子计算具有超强的并行计算能力,能够大幅提升图像处理速度,因此图像加密逐步从经典方案扩展到量子方案.
量子游走具有初值敏感性、不可预测性和伪随机性,可用于伪随机数生成器,因此基于量子游走的图像加密具有广阔的应用前景.文献[2]设计了基于1维双粒子量子游走的灰度图像加密算法.文献[3]提出了基于受控1维双粒子量子游走的灰度图像加密方案.文献[4]基于受控交替量子行走提出的伪随机数生成机制,已成为量子彩色图像加密协议的组成部分.
在最近的研究中,学者们将加密机制与明文信息关联.密钥随明文变化而变化,使加密结果对待攻击的密文没有任何参考意义.文献[5]的加密系统中的置乱操作与明文相关,用图像的部分像素信息置乱其他的位置像素.文献[6]提出一种基于超混沌的双图关联加密算法,对其中一幅图像进行明文关联,对另一幅进行自适应比特操作.笔者提出基于2态Pauli量子游走的图像加密算法.基于2态Pauli算子的游走构建伪随机数生成器,利用伪随机序列对灰度值进行置乱.采用双向扩散提高安全性能,扩大密钥空间.
(1)
从(1)式可看出,概率与量子系统的初态间存在非线性映射关系,概率对初态具有敏感性,这为构建伪随机数生成器打下了理论基础.
(2)
(3)
(4)
2维概率为
(5)
该文构建的伪随机数生成器生成伪随机序列的步骤如下:
(1)运行量子游走模型,得到的概率为
(6)
其中:0≤p
≤1.为方便起见,将概率转化成序列S
={p
,p
,…,p
1;p
,…,p
2;…;p
1,p
2,…,p
}.(2)重复步骤(1)并将所有的概率序列S
(i
=1,2,…,m
)组合成伪随机序列k
={S
,S
,…,S
}.1.2.1 递归性
递归量化分析(RQA)是分析递归性的有效手段.RQA可从以下方面进行:①确定度(DET);②平均对角线长度(ADL);③熵值(ENTR);④层状度(LAM);⑤捕获时间(TT).
图1为基于2态Pauli量子游走的伪随机数生成器的DET,ADL,LAM,ENTR,TT.文献[7]给定的标准为:给定适当的阈值后,DET及LAM的典型值均约为0.3;ADL及TT的典型值均约为3.从图1可看出,DET最大值为0.22,LAM最大值为0.25,TT最大值为3.4,ENTR最大值为3,均满足文献[7]的标准,这表明基于2态Pauli量子游走的伪随机数生成器生成的伪随机序列具有良好的统计特性.
图1 基于2态Pauli量子游走的伪随机数生成器的DET(a),ADL(b),LAM(c),ENTR(d),TT(e)
1.2.2 非周期性
尺度指数i
可用于研究非周期性.尺度指数i
的大小范围为0≤i
≤1,周期序列的i
接近0,非周期序列的i
接近1.图2为基于2态Pauli量子游走的伪随机数生成器不同r
下尺度指数与硬币算子参数的关系曲线.由图2可知,尺度指数的最佳值为0.95,可见伪随机数生成器得到的伪随机序列是高度非周期性的.图2 基于2态Pauli量子游走的伪随机数生成器不同r下尺度指数与硬币算子参数的关系曲线
1.2.3 伪随机性测试
该文通过NIST SP800-22测试伪随机序列的随机性.设P
-value的阈值α
=0.01,若某系列的P
-value大于此阈值,则该序列可通过测试.表 1为NIST SP800-22的测试结果.由表1可知,所有P
-value均大于α
,表明所有的伪随机序列均通过了测试.表1 NIST SP800-22 的测试结果
K
={k
,k
,…,k
},其中m
和n
分别为图像的高和宽.由于伪随机序列值位于(0,1),像素值位于(0,255),因此加密前需将伪随机序列值扩展至(0,255),其计算公式为k
′=mod(k
×10,256).(7)
计算得到的K
′={k
′,k
′,…,k
′}将作为图像加密的密钥序列.该文所提出的图像加密算法结构如图3所示.
图3 该文图像加密算法结构图
加密过程的具体步骤如下:
(1)使用SHA-256得到明文图像A
的哈希函数值,伪随机数生成器中的参数r
取该哈希值.使用2.1节所述方法得到密钥序列K
={k
,k
,…,k
}和Q
={q
,q
,…,q
2}.(2)利用密钥序列K
={k
,k
,…,k
},进行Arnold置乱操作得到图像B
.置乱操作将明文图像像素坐标(x
,y
)变换为(x
,y
).(3)将置乱后的图像B
均分为4块,标记为E
,E
,E
,E
.进行E
′=E
⊕E
,E
′=E
⊕E
′,E
′=E
⊕E
′,E
′=E
⊕E
′(8)
操作后,将E
′,E
′,E
′,E
′按原始分割顺序组合,得到图像C
.(4)将序列Q
={q
,q
,…,q
2}分为Q
={q
,q
,…,q
},Q
={q
+1,q
+2,…,q
2}.Q
={q
,q
,…,q
},Q
={q
+1,q
+2,…,q
2}分别用于正向扩散和逆向扩散.图像C
经正向扩散和逆向扩散后得到密文图像D
.解密过程是加密的逆过程,具体步骤如下:
(1)通过加密步骤中的(1),得到解密密钥序列Q
′={q
′,q
′,…,q
′2},K
′={k
′,k
′,…,k
′}.(2)对密文图像D
进行正向扩散和逆向扩散的逆操作,得到图像C
′.(3)将图像C
′分为4块,标记为E
′,E
′,E
′,E
′.进行E
=E
′⊕E
′,E
=E
′⊕E
′,E
=E
′⊕E
′,E
=E
′⊕E
′(9)
操作后,得到图像B
′.(4)对图像B
′进行Arnold置乱的逆操作,得到解密图像A
′,A
′即为最初的明文图像A
.该文选取Lena,Baboon,Cameraman图像进行加解密操作.图4为Lena,Baboon,Cameraman的明文图像、密文图像及解密图像.由图4可看出:密文图像完全看不出原图的样子,有良好的加密效果;解密后的图像与明文图像相差无几,有较好的解密效果.
图4 Lena,Baboon,Cameraman的明文图像、密文图像及解密图像
直方图的横坐标为灰度值,纵坐标为该灰度值的像素在图像中出现的次数.若密文图像直方图的像素出现次数绝大多数约为255,则认为加密算法有较好的加密效果.图5为Lena,Baboon,Cameraman图像加密前后的直方图.由图5可看出,密文图像各像素在图像中出现的次数绝大多数约为255,表明该文加密算法有较好的加密效果.
图5 Lena,Baboon,Cameraman图像加密前后的直方图
相邻像素的强相关性能为攻击者提供大量统计信息,好的加密算法应能降低像素间的相关性.该文随机选取了10 000组相邻像素,从水平、垂直和对角线方向进行相关性分析.相关系数计算公式为
(10)
其中:x
,x
′为相邻像素的灰度值.相关系数平均值的计算公式为
(11)
其中:H
,V
,D
分别为水平、垂直、对角线方向上的相关系数.表2为不同明密文图像的相关系数.图6为Lena明密文图像分别在水平、垂直、对角线方向上的相关性分布.由图6和表2可知,明文图像的灰度值分布较集中、相关系数接近于1,密文图像的灰度值分布分散、相关系数接近于0,表明该文算法降低了相关性.
表2 不同明密文图像的相关系数
图6 Lena明密文图像的相关性分布
表3为Lena混沌图像加密算法及该文算法的相关系数,表4为Lake量子游走图像加密算法的相关系数.由表3,4可知,相对于文献[11-14]算法,该文算法相关系数的平均值最小,表明该文算法极大地降低了相关性,有较强的抵抗统计攻击的能力.
表3 Lena混沌图像加密算法及该文算法的相关系数
表4 Lake量子游走图像加密算法的相关系数
敏感性有两种:密钥敏感性和明文敏感性.像素改变率(number of pixels change rate,简称NPCR)和一致平均改变强度(unified average changing intensity,简称UACI)是衡量图像差异的两种常见指标.与NPCR和UACI有关的表达式为
(12)
(13)
(14)
其中:图像C
(i
,j
),C
(i
,j
)′的大小均为M
×N
.在密钥敏感性测试中,设置密钥参数为:N
=1,(α
,β
)=(1,0),θ
=π/
2.加密Lena明文图像得到图7(a);将θ
调整为π/
1.999 999 9,再次加密Lena明文图像得到图7(b).图7(c)为图7(a),(b)的差分图像.差分图像图7(c)不全黑表明两图像间存在着一定的差异.对比图7(d),(e)可知,密钥经过微小调整后无法正确解密,表明该文加密算法对密钥相当敏感.图7 密钥敏感性测试
以Peppers加密为例,研究该文算法的明文敏感性.加密明文图像(图8(a))生成密文图像(图8(b)).在明文图像(图8(a))中随机选择1个像素,让其灰度值加1,用相同密钥加密调整后的明文图像,得密文图像(图8(c)).图8(d)为图8(b),(c)的差分图像.经计算,得到两个密文图像的NPCR为99.65%,UACI为33.47%.表5列出了不同图像明文敏感性测试的结果.由表5可知,NPCR,UACI的数值均分别大于99.58%和33.42%,表明该算法有较好的明文敏感性.
图8 Peppers明文敏感性测试
表5 不同图像明文敏感性测试的结果
NPCR和UACI越大,加密算法越具有安全性.由表6,7可知,除文献[14]Lake图像的 NPCR外,该文算法的NPCR和UACI均高于文献[11-16]算法对应值.因此,相对于文献[11-16]算法,该算法具有较高的安全性.
表6 混沌图像加密算法及该文算法的明文敏感性测试结果
表7 量子游走图像加密算法的明文敏感性测试结果
信息熵是描述信号随机特性的重要指标.理想状态下,256位完全随机信号的信息熵为8.信息熵的计算公式为
(15)
其中:p
(m
)为灰度值m
出现的概率,M
=256.由表8可知,该文算法密文信息熵均达7.997 2以上,最优值为7.997 7,非常接近理想值8.表8 该文算法明密文图像的信息熵
由表9,10可知,该文算法密文信息熵平均值大于引用文献[12-16]的平均值,且十分接近理想值8.因此,相对于文献[12-16]算法,该文算法的密文图像具有较高的随机性.
表9 混沌图像加密算法及该文算法的密文图像信息熵
表10 量子游走图像加密算法的密文图像信息熵
安全的加密算法必须提供足够大的密钥空间,以保证攻击者无法在有效时间内找到密钥.该文伪随机数生成器理论上能生成无限多的随机数,由于计算条件的限制,提供的密钥空间是有限的.假设计算精度为10,根据初始条件和控制参数,算得该文算法的密钥空间约为2,可见该文算法能有效抵御攻击.
该文算法的运行环境为:Windows 10,MATLAB R2018a,Intel(R)Core(TM)i5-8250U CPU @1.60 GHz 1.80 GHz.加密图像的平均时间约为0.335 s,比文献[12]的0.613 s短,可见该文算法的加密速度足够快.
鲁棒性是衡量加密算法抗干扰能力的重要标准.该文通过噪声攻击和裁剪攻击测试加密算法的鲁棒性.峰值信噪比(peak signal noise ratio,简称PSNR)可度量两图像的相似程度,PSNR的计算公式为
(16)
其中:图像f
(i
,j
)和f
(i
,j
)的大小均为N
×N
.PSNR值越小,加密算法的抗攻击能力越强.3.7.1 裁剪攻击
以Lena密文图像为例,通过3种裁剪比例的密文图像测试该文算法的鲁棒性.从表11可看出,不同裁剪比例的PSNR均较小,表明该文算法能有效抵抗裁剪攻击.由图9可知,该文算法能恢复图像的基本面貌.
表11 不同裁剪比例的PSNR
图9 抗裁剪攻击的鲁棒性
3.7.2 噪声攻击
除裁剪攻击外,图像还会受到噪声攻击.以Lena密文图像为例,分别添加强度为0.02的高斯噪声、强度为0.02的椒盐噪声、强度为0.1的均值噪声和强度为1的伽马噪声.由图10可知,解密图像能看出大致轮廓,原始信息基本被保留.从表12可看出,不同噪声的PSNR均较小,表明该文加密算法具有较强的抵抗噪声攻击的能力.
图10 抗噪声攻击的鲁棒性
表12 不同噪声的PSNR
笔者构建了基于2态Pauli量子游走的伪随机数生成器,提出了基于2态Pauli量子游走的图像加密算法.利用Arnold的置乱特性,让明文信息参与密钥生成过程.在置乱的基础上进行双向扩散,保证了密文图像的扩散性.与该文引用文献的加密算法相比,该文算法有较好的加密效果,有较强的抵抗统计攻击、裁剪攻击及噪声攻击的能力,有较高的安全性.该文算法的加密速度仍有提升空间,有待后续的改善和优化.