首页> 中国专利> 一种基于填充曲线和相邻像素比特置乱的图像加密方法

一种基于填充曲线和相邻像素比特置乱的图像加密方法

摘要

本发明提出了一种基于填充曲线和相邻像素比特置乱的图像加密方法,其步骤如下:将灰度图像变换为二维的图像矩阵;计算图像矩阵的哈希值,计算四维的超混沌系统的初始值;利用V型填充曲线置乱图像矩阵,图像矩阵转置进行第二次置乱;根据得到的初始值对超混沌系统进行迭代分别得到四个混沌序列;以一个混沌序列为起点、一个为步长,利用约瑟夫遍历图像矩阵的相邻像素的二进制位进行相邻像素比特置乱;利用混沌序列得到的序列矩阵分别对图像进行前向扩散和反向扩散,得到密文图像。本发明通过比特级与像素级的双重置换,打破了像素间的高度相关性,克服了选择/已知明文攻击及普通图像相关的统计攻击,具有较高的密钥灵敏度和抵抗差分攻击的能力。

著录项

  • 公开/公告号CN112714235A

    专利类型发明专利

  • 公开/公告日2021-04-27

    原文格式PDF

  • 申请/专利权人 郑州轻工业大学;

    申请/专利号CN202011523251.X

  • 申请日2020-12-22

  • 分类号H04N1/44(20060101);H04L9/00(20060101);H04L9/06(20060101);

  • 代理机构41125 郑州优盾知识产权代理有限公司;

  • 代理人栗改

  • 地址 450000 河南省郑州市高新技术产业开发区科学大道136号

  • 入库时间 2023-06-19 10:44:55

说明书

技术领域

本发明涉及图像加密的技术领域,尤其涉及一种基于填充曲线和相邻像素比特置乱的图像加密方法。

背景技术

随着多媒体技术的飞速发展和互联网的普及,图像的传输、存储和共享变得越来越方便。这些图像通常携带一些敏感信息。而数字图像的加密是数字图像安全存储和传输的重要保障。因此,为了防止图像内容被非法窃取和利用,人们致力于开发高效、安全的图像加密算法。

图像加密是图像处理和信息安全领域的研究热点,广泛应用于国家安全、医学成像、隐私信息保护等领域。图像具有像素间相关性高、数据量大等固有特征,传统的加密技术如数据加密标准(DES)和高级加密标准(AES)等已不能满足图像加密的需求。近年来,人们提出了许多新的图像加密技术,如椭圆曲线方法、希尔加密、元胞自动机理论、DNA加密、安全哈希算法、图像压缩方法、图像融合技术、混沌加密等。

由于混沌系统具有随机性、不确定性和初始条件敏感性等特点,在图像编码、解码、加密、隐藏等方面有着巨大的应用前景。1989年Matthews首次将混沌映射应用于信息加密。1998年,Fridrich提出了一种基于混沌的图像加密体系结构,包括混淆与扩散两个阶段。混淆和扩散是隐藏高冗余和强相关性的两种主要技术。在混淆阶段,明文图像像素的位置发生了变化,但由于没有修改像素值,密文图像和明文图像的直方图是相同的,因此,该方法不耐统计分析,不能抵抗统计攻击分析。在扩散阶段,通过改变像素值,使一个像素的微小变化扩散到尽可能多的像素。与混淆相比,扩散能达到更高的安全性。实际中,混淆和扩散经常组合使用,以提高计算安全性。基于这种体系结构,提出了许多图像加密方法。利用一维混沌序列的随机性对图像的像素位置进行置乱,实现图像加密。一维混沌系统具有效率高、简单等优点被广泛应用,但其密钥空间小、其混沌轨道简单,利用回归映射、相空间重构、非线性预测等技术易于预测。因此,使用低维混沌的图像加密方案容易受到攻击。同时,低维混沌参数相对较少,导致加密密钥空间较小,抗攻击性能较差。Hua等人提出一种2D逻辑调整正弦映射,并应用于图像加密。使用高维混沌系统对图像加密,但是加密过程较为简单,加密算法对明文图像和密钥的变化不太敏感,容易受到明文攻击或选择性明文攻击。

虽然越来越多的基于混沌系统的图像加密方案被提出,但随着技术的发展和一些攻击方法的进步,设计一种更高效、更安全的加密方法是当务之急。此外,大多数现有的方法都非常容易受到差分攻击。关键在于加密方法没有达到强扩散特性,加密过程中使用的密钥不会使普通图像消散。

混淆阶段对密码学的影响很大,可以分为像素级和比特级。比特级混淆与基于像素的混淆相比,具有良好的加密效果,因为比特级混淆是修改像素的强度值一种方法,而像素级的混淆只改变像素的索引位置。因此,混淆阶段需要考虑三个方面:(1)每个位平面均匀分布;(2)像素位置和像素值都需要修改;(3)相邻位平面的相关性降低。基于这一思想,也有一些图像加密方法被提出。加密算法虽有不同,但都是对单一像素点八位二进制数置乱,使得一个像素点0和1的比重不变。为了提高加密算法安全级别,很多加密方法开始采用混合加密的想法,使用一个加密系统的优势来抑制另一个系统的缺点,同时保持他们的优势不变。

结合超混沌系统、约瑟夫遍历和填充曲线,提出一种具有高安全性、高敏感性的超混沌图像加密方法。Josephus遍历的实现简单,计算速度快,但之前的尝试或多或少侧重于置乱的目的。并且这些Joseph遍历方法,每个计数从下一个人开始。因此,这些Joseph遍历方法进行图像加密,使得置乱效果在一定程度上具有一定的规律性。本文提出了一种改进的Joseph遍历方法,让约瑟夫遍历的步长动态更新,并将其他参数链接到明文图像上,该技术用于隐藏数据的统计特性,减少相邻数据之间的相关性,可以使加密图像的置乱效果更加随机有效。此外,该方法的主要目标是在混淆和扩散过程中加入自适应密钥,以抵御与普通图像相关的攻击,并以较少的计算提高安全性。而本文采用了明文图像的哈希值作为自适应密钥,由于明文哈希值比明文像素值总和、平均值对明文变化更为敏感,使得本文抗选择明文(密文)攻击更强,明文敏感性更好。

发明内容

针对现有加密方法使用的密钥不会使普通图像消散,没有达到强扩散特性,非常容易受到差分攻击的技术问题,本发明提出一种基于填充曲线和相邻像素比特置乱的图像加密方法,结合超混沌系统、约瑟夫遍历和填充曲线,具有高安全性、高敏感性,提高了图像传输的安全性。

为了达到上述目的,本发明的技术方案是这样实现的:一种基于填充曲线和相邻像素比特置乱的图像加密方法,其步骤如下:

步骤1:将大小为M×N的灰度图像P变换为二维的图像矩阵P

步骤2:采用SHA-256算法计算图像矩阵P

步骤3:利用V型填充曲线置乱图像矩阵P

步骤4:将图像矩阵P

步骤5:根据步骤2得到的初始值对超混沌系统进行迭代,分别得到混沌序列LX、LY、LZ、LW;

步骤6:对混沌序列LX和LY的元素进行处理得到序列LX’和LY’,以序列LX'为起点、序列LY'为步长,利用约瑟夫遍历图像矩阵P

步骤7:对混沌序列LZ和LW的元素进行处理,重新重构成矩阵形式分别得到两个序列矩阵MZ和MW,利用序列矩阵MZ对图像矩阵P

步骤8:利用序列矩阵MW对图像矩阵P

所述图像矩阵P

其中,x′

所述四维的超混沌系统:

其中,

所述V型填充曲线置乱对图像矩阵进行置乱的方法是:在图像矩阵中通过V字形从外围到内部再到外围进行扫描,且访问二维图像矩阵中的每一个点,对于连续三个以上的像素点从不保持相同的方向,即从图像矩阵的左上角开始,沿V字形路线依次扫描上、右、下、左,形成一圈,接着继续按照这种扫描方式扫描剩余的像素点。

所述约瑟夫遍历用函数表达为J=f(n,r,m,k),其中,n为元素总数,m为步长,J为约瑟夫序列,f为约瑟夫函数,r为起点,k为步长增量;每删除一个元素,步长m=m+k。

所述相邻像素比特置乱的方法为:设定每4个相邻像素为一组,转换成32位二进制数,对32位二进制数进行约瑟夫遍历;且下一组的第一个像素为上一组即已进行约瑟夫遍历的最后一个像素。

所述混沌序列LX和LY的元素进行处理的方法为:

混沌序列LZ和LW的元素进行处理的方法为:

其中,lx

所述正向扩散过程的公式为:

其中,i=1,2,…,M,j=1,2,…,N;c

所述反向扩散过程的公式为:

其中,α=M,M-1,…,1,β=N,N-1,…,1;d

与现有技术相比,本发明的有益效果:首先给出一种新的扫描填充曲线,并采用该曲线对图像像素进行全局置乱;其次,对约瑟夫遍历方法进行改进,将超混沌系统产生的伪随机序列作为约瑟夫遍历的起点和步长,对相邻像素进行比特置乱,通过比特级与像素级的双重置换,打破了原始图像像素间的高度相关性,进一步提高了系统安全性;最后,通过双向密文反馈,进一步提高了安全性。此外,本发明给出了一种与明文图像相关的自适应密钥形成方法,加密时使用的密钥与明文图像关联,相当于一次一密,以克服选择/已知明文攻击及普通图像相关的统计攻击;由于超混沌系统对初始条件非常敏感,因此,具有较高的密钥灵敏度和抵抗差分攻击的能力。通过实验仿真,并从密钥空间、信息熵、密钥灵敏度和相邻像素相关性指数等方面进行了分析,结果表明,本发明具有良好的性能和足够的安全性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明的约瑟夫序列产生的实例图。

图2为常见的扫描置乱模式的示意图,其中,(a)为Row模式,(b)为Row-Prime模式,(c)为Spiral模式,(d)为Cantor模式,(e)为Peano扫描模式,(f)为Peano扫描模式,(g)为U-Index模式,(h)为Hilbert模式。

图3为本发明的V型曲线扫描的示意图。

图4为本发明采用V型曲线的置乱示意图,其中,(a)为扫描曲线和数据矩阵,(b)为一次置乱后的数据矩阵,(c)为二次置乱后的数据矩阵。

图5为本发明采用约瑟夫置乱的实例图,其中,(a)为明文矩阵,(b)为序列LS'和LT',(c)为约瑟夫遍历后的矩阵,(d)为置乱过程。

图6为本发明的仿真结果图,其中,(a)为原始图像,(b)为密文图像,(c)为解密图像。

图7为本发明图像的直方图分析图,其中,(a)为明文图像,(b)为明文图像的直方图,(c)为密文图像,(d)为密文图像的直方图。

图8为本发明相关性分析的示意图,其中,(a)为明文图像Cameraman在水平、垂直和对角方向上的相关性;(b)为密文图像Cameraman在水平、垂直和对角方向上的相关性。

图9为本发明的流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图9所示,一种基于填充曲线和相邻像素比特置乱的图像加密方法,主要有三个操作:第一,在像素位置置乱中,使用由V形曲线组成的索引对图像像素位置进行全局置乱;二是位置乱:通过Josephus遍历来遍历每个像素的位,实现像素值的替换和加密;最后,通过密文反馈进一步扩散像素。具体步骤如下:

步骤1:将大小为M×N的灰度图像P变换为二维的图像矩阵P

步骤2:采用SHA-256算法计算图像矩阵P

本发明的主要包括四部分:自适应密钥构建,比特级混淆,像素级混淆和像素扩散。自适应密钥构建操作是利用哈希函数产生与明文图像高度相关的混沌映射的初始值,将这些初始值赋给混沌映射,生成用于加密的随机序列即密钥序列。结合填充曲线与约瑟夫遍历,采用产生的混沌序列对图像进行混淆和扩散。

超混沌系统具有两个及两个以上正的Lyapunov指数,动力学行为比混沌系统更加复杂,难以预测,在保密通信及信息安全等领域具有更高的应用价值。2009年,qi等人提出了如下四维超混沌系统:

其中,

为了产生加密方法中混淆和扩散操作所使用的伪随机序列,使用该超混沌系统作为伪随机数发生器,给定初始值,采用四阶龙格-库塔法进行迭代,得到四个超混沌序列{(lx

自适应密钥是提高加密图像抵抗已知明文攻击的有效方法,单轮和独立密钥流增加了选择明文攻击的可能性。一次一密方案增加了差分攻击的难度,但一次一密在实时情况下难以满足要求。因此,从明文图像生成自适应密钥,以抵御已知/选择明文攻击,并能达到一次一密的效果。当然,为了避免基于明文图像的攻击,明文图像必须高度分散到加密方法使用的密钥流中。为此,本发明采用哈希函数将数字图像转换成哈希值,通过哈希值来构造超混沌映射的初值和参数。这样,明文图像任何微小的改变,哈希值都会发生巨大的变化,超混沌映射的参数和初始值也会随之改变。由于超混沌系统对初始条件非常敏感,导致产生的混沌序列也发生巨大的变化。自适应密钥方法对不同的图像生成不同的混沌系统初始值,增加了算法的复杂性,进而不同的图像使用不同的密钥序列进行加密,从而减少了被选择/已知明文攻击的机会。在SHA-3(256)算法操作后,原始图像生成一个256位哈希值K,哈希值K可分为32个字节,表示为k

其中,x′

步骤3:利用V型填充曲线置乱图像矩阵P

步骤4:将图像矩阵P

一条空间填充曲线(SFC)可以连续访问图像中的所有像素一次,并对每一个像素进行线性排序,将原图像的像素位置打乱并重组一幅新的像素图像。通过使用填充曲线进行扫描可以对图像进行快速置乱,几种常见的扫描置乱模式如图2所示。使用扫描置乱模式打乱像素的位置十分方便,但是部分扫描模式也存在一定的缺陷,如图2(a)、2(b)、2(c)扫描一次,仍旧会有多个相邻元素相邻。若扫描的次数过少,则打破相邻像素间相关性的能力会较差。

本发明提出了一种新颖的填充曲线,通过V字形从外围到内部再到外围进行扫描,可以访问二维空间中的每一个点。对于连续三个以上的像素点从不保持相同的方向,避免局部的置乱。采用V型填充曲线连续扫描两次以上,原相邻像素再次相邻的概率接近于0。图4给出了V型填充曲线的示意图。图3是一个8*8的V型填充曲线扫描的示意图,从图的左上角开始,沿V字形路线依次扫描上、右、下、左,形成一圈,接着继续按照这种扫描方式扫描剩余的格子。后面将通过相关性分析来证实该空间填充曲线在图像置乱方面的优势。

步骤5:根据步骤2得到的初始值对超混沌系统进行迭代,分别得到混沌序列LX、LY、LZ、LW。

步骤6:对混沌序列LX和LY的元素进行处理得到序列LX’和LY’,以序列LX'为起点、序列LY'为步长,利用约瑟夫遍历图像矩阵P

约瑟夫遍历是一个经典的数学应用问题:已知以编号1,2,3...n分别表示的n个人围坐在一张圆桌周围。从编号为1的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。根据从圆桌中出列元素的顺序,可以得到一个序列,即约瑟夫序列。将约瑟夫遍历用函数表达,即J=f(n,m),这里n为元素总数,m为步长,J为约瑟夫序列,f为约瑟夫函数。为了增加约瑟夫的多样性,在原有规则的基础上加入起点r和步长增量k,让约瑟夫遍历的步长保持动态变化,每删除一个元素,使步长进行更新,让m=m+k,k为步长增量。则约瑟夫函数进一步被拓展为J=f(n,r,m,k)。例如,函数J=f(8,3,2,1)生成的约瑟夫序列为3、5、8、6、7、4、1、2,图1显示了该约瑟夫序列的生成过程。

区别于传统的置乱操作,本发明所提出的置乱包括像素置乱和比特置乱,双置乱不仅可以打破相邻像素的相关性,还能改变像素值。对于像素置乱即像素位置置乱,采用提出的V型填充曲线来实现,如图4(a)所示,在8×8的正方形网格中,从右上元素开始,按照V型填充曲线扫描路径,对图4(a)的数据矩阵进行扫描得到图4(b)所示的数据矩阵,对图4(b)的数据矩阵再次扫描得到图4(c)所示的数据矩阵。

像素位置置乱破坏了相邻像素之间的相关性,但不能改变像素值,因此,无法有效地抵抗统计学攻击。与像素级图像加密方法相比,比特级加密方法在置换过程中会影响像素值和像素位置,因此越来越多的学者引入了比特级加密方法。采用约瑟夫遍历进行比特置乱能有效改变像素值,进一步抵抗统计攻击。如果所有像素的比特置乱都遵循相同的结构,那么就可能导致统计攻击。为了实现高效的置乱,本发明提出一种相邻像素间比特置乱方法,将约瑟夫遍历与混沌序列相结合,针对相邻像素的约瑟夫遍历均采用不同的起点和动态步长,确保在遍历过程中步长自动更新。

综合置乱效率和效果,本发明设定每4个相邻像素为一组,然后转换成32位二进制形式,对其进行约瑟夫遍历。为了进一步增强扩散的效果,规定下一组的第一个像素为上一组(已进行约瑟夫遍历)的最后一个像素。相邻4个像素共32位二进制数的置乱,充分利用了全局置乱后相邻像素点间的相关性被完全打破的特性,解决单一像素点二进制下置乱所用混沌序列不敏感问题,也间接实现了像素的扩散。

对超混沌系统产生的伪随机序列LX和LY的元素按公式(3)进行处理,记为序列LX'和LY',分别作为约瑟夫遍历的起点和步长。图5为采用约瑟夫置乱的一个实例,其中步长增量k=1。图5(a)为给定的数据矩阵,图5(b)为序列LX'和LY',图5(c)为采用约瑟夫对图5(a)遍历后的矩阵,图5(d)为约瑟夫遍历进行像素置乱的过程。

扩散操作使明文的微小变化可以扩散到整个密文,扩散增强了算法对差分和统计攻击的抵抗力。本发明结合混沌序列,利用前一个像素值与混沌序列来共同改变当前的像素值,可以有效地将少量的明文图像变化传播到整个加密图像。同时,密钥序列与明文图像高度关联,进一步提高了图像的安全性。本发明中,密钥序列随着明文图像的改变而改变,可以得到完全不同的强扩散加密图像。扩散过程包括正向扩散和反向扩散。给定超混沌系统的初始值,迭代超混沌系统的动力学方程产生长度为M×N的两个序列LZ和LW,按照公式(4)对序列元素进行处理得到序列LZ'和LW',并将序列转换成大小为M×N的矩阵形式,记为序列矩阵MZ和MW。

其中,lx

步骤7:对混沌序列LZ和LW的元素进行处理,重新重构成矩阵形式分别得到两个序列矩阵MZ和MW,利用序列矩阵MZ对图像进行前向扩散,得到图像矩阵P

步骤8:利用序列矩阵MW对图像矩阵P

对于给定的图像P、序列矩阵MZ和MW,正向扩散后的图像矩阵为记C,反向扩散后的矩阵记为D。正向扩散过程如公式(5)所示:

其中,i=1,2,…,M,j=1,2,…,N。P

反向扩散过程如公式(6)所示:

其中,i=M,M-1,…,1,j=N,N-1,…,1。d

本发明解密过程是加密过程中的逆过程,没有对其进行描述。

为了验证本发明的可行性和有效性,在Windows10操作环境下利用Matlab2018a进行仿真。给定初始值x′

密钥空间反映了加密算法抵抗蛮力攻击的能力,如果密钥空间大于2

统计能力是指系统抵抗统计攻击的能力。它有两个指标,直方图和相邻像素之间的相关性。

直方图是数字图像的重要统计特征,它能直观地反映图像中灰度值的分布情况。一个理想的加密图像应该有一个均匀的直方图。图7是原始图像和加密图像的直方图,可以清楚地看出,原始图像的直方图分布不均匀,而加密图像的直方图分布非常均匀。加密图像破坏了原始图像的统计特性。因此,本发明能有效抵抗统计攻击。

在明文图像中,相邻像素的相关性非常高。为了隐藏图像的统计行为,相邻像素的相关性应该接近于零,这样入侵者就不会得到关于图像的任何信息。因此,相邻像素的相关性是评价图像加密算法性能的重要标准之一。图像相关系数的计算公式如下:

其中,E(x)和D(x)分别代表变量x的期望和方差,cov(x,y)表示协方差,r

表1明文图像和密文图像各方向的相关系数

信息熵是衡量图像随机性的重要指标,能反映像素值的分布。当信息熵很大时,像素值的分布比较均匀。信息熵定义为:

式中,p(m

表2信息熵和局部信息熵

差分攻击将明文图像和加密图像之间的差异建立一种关系来预测原始图像。像素数变化比(NPCR)和统一的平均变化强度(UACI)是评估差分攻击的两个重要指标。NPCR反映的是原始图像改变后加密图像中改变像素的个数,NPCR值越大反映其抵抗明文攻击的能力越强。UACI反映的是两个加密图像中对应于原始图像和改变后的原始图像的像素值的平均差值强度,UACI值越大反映其抵抗差分攻击的能力越强。表3列出了明文图像微小改变时,对应密文图像间的NPCR和UACI的值(%)。

表3明文图像发生微小改变时,对应密文图像间的NPCR和UACI的值(%)

Josephus遍历的实现简单,计算速度快,但之前的尝试或多或少侧重于置乱的目的,且这些Joseph遍历方法,每个计数从下一个人开始,因此,这些Joseph遍历方法进行图像加密,使得置乱效果在一定程度上具有一定的规律性。本发明提出了一种改进的Joseph遍历方法,让约瑟夫遍历的步长动态更新,并将其他参数链接到明文图像上,用于隐藏数据的统计特性,减少相邻数据之间的相关性,可以使加密图像的置乱效果更加随机有效。此外,本发明在混淆和扩散过程中加入自适应密钥,以抵御与普通图像相关的攻击,并以较少的计算提高安全性。本发明采用了明文图像的哈希值作为自适应密钥,由于明文哈希值比明文像素值总和、平均值对明文变化更为敏感,使得抗选择明文(密文)攻击更强,明文敏感性更好。

本发明提出了一种与普通图像相关的自适应密钥生成方法,以克服普通图像相关的统计攻击,密钥与明文图像关联,相当于一次一密;利用自适应密钥函数改变每幅平面图像的超混沌系统初始参数,以抵抗已知/选择的明文攻击。由于超混沌系统对初始条件非常敏感,具有较高的密钥灵敏度和抵抗差分攻击的能力。同时,比特级与像素级的双重置乱,进一步提高了系统安全性。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号