system: [SYSTEM]

user: 4. 本文提出算法的仿真实验和加密性能分析 4.1. 仿真实验 在这一部分，采用Matlab R2014a软件对本文提出的彩色图像加密新算法进行仿真测试。本文所有的实验均在同一台个人计算机上实现与执行，计算机的主要硬件环境如下：CPU处理器：Intel(R)Core(TM) 图6. 本文提出加密算法流程图 i7-5500CPU@2.40GHz 2.39GHz，安装内存：4.00GB；计算机运行系统：Windows 8.1中文版。另外，所有的仿真实验图像都是取自文献 [ 23 ] 的图像数据库。采用的加密密钥为 key = ( u ， u 1 ， u 2 ， N 0 ， x 10 ， x 20 ) = ( 4 ， 0.456 ， 0.7658 ， 1000 ， 9.997 ， 4.998 ) 分别对三幅尺寸大小均为 512 × 512 彩色图像即Lena，Tiffany，Mandrill用本文提出的加密算法进行加密，其结果如图7所示，可以观察注意到，所有的密文均呈现“雪花”形状且无明显纹理出现，展现出完全混乱的现象，攻击者不能从密文中获取任何有关密钥和明文图像的信息，因而对明文图像起到了很好的保护作用，这说明了本文提出的彩色图像加密算法有一个非常好地加密效果，而且所有的密文都可以通过正确的加密密钥来获得与明文完全相同的图像。 4.2. 加密性能分析 一般来说，一个安全性强的图像加密算法能够抵抗绝大多数的已知攻击，比如已知明文或选择明文攻击、选择密文攻击、仅知密文攻击和各种蛮力攻击等。为了检验本文提出加密算法的安全性强弱，对于图像加密算法的重要安全分析如密钥空间分析、统计分析、密钥敏感性分析和差分分析等均在这一小节讨论。 4.2.1 . 密钥空间分析 加密算法的密钥空间是指能够用在加密过程中的密钥所有可能取值的总和。如果一个加密算法的密钥空间不足够大，很多非法攻击如暴力攻击等非常容易地对加密算法进行破解，因此加密算法安全性强的必要条件是必须要有足够大的密钥空间。从今天计算机的计算精度来看，对于普通加密的实际应用中，大于128 bit的密钥空间一般被认为是安全的 [ 20 ] 。在本文提出的加密算法中，如果把算法的密钥空间定义为由 ( u ， u 1 ， u 2 ， N 0 ， x 10 ， x 20 ) 组成的空间大小，其中， u ， u 1 ， u 2 ， x 10 ， x 20 分别为混沌映射的参数和初值， N 0 是为了避免产生过渡效应的预先迭代次数，为了不增加计算的时间，一般取其量级为10 4 。如果取双精度数据的精度作为计算，那么可以得到本文提出算法的密钥空间大小，即 log 2 ( 10 14 × 5 × 10 4 )   bit ，这个值远远大于理论值128 bit，而且，如果把混沌映射的其他初值和参数也作为密钥的组成部分，那么本文提出算法的密钥空间将会变得更加大。这就说明了本文提出的彩色图像加密算法具有非常大的密钥空间，它足以抵抗各种暴力攻击。 4.2.2 . 直方图分析 一幅图像的一维直方图是表示图像灰度分布情况的统计图表 [ 24 ] 。一般地，一维直方图的横坐标表示灰度级，纵坐标则表示具有该灰度级的像素个数或者出现这个灰度级的概率或频率。由于每个像素灰度级对应的概率或频率给出了对该灰度级出现的概率估计，因而直方图提供了图像的像素灰度值分布情况，即给出了一幅图像所有灰度值的整体情况描述。对于一幅8比特的灰度图像，其灰度值可能有2 8 种不同 图7. (a)-(i)分别对应Lena (a)，Tiffany (d)，Mandrill (g)的明文、密文图像和解密图像 的取值，因此，灰度图像的直方图显示了256种不同灰度值的分布情况。对于一个安全性强的图像加密算法，加密得到的密文图像的灰度值应该有一致分布的趋势。对于一幅数字彩色图像，则将其红、绿、蓝颜色通道各看作是特殊一幅灰度图像，这样就可以用灰度图像的一维直方图方法去分析加密算法的性能。图8分别画出了Lena明文及其密文红、绿、蓝3个颜色通道的一维直方图，可以看到，密文图像各颜色通道的直方图均比明文图像对应的颜色通道的分布更加平坦，基本趋于一致分布，波动范围较明文图像各颜色通道要小，这也就说明了本文提出的算法具有良好的鲁棒性。 4.2.3 . 信息熵分析 在信息论中，信息熵是反映一个信息源的随机性和不可预测性的数学概念。对于数字图像来说，信息熵则反映了图像信息的不确定性。一个信息源m的信息熵 H 数学公式定义如下： H ( m ) = ∑ 0 2 N − 1 p ( m i ) log 2 1 p ( m i ) ( bits ) (26) 图8. (a)-(f)分别为Lena明文图像及其密文的红、绿、蓝颜色通道的直方图 这里 p ( m i ) 是在信息m中 m i 发生的频率或概率， N 是指在信息源m中表达一个字符所需要的最基本的bit位个数。对于一个确定和可以预测的信息，由于其每一个元素出现概率均为1，由信息熵的数学定义容易知道该信息的信息熵为0。而对于一个完全随机的序列组成的信息，因为不能预测序列下一个字符的详细情况，所以该信息序列有一个最大的信息熵。对于一幅灰度图像，信息熵定义中的 N = 8 。一个在0到255范围内一致分布的随机图像，就是说，每个灰度值出现的概率相同，那么由(26)式，可以计算出其信息熵的理想值为8。所以对于图像加密来说，加密图像的信息熵值越接近于8，则图像加密系统泄漏有关明文信息的可能性就越小。类似于彩色图像的直方图分析处理方法，把数字彩色图像的红、绿、蓝 个颜色通道图像矩阵看作为灰度图像矩阵，分别计算明文图像和密文图像每个颜色通道的信息熵值。Lena、Tiffany和Mandrill明文图像及其对应密文图像各颜色通道的信息熵结果如表1所示，可以注意到，密文图像的红、绿、蓝3个颜色通道的信息熵接近于理论值，而明文图像各颜色通道的信息熵则与理论值有明显的差别。为了更好的说明本文提出算法对信息熵攻击是强鲁棒性的，分别采用文献 [ 19 ] 和文献 [ 20 ] 的算法加密同一幅明文图像，对应的计算结果均列在表1，从表中可以观察到，本文提出算法相比起其他两个算法虽然有微小偏差，但对于不同明文，本文算法的计算结果均接近于理论值，而且在大多数颜色通道上的信息熵值优于其他算法，这就说明了本文提出算法比起其他算法具有更强的抵抗信息熵攻击能力。 4.2.4 . 相邻像素相关性分析 数字图像具有异于其他信息载体的一些固有特性如数据的高度冗余、相邻像素的相关性非常强等，攻击者往往利用这些特性对密文图像进行攻击，所以，一个理想的图像加密算法应该产生在各个方向上(水平、垂直、对角)的相邻像素相关性都非常弱的密文图像。为了量化和比较明文和密文像素在水平、垂直与对角方向的相关性，选取明文Lena图像及其对应本文提出算法密文的各颜色通道分别进行分析比较，分别从各颜色通道上的不同方向随机地选取5000个像素对，并通过式(27)来计算随机选取像素对序列的相关性系数。这里只显示出对明文图像Lena的红色通道及其对应密文的红色通道的分析结果，如表2和图9所示，其他的颜色通道有类似的结果。从表2可以看到，从明文及密文图像红色通道上选取的像素点序列的相关性系数非常地小，几乎接近于0。另外从图9容易观察到，明文图像红色通道的像素点几乎都分布在对角线上，而对应应用本文算法得到的密文图像红色通道上像素点则在平面上呈现遍历状态，且杂乱无章地分布在整个图像平面。以上的量化和比较分析均表明，本文提出的算法成功地消除了相邻像素之间的强相关性，从而使得本文提出的算法具有强鲁棒性 C = ∑ i = 1 N ( x i − m e a n ( x ) ) ( y i − m e a n ( y ) ) ∑ i = 1 N ( x i − m e a n ( x ) ) 2 ∑ i = 1 N ( y i − m e a n ( y ) ) 2 (27) 这里 m e a n ( x ) 是指序列 x 的均值。 4.2.5 . 明文图像与密文图像的相关性 对于一个安全性非常强的图像加密算法，应该能够使加密得到的密文图像与明文图像有非常大的差异，即通过加密算法尽可能地把明文图像的显著特征信息隐藏起来，隐藏越多的信息就意味着明文与密文之间的相关程度越低，这样攻击者对算法的攻击就会变得更加困难。在这里，通过计算Lena明文和密文的红、绿、蓝颜色通道之间的相关系数来分析明文和密文之间的相关性。二维图像矩阵 A ， B 之间的2维相关系数 C A B 的数学定义如(28)式所示。二维相关系数的计算结果如表3所示，表中0.0013表示明文绿色通道与密文绿色通道之间的相关系数，其余类似。从表3可以看到明文图像和对应本文算法密文之间的各颜色通道之间的相关性系数都非常小，几乎接近于0，这就说明密文与明文存在很大的差别，明文图像信息几乎完全被隐藏，从而反映了本文提出图像加密算法的有效性。 图9. (a)-(c)和(d)-(f)分别是明文和密文的红色通道在水平、垂直和对角方向上的像素点分布 Table 1 The information entropy of each color channel of different plain-texts and cipher-text obtained by using the algorithm proposed in this paper， the literature [ 19 ] and [ 20 ] algorithm， respectivel 红色通道 绿色通道 蓝色通道 明文Lena 7.2531 7.5940 6.9684 本文算法 7.9993 7.9993 7.9994 文献 [ 19 ] 7.9994 7.9992 7.9994 文献 [ 20 ] 7.9994 7.9993 7.9993 明文Tiffany 4.3372 6.6643 6.4288 本文算法 7.9993 7.9994 7.9993 文献 [ 19 ] 7.9994 7.9992 7.9994 文献 [ 20 ] 7.9992 7.9993 7.9993 明文Mandrill 7.7067 7.4744 7.7522 本文算法 7.9994 7.9993 7.9993 文献 [ 19 ] 7.9992 7.9994 7.9993 文献 [ 20 ] 7.9994 7.9994 7.9993 表1. 不同明文图像和分别对应本文算法、文献 [ 19 ] 、文献 [ 20 ] 得到密文图像的各颜色通道信息熵 Table 2 The correlation coefficients between the Lena and its cipher-text red channel in the horizontal， vertical， diagonal directio 水平方向 垂直方向 对角方向 明文 0.9799 0.9888 0.9684 密文 0.0121 0.0078 0.0092 表2. Lena及其对应应用本文算法得到密文的红色通道在水平、垂直、对角方向的相关系数 Table 3 The correlation coefficient between the color channels of the plain text and the color channels of the cipher-tex 密文红色通道 密文绿色通道 密文蓝色通道 明文红色通道 0.0013 0.0028 5.9223e−04 明文绿色通道 4.3249e−04 0.0023 3.7871e−05 明文蓝色通道 −4.6172e−04 0.0017 −0.0011 表3. Lena明文与密文的各颜色通道之间相关系数 C A B = ∑ i = 1 H ∑ j = 1 W ( A i ， j − m e a n ( A ) ) ( B i ， j − m e a n ( B ) ) ∑ i = 1 H ∑ j = 1 W ( A i ， j − m e a n ( A ) ) 2 × ∑ i = 1 H ∑ j = 1 W ( B i ， j − m e a n ( B ) ) 2 (28) 在这里 H ， W 分别表示图像矩阵的大小， m e a n ( x ) 表示序列 x 的均值。 4.2.6. 密钥敏感性分析 一个安全性强的加密算法应该对仅有微小差异的密钥和明文图像都非常敏感 [ 19 ] 。一般来说，密钥敏感性分析包括加密方向敏感性分析和解密方向敏感性分析。一方面，由加密算法得到的密文应该对密钥极端敏感，即对密钥仅改变一个单位，那么由同一幅明文加密得到的密文应该与密钥改变前加密得到的密文之间完全没有任何关系或是两个密文之间差别非常地大，而且得到的密文应该不依赖于明文。另一方面，尽管在加密和解密过程的密钥仅有微小差别，但不能够用解密算法来获得正确的明文图像。在这里，先采用密钥 Key = ( u ， u 1 ， u 2 ， N 0 ， x 10 ， x 20 ) 加密Lena明文图像得到密文Image_en，然后对密钥Key仅改变一个单位分别得到如下6个不同的密钥： Key 1 = ( u + 10 − 14 ， u 1 ， u 2 ， N 0 ， x 10 ， x 20 ) ， Key 2 = ( u ， u 1 + 10 − 14 ， u 2 ， N 0 ， x 10 ， x 20 ) ， Key 3 = ( u ， u 1 ， u 2 + 10 − 14 ， N 0 ， x 10 ， x 20 ) ， Key 4 = ( u ， u 1 ， u 2 ， N 0 + 1 ， x 10 ， x 20 ) ， Key 5 = ( u ， u 1 ， u 2 ， N 0 ， x 10 + 10 − 14 ， x 20 ) ， Key 6 = ( u ， u 1 ， u 2 ， N 0 ， x 10 ， x 20 + 10 − 14 ) 。最后对同一幅Lena图像分别使用上述6个密钥加密得到的结果如图10所示。可以看到，采用不同密钥对同一幅图加密，所产生的密文与Image_en有非常大的差别，甚至是完全不一样的。为了量化不同密文之间的差异性，通过式(28)计算不同密文和Image_en的红(R)、绿(G)、蓝(B)颜色通道之间的相关系数，结果如表4所示，从表中可以注意到，不同密文之间的相关性系数是趋近于0的，从而说明不同密文之间的相关性非常弱。于是从加密敏感性这方面说明了本文提出算法具有极端的敏感性。下面从解密敏感性这方面来说明本文算法的敏感性。用密钥Key和Key1~Key6分别解密密文Image_en，得到的结果如图11所示，可以观察到，只有用正确的密钥才能成功的解密出密文图像，而其他则不能。类似于加密敏感分析，也计算出用不同密钥解密得到的解密文之间的各颜色通道之间二维相关系数，计算结果如表5所示，结果表明本文提出的算法在解密敏感性方面是有效的。 4.2.7. 差分分析 图像加密算法的差分分析是研究在相同加密密钥的条件下密文图像会在多大程度上受明文图像的影响，攻击者通常通过选择明文分析或选择密文分析来实现差分攻击。为了测试本文提出图像加密算法抵抗差分攻击的能力大小，采用两个常用的度量指标：不同密文图像之间的像素改变率(number of piexls change rate， NPCR)和一致改变强度(unified average changing intensity， UACI)，其数学公式定义如下： NPCR = ∑ i = 1 M ∑ j = 1 N   D ( i ， j ) M × N × 100 % (29) UACI = 1 M × N [ ∑ i = 1 M ∑ j = 1 N | C 1 ( i ， j ) − C 2 ( i ， j ) | 2 L − 1 ] × 100 % (30) 图10. (a)，(c)，(e)，(g)，(i)，(k)分别为Key1~Key6应用本文提出算法得到的密文，(b)，(d)，(f)，(h)，(j)，(l)分别对应(a)，(c)，(e)，(g)， (i)，(k)与Image_en的差 图11. (a)-(g)分别是用Key、Key1-Key6解密图像Image_en得到的结果 Table 4 The correlation between the red (R)， green (G)， and blue (B) color channels of the cipher-texts encrypted with different keys and Image_e Key1 Key2 Key3 Key4 Key5 Key6 C R R −0.0009 −0.0030 −0.0003 −0.0004 0.0050 −0.0000 C R G −0.0012 −0.0009 −0.0032 −0.0017 −0.0018 −0.0030 C R B 0.0002 0.0005 0.0019 0.0021 −0.0002 −0.0037 C G R −0.0004 0.0000 0.0017 0.0059 −0.0026 0.0012 C G G −0.0014 0.0016 0.0003 0.0014 0.0012 −0.0038 C G B −0.0000 −0.0001 −0.0010 0.0049 0.0003 −0.0006 C B R −0.0038 0.0060 −0.0015 0.0020 −0.0006 −0.0002 C B G 0.0003 0.0020 0.0040 −0.0014 0.0017 0.0015 C B B −0.0005 0.0000 0.0014 0.0020 0.0018 −0.0015 表4. 用不同密钥加密得到的密文和Image_en的红(R)、绿(G)、蓝(B)颜色通道之间的相关系数 注：C RR 是指用Key1加密得到密文的R通道与Image_en的R通道之间的相关系数，其余类似。 Table 5 The correlation coefficients of the red (R)， green (G)， and blue (B) color channels between the decrypted text and the plaintext Lena obtained using different key Key1 Key2 Key3 Key4 Key5 Key6 C R R 0.0007 0.0017 0.0017 −0.0015 −0.0006 −0.0039 C R G 0.0012 0.0021 0.0015 −0.0005 0.0019 0.0002 C R B 0.0021 −0.0030 0.0009 −0.0037 0.0013 0.0010 C G R −0.0007 0.0016 0.0008 −0.0022 0.0002 −0.0041 C G G 0.0012 0.0035 0.0011 −0.0003 0.0014 −0.0014 C G B 0.0005 −0.0040 0.0022 −0.0034 0.0014 −0.0011 C B R −0.0017 0.0015 0.0004 −0.0020 0.0007 −0.0029 C B G 0.0024 0.0037 0.0011 −0.0013 0.0011 −0.0020 C B B −0.0003 −0.0029 0.0028 −0.0028 0.0021 −0.0020 表5. 采用不同密钥得到的解密文和明文Lena之间的红(R)、绿(G)、蓝(B)颜色通道的相关系数 注：C RR 是指用Key1解密得到解密密文的R通道与Lena明文的R通道之间的相关系数，其余类似。 D ( i ， j ) = { 1       if   C 1 ( i ， j ) ≠ C 2 ( i ， j ) 0             otherwise . (31) 这里 M ， N 分别是图像矩阵的大小， L 是表达一个像素值所需要的bit个数，对于灰度图像， L = 8 。 C 1 ( i ， j ) ， C 2 ( i ， j ) 分别是明文图像改变前后得到对应应用本文提出算法得到的密文。对于一个灰度图像，NPCR，UACI的理想估计值分别为99.6094%，33.4636% [ 20 ] 。对于明文Lena图像的每个颜色通道，随机地选取的100个像素值，对每个灰度值仅随机改变1bit像素值，然后用本文提出加密算法去加密改变前后的明文图像Lena，得到对应每个颜色通道的100个NPCR，UACI曲线变化图如图12所示，从图中可以看到每个颜色通道的NPCR，UACI值均在理想值上下波动，红、绿、蓝各颜色通道的100个NPCR，UACI的最大值、最小值和均值如表6所示，很明显，这些值是非常接近理想估计值，另外，类似于上述做法，计算出了文献 [ 19 ] 和 [ 20 ] 的NPCR和UACI的均值也如表6所示，不同算法比较可知，本文提出算法抵抗差分攻击的能力是强鲁棒的。 图12. (a)-(c)和(d)-(f)分别是明文图像改变前后得到的密文之间的NPCR和UACI变化曲线 4.2.8. 已知明文和选择明文攻击分析 很多图像加密算法已经被选择明文和已知明文攻击 [ 25 ] ，于是对于一个理想的图像加密算法应该能够抵御这样的攻击。在本文提出的算法中，采用预先扩散–置乱–扩散机制对明文图像进行加密，在预处理阶段的扩散过程采用由改进一维混沌系统产生的初始向量对明文图像进行预处理，使得当密钥仅发生微小的变化，就会引起初始向量的完全不同，从而使得预处理后的图像依赖于明文图像。另一方面，在最后的扩散阶段对每一个图像像素灰度值均基于动态反馈式的扩散，说明在这一阶段极端依赖于预处理后的图像，从而使得整个加密算法是依赖于明文的，于是本文提出的加密算法是能够抵抗已知明文和选择明文的攻击的。为了从实验上来验证提出加密算法抵抗已知明文和选择明文的有效性。选择全黑的明文图像，利用本文提出的加密算法和密钥Key分别进行加密得到其密文图像。明文和密文及其各自的每个颜色通道上直方图如图13所示，除此之外，还计算出全黑和全白及其对应密文的各颜色通道之间的信息熵，结果如表7所示，从图13和表7可以看到，本文提出的加密算法能够很好地抵抗选择明文和已知明文攻击。 Table 6 The maximum， minimum， and average values of the NPCR and UACI sequences between the corresponding cipher-texts before and after the Lena image changes (% 红色通道 绿色通道 蓝色通道 NPCR最大值 99.6365 99.6422 99.6475 NPCR最小值 99.5781 99.5819 99.5800 UACI最大值 33.5776 33.5667 33.5439 UACI最小值 33.3461 33.3603 33.5439 NPCR平均值 99.6078 99.6107 99.6103 UACI平均值 33.4399 33.4644 33.4494 文献 [ 19 ] NPCR平均值 16.3040 46.7541 82.7570 文献 [ 19 ] UACI平均值 4.1155 12.4016 22.6855 文献 [ 20 ] NPCR平均值 99.6170 99.6157 99.6031 文献 [ 20 ] UACI平均值 33.5034 33.4833 33.4446 表6. Lena图像改变前后对应密文之间的NPCR和UACI序列的最大值、最小值和平均值(%) 图13. (b)，(c)，(d)，(e)分别是明文(a)对应本文提出算法加密得到的密文及其红、绿、蓝颜色通道的分布直方图 Table 7 The information entropy of the red， green and blue color channels of cipher-text obtained by the algorithm encrypting all black and white plain image 红色通道 绿色通道 蓝色通道 全黑图像 7.9993 7.9992 7.9993 全白图像 7.9993 7.9993 7.9994 表7. 全黑和全白明文图像对应本文提出算法加密得到密文的红、绿、蓝颜色通道的信息熵