0引言随着医学、航空航天、军事、云计算和物联网(internet of things, IOT)等领域的发展,通过互联网和无线网络进行数字图像传输的需求也越来越高(Dhall等,2018)。数字图像具有直观清晰的信息表达能力,承载着大量有价值的信息,因此数字图像信息的安全保护工作至关重要,针对这一需求,研究人员提出了一系列图像加密方法,其中主要有基于小波变换的加密方法(Li等,2018a),基于DNA编码的加密方法(Zefreh,2020;张晓宇和张健,2021;Ben等,2018),基于可逆细胞自动机的加密方法(Souyah和Faraoun,2016),基于置乱的加密方法(Zhang等,2016;梁颖和张绍武,2018)以及基于混沌系统的加密方法(Chen等,2020;Liu等,2021;Xian和Wang,2021;周辉等,2021;Wang等,2019)等。混沌系统因具有初始条件敏感性、不可预测性和便利性等内在特性,使得基于混沌系统的加密方法成为最具代表性和应用最广泛的图像加密方法。然而近期研究表明,大多数现有的图像加密方法的安全性非常值得怀疑(Preishuber等,2018),特别是在低计算精度条件下,一些声称具有较高安全性的图像加密方法很容易被攻击者破解(Li等,2018a, b)。为了提升加密方法的安全性,涌现了一些高维加密方法,如改进版2D-SCL(a new 2D hypher chaotic map based on the sine map, the chebysher map and a linear function)加密方法(Chen等,2020),这些方法在高精度环境下表现出较高的安全性,然而在研究中发现这些方法的时间复杂度与低维方法相比较高,而且在低精度环境下的安全性也存在严重缺陷。基于置乱的加密方法(Zhang等,2016)和基于DNA编码的加密方法(Zefreh, 2020)是潜在的可有效运行于低精度环境下的图像加密方法。前者在加密过程中一般直接在像素级或bit位级对图像进行置乱和扩散;后者在加密过程中通常将每个像素分为4组4进制数,之后用DNA的4种碱基分别表示一个4进制数,最后借鉴DNA编码规则对像素内的各组进行置乱和扩散。据此分析可知与混沌加密方法不同,它们主要基于像素的bit位信息进行加密,不需要运行于对精度要求较高的浮点数系统之上,因此它们具有在低精度环境下有效运行的潜力,但是这两类方法在加密过程中通常需要借助混沌系统生成的随机数进行置乱和扩散,这不可避免地严重影响了它们在低精度环境下的安全性。为了提升加密速度,研究人员提出了几种批量加密方法,主要有压缩加密、多线程加密和组合加密等批量加密方法。压缩加密(Liu等,2021;Li等,2021)具有降低传输带宽的优点,但是这类方法不仅会造成图像信息的丢失,而且还依赖于高性能计算设备的支持;多线程加密(Song等,2020)具有加密速度快的优点,但是对硬件的计算性能要求较高,在计算性能较低的硬件环境下难以正常工作;现有的组合加密方法(Wang等,2021)虽然是无损加密,但即使在高计算精度环境下其安全性也存在着严重的缺陷,在低计算精度环境下其安全性更低。综上所述,这些组加密方法也难以满足IOT环境下的实际需求。针对IOT环境下的实际需求及现有加密方法的不足,本文提出了一个基于素数模乘线性同余产生器的批图像加密方法。该加密方法不仅在低精度环境下(如2-8)表现出较高的安全性,而且时间复杂度较低,可以在确保较低时间开销的基础上大幅提升低计算精度下图像加密的安全性。1基于素数模乘线性同余产生器的批图像加密方法混沌加密方法是现有最具代表性的图像加密方法,这类加密方法依赖于浮点数运算,而且对浮点数的精度要求较高,所以在低计算精度环境下这些混沌系统的随机性会遭到严重破坏,导致相应加密方法的安全性急剧降低。研究发现,单字节长度的素数模乘线性同余产生器不仅可以产生取值范围为[0, 255]的符合均匀分布的伪随机数序列,而且也可以在加密方法中取代目前广泛使用的混沌系统,使加密方法运行于单字节长度的低精度环境下,摆脱对高精度计算环境的依赖。在研究中还发现,加密方法的速度虽然受优化方法的影响,但主要取决于加密过程的时间复杂度。现有主流的混沌加密方法大致可分为两类:一类是加密过程中每个像素对应一组混沌随机数,另一类是多个像素对应一组混沌随机数。前者所用的混沌系统每产生一个随机数往往需要数十次的浮点数运算,安全性较高的高维混沌系统所需的计算次数更多;后者虽然需要产生的随机数数量相比前者大幅降低,但是在加密过程往往需要多轮加密,因此它们的时间开销均较大。本文方法提升加密速度的核心思路是在尽可能降低产生一个随机数所需计算次数的同时,使多个像素对应一个随机数且仅需单轮加密。该思路可以从理论上保证本文方法具有相对较低的时间复杂度。基于上述思路,提出了一个基于素数模乘线性同余产生器的批图像加密方法。1.1素数模乘线性同余产生器在研究中发现,基于单字节长度的素数模乘线性同余产生器可以在低精度环境(如2-8)下产生符合均匀分布的取值范围为[0, 255]的伪随机数列,该数列可以取代混沌系统用于低精度环境下的图像加密。根据上述发现,本文在Wichmann和Hill(1982)的基础上提出了一个单字节环境下素数模乘线性同余产生器(prime modulo multiplication linear congruence generator,PMMLCG),具体计算为1$\left\{\begin{array}{l}U_r=15 \times U_{r-1} \bmod 251 \\V_r=14 \times V_{r-1} \bmod 241 \\W_r=11 \times W_{r-1} \bmod 239 \\X_r=\left(U_r+V_r+W_r\right) \bmod 256\end{array}\right.$ 式中,产生器$X_r$由3个素数模乘同余产生器$U_r$、$V_r$和$W_r$线性组合而成。这3个产生器不仅生成的伪随机数均为[0, 255]范围内的整数,而且它们因分别满足条件$\left\lfloor\frac{251}{15}\right\rfloor=1615 、\left\lfloor\frac{241}{14}\right\rfloor=1714$和$\left\lfloor\frac{239}{11}\right\rfloor=2111$而确保模乘运算时不溢出。由上述分析可知,本文提出的素数模乘线性同余产生器可以在[0, 255]范围内正常工作。此外,通过计算得知该产生器的周期为714 000,可以满足加密算法的需求。为了分析PMMLCG的随机性能,展示了PMMLCG生成的伪随机序列的直方图和散点图。图 1和图 2分别是使用式(1)生成伪随机数的归一化直方图和依据生成时间序列显示的前13 000个伪随机数的散点图。从图 1和图 2可以看出,由素数模乘线性同余产生器产生的伪随机数列符合均匀分布,因此可以在加密方法中使用该产生器代替经典的混沌系统。 图1 PMMLCG生成的伪随机数序列的直方图 Histogram of generated pseudo random numbers by PMMLCGFig 1 图2 PMMLCG生成的伪随机数序列的散点图 Scatter plot of generated pseudo random numbers by PMMLCGFig 21.2基于PMMLCG的批图像加密方法该加密方法可以分解为7个步骤,分别是图像集哈希值的生成、组合图像的生成、组合图像的更新、加密序列矩阵的生成、图像置乱、置乱图像的加密和加密序列矩阵的加密(如图 3),具体内容如下: 图3 加密方法流程图 The flow chart of encryption methodFig 31) 生成图像集的哈希值。为了增强加密方法的敏感性,采用SHA-1(secure hash algorithm-1)方法生成图片集的哈希值。具体方法是将尺寸为$M \times N$的$K$幅图像作为SHA-1的输入,其输出可转化为20个单字节的数字$H(s), s=1, 2, \cdots, 20$,每个数字$H(s)$的取值范围是[0, 255]。2) 生成3幅组合图像。为了使用PMMLCG产生伪随机数列矩阵,基于图像集生成3个组合图像作为PMMLCG的输入。具体方法是:首先将上述$K$幅图像等分为3组,分组后的每幅图像分别表示为$\boldsymbol{P}_k^i, k=1, 2, \cdots, K / 3 ; i=1, 2, 3$,其中, $i$表示组的编号,$k$表示组内图像的序号;然后对第1组内的所有图像中位置为(1, 1)的像素值进行异或操作,进而生成一个新的像素值$p^1$,具体运算规则为2$\begin{aligned}p^1(1, 1)=& P_1^1(1, 1) \oplus P_2^1(1, 1) \oplus \cdots \\& \oplus P_{(K / 3)}^1(1, 1)\end{aligned}$ 之后,依次对第1组内所有图像中位置为(1, 2), (1, 3), …, (2, 1), (2, 2), (2, 3), …, ($M, N$)的像素值分别进行上述异或操作(⊕),直至生成一幅尺寸为$M \times N$的新图像$\boldsymbol{p}^1$;最后,分别在第2组和第3组内进行上述操作,生成$\boldsymbol{p}^2$和$\boldsymbol{p}^3$。3) 更新$\boldsymbol{p}^3$。为了提高加密方法的敏感性,借助哈希值$H(s)$对$\boldsymbol{p}^3$进行更新。具体更新为3$p^3(m, n)=p^3(m, n) \oplus H(s)$ 式中,$p^3(m, n)$表示组合图像$\boldsymbol{p}^3$中坐标为$(m, n)$的像素值,$N$表示图像中每行的像素数量,$s$表示哈希值的编号,计算为4$s=[(m-1) \times N+n] \bmod 20$ 4) 加密序列矩阵的生成。为了对图像集内的所有图像进行加密,这里基于PMMLCG和上述组合图像生成一个伪随机数列矩阵。生成方法为5$\left\{\begin{array}{l}q_1=15 \times p^1(m, n) \bmod 251 \\q_2=14 \times p^2(m, n) \bmod 241 \\q_3=11 \times p^3(m, n) \bmod 239 \\Q(m, n)=\left(q_1+q_2+q_3\right) \bmod 256\end{array}\right.$ 式(5)是式(1)的具体应用。式中,$p^1(m, n) 、p^2(m, n)$和$p^3(m, n)$分别表示$\boldsymbol{p}^1 、\boldsymbol{p}^2$和$\boldsymbol{p}^3$内坐标为$(m, n)$的像素值,$q_1 、q_2$和$q_3$代表经过异或后的像素值,$Q(m, n)$表示根据$q_1 、q_2$和$q_3$计算得到的图像$\boldsymbol{Q}$内坐标为$(m, n)$的伪随机数。该步骤生成的$\boldsymbol{Q}$作为加密序列矩阵用于后续步骤中的图像置乱和扩散。5) 图像置乱。该步骤的目的是打乱图像内像素点的排列顺序,破坏图像中像素点间的相关性。该方法的核心思路是以$\boldsymbol{Q}$的第1行数列为行置乱参数$Q(1, n)$,以$\boldsymbol{Q}$的第2行数列为列置乱参数$Q(2, n)$;具体方法如下:首先进行行置乱,以$Q(1, n)$的值为参数,将所有图像$\boldsymbol{P}_k^i$的第$n$行的像素值,以像素为单位左移$Q(1, n)$次,左侧移出的像素值依次添加到本行右侧的末尾,直至将所有行均完成移位为止;最后进行列置乱,以$Q(2, n)$的值为参数,将所有图像$\boldsymbol{P}_k^i$的第$n$列的像素值,以像素为单位上移$Q(2, n)$次,向上移出的像素值依次添加到本列下方的末尾,直至将所有列均完成移位为止。至此,所有的图像$\boldsymbol{P}_k^i$均更新为置乱后的图像$\overline{\boldsymbol{P}}_k^i$。6) 对置乱后的图像集进行加密。具体方法如下:以矩阵$\boldsymbol{Q}$为加密序列矩阵,与所有置乱图像$\overline{\boldsymbol{P}_k^i}$中对应位置的像素值一一进行异或运算,具体运算为6$\tilde{P}_k^i(m, n)=Q(m, n) \oplus \bar{P}_k^i(m, n)$ 通过上述异或运算,即可生成密文图像$\tilde{\boldsymbol{P}}_k^i$。7) 对矩阵$\boldsymbol{Q}$进行加密。在传输密钥与密文阶段,密文已经具有相当的安全性,但是对于密钥部分,传输前仍然需要进行加密保护。对密钥的加密可以根据具体应用环境使用任一具有较高安全性的加密方法,为了简单起见,本文采用改进版2D-SCL方法(Chen等,2020)对加密序列矩阵$\boldsymbol{Q}$进行加密。加密之后的矩阵命名为$\hat{\boldsymbol{Q}}$。1.3解密方法解密部分主要由加密序列矩阵解密、密文解密和逆置乱3部分组成:1) 加密序列矩阵解密。对矩阵$\hat{\boldsymbol{Q}}$使用改进版2D-SCL解密方法进行解密,得到加密序列矩阵$\boldsymbol{Q}$。2) 密文解密。在图像解密阶段,以矩阵$\boldsymbol{Q}$为解密序列矩阵,与所有密文图像$\tilde{\boldsymbol{P}}_k^i$中对应位置的像素值进行异或运算,具体运算为7$\bar{P}_k^i(m, n)=Q(m, n) \oplus \widetilde{P}_k^i(m, n)$ 3) 逆置乱。对上述$\overline{\boldsymbol{P}}_k^i$图像进行逆置乱的思路如下:以$\boldsymbol{Q}$的第1行数列$Q(1, n)$作为行逆置乱参数,以$\boldsymbol{Q}$的第2行数列$Q(2, n)$作为列逆置乱参数;逆置乱过程先执行列逆置乱,再执行行逆置乱。列逆置乱步骤可描述为:以$Q(2, n)$的值为参数,将所有图像$\overline{\boldsymbol{P}}_k^i$的第$n$列的像素值,以像素为单位下移$Q(2, n)$次,向下移出的像素值依次添加到本列上方的顶部,直至将所有列均完成移位为止。行逆置乱步骤可描述为:以$Q(1, n)$的值为参数,将所有图像$\overline{\boldsymbol{P}}_k^i$的第$n$行的像素值,以像素为单位右移$Q(1, n)$次,右侧移出的像素值依次添加到本行左端,直至将所有行均完成移位为止;至此,所有的图像$\overline{\boldsymbol{P}}_k^i$均更新为逆置乱后的原图像$\overline{\boldsymbol{P}}_k^i$。2实验仿真分析仿真实验中计算机的配置为Intel(R) Core (TM) i7-10710 CPU @ 1.10 GHz,内存是16 GB,操作系统是Windows10;仿真软件采用Pycharm2019.2.4×64。本文使用基于DNA的加密方法(Zefreh, 2020)、比特置乱加密方法(Zhang等,2016)和混沌加密方法(Chen等,2020; Liu等,2021)作为实验对比对象,此4种方法可以分别代表现有的经典图像加密方法。实验图像来自于USC-SIPI-Miscellaneous数据集,从中随机选出100幅512×512像素的图像作为测试数据。为了便于展示加密效果,选择4幅具有代表性的图像进行展示(见图 4)。 图4 4幅图像的加密解密效果图 Encryption and decryption results of four imagesFig 4((a) four images; (b) histogram of images; (c) encrypted images; (d) histogram of encrypted images; (e) decrypted images) 2.1相关性分析相邻像素相关性通常用于评价图像加密方法的性能。两个相邻像素序列的相关性可以计算为8$\begin{gathered}R= \\\frac{\sum\limits_{t=1}^T[D(t)-E(D)]\left[D^{\prime}(t)-E\left(D^{\prime}\right)\right]}{\sqrt{\sum\limits_{t=1}^T[D(t)-E(D)]^2 \sum\limits_{t=1}^T\left[D^{\prime}(t)-E\left(D^{\prime}\right)\right]^2}}\end{gathered}$ 式中,$D(t)$和$D^{\prime}(t)$为图像的两个相邻像素,$T$为像素个数,$E(D)=\sum\limits_{t=1}^T D(t)$和$E\left(D^{\prime}\right)=\sum\limits_{t=1}^T D^{\prime}(t)$为$D(t)$与$D^{\prime}(t)$对应的数学期望。如果$D(t)$和$D^{\prime}(t)$表现出较高的相关性,则$R$的值接近1或-1;相反,接近0。图 5分别展示了明文图像在水平、垂直和对角线方向上相邻像素间的相关性和密文图像在水平、垂直和对角线方向上相邻像素间的相关性。从图 5(a)—(d)可知明文图像在水平、垂直和对角线方向上相邻像素间的相关值聚集在对角线上,表现出较强的相关性;但从图 5(f)—(h)可知密文图像在水平、垂直和对角线方向上相邻像素间的相关性均匀分布在相关性空间,表现出较高的无关性。表 1是相关性的具体数据统计,从表中可知,本文方法对应的最大相关系数(0.026 9)接近于0,进一步表明本文方法加密后的图像具有较高的无关性,攻击者难以从中获取有价值的密文破解信息。 图5 飞机图像相邻像素的相关性 The adjacent correlation of airplaneFig 5((a) airplane image; (b) horizontal direction of (a); (c) vertical direction of (a); (d) diagonal direction of (a); (e) encrypted image of (a); (f) horizontal direction of (e); (g) vertical direction of (e); (h) diagonal direction of (e)) 表1 相邻像素的相关系数 方法 Lena Peppers Airplane 水平 垂直 对角线 水平 垂直 对角线 水平 垂直 对角线 原图 0.987 4 0.977 9 0.963 5 0.860 4 0.919 9 0.848 3 0.960 2 0.972 1 0.937 4 Chen等人(2020) 0.023 8 0.000 8 0.031 4 0.004 7 0.007 3 0.000 3 0.022 8 0.000 5 0.034 9 Zefreh(2020) 0.010 4 0.008 1 0.011 0 0.003 4 0.012 7 0.004 8 0.012 6 0.010 8 0.003 8 Liu等人(2021) 0.006 6 0.005 6 0.003 4 0.004 3 0.003 6 0.004 9 0.003 4 0.002 4 0.006 5 Zhang等人(2016) 0.004 2 0.000 6 0.003 7 0.001 8 0.002 4 0.003 1 0.001 8 0.007 4 0.000 5 本文 0.008 5 0.008 1 0.017 2 0.026 9 0.003 5 0.005 4 0.007 7 0.010 6 0.017 7 The correlation coefficient of adjacent pixelsTable 12.2信息熵信息熵是评价图像加密方法随机性的一种常用方法。图像$\boldsymbol{c}$的信息熵使用$I(\boldsymbol{c})$表示, 具体计算为9$I(\boldsymbol{c})=\sum\limits_{i=0}^{255} P_c(i) \log \frac{1}{P_c(i)}$ 式中,$i$表示范围从0到255的图像像素值,$P_c(i)$是图像$\boldsymbol{c}$像素值为$i$的概率。对于每个通道的彩色图像或灰度图像,它们最大信息熵的值为8。表 2列出了不同图像及其在不同方法下对应的加密图像的信息熵。该表显示所有加密方法生成的密文的信息熵都极其接近8。表2 不同图像信息熵 明文图像 明文信息熵 Chen等人(2020) Zefreh(2020) Liu等人(2021) Zhang等人(2016) 本文 Crown 6.948 7.999 3 7.999 3 7.999 3 7.999 3 7.999 4 House 7.416 7.999 3 7.999 3 7.999 3 7.999 3 7.999 3 Lena 7.268 7.999 3 7.999 1 7.999 3 7.999 2 7.999 3 Airplane 6.718 7.999 3 7.999 3 7.999 3 7.998 7 7.999 3 The information entropy of different imagesTable 22.3像素敏感性为了测试本文加密方法的敏感性,采用通用的明文敏感性检测方法对本文加密方法进行测试,并计算相应图像的近邻相关性用于量化展示本文方法的像素敏感性。具体测试方法为(图 6):首先改变明文图像集100幅图像中一幅图像的一个像素值,如图 6(a)(b),将图 6(a)减去图 6(b)可得图 6(c),之后计算图 6(c)的近邻相关性,在水平、垂直和对角线上均约为1,从图 6(c)及相关系数可知图 6(a)与图 6(b)间高度相关,它们区别很小。接着将图 6(a)和图 6(b)按照本文方法进行加密,分别得到图 6(d)与图 6(e),之后将图 6(d)减去图 6(e)得到图 6(f),最后计算图 6(f)的近邻相关性,在水平、垂直和对角线上分别为-0.022 5、0.002 8和-0.007 3,从图 6(f)及相关系数可知,图 6(d)和图 6(e)间不相关,它们区别极大。从上述分析可知,本文加密方法的像素敏感性较高,对任一像素的微弱变化极为敏感。 图6 像素敏感性 Pixel sensitivityFig 6((a) airplane image; (b) airplane image changed one pixel; (c) subtraction of (a) and (b); (d) encrypted (a); (e) encrypted (b); (f) subtraction of (d) and (e)) 在密钥方面,本文加密方法与现有混沌加密方法存在较大差异。前者在加密图像时直接使用以组合图像为初始值产生的伪随机数列矩阵,之后使用任何合适的现有加密方法对该矩阵加密,因此本文加密方法加密后的组合图像并不作为密钥使用,可以直接丢弃;而后者在加密图像时使用基于初始值产生的伪随机序列,加密后还需保存初始值作为后续解密的密钥。因此现有密钥敏感度测试方法并不适用于评估本文加密方法的密钥敏感度,所以不对密钥敏感度进行评估和展示。2.4密钥空间众所周知,为了确保加密安全性,加密方法的密钥空间应不小于2128。本文和对比方法在不同计算精度下的密钥空间记录于表 3中。从表 3可知,在计算精度为2-16和2-8环境下,本文的密钥空间均为2(8×512×512),远大于2128,足以满足密钥安全性的要求;而改进版2D-SCL加密方法虽然在计算精度为2-16环境下的密钥空间是0.3×2158,可以满足密钥安全性的需求,但是在计算精度为2-8环境下的密钥空间是0.3×294,远小于2128,不满足密钥安全性的要求。基于DNA、混沌和哈希值混合模型加密方法的密钥空间在计算精度为2-16和2-8情况下的密钥空间都小于2128,低于安全性要求;基于耦合分段正弦映射和敏感扩散结构的混沌图像加密算法在计算精度为2-16和2-8情况下的密钥空间都远小于2128,不能满足安全性要求;采用比特置乱的加密方法的密钥空间虽然在计算精度为2-16环境下是0.4× 2128+2131,可以满足密钥安全性的需求;但是在计算精度为2-8环境下的密钥空间为0.4×264+267,不能满足密钥安全性要求。表3 不同算法密钥空间对比 密钥空间 2-16 2-8 Chen等人(2020) 0.3×2158 0.3×294 Zefreh(2020) 0.11×2112 0.11×256 Liu等人(2021) 286 238 Zhang等人(2016) 0.4×2128+2131 0.4×264+267 本文 2(8×512×512) 2(8×512×512) The key space of different encryption algorithmsTable 32.5抗差分攻击分析差分攻击是一种常用且高效的安全攻击方法。像素数量变化率(number of pixel changing rate, NPCR)和统一平均变化强度(umified average changed intensity, UACI)是评价抵抗差分攻击能力的两个常用指标。NPCR用于统计不同像素的数量,而UACI用于统计两幅图像之间像素的平均变化。假设${\mathit{\boldsymbol{d}}^1}$和${\mathit{\boldsymbol{d}}^2}$是两幅密文图像,它们对应的明文图像只有一个比特值的差异,则NPCR和UACI计算为10$\begin{aligned}f_{\text {NPCR }} &=\sum\limits_{t=0}^{T-1} \frac{\delta\left(d^1(t), d^2(t)\right)}{T} \\f_{\text {UACI }} &=\sum\limits_{t=0}^{T-1} \frac{\left|d^1(t)-d^2(t)\right|}{T}\end{aligned}$ 式中,$\delta$是一个符号函数,如果$d^1(t)$等于$d^2(t)$,那么$\delta\left(d^1(t), d^2(t)\right)=0$。否则,$\delta\left(d^1(t), d^2(t)\right)=1$。此外,$T$表示密文图像的总像素数量,$F$表示最大允许像素值,通常设置为255。理想情况下$NPCR$的值为$\mu_N=0.9961$,$UACI$的值为$\mu_U=0.3346$,根据Chen等人(2020), 在$\alpha$水平上,通过式(11)和式(12)判断当前$NPCR$是否处于标准范围内。11$\left\{\begin{array}{l}H_{N 0}: NPCR=\mu_N \\H_{N 1}: NPCR\mu_N\end{array}\right.$ 12$N^*(\alpha)=\frac{F-\phi^{(-1)}(\alpha) \sqrt{\frac{F}{T}}}{F+1}$ 当$N P C RN^*(\alpha)$时,当前$NPCR$不符合要求,拒绝;否则,接受。与$NPCR$类似,$UACI$也有相应的标准,在$\alpha$水平上,由式(13)和(14)判断当前$UACI$是否处于标准范围内。13$\left\{\begin{array}{l}H_{N 0}: U A C I=\mu_u \\H_{N 1}: U A C I\mu_u\end{array}\right.$ 14$\begin{array}{c}U_ - ^*(\alpha) = \frac{{F + 2}}{{3(F + 1)}} - {\phi ^{(- 1)}}\left({\frac{\alpha }{2}} \right) \times \\\sqrt {\frac{{(F + 2)\left({{F^2} + 2F + 3} \right)}}{{18 \times T \times F{{(F + 1)}^2}}}} \\U_ + ^*(\alpha) = \frac{{F + 2}}{{3(F + 1)}} + {\phi ^{(- 1)}}\left({\frac{\alpha }{2}} \right) \times \\\sqrt {\frac{{(F + 2)\left({{F^2} + 2F + 3} \right)}}{{18 \times T \times F{{(F + 1)}^2}}}} \end{array}$ 如果$U A C I \in\left(U_{-}^*(\alpha), U_{+}^*(\alpha)\right)$, 当前$UACI$符合要求,接受;否则,拒绝。借鉴Chen等人(2020)的参数设置, 这里将显著性水平$\alpha$设置为0.01和0.05。通过计算可得,$N^*(0.01)=99.5810, N^*(0.05)=99.5893$, $U_{-}^*(0.01)=33.3445, U_{+}^*(0.01)=33.5826$, $U_{-}^*(0.05)=33.3730, U_{+}^*(0.05)=33.5541$。实验将每幅图像测试100次,每次在某幅图像随机选取一个像素并改变其中1个bit位的值,然后使用本文方法对数据集进行加密。根据上述公式计算得到的结果展示在表 4中。表 4显示,本文加密方法的通过率可以稳定达到90%以上,根据Wu等人(2011)可知,本文方法能够有效抵抗差分攻击。表4 不同显著性水平下NPCR、UACI通过率 明文图像 NPCR(0.01) NPCR(0.05) UACI(0.01) UACI(0.05) Airplane 0.97 0.93 1 0.99 Baboon 1 0.90 1 0.95 House 0.96 0.90 0.99 0.94 Lena 0.99 0.98 1 0.97 Crown 0.99 0.94 0.99 0.95 The pass rate of NPCR and UACI with different levels of significanceTable 4 括号内为显著性水平α取值。2.6抗明文攻击已知明文攻击和选择明文攻击是破解加密图像的常用方法。一个安全的加密方法应该具备较强的抗明文攻击能力。纯白和纯黑色图像会使加密方法的置乱效果失效。黑客经常使用这种类型的图像来破解加密方法。因此,它们常用于评估加密方法对已知明文和选择明文攻击的抵抗力,图 7展示了纯白和纯黑色图像加密的效果,可以看出加密图像都是类噪声图像,并且直方图是均匀分布的,这意味着不能从这些加密图像中获得任何关于普通图像的信息。表 5展示了纯白和纯黑色图像密文的相关性、信息熵以及$NPCR$与$UACI$值。数据显示密文的近邻像素的相关性、信息熵、$NPCR$和$UACI$均接近于理想值,进一步证实了本文方法具有较强的抗明文攻击能力。 图7 纯白和纯黑色图像加密结果 Encryption results of all-black and all-white imagesFig 7((a) all-white image; (b) encrypted image of (a); (c) histogram of (b); (d) all-black image; (e) encrypted image of (d); (f) histogram of (e)) 表5 纯白色与纯黑色性能评估指标 图像 相关性 信息熵 NPCR UACI 水平 垂直 对角线 白色 0.019 2 0.012 3 0.019 5 7.999 3 0.996 07 33.446 黑色 0.018 7 0.001 2 0.010 9 7.999 3 0.996 10 33.470 The performance assessment results of all-black and all-white imagesTable 52.7抗遮挡和抗噪声攻击在加密图像传输过程中,不可避免会存在数据丢失或变异的问题,使加密图像必然面临遮挡和噪声的干扰,因此抗遮挡和抗噪音攻击也是图像加密方法需要具备的必要能力,对进一步提升加密方法的安全性具有重要意义。这就意味着对于一个理想的加密方法来说,它必须对普通图像的微小变化甚至一个像素的变化极其敏感,而加密图像的像素变化对解密过程的影响较小。具体评估方法如图 8所示。抗遮挡攻击的评估方法如下:将加密图像(图 8(b))遭受遮挡攻击后得到遮挡图像(图 8(c)),之后对遮挡图像(图 8(c))再用普通的方式进行解密,得到图像(图 8(d))。抗噪音攻击的评估方法如下:将原图(图 8(a))加密得到密文图像(图 8(b)),在密文图像(图 8(b))中加入散斑噪音得到遭受噪音攻击后噪音图像(图 8(e)),之后对图像(图 8(e))进行解密,得到噪音攻击后的解密图像(图 8(f))。由解密后的图像(图 8(d)和图 8(f))可知,该方法对遮挡攻击和噪音攻击具有一定的鲁棒性。 图8 抗遮挡攻击与抗噪声攻击 Anti-occlusion attack and anti-noise attackFig 8((a) airplane image; (b) encrypted image; (c) encrypted image with 0.2 data loss; (d) decrypted image with 0.2 data loss; (e) encrypted image with 0.05 speckle noise; (f) decrypted image with 0.05 speckle noise) 2.8时间开销对比除了加密方法的安全性以外,运行速度也是评价图像加密系统性能的一个重要指标。由于本文方法在加密过程中使用多像素对应同一个伪随机数,因此有效降低了加密的时间开销,提升了加密速度。表 6展示了对50~800幅普通图像进行加密所需的时间开销,可以看出在多图像加密时,本文方法所需的加密时间开销不仅低于目前具有较低时间开销的混沌加密方法(Chen等,2020),而且也远低于基于DNA和位置乱的代表性加密方法所需的时间开销,证实了本文方法具有较高的加密速度和效率,达到了预期目标。表6 不同方法时间开销对比分析 方法 图像数量/幅 50 100 200 400 800 Chen等人(2020) 2.44 4.74 9.55 18.95 37.06 Zefreh(2020) 31.05 60.21 118.81 226.41 450.23 Liu等人(2021) 8.47 15.62 30.23 62.31 122.23 Zhang等人(2016) 295.56 581.62 1 154.65 2 220.46 4 406.92 本文 1.54 2.59 4.53 8.37 16.54 The test result of time consumption of different schemes  /sTable 63结论本文针对在低计算精度环境下现有图像加密方法的安全性和速度均较低的问题,基于素数模乘线性同余产生器提出了一种具有较高安全性和加密速度的批图像加密方法。通过使用基于单字节的素数模乘线性同余产生器代替混沌系统,确保该加密方法可以安全有效地运行于低精度计算环境下。在加密过程中使用多像素对应同一个伪随机数,有效降低了加密的时间开销,提升了加密速度。此外,借助哈希值提升了加密方法的敏感性。实验结果表明,该方法显著提升了低计算精度环境下图像加密的速度和安全性。然而组合图像的生成及加密序列矩阵的生成等方面的时间开销依然较大,在确保安全性的基础上,如何进一步降低上述过程的时间开销是后续研究需要关注的问题。

使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,

确定继续浏览么?

复制成功,请在其他浏览器进行阅读