混沌和DNA运算结合的图像加密算法仿真

2021-11-17 07:09刚,郭祥,杨晨,丁
计算机仿真 2021年5期
关键词:明文密文加密算法

蒋 刚,郭 祥,杨 晨,丁 召

(贵州大学大数据与信息工程学院,贵州 贵阳550025)

1 引言

保证图像数据的安全传输一直是信息安全领域的研究热点。近年来,基于混沌理论的图像加密算法由于在安全性、复杂度、速度等方面更具优势[1-3],因而在图像加密算法设计[4-7]中得到了广泛研究与应用。

混沌系统具有与密码学需求相似的特性,非常适合用于加密算法的设计。但是混沌系统在数字化时会出现周期性,导致安全性降低,因此不少学者提出混沌系统与DNA(DeoxyriboNucleic Acid)运算[8]结合的加密方案,因为DNA运算具有超低功耗、存储容量大、并行计算的特点。如,Wang等人[9]提出了一种基于DNA编码和混沌映射的图像加密方案,利用分段线性混沌映射和Logistic映射进行加密算法设计。Liu H等人[10],利用低维混沌映射和DNA运算设计加密算法。虽然低维混沌系统的加密算法便于实现,但是结构简单,密钥随机性还不够。为了解决这个问题,Li X等人[11]和Zhen P[12]等人提出高维混沌系统和DNA运算结合的加密方案,但没能将密钥与明文图像关联起来。

为此,本文提出了一种混沌和DNA运算结合的图像加密算法。算法利用哈希函数的单向性和雪崩效应,将密钥与明文关联,实现了一次一密。通过计算明文与外部密钥的哈希摘要生成内部密钥,并将其作为混沌系统的参数和初值,生成所需混沌序列,以实现密钥与明文相关联,提高系统的安全性,增强敏感性。然后利用Chen氏超混沌序列和SPM(statistical parameter mapping)[13]混沌密钥流进行加密运算,得到密文图像。

2 基本原理

2.1 算法流程图

算法流程如图1所示,输入明文图像P和外部密钥Ke,通过SHA-512函数计算生成哈希摘要作为内部密钥Ki,然后用Ki计算生成混沌系统的初值和参数k1,…,k8并通过迭代求解混沌序列,得到Chen氏超混沌序列和SPM混沌密钥流S(i)。将明文图像P进行分块处理得到P(i),然后在Chen氏超混沌序列的选择下分别对P(i)和S(i)进行DNA编码、加密和解码,并将得到的密文块进行合成,最后输出密文图像C。

图1 加密算法流程图

2.2 算法描述

设灰度明文图像P的大小为M×NPixel,详细加密流程如下:

Step 1:输入明文图像P和外部密钥Ke。

Step 2:内部密钥Ki生成。为了实现密钥与明文关联,增加密钥空间,算法采用哈希函数SHA-512计算生成内部密钥。首先分别计算P和Ke的哈希摘要hash K1和hash K2,这样做的好处是可以更好地利用哈希函数的雪崩效应,让P和Ke的微小变化得以放大,然后再次利用SHA-512函数计算hash K1与hash K2的哈希摘要,得到512-bit的哈希摘要Ki即为内部密钥,经过这步处理之后Ki对明文P和Ke具有很高的敏感性。接着将Ki分割成64-bit的8段密钥,分别提取这8段密钥中的低32-bit(这里取32位精度,如果想扩大密钥空间,可以直接取64-bit,但是需要更高的计算精度)分别记为k1,…,k8作为Chen氏超混沌系统的初值X0,Y0,Z0,Z0与一维SPM映射的参数μ,η,tur和初值x0。

Chen氏超混沌系统的定义如下

(1)

一维SPM[13]映射定义如下

(2)

其中η,μ为系统参数,tur为扰动参数,当η∈(0,1),μ∈(0,1)时系统处于混沌状态,一维SPM映射解决了分段线性映射的零点问题,具有更高的随机性,因而更适合用于加密算法的设计。

Step 3:分块处理。为了将混沌的随机性与DNA编解码规则很好地结合起来,这里将明文图像进行分块处理,然后根据混沌序列值对每一小块进行处理。具体操作为:获取明文图像的大小[M,N],将明文P等尺寸划分为n×n大小的图像块,得到P(i)。

Step 4:Chen氏超混沌序列生成。分别将k1,…,k4赋给μ,η,x0,tur,采用四阶Runge Kutta法求解Chen氏超混沌序列。为了获得随机性更佳的混沌序列,这里多计算1500项,去除前1500项,得到Chen氏超混沌序列(X,Y,Z,Q)。

Step 5:SPM密钥流生成。分别将k5,…,k8赋给μ,η,x0,tur,通过迭代生成一维SPM混沌序列,同样为了获得随机性更佳的序列,这里多生成1500项,去掉前1500项,得到长度为M×N的SPM混沌序列。然后将其转换为[M,N]的混沌矩阵,接着将其划分为与明文块等尺寸的混沌图像块,记为S(i)。

临床上应用的治疗药物主要有2种:一是化学合成类抗球虫药,如磺胺类、地克珠利等;二是聚酶类离子载体抗生素类抗球虫药。除了药物治疗,应加强饲养管理,将雏鸡和成鸡分群饲养。在该病流行季节,应加强检查饲料,不喂已发霉的饲料,且适当投喂维生素A、维生素K和其他添加剂,提高鸡的抗病能力。

Step 6:利用Chen氏超混沌序列X和Y的值选择DNA编码方式,分别对P(i)和S(i)进行DNA编码,得到明文DNA矩阵块M(i)和混沌DNA矩阵块K(i)。

DNA是大多数生物的遗传物质,由4种碱基组成,碱基间满足互补配对规则。运用DNA运算的好处是能够使算法具有很高的并行性,降低系统功耗,其运算核心是将碱基作为信息载体,借助DNA分子操纵技术实现信息处理。具体操作是将待运算的信息进行DNA编码得到DNA序列,然后利用DNA运算规则对DNA序列进行运算,表1和表2分别是DNA编码表和DNA运算表。

表1 DNA编码表

表2 DNA运算表

Step 7:DNA加密操作,具体过程如下:

a)在Z(1)的作用下选择DNA运算方式对明文DNA矩阵块M(1)和混沌DNA矩阵K(1)进行DNA运算,得到DNA运算后的矩阵T(1),并在Q(1)的作用下解码得到第一个密文块C(1)。

b)在Z(2)的选择下重复a)中的操作,得到T(2),将T(1)和T(2)在Z(2)的选择下再次进行DNA运算,并解码得到密文块C(2),实现扩散操作。

c)在X,Y,Z,Q余下序列的作用下依次重复b)中的操作,得到密文块C3~C(M×N/(n×n))。

Step 8:将密文块C1~C(M×N/(n×n))合成为M×N大小的密文图像C进行输出。

解密过程:在Ki的作用下生成Chen氏超混沌序列和SPM混沌密钥流,将密文图像分块,然后在Chen氏超混沌的序列的作用下进行解密运算,解密运算中DNA加法和DNA减法运算互换,其余操作和加密运算相同。

3 实验结果

本算法通过编程进行了实验。实验选取了Lena,Baboon,Peppers灰度图像,其尺寸均为512×512Pixel,外部密钥Ke=0.2895,分块尺寸n=4。明文、密文及解密图像如图2所示,可以看出,三幅密文图像都是类似噪声的图像,从视觉上看不出明文与密文的联系,而且明文图像与解密图像完全一致,说明从视觉上来看算法保密性良好。

图2 加解密实验

4 性能分析

为了评估算法的安全性能,进行了一系列测试分析实验,测试项目有:密钥空间分析、密文统计特性、相关性分析、信息熵以及敏感性分析。

4.1 密钥空间分析

通常认为能够抵抗穷举攻击的算法密钥长度应该大于100-bit。为了增大密钥空间,算法引入的哈希函数SHA-512可以生成512-bit的内部密钥,如果混沌系统的参数和初值k1,…,k8采用64位精度,则密钥空间为(264)8=2512,即密钥长度为512-bit,远大于100-bit,因此拥有足够的密钥空间,能够有效地抵抗穷举攻击。

4.2 密文统计特性

图3给出了三幅测试图像明文和密文的直方图,从图中可以看出三幅明文图像的直方图具有明显的峰和谷,像素值分布不均匀,呈现某种分布规律,而相应的密文直方图灰度级分布相对均匀,与明文直方图完全不同,可以认为密文完全隐藏了明文信息,攻击者无法从密文直方图获取任何信息,说明算法具有良好的抵抗统计攻击的能力。

图3 明文和密文直方图

4.3 相关性分析

通常有意义的图像相邻像素在某些方向上存在较强的相关性,加密的目的之一就是消除相邻像素间的相关性。实验从水平、垂直和正对角三个方向随机选取2000对相邻像素点进行相关性分析,并画出其相关性分布图,图4为Lena明文和密文图像三个方向相关性分布图。从图4可以看出,Lena明文图像相关性分布图大都沿对角线分布,而密文图像相关性分布图分布均匀,说明明文图像相邻像素具有较强的相关性,加密后相邻像素间的相关性已经被破坏了,表明算法可以有效地破坏明文图像相邻像素间的相关性,具有较优的扩散效果。

图4 Lena明文密文图像相关性分布图

表3给出了算法密文图像相邻像素相关系数,并与其它算法进行了对比,从表中可以看出,密文图像相邻像素在三个方向上的相关性均非常接近0,说明加密完全破坏了明文图像相邻像素相关性,同时与文献[1,14,15]相比提出的算法加密性能更好,表明提出的算法能够有效地抵抗统计分析攻击。

表3 密文图像相邻像素相关系数

4.4 信息熵

实验对明文和密文图像的信息熵进行了测量,表5为加密前后的信息熵与文献[1,14]的测试值。从表5可以看出,明文的信息熵明显小于8,而密文的信息熵非常接近最大值8,同时通过与文献[1,14]测试值对比可以发现,文中算法信息熵性能更好。

表4 信息熵

4.5 敏感性分析

实验从密钥敏感性和明文敏感性两个方面进行敏感性分析,用像素变化率(NPCR,the number of pixels change rate)、平均改变强度(UACI,the unified average changing intensity)[16]这两个指标来进行测试。在密钥敏感性分析中,外部密钥Ke=0.2895,改变量为+10-10,测试原密文与新密文图像之间的NPCR和UACI,结果见表5。可以看出密钥改变前后两密文图像之间的NPCR和UACI值都很接近期望值,说明密钥的微小改变引起了密文图像的显著变化,因此算法具有很高的密钥敏感性。

表5 密钥敏感性测试

在明文敏感性分析实验中,测试了随机改变明文某一像素值前后输出的原密文与新密文图像之间的NPCR和UACI值,测试值和文献[14,15]测试值见表6。可以看出提出的算法明文敏感性测试值NPCR和UACI都非常接近期望值,且和文献[14,15]相比具有更好的敏感性,由此可知算法能够使两幅具有微小差异的图像加密后得到完全不同的密文图像,说明算法可以有效地抵抗差分攻击。

表6 明文敏感性测试

5 结论

本文提出了一种混沌和DNA运算结合的图像加密算法。通过编程进行了实验,实验证明该算法能有效地对灰度图像进行加密处理。通过性能分析实验数据表明,提出的算法在密钥空间、密文统计特性、相关性、信息熵和敏感性等方面均有不错的表现,说明算法能够有效地抵抗穷举攻击、统计分析攻击和差分攻击。因此算法可以应用在图像数据的保密通信中,具有广阔的应用前景。未来的工作可以探究算法的硬件实现,通过FPGA(Field Programmable Gate Array)的并行计算,实现算法的硬件加速。

猜你喜欢
明文密文加密算法
一种支持动态更新的可排名密文搜索方案
加密文档排序中保序加密算法的最优化选取
嵌入式异构物联网密文数据动态捕获方法
一种新的密文策略的属性基加密方案研究
一种抗攻击的网络加密算法研究
奇怪的处罚
教育云平台的敏感信息保护技术研究
一种改进的加密算法在空调群控系统中的研究与实现
奇怪的处罚