史旭宁
(铜川职业技术学院,继续教育学院, 陕西,铜川 727031)
随着现代密码学的快速发展,混沌系统凭借其在初值敏感性、密钥空间、伪随机性和非周期性等方面的优势逐渐得到了广泛的应用,混沌密码学就此应运而生[1]。以混沌系统创建的序列为流密码进行介质加密的流程相对较易实现[2],尤其在包含海量数据内容的数字图像加密方面其高效性能够得以显著体现[3]。以往的加密机制中,由于忽略了图像纹理特征因素,不同纹理的图像拥有相同的加密密钥,这在很大程度上降低了影像的安全性[4]。此外,多混沌系统与超混沌系统的应用加大了混沌算法的复杂程度[5]。为了解决这些问题,本文提出并设计一种图像混沌加解密机制,引入图像的纹理特征因素,通过设定的阈值实现平滑块和复杂块的自适应分块,并按照类别进行反馈加密,使图像的安全性和加密过程的高效性同时获得了保证。
将图像分割为若干个正方形影像块,对其像素值进行排序并获取最大值与最小值,然后根据最大像素差来确定是否需要进一步分割影像块,判断条件[6]为
Pmax-Pmin>(2d-1)×γ
(1)
式中,Pmax、Pmin分别代表最大像素值和最小像素值,d代表像素位深度,γ代表阈值。
如果像素块满足式(1)即可将其定义为类型1影像块,其表达式为
(2)
影像块的方差由式(3)计算:
(3)
式中,S代表影像块方差,n代表影像块包含的像素数量,Xi代表像素单元的像素值,X代表Xi的平均值。
类型2影像块的判定条件为
(4)
式中,T代表方差阈值。
通过式(5)对2个类型的影像块进行分类条件判定:
(5)
若type=0,判定影像块为平滑纹理块;若type=1,则判定影像块为复杂纹理块。
对于某些特殊图像来讲:纹理相对平滑的部分基本分布在其背景区域内,这部分影像的像素值为0左右,因而明文反馈加密无法发挥作用,必须使用密文反馈加密[7];而纹理相对复杂的部分基本分布在图像的前景区域内,存在明显的像素值差异,因此可以使用明文反馈进行加密[8]。同时,基于异或操作完成加密可使加密过程具有良好的可逆性和高效性[9]。
平滑影像块的密文反馈加密方式为
(6)
复杂影像块的明文反馈加密方式为
(7)
式中,block(i)代表影像块的初始像素值,E_block(i)代表加密像素值,seq1与seq2代表混沌系统创建的2组序列,由于其取值范围均为[0,1],所以必须通过式(8)进行相应的调整[10]:
seq(i)=mod(round(seq(i)×106),256)
(8)
平滑影像块与复杂影像块的解密方式分别为
(9)
(10)
本文设计的混沌算法流程如图1所示。
1) 将原始图像分割为多个8×8(256色影像)的影像块,通过式(2)~式(5)划分影像块纹理类型。
2) 利用混沌系统创建2组与图像长度相同的序列。
3) 通过式(6)对平滑纹理影像块进行密文反馈加密,通过式(7)对复杂纹理影像块进行明文反馈加密。
4) 基于加密的影像块重构加密图像。
5) 通过式(9)和式(10)分别进行平滑纹理影像块和复杂纹理影像块的解密。
图1 新机制下的混沌算法流程
采用4张具有不同纹理特征的图像(压缩后)作为测试对象,尺寸:1 024×1 024,格式:jpg。为了对比不同尺寸与格式影像的加密速度,将测试用图像大小调整为256×256,并将其保存为bmp格式。测试用计算机硬件配置为Intel CoreTMi5-6500 CPU、16 GB内存、1 T容量硬盘,Windows 10专业版操作系统中安装MATLAB 7.0软件。混沌系统创建的2组序列值分别为seq1=0.938、seq2=0.700 6,γ=0.04,控制参数a=1、b=3,方差阈值T=5。
以本文所设计机制分别对4张图像进行加密后获得的加密图像如图2所示。由图2看出,图像很好地进行了加密。
在密码学领域通常以密钥空间的大小和密钥初始敏感性的强弱判断密钥的安全性。本文所设计机制算法的加密密钥中包含影像块尺寸size、阈值γ、2组混沌序列的初始值seq、控制参数a和b以及影像块像素方差T共7个参数。每个参数占4 B空间,则加密密钥的空间大小为2224。从计算角度上看,使用穷举法进行攻击不存在成功的可能性。解密密钥相对于加密密钥加入了影像块类型因素,若影像块分割尺寸为8×8,那么分割尺寸为512×512的影像块类型占4 096 bit空间,其解密密钥的空间大小为24320。
通过本文机制所获取密钥的初始敏感性可通过改变混沌序列值进行验证。将seq1由0.938更改为0.938 000 4、将seq2由0.700 6更改为0.700 600 1,则密钥由初始值key变为keyi。在上述条件下进行密钥敏感性测试,结果如图3所示。
由图3可见,尽管密钥参数只是发生了微小的变化,加密图像也会发生十分明显的改变,同时解密操作也是无效的。
被加密图像的信息熵理想值为8,实际信息熵值与8的差值能够表征算法抗统计攻击能力的强弱,差值越小,能力越强。基于本文机制加密的不同图像的信息熵与其他算法(文献[5]、文献[6])加密影像的信息熵对比结果如图4所示。
(a) 加密图像
图4 加密图像信息熵对比
由图4 中的数据可见,通过本文机制进行加密的图像信息熵的值多数达到7.999以上,具备很强的抗统计攻击能力。
此外,另一个算法抗统计攻击能力验证指标就是已加密影像相邻像素的关联性,其量化表达式为
(11)
表1 相邻像素关联性测试结果
由表1可见:使用明文加密的图像,其相邻像素十分相似;而基于本文机制加密的图像,相邻像素关系值均与理想值0十分接近。
通常以密文相对于明文的敏感性来验证算法的抗差分攻击能力。本次研究以UACI(像素值平均变化强度)作为验证指标,其表达式为
(12)
式中,M、N分别代表影像大小,E1(i,j)、E2(i,j)分别代表仅存在一个不同像素条件下获得的加密影像。
根据已有的研究成果,UACI的最佳取值为33.463 5%,将测试用图像进行50次像素改动,每次只改变1个不同部位的像素点,获取50张图像并使其与原始影像分别组合,计算每个组合的UACI值。测试结果如图5所示。
图5 像素改变测试UACI计算结果
由图5可见,UACI值以理想值为中心进行上下波动,因此可以认定本机制的抗差分攻击能力很强。
基于本机制算法的加解密耗时与其他2种算法的耗时情况对比如表2所示。
由表2可见,通过本文算法进行影像加解密的耗时明显比其他2种算法短,尤其是在影像大小为512×512和1 024×1 024的条件下,本文算法的影像加解密速度几乎是其他2种算法的2倍,其原因在于本文算法引入了影像纹理特征因素,基于明密文反馈加解密大幅提升了影像加解密的效率。
表2 不同算法耗时对比
以上测试结果充分体现了本文算法所具备的两个明显的优势:一是将分割出来的影像块划分为平滑纹理与复杂纹理2个类型,分别通过不同的加密方法进行加密,实现了“一次一密”的高标准安全性要求;二是通过混沌系统所创建的序列进行明密文加密,影像的安全性得到了进一步保障。
本文设计了一种新的特殊图像混沌加密机制,将影像纹理特征引入算法中,依据单个影像块的最大像素差与方差对其进行纹理类型划分,以不同加密方式分别对平滑纹理影像块和复杂纹理影像块进行加密,密钥基于明文图像生成,满足了“一次一密”的安全性要求。利用混沌系统创建的2组序列进行反馈加密,有效提升了影像加解密的效率。本文提出的将不同纹理特征影像区域进行分别加密的方式为特殊图像的加密提供了新的研究方向。同时,由于纹理特征分类的方式略显粗糙,所以本文的算法仍有待改进,在今后的研究中将致力于实现影像纹理特征的细化分类。