APP下载

基于二维耦合映像格子模型的图像加密

2021-12-28江功坤尹恩民

西南交通大学学报 2021年6期
关键词:明文加密算法密文

王 永 ,江功坤 ,尹恩民

(1. 重庆邮电大学计算机科学与技术学院,重庆 400065;2. 桂林电子科技大学广西密码学与信息安全重点实验室,广西 桂林 541004)

混沌与密码学之间存在着普遍的相似性,这使得基于混沌的密码学成为热门研究之一,如混沌流密码[1]、混沌Hash 函数[2]、混沌S 盒[3]和混沌图像加密[4-10]. 由于数字图像在军事、医疗、商业等各领域的普遍应用,其安全性研究受到广泛重视. 而传统的加密方案,如AES (advanced encryption standard)、DES(data encryption standard)等,对数字图像并不适用,使得基于混沌的图像加密方案逐渐受到研究者们的青睐.

混沌系统的选择对于混沌图像加密算法来说至关重要. 混沌系统一般可以分为一维混沌系统[11-12]和高维混沌系统[13-14]两大类. 时空混沌是一种复杂的混淆系统,它在图像加密中的应用日益广泛. 文献[15]运用耦合映像格子设计伪随机位序列生成器,并提出了一种基于伪随机比特序列和DNA (deoxyribo nucleic acid)编码的加密算法. 文献[16]提出了一种基于自适应动态密钥流提取技术的块混沌图像加密算法,该算法将时空混沌系统与Tent-Sine 系统相结合来生成混沌序列,并以此为基础加密图像. 从当前的研究看,从混沌系统中抽取的混沌序列在图像加密过程中发挥了重要的作用,对整个加密算法的安全性至关重要. 虽然选择高维或者复杂的混沌系统能够保证所产生序列的复杂性,有效防止攻击者对序列的预测与重构,但是,这些复杂混沌系统的状态值在相空间的分布往往是不均匀的,从而为攻击者进行统计攻击或者暴力攻击提供了便利. 文献[17]正是利用了这种不足,对一种基于DNA 编码和时空混沌的图像加密算法实施了有效的攻击.

针对上述安全问题,本文将分段时空混沌与暂态变换结合,构造了一个新的混沌模型T2DCML(T-2D coupled map lattices). 该模型以分段混沌系统作为局部映射,很好地平衡了系统复杂性和效率之间的关系. 同时,利用暂态变换实现了模型状态值的均匀分布,保证了其所产生的混沌序列的高度安全性. 基于T2DCML 模型,本文进一步提出了一种图像加密算法. 该算法依据矩阵变换简化了图像的置乱操作,无需如传统的混沌置乱方法那样对矩形图像预处理,增强了算法的适用性. 仿真实验及性能分析表明,该算法能够有效保证图像加密的安全性,满足图像在网络中安全传输的需求.

1 混沌模型

1.1 二维耦合映像格子模型

耦合映像格子(coupled map lattices,CML)模型是一类典型的时空混沌模型,在混沌密码中得到逐步广泛的应用. 为了进一步增强模型的复杂性,一维CML 模型被扩展到了二维CML (2DCML)模型,其常用的数学表达式如式(1).

将式(3)所示的分段Logistic 映射(piecewise logistic map,PLM)选为2DCML 模型的局部混沌函数,因为它具有比Logistic映射更大的李雅普诺夫指数(Lyapunov exponent,LE)[18],能够更好地保证模型的复杂性.

1.2 2DCML 模型的性能分析

1.2.1 李雅普诺夫指数

根据文献[19]的研究结果,可得式(2)所描述的2DCML 模型的LE 解析式为

由式(4)知,当i=R,j=L时,模型的LE 取得最大值. 即2DCML 的最大LE 由局部混沌函数PLM的LE 决定. 为了保证模型具有复杂的动力学行为,本文设置 µ = 4. 同时,PLM 模型的LE 与分段数N的关系如图1 所示. 由图1 中可知:不论N取何值,PLM 的LE 均为正数,并且随着N的增大而增大. 这说明PLM 作为2DCML 的局部函数能够很好保持该模型整体的混沌特性. 在权衡PLM 的保持良好非线性和具有较大LE 值的情况下,本文设置N= 64.

图1 局部混沌函数PLM 的LEFig. 1 LE of local chaotic function PLM

1.2.2 分叉图

由式(4)可知,模型的最大LE 与其尺寸无关.为了便于硬件实现,设置R=L= 8. 在兼顾格子之间必要耦合强度且LE 取得较大值的条件下,设置 ε =0.1. 在2DCML 模型中,每个格子的动力学性能相似,所以以格子(4,4)为代表分析模型的分叉情况,如图2 所示.

图2 2DCML 模型中格子(4,4)的分叉图Fig. 2 Bifurcation diagram of lattice (4,4) in 2DCML

在图2 中,无论 µ 为何值模型都处于混沌状态,并且随着 µ 的增加,其分叉行为变得更加复杂,在µ= 4 时其分叉行为最复杂,混沌性能最好. 因此,本文将 µ 设置为4.

1.2.3 遍历区间

遍历区间的大小与密码学中混沌的不可预测性密切相关. 在 µ = 4,N= 64 时,绘制2DCML 模型中格子(4,4)的遍历区间,如图3 所示. 从图3 中可以看出:模型能够遍历整个相空间区间(0,1). 这说明2DCML 模型具有良好的遍历性.

图3 2DCML 模型中格子(4,4)的遍历图Fig. 3 Ergodic diagram of lattice (4,4) in 2DCML

1.2.4 概率密度分布

概率密度分布描述了状态值在相空间中的分布情况. 2DCML 模型的状态值的概率密度分布如图4所示. 从图4 中可以看出:该模型状态值的概率密度分布是不均匀的. 这种现象为统计攻击提供了便利,容易产生安全问题,因此不利于该模型在信息安全中的应用.

图4 2DCML 的概率密度分布Fig. 4 Probability density distribution of 2DCML

1.3 均匀化处理

为了在2DCML 模型中获得更均匀的状态值分布,本文设计了一个基于暂态数据的转换函数T. 假设计算机中一个定点数的精度是2A位(A为定点数精度的一半),对于任意定点数u∈(0,1),其二进制格式可以表示为

式中:uk∈{0,1},k= 1,2,···,2A表示小数点后面的第k位.

变换函数T的定义如下:

在函数T中,所有的变量都是长度为2A的定点数. 对于乘积t,只保留了小数点后的前2A位,舍弃的后2A位为暂态数据. 文献[20]研究表明,暂态数据拥有良好的随机性质. 因此,通过与暂态数据进行异或操作,输出结果o具有很好的随机性. 由于精度有限,函数T在计算机实现过程中不能直接通过将u和v相乘. 但通过大整数之间的乘法规则,即将二进制整数u1u2···u2A和uA+ 1uA+ 2···u2Au1u2···uA的乘法代替定点数乘法u×v,即可得到暂态数据.

1.4 T2DCML 模型的性能分析

以1.2 节中2DCML 模型为基础,将该模型迭代后产生的状态值使用暂态函数T进行变换,进而得到新的暂态均匀化的混沌模型,为描述方便将其称为T2DCML 模型.

在T2DCML 模型中,设置模型中的参数R=L= 8,N= 64. 采用同样的方法,测试其分叉情况如图5 所示. 从图5 中可以看出:无论 µ 取何值,T2DCML都具有复杂的分叉情况. 同时对比图2,可以看出:T2DCML 模型具有更复杂的分叉行为. 这说明T2DCML模型的混沌性能得到了增强.

图5 T2DCML 模型中格子(4,4)的分叉图Fig. 5 Bifurcation diagram of lattice (4,4) in T2DCML

T2DCML 产生混沌序列的概率密度分布如图6所示. 与图4 相比,T2DCML 模型的概率密度已趋于均匀分布. 这表明T2DCML 模型所产生的序列具有良好均匀性,能够有效满足相应的安全要求.

图6 T2DCML 的概率密度分布Fig. 6 Probability density distribution of T2DCML

表1 NIST 套件的测试结果Tab. 1 Test results of NIST suites

2 算法设计

2.1 图像加密算法

本文采用置乱扩散结构作为图像加密的框架.在该算法中,加密后的像素点不仅取决于其原始位置和值,还取决于其周围的其他像素点. 在置乱阶段,利用T2DCML 模型所产生的序列构造了两个初等变换矩阵,对像素点矩阵进行置乱. 在扩散阶段,从T2DCML 模型状态值中提取整数序列,对置乱后的像素点矩阵进行扩散,并利用明文反馈调整T2DCML 模型的状态值,增强加密算法抵抗选择明文攻击的能力. 在交替进行多伦置乱与扩散操作后,输出生成密文图像. 加密算法的具体步骤如下:

步骤2 假定T2DCML 模型的大小是R×L.输入PLM 的初始状态值x0,对PLM 迭代100 次以消除初值x0的影响. 然后,继续迭代PLM 模型R×L次,获得每次迭代产生的状态值序列. 按照从左到右、从上到下的顺序赋值给T2DCML 模型,完成初始化,如式(6)所示.

步骤3 构造两个初等矩阵P和Q,包括以下4 个子步骤:

1) 迭代一次置乱T2DCML 模型并将产生的R×L个状态值依次存储到序列p中,继续迭代该模型直到p存储了H个浮点数,记作p= {ph},h= 1,2,···,H.

2) 将p中的元素按照从大到小的顺序排序,排序后的序列记作p′.

不难发现,所构造两个初等矩阵的逆矩阵与转置矩阵相等,即P′=PT,Q′=QT,这一特性将会用于图像解密的逆置乱,即V=PTV′QT.

步骤5 将V′按从左到右、从上到下的顺序转换为整数序列I. 另外构造一个T2DCML 模型,其初始状态与步骤2 中的T2DCML 模型相同. 每迭代一次T2DCML 模型,就从该模型的每个格子中依次提取当前状态值的前8 比特,得到整数序列Y. 利用序列Y对序列I进行扩散,如式(11).

式中:Im为序列I中的第m个字节对应的整数值;Ym为序列Y中的第m个字节对应的整数值;C0∈[0,255]为预设的扩散常数.

若序列I中数据尚未被完全处理,则利用明文反馈的形式调整T2DCML 模型的状态值如下:

调整状态值后,再次迭代混沌模型并抽取新的状态值补充到序列Y中. 重复该过程,直至序列I中的所有值被处理完.

步骤6 重复步骤3~5 的置乱扩散操作M次,最终输出密文图像. 重复的次数越多,加密的效果越好,同时,需要的时间也越多.

2.2 图像解密算法

解密算法的过程与加密算法相反,主要步骤相似,此处不再详述. 需要注意的是,解密所需的所有混沌序列都应该提前生成,以方便与每轮解密所需的序列配对. 式(13)为与式 (11)对应的解密公式.

3 算法性能分析

3.1 加解密测试

选取典型的标准图像Lena、Baboon、Pepper 以及全白(White)和全黑(Black)作为明文图像,对本文提出的图像加密算法进行测试,设置加密次数M= 2,结果如图7 所示. 从图7 中可以看出:密文图像很好地隐藏了明文图像的有用信息,在视觉上有良好的加密效果;解密算法能够无损地恢复出明文图像. 测试结果表明,本文算法能够有效正常工作,满足通常的图像加解密需求.

图7 明文图像和密文图像Fig. 7 Plaintext images and ciphertext images

3.2 统计分析

从直方图分析和相关性分析两个方面测试了算法的加密效果. 绘制灰度图像Lena、Baboon、Pepper、White 和Black 的直方图如图8 所示. 同时,为了便于对比,在图8 中还绘制了加密这些图像后得到的密文图像的直方图. 从如图8 可以看出:加密后的图像很好地隐藏了明文图像中的统计信息,使得算法能够有效地抵御统计攻击.

图8 图像加密前、后的直方图Fig. 8 Histograms before and after image encryption

相关性分析的具体测试方法是首先从水平、垂直和对角线3 个方向随机选出1 000 对相邻的明文像素点和密文像素点,然后计算其相关系数,如式(14).

式中:cov(x,y)为序列x与序列y的协方差;D(•)为序列的方差.

得到Lena、Baboon、Pepper、White 和Black 图像在加密前后相邻像素点之间的相关系数如表2所示:从表2 中可以看出:虽然明文图像的像素点之间存在明显的相关性,但是被本文算法加密之后,密文图像的像素点之间的相关系数非常小,不存在相关关系.

表2 加密前后相邻像素间的相关系数Tab. 2 Correlation coefficients between adjacent pixels

直方图分析和相关性分析的结果表明本文提出的图像加密算法具有良好的抗统计攻击能力.

3.3 信息熵

信息熵表征图像中所包含信息的累积和分散,其计算如式(15).

式中:p(ml)为信息值出现的概率;t为自然数.

由于像素点的值使用字节表示,所以其取值范围为[0,255],对应的信息熵的理想值为8. 加密后图像的信息熵越接近理想值,表明图像中包含的有效信息越少. 表3 列出了使用本文算法加密图像Lena、Baboon、Pepper、White 和Black 前、后的信息熵.

表3 加密前后图像的信息熵Tab. 3 Information entropies of images

从表3 中可以看出:无论什么明文图像,在加密之后,其密文图像的信息熵都接近理想值. 这说明本文提出的加密算法能够有效防止密文图像的信息泄露,可以有效地抵抗基于信息熵的攻击.

3.4 密钥分析

3.4.1 密钥空间

对于加密算法,应该有足够的密钥空间(> 2128)来抵抗蛮力攻击. 在本文算法中,密钥包括初始状态值x0∈(0,1)、控制参数 µ∈ (0,4]、耦合强度ε ∈(0,1)和扩散常数C0∈[0,255]. 假设计算机中的浮点数计算精度为10−14, 则算法的秘钥空间大小为1014× (4 × 1014) × 1014× 28≈ 2150. 根据IEEE 浮点数标准, 64 位双精度数的精度高于10−14,所以,本文算法的密钥空间大于2150,能够满足抵抗暴力攻击的要求.

3.4.2 密钥敏感度

对于密钥敏感度,进行以下测试.

测试1:将初始状态值x0变为x0+ 10−15;

测试2:将控制参数 µ 变为 µ −10−15;

测试3:将耦合强度 ε 变为 ε + 10−15;

测试4:将扩散常数C0变为(C0+ 1) mod 256;

在上述4 种不同的情况下,对图像采用2 轮加密,比较密钥变化前后的密文之间的差异. 结果如表4 所示. 从表4 中可以看出:密钥的微小变化会使密文产生巨大的变化,密文图像的差异都在99.5%以上. 说明该算法具有良好的密钥敏感性.

表4 密文图像的差异Tab. 4 Differences between ciphertext images %

3.5 差分攻击

在差分攻击中,攻击者通常对明文进行轻微的调整,然后比较调整前后产生的密文之间的差异来进行攻击. 对于图像加密的差异攻击,通常使用像素变化率(number of pixel change rate,NPCR)和统一平均变化强度(unified average change intensity,UACI)这两个指标进行评估,相应的计算如式(16)、(17).

式中:C1、C2为两个密文图像,它们对应的明文图像只有一个像素点的值不同;w= 1,2,···,W;D(h,w)定义为

NPCR 和UACI 理想值分别为99.6%和33.3%.表5 展示了不同图像在2 轮加密轮加密后的NPCR和UACI. 从表5 中可以看出:NPCR 和UACI 的计算值已经达到各自的理想值. 说明所提出的算法具有有效抵抗差分攻击的能力.

表5 密文图像的NPCR 和UACITab. 5 NPCR and UACI of ciphertext images %

3.6 安全性分析

在本文算法中,T2DCML 模型所产生的混沌序列具有至关重要的作用,它驱动着置乱操作和扩散操作的执行. 首先,T2DCML 模型属于高维混沌系统,具有良好的混沌性能和复杂的动态行为,能够有效防止攻击者通过相空间的重构的方式来预测它所产生的混沌序列;其次,T2DCML 模型有效利用了暂态数据特点,保证了数据分布的均匀性,提高了其所产生序列的随机性,NIST 测试的结果进一步验证了这一点. 由于T2DCML 产生的序列具有良好的随机性,因此可以有效保证置乱阶段所构造的变换矩阵的随机性,进而保证了置乱变换的安全.

在扩散阶段,本文算法采用明文反馈的方式,对T2DCML 的状态值进行了调整. 这种处理方式使得扩散阶段所使用的伪随机序列不仅与混沌系统相关,也与加密的图像相关,从而可以有效防御已知明文攻击和选择明文攻击. NPCR 和UACI 的测试也有效证实了这一点.

此外,本文算法具有足够大的密钥空间,能满足暴力攻击的要求. 实验测试的结果反映出由本文算法加密的图像,其直方图分布均匀,像素点间没有相关性,密文图像的信息熵非常接近理想值8,能够有效抵抗统计攻击和信息熵攻击能力.

3.7 效率分析

在本文算法中,首先需要不断迭代T2DCML 模型,并从中抽取出相应的状态值构造变换矩阵,进行置乱操作,然后,再迭代混沌映射产生扩散操作所需要的伪随机序列. 与2DCML 模型相比,T2DCML 在混沌系统迭代之后还需要进行1 次T变换操作. 在T变换操作中,需要对状态值进行1 次移位操作,1 次乘法操作和1 次异或操作. 虽然本文算法中引入了T变换操作,但由于该操作增加的计算量仅为少量的几次基本运算,所以对运算效率的影响很小.因此本文算法的运算效率与已有的基于时空混沌模型的图像加密算法[15-16]相当. 使用Python 语言实现算法,在CPU 为Intel(R) Core(TM) i3-4005U 的笔记本电脑上测试加密速度,得到加密时间与加密像素点之间的关系如图9 所示. 从图9 中可以看出:加密时间与加密图像的尺寸之间是呈线性变化关系的.这表明本文算法中所采用加密变换能够很好适应图像尺寸的变化,能够满足在Internet 网中进行图像加密的效率需求.

图9 加密时间与加密像素点数量的关系Fig. 9 Relation between encryption time and number of pixels

同时,T2DCML 模型是一个高维的复杂混沌系统,它能产生具有非常良好加密性能的混沌序列,但是迭代该模型的计算量要高于迭代简单混沌系统的计算量,因此本文算法的效率要略低于这类图像加密算法[21]. 此外,由于T2DCML 模型是由多个格子组成,每个格子相对独立且计算量相当,在未来的工作中可以考虑引入并行处理措施,进一步提高本文算法的效率.

3.8 对比分析

为了进一步说明本文算法的性能,将该算法与同样基于混沌映射的算法[4-10]比较了512 × 512 的Lena 图像的性能,结果如表6 所示. 在所有算法中,本文算法的相关系数的平均值更接近0,信息熵的性能也略大,且NPCR 和UACI 均已达到理想值. 说明该算法足够安全,能够应用于网络图像的安全传输.

表6 算法性能对比Tab. 6 Comparison of algorithm performance

4 结 论

本文提出了一种基于均匀化时空混沌的图像加密方案.

1) 提出了一类分段时空混沌系统,以较小的计算代价换来较大的性能提升.

2) 对模型的输出序列进行暂态变换,使生成的序列服从均匀分布,增强了混沌模型状态值的不可预测性,保证了混沌序列的高度安全性.

3) 提出一类混沌图像加密算法,利用矩阵的初等变换简化图像置乱阶段,弥补了上述两点对加密方案增加的时间复杂度.

4) 仿真实验及性能分析表明该算法具有良好的安全性,能够有效地满足图像在网络中安全传输的需求.

致谢:广西密码学与信息安全重点实验室基金(GCIS201908).

猜你喜欢

明文加密算法密文
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
奇怪的处罚
一种基于密文分析的密码识别技术*
一种基于密文分析的密码识别技术*
HES:一种更小公钥的同态加密算法
奇怪的处罚
基于小波变换和混沌映射的图像加密算法
四部委明文反对垃圾焚烧低价竞争
对称加密算法RC5的架构设计与电路实现