system: [SYSTEM]

user: 4. 仿真实验和加密性能分析 4.1. 仿真实验 在这一部分，我们采用MATLABR2014a软件对本文提出的基于改进标准映射的灰度图像加密算法进行仿真实验。所有的实验均在同一台个人电脑上实现与执行，电脑的主要硬件环境如下：处理器：Intel(R)Core(TM) i7-5500CPU@2.40 GHz 2.39 GHz，安装内存：4.00 GB；运行系统：Windows 8.1中文版。另外，本文所有的实验图像均来自文献 [ 27 ] 的图像数据库。在仿真实验过程中我们采用的密钥空间由以下部分组成： ，我们分别对三幅灰度图像即Lena， Elaine， Man用本文提出的加密算法进行加密，它们的图像尺寸分别为 ， ， ，用密钥 进行仿真实验，其结果如图10所示，从这些明文、密文和解密文图中我们可以看到，所有的密文都呈现杂乱无章且无明显纹理出现，攻击者不能从其中获取任何有关明文图像的信息，因而对明文图像起到了很好的保护作用，这说明了我们的算法有一个好的加密效果，而且所有的密文都可以通过正确的加密密钥来获得与明文完全一样的图像，这也表明本文提出算法是一种无损的图像加密算法。 4.2. 加密性能分析 一个加密算法鲁棒性强弱的一个重要度量是加密系统抵抗攻击者从密文图像中获取任何有关于明文图像信息的能力大小。一个鲁棒性强的算法还应该能够抵抗绝大多数的已知攻击，比如已知明文或选择明文攻击、选择密文攻击和各种蛮力攻击等。为了检验本文提出算法的鲁棒性强弱，对于图像加密算法的重要安全分析如密钥空间分析、统计分析和密钥敏感性分析等，均在这一小节讨论。 4.2.1 . 密钥空间分析 一个图像加解密算法的密钥空间是指能够用在加解密算法过程中密钥的所有可能取值的总和。如果一个算法的密钥空间足够大，很多非法攻击如暴力攻击等将会变得不可实现，从今天的计算机的计算精度来看，对于普通加密的实际应用中，大于128 bit的密钥空间一般被认为是安全的 [ 17 ] 。在本文提出的灰度图像加密算法中，如果我们把密钥空间取为由 所组成的空间大小，其中， 是明文的SHA256哈希值，其可能取值为2 128 [ 16 ] 。而 是图像加密算法过程中置乱的轮数，我们不妨取其数量级为10 3 ，太大可能会出现周期的现象。对于 ， ，如果我们取双精度数据的精度作为计算 图10. (a)~(i)分别对应图像Lena (a)， Elaine (d)， Man (g)的明文、密文和解密图像 时，那么 ， 的可能取值的量级均为 。 是为了避免产生过渡效应的改进标准映射预先迭代次数，为了不增加整个加密的运算时间，我们取 的量级为10 4 。这样我们就可以得到提出的基于改进标准映射的图像加密算法的密钥空间大小，即 ，这个值远远大于理想值128 bit。而且，如果我们考虑把非线性项的指数 ， 作为密钥的一部分，那么我们的加密系统的密钥空间将更大。这就说明了我们提出的图像加密算法具有非常大的密钥空间，它足以抵抗各种蛮力攻击。 4.2.2 . 直方图分析 一幅图像的灰度直方图是表示一幅图像灰度分布的统计图表 [ 28 ] 。直方图的横坐标是灰度级，纵坐标是具有给灰度级的像素个数或者出现这个灰度级的概率或频率。由于每个灰度级对应的概率或频率给出了对该灰度级出现的概率估计，所以直方图提供了图像的灰度值分布情况，即给出了一幅图像所有灰度值的整体描述。对于一幅8比特的灰度图像，其灰度值可能有2 8 种不同的取值，因此，灰度图像的直方图显示了256种不同灰度值的分布情况。对于一个鲁棒性强的灰度图像加密算法，应用该算法加密得到的密文图像的像素灰度值应该有一致分布的趋势。在本文提出的算法中，采用大小为 的灰度图像Lena为测试图像，Key为密钥空间，利用本文提出算法加密测试图像并分别画出明文和密文的灰度直方图，如图11所示，从图中我们可以看到，密文的直方图分布明显的比明文的直方图不同，密文直方图呈现分布基本一致的趋势，但明文图像的直方图分布波动情况较密文图像的直方图大，这也就说明我们提出的图像加密算法不能给攻击者提供任何有关明文图像的统计信息，即我们提出的加密算法是具有强鲁棒性的。 一维灰度直方图采用灰度级出现次数统计的均匀性来评价图像加密的效果，有时会难以看清具体的像素分布，因为在一维直方图中，失去了图像本身具有像素空间位置信息，即二维特征，一幅图像对应一个直方图，但一个直方图并不一定只对应一幅图像。所以，引入像素与其相邻像素所对联合空间统计量，即共生直方图，来更好的对图像加密算法的分析，在图12分别画出了明文图像Lena与其对应本文 图11. (a)~(b)分别对应Lena图像和密文的直方图 图12. (a)~(b)分别对应 图像和密文的共生直方图 算法得到的密文图像的共生直方图。从图中我们可以观察到，密文图像的共生直方图分布显得更均匀，攻击者不能够从密文的共生直方图得到任何有关明文图像的信息，而明文图像则明显波动起伏大，这更说明了本文提出算法有非常好的的鲁棒性。 4.2.3 . 图像信息熵分析 在1949年，Shannon [ 17 ] 提出了一个反映一个信息源的随机性和不可预测性的数学概念，即信息熵。它以bits或字符号量化包含在随机数据里面的信息，信息熵也是信息作为载体能进行通信的最小长度，换句话说，信息熵是测量信息无序状态的度量，如一个重复字符的长序列，由于其每一个字符是可预测的，即其每一个字符出现概率是1，我们可以由信息熵的定义式(28)知道在这个序列的信息熵为0，而对于一个完全随机的序列，因为没有办法预测序列下一个字符，所以该序列有一个最大的信息熵。一个信息源m的信息熵 的数学计算公式如下(28)式： (28) 这里 是在信息m中 发生的概率， 是指在信息源m中表达一个字符所需要的bit位个数。对于灰度图像， 。一个在0到255范围内一致分布的随机图像，就是说，每个灰度值出现的概率相同，那么由(28)式，我们容易计算其信息熵的理想值为8。所以，对于图像加密来说，加密图像的信息熵值越接近于8，则图像加密系统泄漏有关明文信息的可能性就越小。为了说明本文提出算法对于信息熵攻击是鲁棒性的，我们分别计算了不同大小的明文(Lena， Elaine， Man)的信息熵和它们对应密文图像的信息熵，结果如表1所示，从表1我们可以看到，明文图像的信息熵明显小于密文的值，而密文的信息熵都接近理想值8，特别是当图像的大小为 时，其信息熵的值可以达到7.9998，这说明本文提出图像加密算法对于信息熵攻击是强鲁棒性的。为了进一步说明本文算法的强鲁棒性，我们用文献 [ 15 ] 的加密算法去加密相同的明文，并计算其信息熵如表1最后一行所示，比较易知，我们提出的算法加密效果是优于文献 [ 15 ] 的。 4.2.4 . 相邻像素的相关性分析 对于一幅有有限视觉内容的自然图像，每个像素无论是在水平方向、垂直方向还是在对角方向都与其相邻的像素高度相关。一个理想的图像加密算法应该产生在各个方向上的相邻像素相关性都很弱的密文图像。为了量化和比较在明文和密文像素在水平、垂直与对角方向的相关性，我们从明文Lena和其对应应用本文提出算法加密的密文中随机地分别选取三个不同方向5000对像素，我们通过式(29)来计算随机选取的两个像素序列的相关性，表2列举出了不同方向像素相关系数的计算结果，在图13画出了从明文和密文选取的像素点分布。我们从表2可以看到，明文图像无论在水平方向、垂直方向还是在对角方向明文图像的相关系数都接近于理想值1，而经过本文提出算法加密后的密文则显得其相关性系数很小，几乎为0。另一方面，我们观察图13易知，明文的像素点呈现线性分布，而明文图像像素点则显得杂乱 Table 1 Information entropy of different plain-text and cipher-text corresponding to different encryption algorithm Lena Elaine Man 明文图像 7.5683 7.5060 7.5237 密文图像 7.9967 7.9994 7.9998 文献 [ 15 ] 7.9972 7.9992 7.9998 表1. 不同明文图像和对应不同加密算法密文图像的信息熵 Table 2 The correlation coefficient between Lena and its cipher-text in horizontal， vertical and diagonal directions， respectivel 水平方向 垂直方向 对角方向 明文图像 0.9364 0.9697 0.9147 密文图像 −0.0028 −0.0066 0.0245 表2. Lena与其密文分别在水平、垂直和对角方向上的相关系数 图13. (a)~(c)， (d)~(f)分别为Lena和密文在水平、垂直和对角方向像素的分布 无章的无序状态，所以本文提出的算法成功地消除了明文相邻像素相关性，从而本文算法对于统计分析是强鲁棒的。 (29) 这里 是指序列 的均值。 4.2.5 . 明文图像与密文图像的相关性 对于一个有效的图像加密算法，密文图像与明文图像应该有很大的不同，而且密文应该是对明文图像的较低矫正，在这里，我们通过计算二维相关系数来分析明文A和密文B的之间的关系，二维相关系数的数学计算公式如(30)示，我们计算了不同大小的明文(Lena， Elaine， Man)和它们对应的用本文提出算法加密密文的二维相关系数，结果如表3所示，从表3易知，不同明文图像与对应密文图像的相关性很小，几乎等于0，这就说明的密文是与明文彼此的相关性非常的弱，存在很大的差别，呈现随机性分布，从而反映本文提出加密算法的有效性。 Table 3 The correlation coefficient between plain-text and cipher-tex 图像 Lena Elaine Man 相关系数 0.0019 2.7437e−04 5.7784e−05 表3. 明文与密文的相关性系数 (30) 在这里 ， 分别表示图像矩阵的大小， 表示序列 的均值。 4.2.6 . 密钥敏感性分析 在某种程度上使一个加密算法抵抗蛮力攻击的一个重要保证是加密系统对密钥极端敏感。一个加密系统的密钥敏感性一般通过两方面来考察，一方面，由提出加密算法加密的密文图像应该极端敏感于密钥，就是说，如果我们用两个差别很微小的密钥加密同一明文，那么相应密钥产生的密文应该完全不依赖于明文或者是他们之间的相关性可以忽略，即他们之间的差别应该非常大。另一方面，尽管在加密和解密过程的密钥相差非常的微小，但不能够用解密算法来解得加密明文。在我们提出的算法中，密钥组成为 ，首先，我们采用密钥 对Lena进行加密得到其加密图像。然后分别采用五个不同的密钥Key 1 ~ Key 5对同一幅明文Lena进行加密并分别与用Key产生的密文作比较产生差别图diff，其中H_I1是明文图像随机改变1 bit值后的SHA256哈希函数值，比较结果如图14所示，从图中可以明显观察到，采用不同密钥对同一明文进行加密时，所产生的密文图像跟用Key加密产生的密文相差非常大的，甚至是完全不一样的，另外我们计算出Key产生的密文与其他五个密钥产生的结果之间的二维相关系数，其计算公式如式子(30)所示，计算结果如表4所示，从表中我们可以看到，不同密钥甚至差别仅仅1 bit所产生的密文之间的相关性非常的弱，其相关系数几乎为0。由以上所述，我们从密钥敏感性的第一方面说明了我们提出算法是对密钥敏感的。同样的，我们可以验证密钥敏感性的另一方面，我们用与加密过程相同的密钥Key对应用它本身加密得到的密文进行解密，然后分别用改变了的5个不同的密钥对应用用密钥Key产生的密文进行解密，得到的结果如表5和图15所示，从表5我们很明显的可以看到，用改变仅微小变化的错误密钥和正确密钥得到的明文之间的相关性非常的弱，它们对应的相关系数几乎为零，另外，从图15中可以看出加密系统是对密钥空间敏感的，因而我们提出的加密系统是具有强鲁棒性的。5个仅改变微小变化的密钥分别表示为如下式子： ， ， ， ， . 4.2.7. 差分分析 图像加密算法的差分加密分析是研究在相同加密密钥的条件下明文图像的改变会在多大程度上能够影响密文图像，攻击者通常通过选择明文分析或选择密文分析来实现。对于一个图像加密系统来说，实现差分分析的一般做法是仅改变明文图像像素的微小变化（通常是1 bit或1个单位像素值），然后比较在同一密钥条件下分别对明文图像和改变的明文图像进行加密得到两个密文图像，如果在明文图像和密文图像之间我们能够找到一些有利于确定加密密钥的信息，那么这样的分析就说明加密算法的鲁棒性很弱，反之，如果我们仅改变明文图像1 bit的变化，加密算法就能够产生有意义、随机且不可预测的密文 图14. 加密敏感性测试: (a)， (c)， (e)， (g)， (i)分别为Key 1~Key 5应用本文提出算法加密结果; (b)， (d)， (f)， (h)， (j)分别为(a)， (c)， (e)， (g)， (i)与密钥Key产生的密文之间的差别 Table 4 The correlation coefficients between different cipher-texts generated by different key Key 1 Key 2 Key 3 Key 4 Key 5 Key −0.0016 0.0076 0.0043 −0.0037 0.0026 表4. 不同密钥产生的不同密文之间的相关性系数 注：表中Key表示用密钥Key应用本文提出算法得到的密文图像，其余类似。 Table 5 The correlation coefficients between plaintexts decrypted by different key Key 1 Key 2 Key 3 Key 4 Key 5 Key 9.7960e−04 −0.0266 0.0036 0.0031 −0.0024 表5. 不同密钥解密生成的明文之间的相关性系数 注：表中Key表示用密钥Key应用本文提出算法得到的解密图像，其余类似。 图15. (a)~(f)分别为用Key和Key 1~Key 5去解密Key所产生密文的明文 图像变化，这样的加密算法会使得差分分析不能够获取任何有关明文或密钥的信息，即差分分析无效。为了测试提出的图像加密算法抵抗差分分析的鲁棒性强弱，采用两个常用的度量：不同密文图像之间的像素改变率(number of piexls change rate， NPCR)和不同密文图像之间的一致改变强度(unified average changing intensity， UACI)，它们的数学公式定义如下： (31) (32) (33) 这里 ， 分别是矩形图像的行数和列数， 是表达一个图像像素所需要的bit位个数，对于灰度图像，它的值为 。 ， 分别是明文图像的密文和明文图像仅微小改变后的密文。对于一个理想的图像加密系统在仅改变微小变化后产生的两幅不同的随机图像来说，NPCR，UACI的值估计如下： (34) . (35) 对于一个灰度图像来说，我们容易计算得到NPCR， UACI的理想估计值分别为99.6094%， 33.4636%。在本文提出的图像加密算法中，我们随机的选取明文图像的500个像素值，对每个灰度值仅随机改变1 bit像素值，然后我们用本文提出加密算法去加密改变前后的明文图像Lena，得到500个NPCR， UACI值， 图16. (a)~(b)分别为NPCR和UACI曲线图 它们的曲线变化图如图16所示，我们可以观察到NPCR， UACI值均在理想值上下波动，这500个NPCR，UACI的均值99.6195%， 33.4567%，很明显，这些值是非常接近理想估计值的，于是，我们提出的算法对差分分析是强鲁棒性的。