基于矩阵四向扩散的超混沌图像加密算法

2021-06-29 06:37廖忠智
计算机与现代化 2021年6期
关键词:明文密文解密

葛 滨,陈 刚,方 睿,廖忠智

(1.南通职业大学电子信息工程学院,江苏 南通 226007; 2.中国科学院半导体研究所,北京 100083;3.中国电子科技集团公司第三十八研究所,安徽 合肥 230088)

0 引 言

数字图像凭借着形象生动的特性,正逐渐成为移动互联时代最重要的信息载体,如何安全地存储和传输图像数据已成为业界的重点关注领域[1-3]。3DES和AES等现代分组加密算法针对文本数据特点设计,在处理二维结构、高冗余度、大数据量的图像数据时暴露出很多安全和效率方面的问题[4-5]。日益严峻的隐私图像泄密问题催生了很多新型加密算法,这其中,初值极端敏感的混沌系统能够产生优良的长周期伪随机序列,因此被越来越多地用于设计图像加密算法[6-8]。

低维混沌系统结构简单、迭代速度快,围绕其设计的方案在硬件实现和高速加密方面具有明显的优势,但无法抵御相空间重构、非线性预测等现代密码学攻击手段[9],同时较少的初值参数也导致密钥空间过小,很难满足实际的应用需求。超混沌系统结构更加复杂,具备在多个方向上拉伸折叠的能力,在数字系统中能够保持很好的随机特性,自文献[10]提出了一种置乱-替换结构的超混沌图像加密方案以来,先后涌现出很多优秀的改进方案。文献[11]利用QR分解等技术改善密钥序列随机性,但是其时间复杂度较高。文献[12]利用散列函数改善算法的明文敏感性,但是加密过程本身仅依赖异或运算,很难抵御选择明文等攻击。文献[13]中引入的密文分组链接加密模式使算法的安全性能得到了保障,但是设计的扩散策略过于复杂,导致运行效率不高。文献[14]则将图像分块后进行多线程处理,显著提高了算法的运行效率,但是没有给出不同线程之间的扩散策略,难以抵御差分攻击。

综上,目前很多超混沌图像加密方案难以兼顾安全性能和运行效率,实用价值不高。基于此,本文提出一种基于矩阵四向扩散的超混沌图像加密算法。针对图像二维结构的特点,依次将上下左右4个边作为起点,以行向量和列向量为计算单元,实现并行密文分组链接加密。围绕新的矩阵四向扩散机制,设计新的密钥矩阵生成策略和初始向量更新策略。对比现有方案,本文算法时间复杂度仅为线性阶O(2M+2N),仿真实验结果表明,其安全性能足以抵御穷举攻击、选择明(密)文攻击、差分攻击等密码学分析手段,能够广泛应用于图像实时保密通信等场合。

1 矩阵四向扩散策略

在数字系统中,通常用矩阵来存放图像数据,所以很多经典的图像处理算法如压缩、采样和分割等都是以向量为计算单元实现处理过程的加速[15]。然而,目前很多强度较高的超混沌图像加密方案普遍将图像矩阵转换成一维序列进行处理,然后基于密文分组链接模式进行多轮替换,完成像素信息在密文图像上的全局扩散,很难从本质上提升算法的运行效率。

本文以行向量和列向量为计算单元,提出一种矩阵上的快速扩散策略。下面以尺寸为5×5的图像为例,结合图1中位置为(3,4)上像素的扩散过程阐明算法的原理。

1) 如图1(a)所示,将图像矩阵的上边作为起点,以行向量为计算单元,在垂直方向从上到下并行完成每一列的密文分组链接加密,实现像素信息的第一轮扩散,此时(3,4)位置像素的信息扩散到的位置还非常有限。

2) 如图1(b)所示,将图像矩阵的下边作为起点,继续以行向量为计算单元,在垂直方向从下到上并行完成第二轮扩散,此时(3,4)位置的像素信息已经扩散到第四列的所有位置。

图1 像素扩散过程图 (a) 第一轮扩散 (b) 第二轮扩散 (c) 第三轮扩散 (d) 第四轮扩散

3) 如图1(c)所示,将图像矩阵的左边作为起点,以列向量为计算单元,在水平方向从左到右并行完成每一行的密文分组链接加密,实现像素信息的第三轮扩散,因为第四列都携带了(3,4)位置像素的信息,扩散开始加速。

4) 如图1(d)所示,将图像矩阵的右边作为起点,继续以列向量为计算单元,在水平方向从右到左并行地完成最后一轮扩散,(3,4)位置的像素至此完成了在密文图像上的全局扩散。

显见,将(3,4)位置的像素推广成任意位置的像素信息,在上述4轮扩散后都能在密文图像上实现快速全局扩散,因此本文的矩阵四向扩散策略是切实可行的。

2 算法设计

本文算法的运行流程如图2所示。发送端将明文图像进行自上而下、自下而上、自左而右和自右而左共计4轮并行分组链接加密生成密文图像,接收端使用相同参数对密文图像进行逆向操作即可得到正确的解密图像。其中加解密流程所需的密钥矩阵通过量化、重构原始超混沌序列产生,而密文分组链接加密所需的初始向量则由低维混沌系统快速生成。

图2 本文算法运行流程图

2.1 超混沌系统

超混沌系统作为一种特殊的混沌系统,具有更高的维度和2个及以上正的Lyapunov指数,其混沌吸引子异常复杂,难以预测。本文使用的Hyper-Chen超混沌系统方程如式(1)所示。

(1)

式(1)中x1、x2、x3、x4表示系统的4个状态值,此外部分文献报道中将系统控制参数作为初始密钥,以期扩大算法的密钥空间,但是用户错误操作将会导致超混沌系统退化为周期系统[16],不宜采用。本文选择如公式(1)所示的最优参数,此时系统包含2个正的李氏指数:LE1=0.1567和LE2=0.1126,能够进入超混沌状态[17]。Hyper-Chen超混沌系统的部分相空间轨迹如图3所示,表现得异常复杂稠密和难以预测,因此其产生序列的随机性和安全性满足本文算法的设计需求。

(a) x1、x2平面

(b) x3、x4平面

(c) x1、x2、x3空间

(d) x2、x3、x4空间

2.2 密钥矩阵生成

原始超混沌虽然具有较强的随机性,但是其值域范围在实数域上,无法直接用于整数像素的加密,通过量化可以将其值域限定为0~255之间的整数,同时改善原始序列的统计特性[18-19]。本文在量化的基础上,为了适应新的四向扩散策略,引入重构步骤,以生成与图像矩阵尺寸相同的密钥矩阵。

设图像矩阵P尺寸为M×N,密钥矩阵的生成步骤如下:

1) 超混沌系统预迭代N1次,增强序列对系统初值的敏感性,消除暂态效应,提高算法安全性。

2) 初始化空矩阵B。

3) 将系统每轮迭代产生的新状态值{x1,x2,x3,x4}按照式(2)规则对矩阵B进行填充。

(2)

4) 将实数矩阵B量化为值域为[0,255]的整数矩阵B′,具体规则如式(3),其中mod为模运算,abs为取绝对值运算,floor为向下取整运算;

B′=mod(floor(abs(B)-floor(abs(B))×1015), 256)

(3)

5) 最后重构矩阵B′,得到高为M,宽为N的密钥矩阵B。

2.3 矩阵四向扩散加密

加密的最终目的是混淆明文和密文之间的联系,使之能够抵御各种密码分析,本文在扩散过程中引入异或运算和模运算等非线性运算增加算法的安全性。

2.3.1 初始向量生成

密文分组链接模式在对第一组明文进行加密时需要提供一组初始向量,相比现有方案,本文算法中需要更多的初始向量,因此需要提供一种新的快速生成策略,具体步骤如下:

1) 预迭代Logistic映射N2次,消除暂态效应,增强初始向量的随机性。

2) 初始化空序列x。

3) 将Logistic映射每次迭代产生的状态值填充至x,直到长度达到2M+2N。

4) 按照式(4)规则将实数序列x量化为值域为[0,255]的整数序列IV。

IV=mod(floor(x×1015), 256)

(4)

5) 将IV按照式(5)规则处理生成4个初始向量,其中上标T表示向量转置运算。

(5)

2.3.2 加密流程

MATLAB平台具有强大的矩阵计算能力,其常用的函数和运算符号都实现了向量化计算,因此本文算法在MATLAB平台下通过如下具体步骤实现加密流程:

1) 输入明文图像P,密钥矩阵K,初始向量IVT、IVB、IVL、IVR。

2) 按照式(6)规则,以图像矩阵的第一行像素P[1,:]为起点完成自上而下的第一轮扩散加密生成中间密文矩阵C1,其中bitxor表示按位异或运算,加密第一行像素时所需的前序密文向量为IVT。

(6)

3) 按照式(7)规则,以图像矩阵的最后一行像素C1[M,:]为起点完成自下而上的第二轮扩散加密生成中间密文矩阵C2,其中加密最后一行像素时所需的前序密文向量为IVB。

(7)

4) 按照式(8)规则,以图像矩阵像素第一列像素C2[:,1]为起点完成自左而右的第三轮扩散加密生成中间密文矩阵C3,其中加密第一列像素时所需的前序密文向量为IVL。

(8)

5) 按照如式(9)规则,以图像矩阵像素最后一列像素C3[:,N]为起点完成自右而左的第四轮扩散加密生成中间密文矩阵C4,其中加密最后一列像素时所需的前序密文向量为IVR。

(9)

6) 将C4输出即为最后的密文图像C。

2.3.3 解密流程

加密流程配套解密流程才能组成完整的密码算法,本文算法的解密流程是扩散的逆向操作,依次从右左下上进行解密,具体步骤如下:

1) 输入明文图像C,密钥矩阵K,初始向量IVT、IVB、IVL、IVR。

2) 按照式(10)规则,以图像矩阵第一列像素C[:,1]为起点完成自左而右的第一轮解密,生成中间解密矩阵D1,其中解密最后一列像素时所需的初始向量为IVR。

(10)

3) 按照式(11)规则,以图像矩阵最后一列像素D1[:,N]为起点完成自右而左的第二轮解密,生成中间解密矩阵D2,其中解密第一列像素时所需的初始向量为IVL。

(11)

4) 按照式(12)规则,以图像矩阵第一行像素D2[1, :]为起点完成自上而下的第三轮解密,生成中间解密矩阵D3,其中解密最后一行像素时所需的初始向量为IVB。

(12)

5) 按照式(13)规则,以图像矩阵最后一行像素D3[M, :]为起点完成自下而上的第四轮解密,生成中间解密矩阵D4,其中解密第一行像素时所需的初始向量为IVT。

(13)

6) 将D4输出即为最后的解密图像D。

3 仿真实验与性能分析

本文使用多种尺寸的标准8位灰度图像全面测试本文算法的安全性能和运行效率。实验的硬件资源主要为:Intel Core i5-6500 CPU、固态硬盘、8 GB内存。实验的软件资源主要为:Windows7系统、MATLAB 2016a软件。为保证较好的混沌特性,在数字系统中通常使用四阶龙格库塔算法及定步长0.001对超混沌系统进行求解,令超混沌系统的初值为{0.1,0.1,0.1,0.1},预迭代次数N1为91,Logistic系统的初值为0.1,预迭代次数N2为55。使用上述参数即会话密钥对尺寸分别为256×256的Lena图像、512×512的Cameraman图像和1024×1024的Baboon图像进行加密,结果如图4所示,显然肉眼已无法从杂乱无章的密文图像中辨认出任何有效信息。

(a) Lena明文 (b) Cameraman明文 (c) Baboon明文

(d) Lena密文 (e) Cameraman密文 (f) Baboon密文图4 图像加密结果

3.1 直方图分析

直方图能够直观反映灰度值的分布情况,理想的密文图像中灰度值应等概率出现,直方图会呈现出一片平坦。图5分别给出了Lena图像、Cameraman图像和Baboon图像加密前后的灰度直方图。实验结果表明密文图像中的灰度值已经近似均匀分布,能够有效抵御频率分析攻击。

(a) Lena明文

(b) Lena密文

(c) Cameraman明文

(d) Cameraman密文

(e) Baboon明文

(f) Baboon密文

3.2 统计性能分析

加密的本质是彻底隐藏明文和密文之间的联系,使密文图像不仅在视觉上杂乱无章,而且统计特性方面也表现出随机性。本文使用NIST提供的SP 800-22随机数测试标准进行仿真实验,通过频率检测、游程检测和线性复杂度等15个项目,全面测试密文图像的统计特性。

将上述3幅密文图像转化成比特序列进行实验,结果如表1所示,各项测试中的P值皆大于阈值0.01,表明3幅密文图像在统计特性方面均具有非常显著的随机性,因此能够有效抵御基于统计分析的密码攻击手段。

表1 密文图像NIST随机性测试结果

3.3 相邻像素相关性分析

相邻像素之间的强相关性使明文图像看上去栩栩如生,所以图像加密的目的之一就是破坏这种内在相关性,使密码分析人员无法从密文图像中恢复出任何明文图像的信息。通过公式(14)可以定量地分析相邻像素之间的相关程度[19]:

(14)

从图像水平、垂直、对角3个方向任意选择N组像素xi,yi(2个像素之间的距离差为1)进行计算,γ即为所求的相邻像素相关系数。

本阶段采用Lena图像进行仿真实验和对比,分别从明文图像和密文图像中随机取3个方向的1000组相邻像素计算γ系数。结果如表2的第2列和第3列所示,加密后相邻像素相关系数从趋于1的极强相关下降为趋于0的极弱相关,表2分别给出了文献[12-14]中Lena图像的实验结果。对比分析表明,本文算法的γ系数优于现有算法,能够更好地抵御相关性分析攻击。

表2 图像相邻像素相关系数

3.4 明文敏感性分析

使用相同初始密钥对2幅具有微小差异(相同位置像素的灰度值差异仅为1)的明文图像进行加密后,应该生成2幅截然不同的密文图像,才能使加密算法抵御差分攻击。

利用像素改变率(Number of Pixels Change Rate, NPCR)[20]和归一化平均改变幅度(Unified Average Changing Intensity, UACI)[20]这2个指标可以很好地度量密文随明文变化的程度:

(15)

其中,C1(i,j)和C2(i,j)表示相同位置2个灰度值的加密结果,若C1(i,j)=C2(i,j),则D(i,j)=0,否则D(i,j)=1。一幅灰度图像的NPCR和UACI理想期望分别为:NPCRE=99.61%,UACIE=33.46%[20]。

表3 NPCR和UACI平均值比较 单位:%

3.5 密钥敏感性分析

与明文敏感性类似,加密密钥的微小变化也必须使加密生成的密文图像具有显著差异,而且解密密钥的微小变化则会导致解密过程完全错误,且解密图像依然无法辨认。因此,本阶段实验继续使用NPCR和UACI这2个指标进行度量。

首先是密钥差异对加密结果的影响,如前文所述,本文算法的密钥分为4个部分:超混沌系统初值、超混沌系统预迭代次数、Logistic映射初值、Logistic映射预迭代次数。分别对Lena、Cameraman、Baboon进行仿真实验,每次仅对加密密钥的一个部分做微调。结果如表4所示,加密密钥的微小改变会将明文图像加密成2幅完全不相关的密文图像。

表4 密钥差异对加密结果的影响

第二阶段继续采用如上所述的4组密钥对Lena、Cameraman、Baboon进行解密密钥的敏感性实验。结果如表5所示,解密密钥的微小改变将导致本文算法解密出与明文图像具有显著差异的错误图像。

表5 密钥差异对解密结果的影响

3.6 密钥空间分析

加密算法的密钥空间就是加密密钥所有可能的取值范围。在密码学领域,通常以密钥占用的比特长度来描述密钥空间的大小。本文密钥由4个部分组成,其中超混沌系统初值和Logistic映射初始值以双精度浮点数的形式进行存储,最多可精确到小数点后面15位。而N1,N2∈[10,1010],其下限确保了预迭代充分发挥作用,上限则使预迭代次数不至于过多而影响加密速度。因此,本文算法密钥空间为(1015)5×103×103≈2267,研究表明,100位以上的密钥空间足以抵御暴力破解[11],因此本文算法267位的密钥空间为能够更好地抵御基于穷举搜索的暴力破解。

3.7 算法时间复杂度分析

实用的加密算法除了需要提供较高的安全性能,也应该具有较高的运行效率,即算法能够在较短的时间内对图像进行高强度的加密。本文算法主要包括密钥矩阵生成、初始向量生成和矩阵四向扩散加密3个步骤,其时间复杂度分别为O(MN),O(2M+2N)、O(2M+2N)。相比传统基于置乱-替换结构的方案,在取得更好的加密效果的同时,通过舍弃置乱步骤优化了时间复杂度。更重要的是本文算法扩散过程的时间复杂度仅为线性阶O(2M+2N),相比现有算法的平方阶O(2MN)具有明显优势。本阶段实验分别从4种尺寸的图像中随机选择100张进行加密操作,结果如表6所示。实验表明,本文算法运行效率更高,能够应用于对实时性要求较高的场合。

表6 图像加密时间 单位:s

3.8 算法鲁棒性分析

密文在公开信道传输中有时会受到一些噪声的污染,图像数据相比文本数据,冗余度更高,所以算法应当具有一定的鲁棒性,使遭受轻微噪声污染后的密文图像依然能解密出部分有效信息。常见的噪声类型有2种:高斯噪声和椒盐噪声。首先在Baboon密文图像上添加均值为0,方差分别为0.0003和0.0005的高斯噪声,解密结果如图6所示。

(a) 方差为0.0003

(b) 方差为0.0005

然后在Baboon密文图像上添加均值为0,强度分别为0.003和0.005的椒盐噪声,解密结果如图7所示。

(a) 强度为0.003

两阶段的实验结果表明,本文算法产生的密文图像能够在公开信道进行传输,其鲁棒性能够完成对轻微噪声污染密文图像的解密,恢复出部分有效信息。

4 结束语

本文针对图像二维结构特点,提出一种基于矩阵四向扩散的超混沌图像加密算法。首先,利用数字域上随机性更好、初始值更多的Hyper-Chen超混沌系统产生随机序列,量化为值域在[0,255]之间的整数序列,并重构成与待加密图像尺寸相同的密钥矩阵;以行向量和列向量为计算单元,在图像矩阵的垂直和水平方向上并行完成4轮密文分组链接加密,高效地将像素信息全局扩散至密文图像上,具有很快的加密速度;其中,4轮扩散过程所需的初始向量由Logistic映射快速产生。理论分析和仿真结果表明,本文算法能够有效抵御选择明文、差分和暴力攻击等密码学分析手段,安全程度较高,且具有较强的鲁棒性;同时新的扩散算法时间复杂度仅为线性阶O(2M+2N),加密速度较快。因此,本文算法能够较好保障图像数据的安全存储和实时保密传输,在网络信息安全、移动互联网传输等领域具有广阔的应用前景。

猜你喜欢
明文密文解密
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
炫词解密
解密“一包三改”
炫词解密
奇怪的处罚
一种基于密文分析的密码识别技术*
奇怪的处罚
四部委明文反对垃圾焚烧低价竞争
云存储中支持词频和用户喜好的密文模糊检索