APP下载

面向云环境的彩色图像混合加密算法*

2022-01-04蔡定雯

电讯技术 2021年12期
关键词:加密算法密文直方图

陈 庄,于 溯,罗 颂,蔡定雯

(重庆理工大学 计算机科学与工程学院,重庆 400054)

0 引 言

随着云计算的飞速发展,越来越多的企业及个人倾向于将数据上传至云端存储,这使得互联网中存储的数据量以指数级增长,在如此庞大数据量的背景下,个人数据的隐私安全问题便日益凸显,对于数据保护的意识及相关措施手段已然提上议程。在手持终端设备的不断革新下,人们越发容易地去获得一张高分辨率图片,而图像文件往往蕴含着大量的个人信息,因此,如何保证在云环境下私有图像安全地在网络中传输与存储已然成为亟需解决的问题。图像文件因其本质的空间有序、相关性强及冗余度高等特点致使单一使用传统数据流的加密算法如RSA、DES与AES等难以胜任。随着研究人员不断的深入探索,一些新的图像加密算法被提出[1-5],其中以利用混沌系统自身良好的伪随机性与DNA编码对于大规模数据处理的便利性较为普遍。混沌系统因其自身轨道不可预测性及对初始数值与控制参数极为敏感等特性进而被广泛地应用于图像加密领域[6-8]。一维混沌系统运算简单,速度较快但密钥空间较小,单一地使用这种方法对图像进行加密将会造成安全性低、易破解等缺陷。DNA编码技术常与混沌系统进行组合对明文图像进一步处理,研究表明其在图像加密领域具有良好应用前景[9-11]。然而,许多使用DNA编码技术的图像加密算法固定了编码规则,对于仅有的8种编码规则,对其在加密系统中进行应用极容易被逐一遍历,往往造成编码结果中某种元素出现的频率较高,在对抗统计学分析及穷举等手段时不具备较为良好的效果。近年来,有部分学者尝试在编码中融合一些机制来改善传统DNA编码选用固定规则所带来的影响。Aditya等人[12]在其提出的加密流程中添加了额外的混沌映射用于随机选择DNA编码规则,有效地避免了多次单一编码规则多次用来加密不同图像的影响。类似地,Zheng等人[13]通过使用一种改进的二维Logistic混沌系统,通过相应的映射使其产生的序列能够覆盖8种编码规则进而实现由算法本身去选择编码规则。文献[14]引用了一种DNA循环运算的混淆矩阵生成方法,通过向其定义的函数传入核酸基底与迭代参数,从而循环产生DNA混淆矩阵,其控制参数由SHA-512算法生成。Zhu等人[15]根据混沌序列,在8种编码规则中通过运算使得在不同位置的像素采用不同的DNA编码规则,其效果表现良好。

上述所介绍的图像加密方法归根结底属于单一的对称加密,即加密与解密使用共同的密钥,这将导致其在某种环境下处于相对安全的状态;密钥通常由密钥管理中心统一管理,安全性依赖于运营商,当密钥管理中心出现安全隐患,极有可能造成所有用户的密钥外泄,当涉及到端到端之间的共享时则会出现密钥配送问题;且目前在DNA编码规则的选取上较多地使用混沌系统及哈希算法等随机进行选择,其本质上仍使用某一种编码规则。为此,本文提出了一种在编码过程中应用多种规则,依据相邻间像素差异进行跳变选择的自适应DNA编码方法,通过自适应编码DNA编码使得传统编码后原酸分布较为集中的问题得以改善;利用国产加密算法SM3控制Lorenz系统的初始值,使用非对称加密算法SM2对初始密钥进行二次加密并生成密文QR码;后引用了盲水印技术将密文QR码镶嵌至密文图像中,在保证图像加密效果的前提下解决了端到端传输间密钥配送的问题。

1 准备工作

1.1 混沌系统

混沌运动是一种确定性非线性系统特有的复杂运动形态,同时也是一种不稳定的有限定常运动,但并非是一味地静止、周期运动或准周期运动而是一种始终局限与有限区域、轨道永不重复且形态复杂的运动。本文将使用三维Lorenz映射用于图像像素置乱。

Lorenz较常见的一维混沌系统具有更复杂的运算方式,同时每次迭代将产生三组数值,且其初始参数多可合并共同视为密钥,极大地扩张了密钥空间[11]。

1.2 DNA计算

1.2.1 DNA编码

常用的DNA序列是使用一串字母来表示真实的或者假设的携带基因信息的DNA分子的一级结构,分别由腺嘌呤(Adenine)、胞嘧啶(Cytosine)、鸟嘌呤(Guanine)与胸腺嘧啶(Thymine)组成,记为A、C、G与T。

在二进制数中使用每相邻两位来表示一种碱基,则可以得到4的阶乘项24种编码方式,Watson-Crick有关DNA双螺旋结构的理论中限定了碱基互补配对原则[16],即A与C互补,G与T互补,因此有效的编码方案仅其中8种,如表1所示。

表1 DNA编码

鉴于传统的编码方式较易导致某种编码元素出现的频率过高,本文将常用的DNA编码表划分为两个相互独立的子表A与子表B,如表2与表3所示,供文本文所提出的自适应DNA编码与解码使用。

表2 DNA编码子表A

表3 DNA编码子表B

1.2.2 自适应DNA编码

灰度图像的像素值范围在0~255之间,常规的DNA编码是将某点像素值转为八位二进制从而对每两位二进制按照事先选择好的编码规则进行编码,由图1可以看出灰度值为“208”选择编码种类别“1”的编码表经编码后的结果为“T,G,A,A”。

图1 选定规则DNA编码

表4中对灰度Lena图进行DNA编码后的元素进行了统计,通过表中展现的数据可以发现“T”与“C”的数量比例较大,“A”的数量占比较小,仅有17.78%。

表4 Lena图DNA编码统计

因此,为了改善传统的DNA编码方式在编码后的元素分布情况上比例较不均匀的缺陷,本文通过公式(2)对像素点进行自适应编码规则选取,其定义如下:

(2)

式中:s为A或B码表(根据加密算法中子流程进行选定)中的编码规则序号,mod为取模运算;将转换为二进制的像素点每相邻两位进行分组记为Pi,i∈(1,H×W×4],H、W为原始矩阵大小,对于首轮迭代,可传入初始s∈[1,4],在本文中设置s=1,后续的s将在计算中动态变化。由此可动态选择当前相邻两位二进制数的编码规则,依据编码表即可得到编码后的元素。图2给出了利用A码表进行自适应编码的过程。

图2 自适应DNA编码过程

对进行自适应DNA编码后的元素进行统计,如表5所示,经编码后的元素均衡,且所占比例均为25%左右。

表5 Lena图自适应DNA编码统计

1.2.3 DNA异或运算

因DNA编码技术在各学科领域不断被应用,其有关运算法则相继被提出,其中以DNA异或运算使用较为广泛。本文中应用了DNA异或对编码后的像素矩阵进行处理,DNA异或运算法则见表6[1]。

表6 DNA异或

1.3 盲水印技术

数字水印技术的概念由Schyndel等人[17]提出,随着研究人员的不断探索与尝试,其在版权保护等方面的应用展现了较好的效果。文献[18]中利用了离散小波变换与奇异值分解等方法对图像嵌入水印,由于其嵌入的水印为有效的明文信息,故在保护水印内容的过程中使用了Arnold变换对水印进行加密,但因Arnold属于周期性变换即在经过某次变换后将得到原始图像,其安全性欠佳。在本文所提算法中QR码存储的是经过二次加密后的密文,其安全性由SM2非对称加密算法保证,因此不需要对水印进行多层级Arnold变化,降低了运算复杂度的同时也保证了密钥的安全,其简化后的算法如图3所示。

图3 水印嵌入算法

1.4 国产加密算法

为了加强和规范密码的应用和信息安全管理,促进密码与信息事业的发展与保障网络与空间的信息安全,我国推出了一系列自主研发的商用密码算法,本文将引用SM2与SM3算法作为非对称加密算法与散列值的产生。

1.4.1 SM2椭圆曲线公钥密码算法

SM2是国家密码管理局发布的椭圆曲线公钥密码算法,在我国商用公钥密码技术标准体系中已经被用来直接替代了RSA密码算法,相比于RSA算法其耗时更低且内存和资源占用较小。本文中SM2算法用于对图像加密的初始密钥进行二次加密,其示意图如图4所示。

图4 SM2算法应用图

1.4.2 SM3密码杂凑算法

SM3密码杂凑算法在随机数生成与数字签名与验证有极为广泛的应用,安全性及生成效率与国际标准SHA-256相当,其输出值为256 b的杂凑值,在本文所提算法中将原始图片R、G、B通道分离分别产生三组散列值,各自分为32组子序列后经公式(3)与初始值结合生成Lorenz控制参数。

(3)

2 加密算法

本文所提出的加密算法主要应用Lorenz混沌系统与自适应DNA编码及其异或运算法则对原图像中像素进行置换通过得到密文图像,整体加密框架如图5所示。

图5 加密流程图

加密流程如下:

(1) 读取明文图像I,取H、W、C分别为原始图像的高、宽与通道数;将其分解为R、G、B三通道,分别由SM3算法生成相应的散列值序列,记为Rhash、Ghash与Bhash;然后利用式(3)生成Lorenz系统的控制参数x0、y0与z0,通过迭代产生三组混沌序列CR、CG、CB。

(2) 将原始图片I的三通道转化尺寸为H×W×8二进制数组,同时将Rhash、Ghash与Bhash三组散列值序列每8 b分块循环迭代H×W次形成混淆矩阵MR、MG、MB后分别使用表2所提供的子码表A进行自适应DNA编码,令其编码后的矩阵分别记为Rdna、Gdna、Bdna与MRdna、MGdna、MBdna。

(3) 使用1.2.3中所引用的DNA异或算法对编码后的原始图像与混淆矩阵进行运算,其结果利用表3中所提供的子码表B进行自适应解码产生矩阵Rxor、Gxor、Bxor。

(4) 利用Lorenz所产生的三组混沌序列对Rxor、Gxor、Bxor进行三轮比特位异或运算,将结果矩阵合并为三维数组,即得到加密后的密文图像。

(5) 公私钥由SM2算法产生,对本文中的Lorenz系统控制参数与自适应DNA编码的轨迹使用公钥进行加密,其密文为256 b字符串,通过QR码算法生成搭载加密信息的QR码后使用1.3中提及到的水印嵌入算法将其嵌入至密文图像中,即得到最终的加密图像。

解密算法为加密算法的逆运算,此处将不再赘述。

3 实验结果

本文所提出的加密算法在CPU为Intel Core I7、RAM为8 GB的硬件环境下使用Matlab R2019a在Mac OS平台进行仿真实验,测试图像来源于USC-SIPI数据集中大小为512×512的6组图片,QR码大小选取128×128;加密时初始参数x0、y0、z0分别为10.000 223 05、6.125 699 00、20.114 541 80。加密前后情况的对比如图6所示。

图6 图像加密与还原测试

图7展示了对密钥进行SM2非对称加密后所生成的密文QR码及其嵌入与提取情况。

图7 密钥QR码嵌入流程

4 安全性分析

对所提出加密算法进行安全性分析,主要包括穷举攻击分析、统计学攻击分析、差分攻击分析、抗剪裁攻击分析等部分。

4.1 密钥穷举攻击分析

4.1.1 密钥空间分析

在本文中,加密所使用的密钥包括Lorenz映射中的x0、y0、z0与自适应DNA编码中的跳变轨迹,自适应DNA编码根据原始图像的像素自动进行跳变编码,单一像素在编码后会产生4位DNA元素,则每两位二进制其可能的编码结果有4种。在计算精度为10-16的条件下,输入原始明文图像大小为512×512,可以计算出此时密钥空间为1016×1016×1016×107≈1055,由此可见该算法具有足够大的密钥空间且密钥会随着图像的增加而扩大,对密码分析者进行的穷举攻击有很好的抵抗性。

4.1.2 密钥灵敏度分析

为了测试该加密算法对密钥轻微变化的敏感性,现用不同的初始参数对原始Female图像进行加密与解密,对于两种密钥锁解密出的图像如图8所示。

图8 密钥敏感性测试

在图8中(a)为Female加密图像,(b)为使用正确密钥x0=10.000 223 05、y0=6.125 699 00、z0=20.114 541 80进行解密后的图像,(c)为使用错误密钥用x0=10.000 541 79所解密的图像。由图可知,仅将密钥进行微小的改变则解密出的图像仍与加密图像类似,无法区分图像的内容。由此可见该加密算法对于密钥的改变具有很强的敏感性,可以较好地抵御密码分析者穷举密钥来破解加密算法。

4.2 统计学攻击分析

4.2.1 图像灰度直方图分析

图像直方图代表了图像中各像素分布的密布,一个优良的加密算法应使得密文图像有用较为平滑、均衡的像素分布从而能够更好地抵御统计分析攻击。在图9中(a)、(b)、(c)为明文Lena图像的R、G、B三个通道的像素统计直方图,(d)、(e)、(f)对应加密后的密文图像三个通道的像素直方图。

图9 加密前后图像灰度直方图

从图9中可以看出三幅图片的直方图对比情况,原始图像的直方图分布情况较为集中,使用本文方法对图片进行加密后的直方图分布较为均匀,整体呈平滑趋势;密码攻击者很难从直方图中获取有效信息,从而进一步提升了图像的安全性。

4.2.2 信息熵分析

图像的信息熵用来表示一幅图像包含的信息数量,也可以用来度量图像灰度值的分布。若图像包含L种灰度值mi(i=0,1,…,L-1),其中各灰度值出现的概率定义为p(mi)(i=0,1,…,L-1),则根据Shannon定理可得图像的信息量为

(4)

式中:H为图像的信息熵。当图像中各灰度值出现的概率相同时,使得图像的信息熵达到最大,对于一幅理想的随机图像,其信息熵等于8。表8给出了使用本文方法加密后得到的密图信息熵及原始图像信息熵的对比情况。

表8 信息熵对比

从表8中可以看出,对于原始Lena图像其三个分量的信息熵大小都未接近8,使用本文加密方法后的Lena图像其三个分量的信息熵已经非常接近理想值,故加密后的密文图像拥有更好的随机性,使得加密后的图像信息更为混乱、无序,从而达到良好的加密效果。

4.2.3 相关性分析

对于一幅原始的图像,水平、垂直与对角间的像素都存在着很强的相关性,对于图像的加密其目的则是破坏像素之间的这种强相关性,致使原始图像变为一种类似于噪声的且相关性极弱或几乎没有相关性的图像。为了测试本文中所使用的加密算法对原始图像各像素之间相关性的置乱性能,首先从原始图像与加密后的密文图像中分别随机抽取1 000~3 000对像素,然后由公式(5)分别计算原始图像与密文图像的水平、垂直与对角像素的相关性。

(5)

式中:x、y表示相邻的两个像素点,cov(x,y)代表协方差,D(x)、E(x)分别表示方差与均值。

表9给出了图像加密前后的水平、垂直、对角像素相关性数值,可以看出加密前的图像其各方位的像素相关性数值较大,数值接近于1。对于良好的图像加密算法其所生成的加密图像各方为像素相关性数值都应趋近于0使得密文图像不能被肉眼所识别出原始图像的信息,在引入自适应DNA编码及运算技术之后,各方位相邻像素相关性较文献[1]中有所降低,个别角度比文献[19]与文献[11]效果较好,因此使用本文方法能够很好地降低密文图像各方位像素的相关性。

表9 原始图像与加密图像中相邻像素相关性对比

图10~12给出了原始图像与加密后图像各通道三个方位像素的相关性分布情况,可以看出无论是在水平、垂直还是对角方位,原始图像的像素相关性分布均呈线性分布。这表明原始图像在其三个方位上的像素都具有较强的相关性,容易从图像与数据中找到原始图像相邻像素之间的关系。由各图中(d)、(e)、(f)子图可以看出,加密后的图像在其各个方位上的像素相关性分布较为均匀,据此可得出密文图像相邻像素的相关性较弱,因此使用本文加密方法能够有效抵御像素相关性统计攻击。

图10 加密图像水平像素相关性

图11 加密图像垂直像素相关性

图12 加密图像对角像素相关性

4.3 差分攻击分析

差分攻击是通过比较明文与加密后所生成的密文的变化来对加密算法进行攻击,在图像加密中,攻击者通常会对原始图像作细微改动,然后使用攻击目标算法对原始图像与改动后的图像进行加密,进而分析两张不同图像加密后的差别,寻找原始图像与加密图像之间的关联。使用差分攻击手段的攻击者一般会对原始图像仅修改一个像素,观察其加密后的变化,若微小的改变就足以使加密图像在扩散和混乱效应中引起严重的改变,则差分攻击的效率将会极大降低,几乎等同于无效。为了测试本文使用的加密方法中一个像素改变所引起的效应,引入像素改变率(Number of Pixels Change Rate,NPCR)与一致平均改变强度(Unified Average Changing Intensity,UACI)两种衡量方法,其定义见公式(6)~(8):

(6)

(7)

(8)

式(6)~(8)中:C1、C2表示明文改变前后相对应的密文像素值,M与N代表C1与C2两幅图片的宽度和高度。

表10分别给出了文献[1]与文献[19]以及本文所提算法加密后图像三个分量的NPCR及UACI数值。由NPCR的定义可知,其数值越大表示加密算法的安全性能越好,表10中数据显示本文使用的加密算法在各分量上的NPCR值较两参考文献更为接近于100%,表明该方案对于明文图像的敏感性较高,且UACI值也较更接近于理想值33%,由此证明该方法可以抵御攻击者进行差分攻击的能力较强。

表10 NPCR与UACI

4.4 抗剪裁攻击分析

图像文件在网络的传输中很容易受到各种因素导致图像内部像素丢失,造成图像数据的不完整。为了测试本文加密方法对于抗数据丢失性能,选择加密后的密文Lena图像在不同位置的剪裁后再进行解密。图13展示了加密后Lena图像在丢失部分数据后的水印提取图像及还原图像,可以看出即使密文图像经过剪裁过后丢失部分像素,在解密算法中也能够很好地还原出图像原始的信息,且提取出的QR水印仍可正确识别,故该算法能较好地抵御在网络环境传输中不稳定因素导致的图像中的像素丢失。

图13 抗剪裁测试

5 结束语

本文提出了一种利用国产密码算法与自适应DNA编码相结合的混合彩色图像加密方案,采用国密SM2与SM3算法使得传统的图像加密算法密钥配送问题得到了解决,通过改进DNA编码技术使得原有DNA编码各元素出现频率较为集中等现象得到改善。通过DNA异或算法进一步对原始图像进行混淆以提高安全性能,最后利用不同的编码表对其进行解码即得到密文图像。实验结果与安全性分析可以看出该加密算法效果较好,安全性能较高,对于密钥的改变极为敏感且密钥空间较大。经加密后的密文图像直方图较为均匀,可以更好地隐藏原始图像内的信息,且水平、垂直、对角三方位的相邻像素间关联性较低,具有良好的抵御穷举攻击、统计攻击、差分攻击的性能;但随着图像尺寸及像素分辨率的增高,算法运算复杂度会相对增加。本文未来的主要工作将围绕优化算法时空间复杂度、增强工作效率展开。

猜你喜欢

加密算法密文直方图
符合差分隐私的流数据统计直方图发布
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
用直方图控制画面影调
中考频数分布直方图题型展示
一种基于密文分析的密码识别技术*
HES:一种更小公钥的同态加密算法
基于空间变换和直方图均衡的彩色图像增强方法
基于小波变换和混沌映射的图像加密算法
云存储中支持词频和用户喜好的密文模糊检索