随着信息技术的发展,图像保密技术将在越来越多的应用场合受到重视。由于图像文件加密具有数据量大、相邻像素间相关性强等特点, 一些传统的加密算法并不适合于加密图像文件。 而广义的猫映射和单向耦合映射格子, 两种方法分别具备了图像加密所需的部分要素。 但是采用单一映射加密在密钥长度和抵抗穷举攻击等方面都有一定缺陷。 为此,我们将分组密码学中的交替结构首先运用到基于混沌映射的图像加密系统中, 交替使用两种混沌映射进行多轮次的置换、扩散和替代,经实验证明该加密算法能够有效地抵抗统计分析和选择性明文攻击。

一、广义猫映射与单向耦合映射格子 

算法中选用了两种混沌映射,它们各具特色, 这里首先进行简单的介绍。

1、广义猫映射 

猫映射是人们所熟知的一种混沌映射,其数学表达式为:

基于混沌映射的一种交替结构图像加密算法

其中伴随阵满足|C|=1, 由于采用了mod1运算, 猫映射的相空间限制在(0,1)内。 为了能够运用于图像加密, 需要将猫映射扩展到N × N的矩阵内并离散化, 有:

基于混沌映射的一种交替结构图像加密算法

这样, 相空间推广到{0,1,2,...,N−1}", 即伴随阵中参数和各状态变量都取0到1N−的正整数, 并仍需满足|C|=ad-bc=1。 (2)式称为广义猫映射, 其逆映射为 :

基于混沌映射的一种交替结构图像加密算法

在对N×N的图像块进行像素位置置换时, 首先建立一个等大的输出空间, 然后将此空间中的每个像素坐标(i,j)作为初始值(x0,y0)代入(2)式中, 通过一次迭代产生新的坐标(x1,y1), 并将输入空间中的第(x1,y1),个像素放置到输出空间的(x0,y0)位置中。为了表述方便, 可定义一个坐标矩阵变换Catmap(•)来完成对所有像素的位置置换。 例如, 一个3×3像素块的初始坐标空间为:

基于混沌映射的一种交替结构图像加密算法

基于混沌映射的一种交替结构图像加密算法, 则进行一次迭代得到的输出坐标空间I1为 :

基于混沌映射的一种交替结构图像加密算法由(4)式可见, 广义猫映射能够在N×N的二维空间内进行保面积置换, 且置换中各系数都为整数, 运算不引入误差。建议采用2 bits密钥从4个矩阵

基于混沌映射的一种交替结构图像加密算法中选取一种形式作为伴随阵C。需要说明的是, 为了能够在二维空间中充分地置换, 往往需要适当的迭代次数, 但这并不增强保密性, 因为:

基于混沌映射的一种交替结构图像加密算法从而可直接对伴随阵B进行等效密钥分析。

 2、单向耦合映射格子 

作为一种二维时空混沌模型, OCML在混沌保密研究特别是图像加密技术中备受青睐。 OCML模型由下式给出[6,9]:

基于混沌映射的一种交替结构图像加密算法

式中t和i分别为时间坐标和空间坐标; 耦合系数ε满足0<ε<1; 局部更新函数f通常选取Logistic映射, 即f(x)=μx(1-x)。当μ=4并给定行、列的初始条件时, 二维时空阵列中的所有格子在(0,1)内处于混沌状态。

加密时可选用32位或更高精度的定点运算, 将每个格子的前24 bits分别与真彩图像中R, G, B三基色的各8 bits信息进行异或。这样, 对所有像素实施了有效的替代和混淆, 使密文图像的统计特性变得十分复杂, 难于破译。

二、新的交替结构图像分组加密算法 

有资料指出:合理的交替使用具有替代和置换等功能的基本密码, 所得结果的密码强度将强于所有单个密码的强度. 结合上一节中的两种混沌映射, 本节将给出一种新的针对二维图像的分组加密算法。

基于混沌映射的一种交替结构图像加密算法

加密操作首先对图像数据进行规格化(分割或合并), 使每个被处理单元具有N×2N个像素(处理单元大小视应用场合而定)。算法的详细加密过程为(如图1(a)):

1) 首先将N×2N个像素的明文图像分成N×N的左右两块, 即L0和R0;

2) 以K1作为子密钥, 产生N×N的OCML矩阵V1, 然后将V1与L0进行异或运算;

3) 采用结合灰度扩散的广义猫映射对步骤2的输出像素块进行二维空间置换, 广义猫映射使用18 bits子密钥K1*;

4) 将步骤3)的输出与R0进行异或作为下一轮的左半部分, 而把步骤2)的结果作为右半部分;

5) 重复步骤2)—4), 进行n轮加密。最后将左右两部分(Ln和Rn)换位, 并分别与Vn+1和Vn+2(由子密钥Kn+1+和Kn+2产生)进行异或运算, 左右两块合并后完成加密。

为了抵抗选择性明文攻击, 每一轮的广义猫映射都与灰度扩散相结合. 考虑以下方式使各像素的灰度值相互依赖: 设Cn(i,j)是置换后的像素灰度, Cn+1(i',j')是循环中上一个处理过的像素灰度, 则置换后的像素灰度Cn+1(i,j)更新为:

基于混沌映射的一种交替结构图像加密算法

式中系数A为任意整数, 稍大的取值(如A=99)可使各灰度值的拉伸折叠作用放大, 从而增强像素间的灰度扩散效果。图1中将结合灰度扩散的广义猫映射表示为Catmap*(•)。

如图1(b)所示, 加密过程的每一轮都需要以32 bits密钥iKey来产生两种子密钥Ki和K*i。其中Ki用来产生N×N个像素的OCML时空混沌矩阵Vi; 18 bits的K*i用于广义猫映射, K*i中2 bits用来选择伴随阵C的形式, 余下的两个8 bits用来确定C中的两个参数。由iKey产生Ki和K*i的详细过程如下:

1) 将Keyi扩展为50bits. 扩展方法为对32-bitiKey简单置换后查表得到50bits的扩展输出;

2) 取18 bits作为广义猫映射的子密钥K*i, 同时将余下的32 bits作为Ki进行迭代(可选用Logistic映射)产生OCML时空混沌矩阵的行、列边界, 并进一步根据(6)式得到时空混沌矩阵Vi。

系统的解密过程如图1(c)所示, 很容易从加密算法推导出来。N×2N的密文图像仍分成左右两部分(L0 和 R0), 解密时各子密钥的使用顺序与加密时相反。与传统的分组加密方式不同的是, 解密算法的结构与加密结构是相同的, 而不是加密的逆过程; 解密时结合灰度扩散的广义猫映射(Catmap*(•))仍使用正向变换(同(7)式), 而不是逆运算。解密算法可由以下伪代码表示:

基于混沌映射的一种交替结构图像加密算法

三、实验及安全性分析 

本文分别对大量灰度和彩色图像进行了实验。实验中OCML时空混沌矩阵采用32位定点运算, 耦合系数ε和局部更新函数的参数μ为确定值, 其中ε=0.875(0e0000000h), μ=4(做乘法运算时左移两位)。根据图1(b)的子密钥产生方法, 每一轮所使用的主密钥都为32bits, 如果加密轮次设定为n=8, 此时的密钥长度为: 32*8+32+32=320 bits。随着迭代轮数的增加, 密钥将成为天文数字, 很难进行穷举攻击。

1、密钥敏感性和图像统计特性 

设计加密算法的一个衡量标准就是雪崩效应, 根据严格雪崩效应准则, 若改变密钥中的任意一位, 将导致密文分组中大约一半数据位的变化。实验将512×512像素的明文图像分割为256×512像素的上下两块, 分别进行了加解密处理。统计结果表明, 在8轮加密中, 仅改变某一轮密钥iKey的任意位后, 整个图像发生变化的平均数据位达到49%, 接近一半。密钥敏感性的测试结果如图2所示。

基于混沌映射的一种交替结构图像加密算法

在子密钥的敏感性测试中, 针对单轮加密, 选取500对具有细微差异的子密钥, 分别对OCML矩阵替代(使用子密钥 Ki)、结合灰度扩散的广义猫映射(使用子密钥K *i)以及二者的乘积操作(使用子密钥K i和K*i)做了密钥敏感性测试, 并对其雪崩现象进行了统计, 得到子密钥变化后的平均数据位变化率, 如表1所示. 实验中子密钥iK只改变最低有效位, K*i仅改变任意一位。同时, 密文图像的统计特性发生了明显变化, 如图3所示。加密后的灰度分布十分均匀, 对于不同的明文图像及密钥都得到了类似的密文直方图。由于加密过程将置换和替代多轮交替使用, 乘积密码的优点得以体现, 这就使我们所提出的对于广义猫映射的等效密钥分析很难奏效。

基于混沌映射的一种交替结构图像加密算法

2、明文敏感性及密文相关性 

如果明文的微小改变能够引起密文的很大变化, 那么已知明文或选择性明文攻击将难以起效。 分别在多幅图像上随机选取一点改变其灰度值, 对原图和改变后的图像使用相同密钥加密, 在不同的加密轮次下, 密文的平均数据位变化率如图4所示:

基于混沌映射的一种交替结构图像加密算法
通常图像的相邻像素具有一定的相关性, 而对于加密后的图像, 相关性越小说明像素的置乱效果越好. 从备测试图像中选取1000组相邻的像素对, 记为(xi,yi), 得到8轮加密前后这些像素对的相关分布情况, 如图5所示。

基于混沌映射的一种交替结构图像加密算法 像素对间的相关系数可根据下式得到:

基于混沌映射的一种交替结构图像加密算法

其中:

基于混沌映射的一种交替结构图像加密算法

Ex和D(x)分别为xi的离散化均值和方差。 实验分别对水平、垂直和对角各1000组(即N=1000)相邻像素对做了测试, 结果如表2所示。加密后不同方向像素对间的相关系数都大大降低, 相关性在极大程度上被破坏。

基于混沌映射的一种交替结构图像加密算法

3、密文图像受损测试

由于算法中加密和解密具有相同的结构, 因此解密过程事实上相当于对密文的再次加密。所以, 加密系统对明文的敏感性会影响到受损密文解密后的图像质量。要提高抗损伤能力, 可适度降低系统的算法强度。实验中取消了(7)式的灰度扩散操作, 对密文图像分别添加了Gauss噪声、椒盐噪声和几何擦除等人为干扰, 解密后的图像仍可在一定程度上恢复。图6为加密四轮时受损密图的解密结果; 表3给出了受损密图解密后与原始明文图像的相似程度, 这里分别以均方误差均值(MSE)和绝对误差均值(MAE)来表示。

基于混沌映射的一种交替结构图像加密算法

由表3可以看出, Gauss噪声对图像质量恢复的影响比较显著; 而擦除和双极性脉冲噪声(椒盐噪声)的影响要小一些, 可通过滤波及增强等手段进一步还原图像. 随着噪声强度和损失面积的增大, 受损图像的恢复能力明显下降。需要说明的是, 如果算法中使用了灰度扩散操 作, 那么受损图像将难以恢复。使用时应视不同应用场合, 在算法强度和图像恢复能力之间加以权衡。

本文提出了一种结合广义猫映射和单向耦合映射格子的图像分组加密算法, 交替地使用两种二维混沌映射进行多轮次的加密操作。相对于单一混沌映射的加密方法具有更高的密码强度, 且解密算法与加密算法具有相同的结构, 不需另行设计。此外, 由于采用了Feistel型的分组密码结构, 本算法可同时完成对两块明文图像(即L0和R0)的加密, 这有助提高系统吞吐率, 符合图像加密的特点。安全性分析结果表明:该加密算法具有很大的密钥空间, 对密钥十分敏感, 对多种攻击手段都具有较好的免疫性。 实验验证采用32位定点运算, 算法执行速度高且代码紧凑, 适用于软件加密系统, 而且很容易移植到硬件平台上, 具有良好的应用前景。

小知识之耦合

耦合是指两个或两个以上的电路元件或电网络的输入与输出之间存在紧密配合与相互影响,并通过相互作用从一侧向另一侧传输能量的现象;概括的说耦合就是指两个或两个以上的实体相互依赖于对方的一个量度。