CN109903212B - 一种基于H几何分形和Hilbert曲线的图像加密方法 - Google Patents
一种基于H几何分形和Hilbert曲线的图像加密方法 Download PDFInfo
- Publication number
- CN109903212B CN109903212B CN201910080254.1A CN201910080254A CN109903212B CN 109903212 B CN109903212 B CN 109903212B CN 201910080254 A CN201910080254 A CN 201910080254A CN 109903212 B CN109903212 B CN 109903212B
- Authority
- CN
- China
- Prior art keywords
- image
- curve
- fractal
- hilbert
- square
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Image Processing (AREA)
Abstract
本发明提出了一种基于H几何分形和Hilbert曲线的图像加密方法,其步骤为:使用SHA‑3算法计算原始灰度图像的哈希值作为混沌系统的初值,采用混沌系统生成的序列对图像像素进行按位比特异或扩散;交替使用二阶H分形进行扩散操作和二维Hilbert扫描曲线置乱操作,得到加密图像。本发明采用Hilbert曲线扫描置乱和H几何分形扩散,结合混沌系统、DNA编码、Hilbert扫描曲线和H分形实现两轮像素位置的置乱和像素值的扩散;实验结果及安全性分析表明,本发明不仅有足够大的密钥空间抵抗穷举攻击,而且能够抵抗统计攻击、差分攻击、数据丢失攻击和噪声攻击,广泛适用于图像信息的安全传输。
Description
技术领域
本发明涉及图像加密的技术领域,尤其涉及一种基于H几何分形和Hilbert曲线的图像加密方法。
背景技术
随着互联网技术和多媒体技术的迅猛发展,如图像、视频、音频等信息的安全传输问题越来越受到人们的关注。传统的加密算法如RSA和DES等,由于加密速度和密钥空间以及相邻像素相关性高、数据量大、冗余度高等原因,存在一定的不足,因此探索新的加密方法势在必行。混沌系统作为一种复杂的非线性动力学系统,具有对初始参数和初始值极度敏感性、伪随机性等特点,这与密码学的特性相吻合,因此被广泛应用于图像信息的加密。2004年,Chen等人提出了基于三维猫映射的对称图像加密方案。该方案使用三维猫映射来置乱图像像素的位置和像素值,然后使用另外一个混沌系统来混淆明文图像和密文图像的关系,从而显著地提高了算法抵抗统计攻击和差分攻击的能力。2005年,Guan等人提出了基于混沌系统的图像加密算法,该算法首先使用Arnold猫混沌映射在空间域上置乱图像的像素位置,然后使用Chen混沌产生对离散混沌信号进行预处理用于下一步的灰度图像加密。2007年,Sun等人提出了高维混沌系统的图像加密算法,该算法首先采用猫混沌映射置乱图像的像素位置,然后使用高维的Lorenz混沌系统进一步置乱明文图像和密文图像的关系。2011年,Awad提出一个新的基于混沌系统的密码系统用于图像的安全传输,该系统首先使用一个二维的混沌系统置乱图像的像素位置,然后使用分段线性混沌映射进行多轮的置换和扩散。实验结果及安全性分析表明,该系统可以进行安全有效的实时图像加密。
DNA作为生物的遗传物质,包含大量的遗传信息。DNA分子具有超大规模并行性、超低的能量消耗和超高的存储密度等优点。近年来,为了克服单一的DNA编码和单独的混沌系统用作图像加密,出现了一系列结合混沌系统和DNA编码用于图像加密的算法。2012年,Lin等人提出了一种结合分形图像和二进制编码的图像加密算法,该算法首先利用分形图像加法加入一些分形图像,然后转化图像形成图像混合矩阵;再将图像混合矩阵的所有像素值转换为二进制数;最后,将二进制数编码到主图像中得到显式图像。2013年,Zhang等人提出了一种基于DNA编码和混沌映射相结合的图像加密方法,该方法利用Logistic映射产生的混沌序列对DNA编码后的图像像素进行置乱,然后对DNA序列矩阵行进行DNA加法运算,最后实现图像加密。2014年,Sun等人提出了一种结合Julia集和Hilbert曲线的图像加密算法,该算法利用Julia集的参数生成随机序列作为初始密钥,通过Hilbert曲线对初始密钥进行置乱得到加密密钥;通过模运算和扩散运算得到最终的加密图像。2015年,Belazi等人提出了这一种基于Rossler混沌系统构造S盒子用于图像加密的方法,通过对图像的直方图、相关性和信息熵分析,验证了所构造S盒子的有效性。2016年,Zhang等人利用Lorenz混沌系统、超混沌Chen系统和DNA编码组合,提出了一种动态选择8种DNA编码规则和8种DNA加减规则的图像加密方法,大大提高了安全性。2017年,Zhang等人提出了一种基于混沌系统与DNA序列运算的图像加密方法,该方法首先利用Keccak对给定的DNA序列计算散列值作为混沌映射的初值,产生混沌映射索引对图像进行像素位置置乱,再结合蝶形网络对比特置乱,以实现位级别置乱。通过对图像进行动态DNA编码,并与产生的散列值进行异或运算,实现像素的替代,进一步提高了加密的安全性。2018年,Cao等人设计了一种同时采用位级置换和扩散的图像加密算法,通过循环移位实现位级置换,通过异或和反向操作实现位级扩散。此外,根据获得的密文对混沌系统的初始值进行实时更新,大大提高了抵抗已知明文攻击和选择明文攻击的能力。
发明内容
针对单一的混沌系统用于图像加密会引起短周期响应、有限精度效应和实现精度与保密性的矛盾的技术问题,本发明提出一种基于H几何分形和Hilbert曲线的图像加密方法,不仅有足够大的密钥空间抵抗穷举攻击,而且能够抵抗统计攻击、差分攻击、数据丢失攻击和噪声攻击,适用于图像信息的安全传输。
为了达到上述目的,本发明的技术方案是这样实现的:一种基于H几何分形和Hilbert曲线的图像加密方法,其步骤如下:
步骤一:读取大小为M×N的灰度图像P,并把灰度图像P转换成大小为M×N的二维的图像矩阵P1;
步骤二:采用哈希函数SHA-3计算图像矩阵P1的哈希值,将哈希值转换为密钥K,对密钥K进行划分得到混沌系统的初始值;
步骤三:将混沌系统的初始值代入Rossler混沌系统,产生三个长度为M×N/3的离散数值混沌序列,取每个元素的小数点后第3位到第13位数字,并进行模256运算,将得到的序列按照每行N个元素组成M×N的序列矩阵,将序列矩阵与图像矩阵P1进行按位比特异或运算得扩散后的图像矩阵P2;
步骤四:采用二阶H几何分形对图像矩阵P2进行一次扩散操作,得到图像矩阵P3;
步骤五:利用二维Hilbert扫描曲线对图像矩阵P3进行一次置乱操作,得到图像矩阵P4;
步骤六:将步骤四使用的二阶H几何分形顺时针旋转90°得到变形的H几何分形,采用变形的H几何分形对步骤五处理后的图像矩阵P4进行一次扩散操作,得到图像矩阵P5;
步骤七:利用二维Hilbert扫描曲线对图像矩阵P5进行第二次Hilbert扫描置乱操作,得到加密图像。
所述步骤二中混沌系统的初始值的计算方法是:灰度图像P1经过哈希函数SHA-3(256)运算后,产生出一组256位的哈希值,将哈希值转换为二进制后作为密钥K,将密钥K按8个二进制划分为32个字节,表示为:k1,k2,…,k32;令序列 则混沌系统的初始值x0,y0,z0为:
其中,x0′,y0′,z0′为给定初始值。
所述混沌系统是Rossler混沌系统,Rossler混沌系统的动力学方程为:
所述步骤三中序列矩阵的计算方法为:迭代Rossler混沌系统产生3组大小为M×N/3的离散数值序列hi,按照公式Ai=[mod(1010*(hi*102-[hi]*102),256)],取小数点后第3位到第13位数字进行模256运算,将其按照每行N个元素排列成离散数值序列,产生的离散数值序列Ai组成M×N的序列矩阵。
所述二阶H几何分形的形成方法为:将一个一阶H分形的端点1和端点7的像素值进行按位比特异或运算并赋值给端点1;一阶H分形的端点3和端点9的像素值进行按位比特异或运算并赋值给端点3;一阶H分形的两个交叉点4和交叉点6的像素值转化为DNA系列后进行DNA加法运算后并转换为像素值后赋值给点交叉点4;按照上述过程依次类推遍布整个图像矩阵。
所述图像矩阵的像素值转化为8位二进制数表示,通过DNA编码将每个像素值转化为用4位DNA序列表示,DNA编码共有8组编码组合满足碱基互补配对规则如表1所示:
表1.DNA编码规则
针对表1中的第1种编码规则可以得到DNA加减运算规则如表2所示:
表2.DNA加减运算规则
所述二维Hilbert扫描曲线进行像素置换的方法为:先将图像矩阵P3分成四个小块,按照Hilbert曲线扫描路径进行操作,再将这四个小块分别分成更小的四个小块进行Hilbert曲线扫描,按照这种方式一直进行分块,直到每个小块都是2×2的像素块,并对其按照Hilbert曲线的遍历顺序进行Hilbert曲线扫描。
所述二维Hilbert扫描曲线描述为:把一个正方形等分成4个小正方形,依次从左下角的正方形中心出发往上到左上角的正方形中心,再往右到右上角的正方形中心,再往下到右下角的正方形中心,得到第一次迭代结果;将第一次迭代结果分别放入方格I的左上角和右上角区域,将第一次迭代结果顺时针旋转90°放入方格I左下角区域,将第一次迭代结果逆时针旋转90°放入方格I右下角区域,把方格I的四个区域相邻的端点相连得到第二次迭代曲线;将第二次迭代曲线分别放入方格II的左上角和右上角区域,将第二次迭代曲线顺时针旋转90°放入方格II的左下角区域,将第二次迭代曲线逆时针旋转90°放入方格II的右下角区域,把方格II的四个区域相邻的端点相连得到一条填满整个正方形的二维Hilbert曲线。
本发明的有益效果:采用Hilbert曲线扫描置乱和H几何分形扩散,结合混沌系统、DNA编码、Hilbert扫描曲线和H分形实现两轮像素位置的置乱和像素值的扩散;首先,使用SHA-3算法计算明文图像的哈希值作为混沌系统的初值,其次,采用混沌系统生成的序列对图像像素进行异或扩散;最后,交替使用Hilbert曲线和H分形进行两次置乱和扩散。实验结果及安全性分析表明,本发明不仅有足够大的密钥空间抵抗穷举攻击,而且能够抵抗统计攻击、差分攻击、数据丢失攻击和噪声攻击,广泛适用于图像信息的安全传输。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的流程图。
图2为Rossler混沌系统的混沌状态的相图,其中,(a)为x-y平面的相图,(b)为x-z平面的相图,(c)为y-z平面的相图,(d)为三维相图。
图3为二阶H几何分形的形成过程的示意图。
图4为二阶H几何分形对Lena图像的操作的示意图,其中,(a)为原始Lena图像,(b)为一次H几何分形处理后的图像,(c)为还原后的Lena图像。
图5为Hilbert曲线的示意图。
图6为一阶Hilbert曲线的8种不同的置乱方案,其中,(a)为第一种,(b)为第二种,(c)为第三种,(d)为第四种,(e)为第五种,(f)为第六种,(g)为第七种,(h)为第八种。
图7为二维Hilbert曲线的生成过程示意图,其中,(a)为Hilbert曲线的二次迭代曲线,(b)为二维Hilbert曲线。
图8为三种Hilbert扫描曲线,其中,(a)为8×8阶Hilbert曲线,(b)为16×16阶Hilbert曲线,(c)为32×32阶Hilbert曲线。
图9为一次Hilbert置乱后的示意图,其中,(a)为原始Lena图像,(b)为一次置乱后的图像,(c)为还原后的Lena图像。
图10为本发明的加密图像和解密图像。其中,(a)为原始Lena图像,(b)为Lena加密图像,(c)为Lena解密图像,(d)为原始Lena图像,(e)为Lena加密图像,(f)为Lena解密图像,(g)为原始Cameraman图像,(h)为Cameraman加密图像,(i)为Cameraman解密图像。
图11为原始图和密钥微小改变下的解密图,其中,(a)为原始Lena图像,(b)为密钥x0+10-14的解密图,(c)为密钥y0+10-14的解密图,(d)为密钥z0+10-14的解密图。
图12为原始图像和加密图像的统计直方图的对比图,其中,(a)为原始Lena图像的统计直方图,(b)为Lena加密图像的统计直方图,(c)为原始Pepper图像的统计直方图,(d)为Pepper加密图像的统计直方图,(e)为原始Cameraman图像的统计直方图,(f)为Cameraman加密图像的统计直方图。
图13为本发明原始图像和加密图像在水平、垂直、正对角和反对角方向上的相关性分布示意图,其中,(a)为原始Lena图像在水平方向上的相关性示意图,(b)为原始Lena图像在垂直方向上的相关性示意图,(c)为原始Lena图像在正对角方向上的相关性示意图,(d)为原始Lena图像在反对角方向上的相关性示意图,(e)为加密Lena图像在水平方向上的相关性示意图,(f)为加密Lena图像在垂直方向上的相关性示意图,(g)为加密Lena图像在正对角方向上的相关性示意图,(h)为加密Lena图像在反对角方向上的相关性示意图。
图14为加密图像加不同程度的噪声图像和对应的解密图,其中,(a)为噪声强度0.01的加密图像,(b)为噪声强度0.05的加密图像,(c)为噪声强度0.1的加密图像,(d)为噪声强度0.01的解密图像,(e)为噪声强度0.05的解密图像,(f)为噪声强度0.1的解密图像。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,一种基于H几何分形和Hilbert曲线的图像加密方法,其步骤如下:
步骤一:读取大小为M×N的灰度图像P,并把灰度图像P转换成大小为M×N的二维的图像矩阵P1。
将灰度图像P转换成大小相同的二维图像矩阵P1,后续通过二维矩阵进行数字化处理,即是对灰度图像的处理,方面后续的数字化处理,计算简单。
步骤二:采用哈希函数SHA-3计算图像矩阵P1的哈希值,将哈希值转换为密钥K,对密钥K进行划分得到混沌系统的初始值。
第三代安全散列算法SHA-3是哈希函数的一种,它能够将任意长度字符信息转换为相同长度的哈希值。由哈希值产生的密钥,即使原灰度图像有1比特的不同,由SHA-3算法产生的哈希值都将完全不同,对应着不同的加密密钥。将原灰度图像的信息与哈希函数相结合,能有效抵抗穷举攻击,可广泛用于图像信息加密。
原始灰度图像经过哈希函数SHA-3(256)运算后,产生出一组256位的哈希值。将哈希值转换为二进制后作为密钥K,用于产生Rossler混沌系统的初始值,这样生成的初始值具有随机性和周期性等优势。将密钥K按8个二进制即一个字节划分,可以划分为32个字节,表示为:k1,k2,…,k32。令序列 则混沌系统的初始值x0,y0,z0计算如公式(1)所示:
其中,x0′,y0′,z0′为给定初始值。
步骤三:将混沌系统的初始值代入Rossler混沌系统,产生三个长度为M×N/3的离散数值混沌序列,取每个元素的小数点后第3位到第13位数字,并进行模256运算,将得到的序列按照每行N个元素组成M×N的序列矩阵,将序列矩阵与图像矩阵P1进行按位比特异或运算得扩散后的图像矩阵P2。
混沌系统是一种非线性的动力学系统,具有运动轨迹的不可预测性,对控制参数和初始值敏感性,运动轨迹有界等特点,这些特点恰好与密码学的研究相符合,因此广泛用于图像信息加密。Rossler混沌系统的方程描述如公式(2)所示:
其中,x、y、z为状态变量,y和分别为状态变量x、y和z的导数,a、b、c为控制参数,当a=b=0.2,c=5.7时,Rossler混沌系统处于混沌状态,如图2(d)所示,其x-y、x-z、y-z三个平面的相图分别如图2(a)、(b)、(c)所示。
迭代Rossler混沌系统产生3组大小为M×N/3的离散数值序列hi(i=1,2,3),按照公式(3)取小数点后第3位到第13位数字进行模256运算,将其按列排列成离散数值序列,产生的离散数值序列Ai(i=1,2,3)与图像矩阵P1进行按位比特异或运算得扩散后的图像矩阵P2。
Ai=[mod(1010*(hi*102-[hi]*102),256)] (3)
步骤四:采用二阶H几何分形对图像矩阵P2进行一次扩散操作,得到图像矩阵P3。
分形最初由Mandelbrot定义为一种集合,随后,英国数学家K.Falconer于1990年在其出版的Fractal Geometry Mathematical Foundations一书中,对分形做了具体的定义,以及计算方法。此后,分形在数学和物理学中得到了广泛的应用,分形几何具体特征表现为:
(1)分形几何具有自相似性,即分形的整体与局部具有相似性;
(2)分形几何具有复杂结构,即在分形几何内部的非逃逸点,分布集中并且呈现出复杂结构;
(3)分形几何通常可以通过简单的迭代方法构成。
在分形几何中,H几何分形是一种由垂直线段构成的分形树结构,每个线段都小于下一个较大的相邻线段根号2倍。之所以如此,是因为它的重复模式类似于字母“H”。它的Hausdorff维数为2,并且任意地接近矩形中的每个点。主要应用包括大规模集成电路设计和微波工程。
二阶H几何分形的形成过程如图3所示。对于一个一阶H分形来说,把端点1和7的像素值进行按位比特异或运算并赋值给端点1;端点3和端点9的像素值进行按位比特异或运算并赋值给端点3;两个交叉点4和交叉点6的像素值进行DNA加法运算并赋值给点交叉点4,按照图3所示依次类推遍布整个图像。图4(b)是Lena图像按照上述H几何分形操作后得到的图像,图4(c)是扩散后的图像经过H几何分形逆向操作还原得到的图像。由图4可见,H几何分形扩散将原始Lena图像发生了明显的改变,而且该扩散过程是可逆的,但是仍然能够看出原始图像的某些特征。因此,本发明交替使用两次H几何分形用于图像的扩散操作来增强加密系统的扩散能力。
DNA由四种脱氧核苷酸组成,分别是:腺嘌呤(A)、胞嘧啶(C)、鸟嘌呤(G)和胸腺嘧啶(T)。对于两个单链DNA分子,可以通过核苷酸之间的氢键形成一个稳定的DNA分子结构。碱基的化学结构确定了碱基互补配对的原则,也称为Watson-Crick碱基互补配对原则,即A和T之间通过两个氢键配对,G和C之间通过三个氢键配对。因此,运用碱基的排列组合可以进行信息的存储和计算。如果按照A→11,C→10,G→01,T→00进行对应编码,则互补数字配对及与碱基对的互补配对及吻合。这样共有8组编码组合满足碱基互补配对规则如表1所示。灰度图像的像素值在0到255之间,因此即可用8位二进制数表示,也可用4位DNA编码表示。
表1.DNA编码规则
针对表1中的第一种编码规则可以得到DNA加减运算规则如表2所示。
表2.DNA加减运算规则
步骤五:利用二维Hilbert扫描曲线对图像矩阵P3进行一次置乱操作,得到图像矩阵P4。
Hilbert曲线是一种FASS曲线,即充满空间(space-filing)、非自交(self-avoiding)、自相似(self-similar)、简单(simple)曲线。这类曲线位于维数大于1的欧式空间中,并且在该空间内有一个非空的内部。意大利数学家Peano和德国数学家Hilbert分别于1890年和1891年给出了填满一个单位正方形的FASS曲线,这类曲线都给出了利用一条连续曲线遍历正方形的方法。这就是所谓的Hilbert曲线,Hilbert曲线是一种扫描曲线如图5所示。
二维Hilbert曲线可以描述为:把一个正方形等分成4个小正方形,依次从左下角的正方形中心出发往上到左上角的正方形中心,再往右到右上角的正方形中心,再往下到右下角的正方形中心,这就完成了第一次的迭代,其结果如图6(b)所示。Hilbert曲线的起始点和终点的位置决定了它的走向,在图像中也就决定了它遍历空间像素点的顺序,因此根据Hilbert曲线起始点和终点位置的选取组合,对于一阶的Hilbert曲线可以产生8中不同的置乱方案,分别如图6所示。
将上面第一次迭代的结果图6(b)分别放入下图2×2方格的左上角和右上角区域,将图6(b)顺时针旋转90°(如图6(e)所示)放入左下角区域,将图6(b)逆时针旋转90°(如图6(h)所示)放入右下角区域,把它们相邻的端点相连即可得到第二次迭代曲线如图7(a)所示。重复上述操作,可以得到一条填满整个正方形的二维Hilbert曲线,如图7(b)所示。
将Hilbert扫描曲线应用于像素置换:先将图像矩阵P3分成四个小块,按照Hilbert曲线扫描路径进行操作,再将这四个小块分别分成更小的四个小块进行Hilbert曲线扫描,按照这种方式一直进行分块,直到每个小块都是2×2的像素块,并对其进行Hilbert曲线扫描,也就是说按照Hilbert曲线的遍历顺序,将图像矩阵P3的像素值一次存入另外一个图像矩阵P4中,最后得到的新图像矩阵P4就是经过Hilbert曲线遍历后的像素矩阵。
图8中列举了三种Hilbert扫描曲线,其中,图8(a)为8×8阶Hilbert扫描曲线,图8(b)为16×16阶Hilbert扫描曲线,图8(c)为32×32阶Hilbert扫描曲线。如图9(a)所示的原始Lena图像经过256×256阶Hilbert扫描曲线扫描后的Lena图像如图9(b)所示,通过观察可以发现已经完全失去原始图像的特征,达到对明文图像进行置乱的目的。经过置乱后的Lena图像经过Hilbert曲线逆向操作可以恢复成原始图像,如图9(c)所示。由图9可见,利用Hilbert扫描曲线扫描对明文图像进行置乱,不仅具有非常大的置乱路径选择空间以便进行图像加密和解密,而且具有极大的置乱周期和置乱效果,增强图像传输的安全性。
步骤六:将步骤四使用的二阶H几何分形顺时针旋转90°得到变形的H几何分形,采用变形的H几何分形对步骤五处理后的图像矩阵P4进行一次扩散操作,得到图像矩阵P5。
步骤七:利用二维Hilbert扫描曲线对图像矩阵P5进行第二次Hilbert扫描置乱操作,得到加密图像。
解密算法是上述加密方法的逆过程,这里不再阐述。本发明也同样适用于彩色图像的加密,只需将图像像素值进行RGB分解处理即可。
本发明使用标准的256×256的Lena、Pepper和Cameraman灰度图像作为输入,在Windows10操作环境下采用Matlab2018a工具对加解密操作过程进行仿真,根据Runge-Kutta算法进行数值计算并设置给定初始参数x0′=0.1,y0′=0.2,z0′=0.3。原始图像、加密图像和解密图像分别如图10所示。其中,图10(a)-(c)为Lena的原始图像、加密图像和解密图像;图10(d)-(f)为Pepper的原始图像、加密图像和解密图像;图10(g)-(i)为Cameraman的原始图像、加密图像和解密图像。
一个好的加密算法应当有足够大的密钥空间抵御穷举攻击,本发明对密钥有敏感性而且能够抵抗常见的攻击,例如:统计攻击、差分攻击、数据丢失攻击和噪声攻击等。下面主要分析和讨论本发明的性能和安全性。实验结果及安全性分析表明,本发明安全性较高,可广泛用于图像信息的安全传输。
本发明的加密密钥包括Rossler混沌系统的初始值x0、y0、z0和256位的哈希值。对于Rossler混沌系统的初始值x0、y0和z0,如果计算精度是10-14,则密钥空间大小为1042,而且256位哈希值的密钥空间是2128,所以本发明加密方法的密钥空间S=1042×2128=3.40×1080,因此有足够大的密钥空间抵御穷举攻击。
为了测试密钥的灵敏度,对于Rossler混沌系统,将x0、y0和z0的初始值分别增加10-14,其他密钥不变的情况下,图11(b)-(d)给出了相应的解密图。由此可以看出,密钥的微小改变,都不能正确解密出原图像,可见本发明具有较强的密钥灵敏性。
图像的统计特性在一定程度上可以反映原始图像灰度值的分布规律,能否改变原始图像的统计分布也是图像加密中重要的评价指标。本发明对图像像素灰度值运算操作的目的就是为了抵抗灰度统计攻击。本发明所列三组图像的原始图像和加密图像的统计直方图,如图12所示。从实验结果可以得出,异或处理及置换操作使所得加密图像的统计直方图分布非常均匀,这说明了本发明具有很好的抵抗统计攻击能力,使攻击者不能够分析出原始灰度值分布范围。
相邻像素相关性是数字图像安全性分析的一个重要评价指标,它反映出图像像素分布的置乱程度。加密图像相邻像素相关性越小,则意味着置乱效果越好,反之则置乱效果越差。原始图像的相邻像素相关性很强,攻击者很容易通过各种手段获取明文信息,使用图像加密方法的目的就是要降低像素之间的相关性,从而获得相关性的密文图像。以Lena图像为例,随机选取10000对相邻像素点,得到其在水平、垂直、正对角和反对角方向上的相关性曲线如图13所示,其中,图13(a)-(d)分别为原始Lena图像在水平,垂直,正对角和反对角方向上的相关性;图13(e)-(h)分别为加密Lena图像在水平,垂直,正对角和反对角方向上的相关性。按照如下公式(4)-(7)计算其水平、垂直、正对角和反对角方向的相关系数如表3所示。
其中,x和y是图像中相邻像素的灰度值,ρxy是相关系数,xi表示第i个点的像素值,N表示选取样本点的数量,E(x)是均值,D(x)是方差,COV(x,y)是协方差。类似地,原始图像和加密图像中相邻像素相关系数对比结果如表3所示,加密图像的相关系数ρxy在各个方向上明显减少,由此可见本发明有很好的安全性。
表3.原始图像和加密图像在水平、垂直、正对角和反对角方向上的相关系数
信息熵表示系统的不确定性程度,它可以用来表示图像信息的不确定性。图像的信息越混乱,信息熵就越高。对于灰度图像,图像灰度值分布越均匀,信息熵越大,随机性越大,安全性也就越高。信息熵的公式定义如下:
其中,L为图像的灰度级,mi是图像上的第i个像素灰度值,P(mi)是灰度值mi出现的概率。对于L=256的灰度图像来说,信息熵的理论值是8。信息熵越接近理论值,图像被攻击的可能性越小。本发明所列三幅图的明文和密文信息熵如表4所示,通过对比验证了本发明的加密方法的有效性。
表4.原始图像和加密图像的信息熵对比
差分攻击即对原始图像做微小的改变,再分别对原始图像和改变后的图像进行加密。通过比较两幅加密后的图像来获得原始图像与加密图像之间的联系。通常使用像素数改变率(NPCR)和归一化平均改变强度(UACI)两个标准来衡量加密方法是否能抵御差分攻击,其数学计算公式如下所示:
其中,M和N分别代表图像的长度和宽度,P1(i,j)和P2(i,j)分别表示明文改变前后相对应的密文像素值。NPCR的值越接近于100%,说明图像加密方法对明文图像的敏感性越髙,其抵抗差分攻击的能力越强。NPCR和UACI的理想值分别为99.6094%和33.4635%,其越接近于理想值,则说明抵抗差分攻击的能力也越强。根据上式可计算出本发明使用三幅图像的性能指标如表5所示。从而验证了该图像加密方案具有抵抗差分攻击的能力。
表5.三幅图像的NPCR和UACI对比分析
对密钥或原图的一个微小的改变将引起相应解密图像很大的变化,这种性质在加密系统中称为雪崩效应。雪崩效应是所有的加密方法应该具备的性质。若修改原始图像的一个比特能引起解密图像不少于50%比特的改变,就达到了严格雪崩效应(strictavalanche effect)。均方差MSE(mean square error)是两个图像之间累积的平方误差,可用于检验雪崩效应。用C1和C2分别表示原始图像和解密图像,它们之间的密钥相差1比特,MSE的数学计算公式可以描述如下:
其中,M和N分别表示图像的高度和宽度,C1(i,j)和C2(i,j)分别表示原始图像和解密图像在像素点(i,j)的灰度值。
在数字图像处理的应用中,峰值信噪比PSNR(Peak Signal-to-Noise Ratio)通常用来定量分析原始图像和解密图像的相似性,其数学表达式如下所示:
由此可见,MSE的值越小,PSNR的值就越大,解密图像和原始图像之间的相似性就越高。通过计算可知本发明的MSE和PSNR如表6所示,说明解密图像和它对应的原始图像相似性很高,所以本发明的图像加密方法能够抵抗数据丢失攻击。
表6.三组图的MSE和PSNR对比分析
加密系统的抗噪声攻击能力是衡量系统抗干扰能力强弱的标准。信息在传输过程中会受到噪声的干扰,从而使密文图像产生失真,进而对解密图像产生一定程度的影响。常见的噪声有椒盐噪声、高斯白噪声和泊松噪声等。为了分析本发明加密方法的抗噪声攻击能力,对密文图像(加密图像)加入不同强度的椒盐噪声并进行解密,加入噪声的密文图像以及含有噪声的解密图像如图14所示。用MSE、PSNR和图像像素的相关性作为评价指标,对解密后的图像和原始图像进行对比分析,结果如表7所示。通过对比分析可知,本发明具有较好的抗噪声攻击能力。
表7.Lena图像加入不同程度噪声后的MSE和PSNR及四个方向的相关性
本发明结合Hilbert扫描曲线和H几何分形结构,提出了一种混沌图像加密算法。通过Hilbert扫描、H几何分形、混沌系统和DNA编码实现两轮像素位置的置乱和像素值的扩散。实验结果表明,本发明具有较大的密钥空间来抵抗穷举攻击,同时还能够抵抗统计攻击、差分攻击、数据丢失攻击和噪声攻击等,可广泛应用于图像信息的安全传输。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种基于H几何分形和Hilbert曲线的图像加密方法,其特征在于,其步骤如下:
步骤一:读取大小为M×N的灰度图像P,并把灰度图像P转换成大小为M×N的二维的图像矩阵P1;
步骤二:采用哈希函数SHA-3计算图像矩阵P1的哈希值,将哈希值转换为密钥K,对密钥K进行划分得到混沌系统的初始值;
步骤三:将混沌系统的初始值代入Rossler混沌系统,产生三个长度为M×N/3的离散数值混沌序列,取每个元素的小数点后第3位到第13位数字,并进行模256运算,将得到的序列按照每行N个元素组成M×N的序列矩阵,将序列矩阵与图像矩阵P1进行按位比特异或运算得扩散后的图像矩阵P2;
步骤四:采用二阶H几何分形对图像矩阵P2进行一次扩散操作,得到图像矩阵P3;
步骤五:利用二维Hilbert扫描曲线对图像矩阵P3进行一次置乱操作,得到图像矩阵P4;
步骤六:将步骤四使用的二阶H几何分形顺时针旋转90°得到变形的H几何分形,采用变形的H几何分形对步骤五处理后的图像矩阵P4进行一次扩散操作,得到图像矩阵P5;
步骤七:利用二维Hilbert扫描曲线对图像矩阵P5进行第二次Hilbert扫描置乱操作,得到加密图像;
所述步骤二中混沌系统的初始值的计算方法是:灰度图像P1经过哈希函数SHA-3(256)运算后,产生出一组256位的哈希值,将哈希值转换为二进制后作为密钥K,将密钥K按8个二进制划分为32个字节,表示为:k1,k2,…,k32;令序列 则混沌系统的初始值x0,y0,z0为:
其中,x0′,y0′,z0′为给定初始值;
所述二阶H几何分形的形成方法为:将一个一阶H分形的端点1和端点7的像素值进行按位比特异或运算并赋值给端点1;一阶H分形的端点3和端点9的像素值进行按位比特异或运算并赋值给端点3;一阶H分形的两个交叉点4和交叉点6的像素值转化为DNA系列后进行DNA加法运算后并转换为像素值后赋值给点交叉点4;按照上述过程依次类推遍布整个图像矩阵。
3.根据权利要求2所述的基于H几何分形和Hilbert曲线的图像加密方法,其特征在于,所述步骤三中序列矩阵的计算方法为:迭代Rossler混沌系统产生3组大小为M×N/3的离散数值序列hi,按照公式Ai=[mod(1010*(hi*102-[hi]*102),256)],取小数点后第3位到第13位数字进行模256运算,将其按照每行N个元素排列成离散数值序列,产生的离散数值序列Ai组成M×N的序列矩阵。
5.根据权利要求1所述的基于H几何分形和Hilbert曲线的图像加密方法,其特征在于,所述二维Hilbert扫描曲线进行像素置换的方法为:先将图像矩阵P3分成四个小块,按照Hilbert曲线扫描路径进行操作,再将这四个小块分别分成更小的四个小块进行Hilbert曲线扫描,按照这种方式一直进行分块,直到每个小块都是2×2的像素块,并对其按照Hilbert曲线的遍历顺序进行Hilbert曲线扫描。
6.根据权利要求1或5所述的基于H几何分形和Hilbert曲线的图像加密方法,其特征在于,所述二维Hilbert扫描曲线描述为:把一个正方形等分成4个小正方形,依次从左下角的正方形中心出发往上到左上角的正方形中心,再往右到右上角的正方形中心,再往下到右下角的正方形中心,得到第一次迭代结果;将第一次迭代结果分别放入方格I的左上角和右上角区域,将第一次迭代结果顺时针旋转90°放入方格I左下角区域,将第一次迭代结果逆时针旋转90°放入方格I右下角区域,把方格I的四个区域相邻的端点相连得到第二次迭代曲线;将第二次迭代曲线分别放入方格II的左上角和右上角区域,将第二次迭代曲线顺时针旋转90°放入方格II的左下角区域,将第二次迭代曲线逆时针旋转90°放入方格II的右下角区域,把方格II的四个区域相邻的端点相连得到一条填满整个正方形的二维Hilbert曲线。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910080254.1A CN109903212B (zh) | 2019-01-28 | 2019-01-28 | 一种基于H几何分形和Hilbert曲线的图像加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910080254.1A CN109903212B (zh) | 2019-01-28 | 2019-01-28 | 一种基于H几何分形和Hilbert曲线的图像加密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109903212A CN109903212A (zh) | 2019-06-18 |
CN109903212B true CN109903212B (zh) | 2020-07-03 |
Family
ID=66944374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910080254.1A Active CN109903212B (zh) | 2019-01-28 | 2019-01-28 | 一种基于H几何分形和Hilbert曲线的图像加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109903212B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110266729A (zh) * | 2019-07-18 | 2019-09-20 | 倪玉根 | 基于图像加密的云服务器登录方法及装置 |
CN115022484A (zh) * | 2021-06-15 | 2022-09-06 | 天津科技大学 | 一种基于哈密顿保守混沌系统和二维离散小波变换的图像加密方法 |
CN113935354B (zh) * | 2021-09-09 | 2023-08-04 | 同济大学 | 一种用于商品外包装的抗干扰图形交点编解码方法 |
CN114434802B (zh) * | 2021-12-20 | 2023-07-21 | 西安理工大学 | 3d打印轮廓偏置填充路径规划算法 |
CN114374775B (zh) * | 2022-01-12 | 2023-06-23 | 安徽师范大学 | 基于Julia集和DNA编码的图像加密方法 |
CN114500079B (zh) * | 2022-02-15 | 2023-08-01 | 西藏宁算科技集团有限公司 | 一种云盘加密存储图片的方法 |
CN115396092B (zh) * | 2022-08-26 | 2023-09-12 | 河南天一智能信息有限公司 | 一种智能心功能治疗系统的数据管理方法 |
CN115665340B (zh) * | 2022-10-24 | 2023-05-05 | 郑州轻工业大学 | 一种远程故障诊断系统中的图像加密方法 |
CN115514469B (zh) * | 2022-11-22 | 2023-03-28 | 成都工业职业技术学院 | 一种信息加密保护方法 |
CN115643110B (zh) * | 2022-12-22 | 2023-03-10 | 河北新龙科技集团股份有限公司 | 基于运行数据的应用软件安全检测方法 |
CN116894272B (zh) * | 2023-09-08 | 2023-11-28 | 北京数盾信息科技有限公司 | 一种基于高速加密技术的云计算系统数据处理方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9264265B1 (en) * | 2004-09-30 | 2016-02-16 | Nvidia Corporation | System and method of generating white noise for use in graphics and image processing |
CN104182926B (zh) * | 2014-07-25 | 2017-11-14 | 南京邮电大学 | 基于Hilbert变换和混沌Liu算法的彩色图像加密方法 |
CN106204411B (zh) * | 2016-07-15 | 2019-04-02 | 兰州交通大学 | 基于不变矩和Hilbert码的矢量居民地零水印方法 |
-
2019
- 2019-01-28 CN CN201910080254.1A patent/CN109903212B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109903212A (zh) | 2019-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109903212B (zh) | 一种基于H几何分形和Hilbert曲线的图像加密方法 | |
CN109376540B (zh) | 一种基于Duffing映射与遗传操作的图像加密方法 | |
CN107590842B (zh) | 基于像素和dna交叉动态混沌密码的图像加密方法和装置 | |
CN112199690B (zh) | 基于混合时滞的分数阶复杂系统同步实现的图像加密方法 | |
CN109756322B (zh) | 基于des结构与dna编码的数字图像加密方法 | |
Zou et al. | A novel image encryption algorithm based on DNA strand exchange and diffusion | |
CN108366181A (zh) | 一种基于超混沌系统和多级置乱的图像加密方法 | |
CN112202545B (zh) | 基于y型填充曲线和变步长约瑟夫遍历的图像加密方法 | |
CN114549266B (zh) | 基于dna置换规则和混沌系统的图像加密方法 | |
Telem et al. | A simple and robust gray image encryption scheme using chaotic logistic map and artificial neural network | |
CN113691362A (zh) | 基于超混沌系统和dna编码的位平面图像压缩加密算法 | |
CN113129196A (zh) | 一种基于dna序列和忆阻混沌的图像加密方法 | |
Zheng et al. | An image encryption algorithm based on multichaotic system and DNA coding | |
Chen et al. | A novel image encryption scheme based on PWLCM and standard map | |
CN112769545B (zh) | 基于相邻像素约瑟夫变换和Mealy状态机的图像加密方法 | |
CN113300827B (zh) | 一种基于拉丁方的混沌图像加密方法 | |
Ye et al. | Research on reversible image steganography of encrypted image based on image interpolation and difference histogram shift | |
CN111444522B (zh) | 一种随机分块的混沌图像加密方法 | |
CN116996626A (zh) | 基于混沌系统的双量子图像加密方法 | |
CN116016795A (zh) | 基于变步长抽取随机数和改进ZigZag变换的图像加密方法 | |
CN114201767A (zh) | 基于rna的图像加密方法 | |
CN114726497A (zh) | 一种基于多目标蜉蝣优化的分形排序和dna混沌图像加密方法 | |
CN113837916A (zh) | 基于混沌系统的重组置乱dna编码图像加密算法 | |
CN113992811A (zh) | 一种基于新型三维分数阶离散混沌映射的图像加密方法 | |
Boudali et al. | A new symmetrical cryptosystem based cellular automata and chaotic map function |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |