CN104851071B - 一种基于三维混沌系统的数字图像加密方法 - Google Patents

一种基于三维混沌系统的数字图像加密方法 Download PDF

Info

Publication number
CN104851071B
CN104851071B CN201510266509.5A CN201510266509A CN104851071B CN 104851071 B CN104851071 B CN 104851071B CN 201510266509 A CN201510266509 A CN 201510266509A CN 104851071 B CN104851071 B CN 104851071B
Authority
CN
China
Prior art keywords
pixel
image
point
key stream
msub
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.)
Expired - Fee Related
Application number
CN201510266509.5A
Other languages
English (en)
Other versions
CN104851071A (zh
Inventor
付冲
孙晶
王雪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Northeastern University China
Original Assignee
Northeastern University China
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Northeastern University China filed Critical Northeastern University China
Priority to CN201510266509.5A priority Critical patent/CN104851071B/zh
Publication of CN104851071A publication Critical patent/CN104851071A/zh
Application granted granted Critical
Publication of CN104851071B publication Critical patent/CN104851071B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明一种基于三维混沌系统的数字图像加密方法,属于图像加密技术领域,本发明所采用的置乱方法基于像素交换机制,有效克服了经典混沌置乱方法存在的周期性、不动点以及图像形状限制三个缺点;在密钥流元素的使用过程中,每一个密钥流元素均在明文像素的控制下进行循环移位操作,以达到密钥流与明文相关的目的;由于循环移位操作属于贴近底层硬件的位操作,具有极高的执行效率,不会对系统的运算效率有较为明显的影响;此外,由于明文并未改变混沌系统的迭代以及状态变量的量化过程,而是在加密过程中动态改变密钥流元素的值,因此密钥流具备可复用性,这对于要求进行多轮加密的高安全性应用具有潜在的优势。

Description

一种基于三维混沌系统的数字图像加密方法
技术领域
本发明属于图像加密技术领域,具体涉及一种基于三维混沌系统的数字图像加密方法。
背景技术
近年来,随着多媒体与计算机网络技术的飞速发展,数字图像作为最直观的信息载体已成为人们进行信息交流的重要手段。越来越多的数字图像在以Internet、无线网络等为代表的开放性网络中传播,极大的方便了信息的访问与共享;与此同时,商业、金融、医疗、科研、军事、政治等诸多敏感领域的图像信息在开放网络环境下的传输存在着巨大的安全隐患,经常会遭遇到各种潜在的人为攻击,包括信息的非法获取、篡改与发布等,给信息拥有者造成巨大的损失;
现代密码学中的常见算法,如Triple-DES(三重-数据加密标准)、AES(高级加密标准)以及IDEA(国际数据加密算法)等,均可以应用于图像加密,保护图像信息的安全。然而,与普通文本信息相比,数字图像具有容量大、冗余度高、可理解性好等特点;以上经典算法均未考虑到图像信息的这些特有性质,因此并不适合于图像加密;尤其近年来随着宽带网络的大量普及,经典算法在加密速度上已越来越不能满足日益增长的图像实时安全传输的需求;
近年来混沌理论的发展为密码学提供了一个全新的思路;自上世纪90年代中期以来,很多学者发现混沌学与密码学之间存在着天然的联系;混沌系统具有的初值与系统参数极端敏感性、遍历性、轨道不可预测性以及良好的伪随机性等一系列特性,使其能够很好的满足构建一个安全性能良好的密码系统的需求。基于混沌动力学构造的加密系统,提供了安全性与加密效率的一个良好的平衡,其既具有很高的安全性保证,又具有软、硬件实现简单,速度较快的特点,特别适合于对数据量较大的数字图像进行加密,实现数字图像的实时、安全传输。目前,混沌图像加密算法已成为图像信息安全的主流技术和研究热点,具有极大的应用潜力;
1998年,美国学者Jessica Fridrich在知名国际期刊“International Journalof Bifurcation and Chaos”上发表了混沌图像加密的奠基性论文“Symmetric ciphersbased on two-dimensional chaotic maps”,在该文中首次提出了一种通用的图像加密架构,如图1所示。
该架构通过“置乱”(confusion)与“扩散”(diffusion)两个核心模块来实现一个安全的加密系统。在置乱阶段,图像中每个像素点的位置以一种伪随机的方式被打乱,但像素值通常保持不变;置乱操作通常基于保面积可逆混沌映射实现,常见的有Arnold cat映射,baker映射以及standard映射;为了达到充分置乱的目的,置乱过程可迭代多轮(m>1);对于扩散过程,除了改变每个点的像素值以外,其另一个核心功能是将每个像素点的影响扩散至整个密文图像,从而保证加密系统可有效抵御差分攻击。所谓差分攻击是指攻击者采用相同的密钥,加密两幅具有极其微小差异(例如一个比特)的明文图像,进而通过对比两幅密文图像,分析出所使用的密钥流乃至密钥情况;因此,若一个像素值的微小改变可有效的扩散到整幅密文图像中,即:使用相同的密钥加密两幅具有微小差异的图像,得到的两个密文图像是完全不同的,则差分攻击是无效的;为达到扩散的目的,目前普遍采用的方法是:对某个像素值的改变,依赖于该像素点所有前面已加密的像素值的累积效应。在此机制的作用下,任意改变明文图像中的一个像素点的值,该差异将会被扩散到后续的所有像素点中;在下一轮加密过程中,这些被扩散的点将被置乱到图像的不同位置中;如此经过多轮(n>1)置乱-扩散操作,一个小的差异将会被扩散到整幅密文图像中,从而系统具备抗差分攻击能力;加密系统的密钥为控制置乱-扩散过程的混沌系统的初始条件(状态变量初始值),在某些情况下其系统参数也可以作为密钥;
由以上讨论可知:
(1)混沌系统所具有的多个初始值与系统参数保证了加密系统具有足够大的密钥空间,以抵御穷举攻击;
(2)混沌系统所具有的初值与系统参数极端敏感性,保证了加密系统具有密钥敏感性;
(3)扩散操作改变了明文图像的像素值,密文图像像素值的分布具有良好的随机性,保证了加密系统具有抗统计攻击能力;
(4)通过多轮“置乱”与“扩散”两种操作的配合,使加密系统具有明文敏感性,即抗差分攻击能力。
在其后十余年间,世界各国学者以Fridrich所提出的架构为基础,对基于混沌的数字图像加密技术已经进行了广泛深入的研究,取得了诸多成果;与此同时,针对此项技术的密码学分析工作也蓬勃展开;近年来学者们相继发现在现有的很多方案中,存在以下共性缺点:
(1)置乱方法
①数字图像是由二维平面上的离散的像素点构成的;因此,用于实现图像置乱的混沌映射也必须进行相应的离散化操作;混沌系统是一种非线性非周期系统,但经离散化的混沌系统一般不再具有非周期性;这意味着一幅图像在经离散混沌映射置乱若干轮后,将有可能回到其初始状态,从而失去了置乱的意义;
②现有的保面积可逆混沌映射,如cat映射,baker映射以及standard映射,只能应用于正方形图像;对于更为一般的长方形图像,必须首先将其转换为正方形,这无疑增加了系统的运算;
③对于cat,baker以及standard等常用映射,坐标点(0,0)为不动点,即:使用此类映射置乱图像时,不论参数为多少,图像左上角第一个像素点都将保持不动;为克服此问题,需要对这些不动点进行专门的处理,这同样增加了系统的运算;
(2)扩散方法
在大多数现有方案中,用于扩散的密钥流仅与密钥相关,即如果密钥不加以更改,相同的密钥流将用于加密不同的明文图像;此类设计方法在单轮加密的情况下,极易受到选择明文或已知明文攻击;例如,攻击者可构造一幅由特殊像素值构成的明文图像(例如全白或全黑图像),应用加密系统对该图像进行加密;现代密码学的一个基本要求是密码算法本身是完全公开的;攻击者基于对加密算法的掌握,通过将密文图像与明文图像相比较,可得到所使用的密钥流;而基于实现代价考虑,在绝大部分实际应用中,加密系统一般不采用一次一密机制,因此密钥流的破解意味着加密系统的失效;
解决该问题的有效策略是将密钥流元素与明文相关;目前主流的方法是是让明文参与到密钥流元素的生成过程中,其典型代表为文献“A chaos-based image encryptionalgorithm with variable control parameters,Chaos,Solitons and Fractals,41(4),1773-1783,2009”(SCI影响因子1.503,被引用145次,以下简称文献[1])所提出的方法,该方法通过明文像素值控制产生一个密钥流元素所需的混沌系统迭代次数,以达到密钥流与明文相关的目的,但该方法存在两点不足:①迭代次数的增加使加密系统的效率有所降低;②由于密钥流生成过程与明文的相关性,密钥流不再能够被不同轮的加密操作所复用,即每轮加密要独立产生新的密钥流,这也在一定程度上降低了系统的效率。
发明内容
针对现有技术的不足,本发明提出一种基于三维混沌系统的数字图像加密方法,所采用的置乱方法基于像素交换机制,有效克服了经典混沌置乱方法存在的周期性、不动点以及图像形状限制三个缺点;在密钥流元素的使用过程中,每一个密钥流元素均在明文像素的控制下进行循环移位操作,以达到密钥流与明文相关的目的;由于循环移位操作属于贴近底层硬件的位操作,具有极高的执行效率,不会对系统的运算效率有较为明显的影响;此外,由于明文并未改变混沌系统的迭代以及状态变量的量化过程,而是在加密过程中动态改变密钥流元素的值,因此密钥流具备可复用性,这对于要求进行多轮加密的高安全性应用具有潜在的优势。
一种基于三维混沌系统的数字图像加密方法,包括以下步骤:
步骤1、由加密者设置加密密钥,即作为Lorenz系统的状态变量初始值;
步骤2、将待加密图像像素按由左至右、由上至下的顺序展开,获得一个一维数组;
步骤3、对Lorenz系统进行预迭代,使其充分进入混沌状态;
步骤4、将预迭代后所获得的状态变量重新作为Lorenz系统的状态变量初始值;
步骤5、对Lorenz系统执行一次迭代,根据得到的Lorenz系统的x状态变量当前值,对一维数组中的像素实施置乱操作,以消除相邻像素间的相关性;
具体为:按照自左向右的顺序,依次将一维数组中每一个像素点与其后面的某一个位置的像素点进行交换,被交换像素点的坐标由Lorenz系统x状态变量、图像大小和当前像素点位置确定,将一个像素点交换完成后,根据Lorenz系统的y状态变量和z状态变量获得密钥流元素,并进行存储;
步骤6、判断是否一维数组中所有像素点均完成置乱操作,若是,则执行步骤7,否则返回执行步骤5;
步骤7、根据存储的密钥流元素,对置乱后的图像实施扩散操作,改变图像中每个像素点的值,并将每个像素点的影响扩散至整个密文图像;
所述的扩散操作共分两轮,其中,第一轮扩散操作:从图像左上角第一个点开始,直至右下角最后一个点结束,方向为自左向右,自上向下;第二轮扩散操作:从图像右下角最后一个点开始,直至左上角第一个点结束,方向为自下向上,自右向左;
步骤8、将置乱扩散操作之后获得的一维数组进行存储,完成对图像的加密。
步骤5所述的根据得到的Lorenz系统的x状态变量当前值,对一维数组中的像素实施置乱操作,具体步骤如下:
步骤5-1、将一维数组中每一个像素点的位置与其后面的某一个像素点的位置进行交换;
被交换像素点的坐标Objectpos计算公式如下:
Objectpos=Currentpos+(1+int15(abs(xn))mod(W×H-Currentpos)) (1)
其中,Currentpos表示当前操作的像素点位置,abs()函数表示返回一个数的绝对值,int15()函数表示返回一个数的前15位有效数字,mod运算符表示求模,即求余数;W表示待加密图像的宽,H表示待加密图像的高;xn表示Lorenz系统的x状态变量当前值,n表示预迭代后的迭代次数,即第n次迭代对应第n个像素点的加密操作;
步骤5-2、根据Lorenz系统的y状态变量和z状态变量获得密钥流元素进行储存;
对Lorenz系统的其他状态变量进行量化,公式如下:
k_forn=int15(yn)mod 2L (2)
k_bakn=int15(zn)mod 2L (3)
其中,k_forn表示根据状态变量yn获得的密钥流元素,k_bakn表示根据状态变量zn获得的密钥流元素,L表示图像的色彩深度,yn表示Lorenz系统的y状态变量当前值,zn表示Lorenz系统的z状态变量当前值;
步骤5-3、将获得的密钥流元素进行存储。
步骤6所述的判断是否一维数组中所有像素点均完成置乱操作,其中,一维数组中最后一个像素点位置不进行交换,但需求得密钥流元素。
步骤7所述的根据存储的密钥流元素,对置乱后的图像实施扩散操作,具体步骤如下:
步骤7-1、第一轮扩散操作,从图像左上角第一个点开始,直至右下角最后一个点结束,方向为自左向右,自上向下;具体如下:
步骤7-1-1、对存储的密钥流元素k_forn实施循环左移操作;
移动位数公式如下:
shift_num=Pn-1mod L (4)
其中,shift_num表示移动位数,Pn-1表示当前操作点的前一个点的像素值,初始值p0为[0,2L]之间的整型常量,mod运算符表示求模,即求余数;L表示图像的色彩深度;
步骤7-1-2、根据密钥流元素k_forn对当前像素点实施加密;
加密公式如下:
其中,cn表示输出的密文像素值,pn表示当前操作点的像素值,cn-1表示前一个已加密点的密文像素值,初始值c0为[0,2L]之间的整型常量,表示按位异或操作;
步骤7-1-3、返回执行步骤7-1-1,直至所有像素点均完成第一轮扩散操作;
步骤7-2、第二轮扩散操作,从图像右下角最后一个点开始,直至左上角第一个点结束,方向为自下向上,自右向左,具体为:对存储的密钥流元素k_bakn实施循环左移操作,根据密钥流元素k_bakn对当前像素点实施加密,反复执行上述过程,直至所有像素点均完成第二轮扩散操作。
步骤7-1-2所述的根据密钥流元素k_forn对当前像素点实施加密,其解密公式如下:
本发明优点:
本发明所提出的基于三维混沌系统的数字图像加密方法,有效解决了现有技术存在的共性缺陷;本方法基于Lorenz混沌系统构建,在加密过程中,图像信息以一维形式进行表达,即:将图像像素按由左至右、由上至下的顺序存储于一个一维数组中,在置乱阶段,图像中的每一个像素点依次与其后面的某一个像素点进行交换,而交换对象的坐标由Lorenz系统的x状态变量确定,在扩散阶段,置乱后的信息进行两轮扩散操作,其方向相对于二维图像分为“由左至右、由上至下”和“由下至上、由右至左”;文献“A chaos-based digitalimage encryption scheme with an improved diffusion strategy,Optics Express,20(3),2363-2378,2012”(SCI影响因子3.525,被引用69次)中已证明,此种扩散方法通过两轮操作即可获得理想的安全性,两轮操作所使用的密钥流分别由Lorenz系统的y、z状态变量产生,在密钥流元素的使用过程中,每一个密钥流元素均在明文像素的控制下进行循环移位操作,以达到密钥流与明文相关的目的;由于循环移位操作属于贴近底层硬件的位操作,具有极高的执行效率,不会对系统的运算效率有较为明显的影响;此外,由于明文并未改变混沌系统的迭代以及状态变量的量化过程,而是在加密过程中动态改变密钥流元素的值,因此密钥流具备可复用性。这对于要求进行多轮加密的高安全性应用具有潜在的优势;
测试表明,本发明提出的数字图像加密方法,其置乱效果优于基于保面积混沌映射的置乱方法,其密钥流与明文相关的计算代价低于现有主流方法。
附图说明
图1为混沌图像加密方法的通用体系结构图;
图2为本发明一种实施例的基于三维混沌系统的数字图像加密方法流程图;
图3为本发明一种实施例的512×512大小256级灰度baboon(狒狒)图像;
图4为本发明一种实施例的参与测试的7幅标准图像示意图,其中,图(a)为avion(军机)标准图像示意图,图(b)为baboon(狒狒)标准图像示意图,图(c)为barche(巴歇)标准图像示意图,图(d)为house(房子)标准图像示意图,图(e)为Lena(莱娜)标准图像示意图,(f)为peppers(辣椒)标准图像示意图,图(g)为portofino(波托菲诺)标准图像示意图;
图5为本发明一种实施例的对明文图像应用不同置乱方法得到的置乱图,其中,图(a)为应用本发明方法置乱1轮后的结果示意图,图(b)为应用cat映射置乱1轮后的结果示意图,图(c)为应用cat映射置乱2轮后的结果示意图,图(d)为应用cat映射置乱3轮后的结果示意图,图(e)为应用baker映射置乱1轮后的结果示意图,图(f)为应用baker映射置乱2轮后的结果示意图,图(g)为应用baker映射置乱3轮后的结果示意图,图(h)为应用standard映射置乱1轮后的结果示意图,图(i)为应用standard映射置乱2轮后的结果示意图,图(j)为应用standard映射置乱3轮后的结果示意图;
图6为本发明一种实施例的直方图分析示意图,其中,图(a)为baboon(狒狒)图像,图(b)为图(a)的直方图,图(c)为baboon(狒狒)密文图像,图(d)为图(c)的直方图;
图7为本发明一种实施例的相邻像素相关性可视化测试示意图,其中,图(a)为baboon图像水平方向相关性示意图,图(b)为baboon图像垂直方向相关性示意图,(c)为baboon图像对角线方向相关性示意图,图(d)为baboon密文图像水平方向相关性示意图,图(e)为baboon密文图像垂直方向相关性示意图,图(f)为baboon密文图像对角线方向相关性示意图;
图8为本发明一种实施例的baboon图像的密文图像与应用不同密钥的解密结果示意图,其中,图(a)为baboon(狒狒)图像的密文图像,图(b)为表4中baboon对应第一行密钥得到的解密图像,图(c)为表4中baboon对应第二行密钥得到的解密图像,图(d)为表4中baboon对应第三行密钥得到的解密图像,图(e)为表4中baboon对应第四行密钥得到的解密图像。
具体实施方式
下面结合附图对本发明一种实施例做进一步说明。
本发明实施例中,基于三维混沌系统的数字图像加密方法,方法流程图如图2所示,包括以下步骤:
步骤1、由加密者设置加密密钥,即作为Lorenz系统的状态变量初始值;
本发明实施例中,使用的Lorenz系统数学公式如下:
其中,x、y、z为状态变量,t代表时间,σ、ρ、β为系统参数,当σ=10,ρ=28,β=8/3时,系统处于混沌状态;
设待加密图像的大小为W×H;本发明实施例中,对一个大小为512×512的256级灰度baboon图像(如图3所示)进行加密,该图像为国际标准测试图像库中常用图像之一;
由加密者设置加密密钥,即Lorenz系统的状态变量初始值(x0,y0,z0);本实施例中设为(x0=19.3295439058107,y0=11.3582814798081,z0=24.3474137484743);
步骤2、将待加密图像像素按由左至右、由上至下的顺序展开,获得一个一维数组;
本发明实施例中,将待加密图像像素按由左至右、由上至下的顺序展开至一个一维数组中,记为:P={p1,p2,...,pW×H},其中,p1代表第一个像素点的值,p2代表第二个像素点的值,pW×H代表第W×H个像素点的值;本实施例中P={145,55,...,4};
步骤3、对Lorenz系统进行预迭代,使其充分进入混沌状态;
本发明实施例中,预迭代Lorenz系统N0次(N0为常量,一般取N0≥200,本发明实施例中取值为200),使其充分进入混沌状态;
对方程(7)的求解采用四阶龙格-库塔(Runge-Kutta)法,其公式为:
其中,
当j=1时,
当j=2,3时,
当j=4时,
h表示步长,本发明实施例中,取0.005;xn、yn、zn代表从上一组状态变量xn-1、yn-1、zn-1得到的状态变量新的当前值;
步骤4、将预迭代后所获得的状态变量重新作为Lorenz系统的状态变量初始值;
本发明实施例中,预迭代结束后,正式迭代得到的状态变量序列重新从1开始计数,其形式为(x1,y1,z1),(x2,y2,z2),(x3,y3,z3),...
步骤5、对Lorenz系统执行一次迭代,根据得到的Lorenz系统的x状态变量当前值xn对一维数组中的像素实施置乱操作,以消除相邻像素间的相关性;
具体为:按照自左向右的顺序,依次将一维数组中每一个像素点与其后面的某一个位置的像素点进行交换,被交换像素点的坐标由Lorenz系统x状态变量、图像大小和当前像素点位置确定,将一个像素点交换完成后,根据Lorenz系统的y状态变量和z状态变量获得密钥流元素,并进行存储;
具体步骤如下:
步骤5-1、将一维数组中每一个像素点的位置与其后面的某一个像素点的位置进行交换;
被交换像素点的坐标Objectpos计算公式如下:
Objectpos=Currentpos+(1+int15(abs(xn))mod(W×H-Currentpos)) (1)
本发明实施例中:
Objectpos=1+(1+130637354450783mod 262143)=220948
其中,Currentpos表示当前操作的像素点位置,abs()函数表示返回一个数的绝对值,int15()函数表示返回一个数的前15位有效数字,mod运算符表示求模,即求余数;W表示待加密图像的宽,H表示待加密图像的高;xn表示Lorenz系统的x状态变量当前值,n表示预迭代后的迭代次数,即第n次迭代对应第n个像素点的加密操作;
步骤5-2、根据Lorenz系统的y状态变量和z状态变量获得密钥流元素进行储存;
对Lorenz系统的其他状态变量进行量化,公式如下:
k_forn=int15(yn)mod 2L (2)
k_bakn=int15(zn)mod 2L (3)
本发明实施例中:
k_forn=605048044177774mod 28=110
k_bakn=346489578307586mod 28=2
其中,k_forn表示根据状态变量yn获得的密钥流元素,k_bakn表示根据状态变量zn获得的密钥流元素,L表示图像的色彩深度,yn表示Lorenz系统的y状态变量当前值,zn表示Lorenz系统的z状态变量当前值;
步骤5-3、将获得的密钥流元素进行存储;
由于扩散操作在置乱操作结束后进行,本发明实施例中,将k_forn和k_bakn缓存于两个一维数组KSfor和KSbak中;
步骤6、判断是否一维数组中所有像素点均完成置乱操作,若是,则执行步骤7,否则返回执行步骤5;
所述的一维数组中最后一个像素点位置不进行交换,但需求得密钥流元素。
步骤7、根据存储的密钥流元素,对置乱后的图像实施扩散操作,改变图像中每个像素点的值,并将每个像素点的影响扩散至整个密文图像;
本发明实施例中,对置乱后的图像实施扩散操作,改变图像中每个像素点的值并将每个像素点的影响扩散至整个密文图像;扩散操作共分两轮,分别使用密钥流KSfor和KSbak。第一轮扩散操作从图像左上角第一个点开始,直至右下角最后一个点结束,方向为自左向右,自上向下;第二轮扩散操作从图像右下角最后一个点开始,直至左上角第一个点结束,方向为自下向上,自右向左;由于图像数据存储于一维数组P中,第一轮扩散操作按自左向右的顺序对P中的每一个像素实施即可。对于第二轮扩散操作,可首先将一维数组P的元素缓存至一二维临时数组,然后按指定顺序读取该二维数组,将读出来的数据写入(覆盖)P即可;最后采用与第一轮相同的方法完成扩散操作;
具体步骤如下:
步骤7-1、第一轮扩散操作,从图像左上角第一个点开始,直至右下角最后一个点结束,方向为自左向右,自上向下;具体如下:
步骤7-1-1、对存储的密钥流元素k_forn实施循环左移操作;
移动位数公式如下:
shift_num=Pn-1mod L (4)
其中,shift_num表示移动位数,Pn-1表示当前操作点的前一个点的像素值,初始值p0为[0,2L]之间的整型常量,mod运算符表示求模,即求余数;L表示图像的色彩深度;
本发明实施例中,p0设为73,将k_forn循环左移73mod 8=1位,其值由110(二进制为01101110)变为220(二进制为11011100);
步骤7-1-2、根据密钥流元素k_forn对当前像素点实施加密;
加密公式如下:
其中,cn表示输出的密文像素值,pn表示当前操作点的像素值,cn-1表示前一个已加密点的密文像素值,初始值c0为[0,2L]之间的整型常量,表示按位异或操作;
本发明实施例中,c0同样设为73,当前pn的值为125,得到密文像素点的值为:
步骤7-1-2所述的根据密钥流元素k_forn对当前像素点实施加密,其解密公式如下:
步骤7-1-3、返回执行步骤7-1-1,直至所有像素点均完成第一轮扩散操作;
步骤7-2、第二轮扩散操作,从图像右下角最后一个点开始,直至左上角第一个点结束,方向为自下向上,自右向左,具体为:对存储的密钥流元素k_bakn实施循环左移操作,根据密钥流元素k_bakn对当前像素点实施加密,反复执行上述过程,直至所有像素点均完成第二轮扩散操作;
步骤8、将置乱扩散操作之后获得的一维数组进行存储,完成对图像的加密。
附:
加密系统安全性与效率测试分析
安全性与加密效率是衡量一个加密系统优劣的两个核心指标;本发明实施例中,针对以上两个指标,对本发明所提出的系统进行全面的测试并对结果进行分析,以验证其有效性及性能优势;具体测试项目包括置乱效果分析、抗穷举攻击(密钥空间)分析、抗统计攻击分析(包括直方图,相邻像素相关性、信息熵)、密钥敏感性分析、抗差分攻击(已知/选择明文攻击中最常用的手段)分析,以及“密钥流与明文相关”代价分析;
为充分表明本发明方法的通用性,如图4中图(a)~图(g)所示,参与测试的图像共计7幅,全部从国际标准测试图像库中选取,图像大小为512×512像素,格式为256级灰度。
(1)置乱效果测试与分析
分别使用本发明所提出的置乱方法与三种经典混沌置乱方法对baboon(狒狒)图像进行置乱;为更清晰的对三种混沌映射所选用的密钥加以说明,这里分别给出cat映射,baker映射以及standard映射的定义,如下式(9)~(11)所示:
其中,xi、yi表示像素点的原位置,xi+1、yi+1表示变换后的位置,N表示正方形图像的边长;p、q表示cat映射的控制参数,作为相应的置乱密钥;mod表示取模,即求余数。
其中,Bd(xi+1,yi+1)表示i+1次迭代中的baker映射状态变量,nj表示baker映射的控制参数,作为相应的置乱密钥;ti表示分片的个数。
且K>0 (11)
其中,K表示standard映射的控制参数,作为相应的置乱密钥;
以上4种方法的密钥均为随机选择,具体为:
①本发明方法使用密钥:(x0=19.3295439058107,y0=3582814798081,z0=24.3474137484743);
②cat映射使用密钥:(p=330,q=194);
③baker映射使用密钥:(n0=32,n1=64,n2=32,r3=16,n4=64,ns=16,n6=32,n7=64,n8=16,n9=64,n10=16,n11=32,n12=64);
④standard映射使用密钥:(K=928);
从图5中图(a)~图(j)可以看到,本发明所提出的置乱方法在效果上优于三种经典的混沌置乱方法;本发明方法经过一轮操作即可达到理想的置乱效果,而对于baker映射和standard映射,需要执行三轮操作才能达到可接受的效果。Cat映射虽然对置乱轮数不敏感,但置乱图像中仍然存在较为明显的条纹。对于其余六幅图像,可得到相同的结果,考虑篇幅关系此处不再给出,但在以下的定量分析中,将给出全部图像的测试结果。
图像的相邻像素相关性是定量描述一幅图像置乱效果的核心指标;对于一个具有明确视觉含义的数字图像,其每一个像素点在水平、垂直以及对角线方向与其相邻像素点间均具有很高的相关性;显然,一幅图像置乱的越充分,其相邻像素相关性就越小;求取一幅图像的相邻像素相关性可基于以下步骤:
首先在每个相邻方向上从图像中各随机选取5000对相邻点;然后,使用公式(12)-(14)计算图像的相关系数rx,y
其中,xj和yj分别是图像中两个相邻点的像素值,Ns为采样点的个数;
表1给出了采用不同置乱方法得到的图像的相邻像素相关性对比;从表中可以看到,使用本发明方法得到的置乱图像的相邻像素相关性远小于所列的其它三种方法,这进一步验证了上述视觉检验结果;
表1不同方法得到的置乱图像相邻像素相关性对比
(2)抗穷举攻击(密钥空间)分析
密钥空间是指在加密或解密过程中可用的不同密钥的总量,对于一个安全的加密系统,密钥空间应该足够大以使穷举攻击(暴力破解)失效,根据现有计算机的运算速度及未来几年内的发展趋势,目前密码学界认为密钥空间大于2100即可有效抵御穷举攻击,本发明所提出的加密系统的密钥由Lorenz系统3个状态变量的初始值构成,本加密系统在实现时,所有状态变量均定义为双精度实型(64位double型),根据IEEE浮点数标准,该数据类型的有效精度为53位,因此本发明所提出的加密系统的密钥空间大小为2159
(3)抗统计攻击分析
(a)直方图分析
直方图直观的描述了一幅图像的像素值频率分布。对于一个设计良好的图像加密系统,其输出的密文图像像素值频率应服从均匀分布,以隐藏明文信息中的冗余并阻止攻击者观测到任何有关明文与密文间关联的信息。通过图6中图(a)图~(d)可以看出,密文图像的直方图与明文图像的直方图不具备任何相似性,且呈良好的均匀分布,因此可有效抵御频率分析。
(b)相邻像素相关性分析
对于一个设计良好的图像加密系统,其输出的密文图像的相邻像素间应不具备任何相关性,即式(12)所定义的相关系数接近于理想值0;图7中图(a)~图(f)给出了明文图像与密文图像在水平方向、垂直方向及对角线方向的相邻像素相关性可视化测试结果,该测试将一对相邻像素的像素值作为(x,y)坐标,以点的形式绘制于二维平面上,从测试结果可以看出,对于明文图像,绝大部分的点都集中在对角线附近,说明相邻像素间具有极强的相关性,而对于密文图像,所有点均匀分布于灰度平面上,说明其相邻像素间已不具有相关性。
表2中列出了明文图像与对应的密文图像的相关系数。从表中可以看到,本加密方法得到的密文图像的相关系数接近于理想值0,因此可有效抵御相关分析;
表2明文与密文图像的相关系数
(c)信息熵分析
信息熵是表征一个信源随机性与不可预测性的重要指标,信息熵通常由平均信息量来描述,即表达一个信源中的一个码元所需的平均比特数,其定义为:
其中,X表示由n个不同码元{x1,...,xn}构成的信源,P(xi)为码元xi出现的概率;由式(15)可知,对于一个256级灰度的纯随机图像,其信息熵的理论值为H(X)=8;因此对于一个设计良好的图像加密系统,其输出的密文图像的信息熵应尽可能接近于8;
表3给出了利用公式(15)得出的明文图像与对应的密文图像的信息熵;从表中可以看到,全部密文图像的信息熵都极其接近理想值8,这意味着可以将本加密系统输出的密文图像看作一个随机信息源;
表3明文与密文图像的信息熵
通过以上三个方面的测试可知,本发明构建的图像加密系统具有良好的抗统计攻击能力。
(4)密钥敏感性测试
密钥敏感性是加密系统设计的一项基本准则,该属性要求当应用任意两个具有极小差异的密钥加密相同的明文时,将产生完全不同的密文;反之,当攻击者尝试使用与加密密钥极为相近的解密密钥实施解密时,不能得到任何与明文相关的信息;
对本加密系统的密钥敏感性采取如下步骤进行测试:
明文图像首先被一随机选定的密钥所加密:
然后对得到的密文图像分别使用4个解密密钥进行解密,4个解密密钥中,第1个与加密密钥完全相同,其余3个只在一个状态变量上与加密密钥在第15位数字上有1-bit的差异(双精度浮点数的有效数字为15位);
表4中列出了对每一幅测试图像所应用的解密密钥情况,表中同时给出了解密图像与原始图像间的差异度。图8中图(a)为baboon图像的密文图像,图(b)~图(e)为应用表4中所列出的密钥得到的解密图像;对其它测试图像可得到相似的结果,由于篇幅关系不再给出;
表4密钥敏感性测试结果
由以上测试结果可知,本发明提出的图像加密系统具有良好的密钥敏感性。
(5)抗差分攻击测试
差分攻击是已知/选择明文攻击中最常用的一种手段。所谓差分攻击是指攻击者采用相同的密钥,加密两幅具有极其微小差异(例如一个比特)的明文图像。通过对比得到的两幅密文图像,分析出所使用的密钥流乃至密钥情况;因此,若一个像素值的微小改变可有效的扩散至整幅密文图像,则差分攻击是无效的;
NPCR(number of pixels change rate)(像素改变比率)与UACI(unifiedaverage change intensity)(像素值的平均标准改变强度)衡量一个图像加密系统抗差分攻击能力的两个核心指标。NPCR用于测试两幅图像间的差异度;设P1(i,j)和P2(i,j)分别表示P1与P2两幅图像位于(i,j)点的像素值,NPCR的定义为:
其中,D(i,j)的定义为:
对于两幅纯随机图像,其NPCR理论值为:
其中,L为图像的色彩深度;例如,对于2幅8位纯随机灰度图像,其NPCR理论值为99.609%。
UACI用于测试两幅图像间的平均差异强度,其定义为:
对于两幅纯随机图像,其UACI理论值为:
例如,对于2幅8位纯随机灰度图像,其UACI理论值为33.464%。
对于一个设计良好的图像加密系统,其NPCR与UACI指标应尽可能接近理论值。对每一幅明文图像,选取3个点进行三次测试,以体现测试结果的公平性;三个点的选取分别为图像左上角第一个点、右下角最后一个点以及一个随机选取的点,对每个点的值改变幅度为1-bit。采用相同的密钥对改变前后的明文图像实施加密,得到的NPCR与UACI如表5所示。由表可见,测试结果与理论值高度吻合,说明本加密系统可有效抵御差分攻击。
表5抗差分攻击测试结果
(6)“密钥流与明文相关”计算代价测试
本发明方法与文献[1]在“密钥流与明文相关”上的计算代价对比测试结果如表6所示。算法均采用C语言实现,测试平台为Intel Xeon(R)CPU(E3-1230,3.30GHz),4Gb内存,Windows 7操作系统。由于本发明专利采用的是三维Lorenz系统,而文献[1]中选用的是一维logistic映射,为公平比较,这里将两个方案所采用的混沌系统统一为Lorenz系统,并将文献[1]的消耗时间除以3;从表6中所列结果可以看到,本发明方法在“密钥流与明文相关”上的计算代价上明显低于文献[1]方法。
表6本发明方法与文献[1]在“密钥流与明文相关”操作上的计算代价(单位:毫秒)
基于以上全部测试分析结果可知,本发明所提出的具有良好的安全性,可有效抵御各类常见的攻击手段,同时具有理想的计算效率。因此,本发明方法非常适合于宽带开放性网络环境下的数字图像安全、快速传输。

Claims (4)

1.一种基于三维混沌系统的数字图像加密方法,包括以下步骤:
步骤1、由加密者设置加密密钥,即作为Lorenz系统的状态变量初始值;
步骤2、将待加密图像像素按由左至右、由上至下的顺序展开,获得一个一维数组;
步骤3、对Lorenz系统进行预迭代,使其充分进入混沌状态;
步骤4、将预迭代后所获得的状态变量重新作为Lorenz系统的状态变量初始值;
步骤5、对Lorenz系统执行一次迭代,根据得到的Lorenz系统的x状态变量当前值,对一维数组中的像素实施置乱操作,以消除相邻像素间的相关性;
步骤6、判断是否一维数组中所有像素点均完成置乱操作,若是,则执行步骤7,否则返回执行步骤5;
步骤7、根据存储的密钥流元素,对置乱后的图像实施扩散操作,改变图像中每个像素点的值,并将每个像素点的影响扩散至整个密文图像;
所述的扩散操作共分两轮,其中,第一轮扩散操作:从图像左上角第一个点开始,直至右下角最后一个点结束,方向为自左向右,自上向下;第二轮扩散操作:从图像右下角最后一个点开始,直至左上角第一个点结束,方向为自下向上,自右向左;
步骤8、将置乱扩散操作之后获得的一维数组进行存储,完成对图像的加密;
其特征在于,
所述对Lorenz系统执行一次迭代,根据得到的Lorenz系统的x状态变量当前值,对一维数组中的像素实施置乱操作,以消除相邻像素间的相关性,具体为:
具体为:按照自左向右的顺序,依次将一维数组中每一个像素点与其后面的某一个位置的像素点进行交换,被交换像素点的坐标由Lorenz系统x状态变量、图像大小和当前像素点位置确定,将一个像素点交换完成后,根据Lorenz系统的y状态变量和z状态变量获得密钥流元素,并进行存储;所述根据得到的Lorenz系统的x状态变量当前值,对一维数组中的像素实施置乱操作,具体步骤如下:
步骤5-1、将一维数组中每一个像素点的位置与其后面的某一个像素点的位置进行交换;
被交换像素点的坐标Objectpos计算公式如下:
Objectpos=Currentpos+(1+int15(abs(xn))mod(W×H-Currenntpos)) (1)
其中,Currentpos表示当前操作的像素点位置,abs()函数表示返回一个数的绝对值,int15()函数表示返回一个数的前15位有效数字,mod运算符表示求模,即求余数;W表示待加密图像的宽,H表示待加密图像的高;xn表示Lorenz系统的x状态变量当前值,n表示预迭代后的迭代次数,即第n次迭代对应第n个像素点的加密操作;
步骤5-2、根据Lorenz系统的y状态变量和z状态变量获得密钥流元素进行储存;
对Lorenz系统的其他状态变量进行量化,公式如下:
k_forn=int15(yn)mod 2L (2)k_bakn=int15(zn)mod 2L (3)
其中,k_forn表示根据状态变量yn获得的密钥流元素,k_bakn表示根据状态变量zn获得的密钥流元素,L表示图像的色彩深度,yn表示Lorenz系统的y状态变量当前值,zn表示Lorenz系统的z状态变量当前值;
步骤5-3、将获得的密钥流元素进行存储。
2.根据权利要求1所述的基于三维混沌系统的数字图像加密方法,其特征在于,步骤6所述的判断是否一维数组中所有像素点均完成置乱操作,其中,一维数组中最后一个像素点位置不进行交换,但需求得密钥流元素。
3.根据权利要求1所述的基于三维混沌系统的数字图像加密方法,其特征在于,步骤7所述的根据存储的密钥流元素,对置乱后的图像实施扩散操作,具体步骤如下:
步骤7-1、第一轮扩散操作,从图像左上角第一个点开始,直至右下角最后一个点结束,方向为自左向右,自上向下;具体如下:
步骤7-1-1、对存储的密钥流元素k_forn实施循环左移操作;
移动位数公式如下:
shift_num=pn-1modL (4)
其中,shift_num表示移动位数,pn-1表示当前操作点的前一个点的像素值,初始值p0为[0,2L]之间的整型常量,mod运算符表示求模,即求余数;L表示图像的色彩深度;
步骤7-1-2、根据密钥流元素k_forn对当前像素点实施加密;
加密公式如下:
<mrow> <msub> <mi>c</mi> <mi>n</mi> </msub> <mo>=</mo> <mi>k</mi> <mo>_</mo> <msub> <mi>for</mi> <mi>n</mi> </msub> <mo>&amp;CirclePlus;</mo> <mo>{</mo> <mo>&amp;lsqb;</mo> <msub> <mi>p</mi> <mi>n</mi> </msub> <mo>+</mo> <mi>k</mi> <mo>_</mo> <msub> <mi>for</mi> <mi>n</mi> </msub> <mo>&amp;rsqb;</mo> <mi>mod</mi> <msup> <mn>2</mn> <mi>L</mi> </msup> <mo>}</mo> <mo>&amp;CirclePlus;</mo> <msub> <mi>c</mi> <mrow> <mi>n</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> </mrow>
其中,cn表示输出的密文像素值,pn表示当前操作点的像素值,cn-1表示前一个已加密点的密文像素值,初始值c0为[0,2L]之间的整型常量,表示按位异或操作;
步骤7-1-3、返回执行步骤7-1-1,直至所有像素点均完成第一轮扩散操作;
步骤7-2、第二轮扩散操作,从图像右下角最后一个点开始,直至左上角第一个点结束,方向为自下向上,自右向左,具体为:对存储的密钥流元素k_bakn实施循环左移操作,根据密钥流元素k_bakn对当前像素点实施加密,反复执行上述过程,直至所有像素点均完成第二轮扩散操作。
4.根据权利要求3所述的基于三维混沌系统的数字图像加密方法,其特征在于,步骤7-1-2所述的根据密钥流元素k_forn对当前像素点实施加密,其解密公式如下:
<mrow> <msub> <mi>p</mi> <mi>n</mi> </msub> <mo>=</mo> <mo>&amp;lsqb;</mo> <mi>k</mi> <mo>_</mo> <msub> <mi>for</mi> <mi>n</mi> </msub> <mo>&amp;CirclePlus;</mo> <msub> <mi>c</mi> <mi>n</mi> </msub> <mo>&amp;CirclePlus;</mo> <msub> <mi>c</mi> <mrow> <mi>n</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>+</mo> <msup> <mn>2</mn> <mi>L</mi> </msup> <mo>-</mo> <mi>k</mi> <mo>_</mo> <msub> <mi>for</mi> <mi>n</mi> </msub> <mo>&amp;rsqb;</mo> <mi>mod</mi> <msup> <mn>2</mn> <mi>L</mi> </msup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>6</mn> <mo>)</mo> </mrow> <mo>.</mo> </mrow>
CN201510266509.5A 2015-05-21 2015-05-21 一种基于三维混沌系统的数字图像加密方法 Expired - Fee Related CN104851071B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510266509.5A CN104851071B (zh) 2015-05-21 2015-05-21 一种基于三维混沌系统的数字图像加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510266509.5A CN104851071B (zh) 2015-05-21 2015-05-21 一种基于三维混沌系统的数字图像加密方法

Publications (2)

Publication Number Publication Date
CN104851071A CN104851071A (zh) 2015-08-19
CN104851071B true CN104851071B (zh) 2018-02-02

Family

ID=53850700

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510266509.5A Expired - Fee Related CN104851071B (zh) 2015-05-21 2015-05-21 一种基于三维混沌系统的数字图像加密方法

Country Status (1)

Country Link
CN (1) CN104851071B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106059749A (zh) * 2016-05-20 2016-10-26 李光余 一种数据处理方法以及装置
CN106778304B (zh) * 2016-12-09 2020-06-09 交通运输部水运科学研究所 一种具有明文相关置乱机制的快速混沌图像加密方法
CN106910156B (zh) * 2017-02-27 2019-07-19 东北大学 一种具有与明文相关密钥流生成机制的混沌图像加密方法
CN107633474B (zh) * 2017-04-16 2019-09-27 东北大学 一种具有快速密钥流生成过程的混沌彩色图像加密方法
CN107341757B (zh) * 2017-06-23 2021-02-05 黑龙江大学 基于Lorenz系统最优序列和K-L变换的图像加密方法
CN107563950A (zh) * 2017-09-08 2018-01-09 东北大学 一种安全高效的数字图像加密方法
CN107633175B (zh) * 2017-09-14 2020-11-03 交通运输部水运科学研究所 一种基于混沌的快速彩色图像加密方法
CN108234513A (zh) * 2018-01-23 2018-06-29 马鞍山博望科创生产力促进中心有限公司 一种数控车床远程控制信号传输系统
CN112800452B (zh) * 2021-03-19 2022-09-30 腾讯科技(深圳)有限公司 用户身份图像处理和识别的方法及装置
CN113992810B (zh) * 2021-10-21 2023-06-27 浙江工商大学 一种基于深度学习的敏捷图像加密方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103167213A (zh) * 2013-02-07 2013-06-19 东北大学 基于Cat映射与超混沌Lorenz系统的数字图像加密方法
CN103258312A (zh) * 2013-03-20 2013-08-21 东北大学 具有快速密钥流生成机制的数字图像加密方法
CN103281504A (zh) * 2013-05-30 2013-09-04 东北大学 一种具有双向扩散机制的混沌图像加密方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103167213A (zh) * 2013-02-07 2013-06-19 东北大学 基于Cat映射与超混沌Lorenz系统的数字图像加密方法
CN103258312A (zh) * 2013-03-20 2013-08-21 东北大学 具有快速密钥流生成机制的数字图像加密方法
CN103281504A (zh) * 2013-05-30 2013-09-04 东北大学 一种具有双向扩散机制的混沌图像加密方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A Symmetric Chaos-Based Image Cipher with an Improved Bit-Level Permutation Strategy;Chong Fu等;《Entropy》;20140210;第16卷(第2期);第770-788页 *
A Symmetric Image Encryption Scheme Using;Chong fu等;《2013 Ninth International Conference on Computational Intelligence and Security》;20131215;第724-728页 *

Also Published As

Publication number Publication date
CN104851071A (zh) 2015-08-19

Similar Documents

Publication Publication Date Title
CN104851071B (zh) 一种基于三维混沌系统的数字图像加密方法
CN106910156B (zh) 一种具有与明文相关密钥流生成机制的混沌图像加密方法
Fu et al. A novel chaos-based bit-level permutation scheme for digital image encryption
CN101739695B (zh) 一种基于三维Arnold映射的图像分组加密方法
CN104751403B (zh) 一种基于多混沌系统的明文相关图像加密方法
Pareek et al. Image encryption using chaotic logistic map
Huang et al. Implementation of gray image encryption with pixel shuffling and gray-level encryption by single chaotic system
CN103167213B (zh) 基于Cat映射与超混沌Lorenz系统的数字图像加密方法
CN106778304A (zh) 一种具有明文相关置乱机制的快速混沌图像加密方法
Wang et al. Application of matrix semi-tensor product in chaotic image encryption
CN103491279B (zh) 超混沌Lorenz系统的4-邻域异或图像加密方法
CN107633175A (zh) 一种基于混沌的快速彩色图像加密方法
CN103258312B (zh) 具有快速密钥流生成机制的数字图像加密方法
CN107239708A (zh) 一种基于量子混沌映射和分数域变换的图像加密方法
CN109903212A (zh) 一种基于H几何分形和Hilbert曲线的图像加密方法
CN107094072A (zh) 一种基于广义Henon映射的混合混沌加密方法
Man et al. An image segmentation encryption algorithm based on hybrid chaotic system
CN103455971A (zh) 三维Arnold变换和混沌序列结合的图像加密方法
CN103440613B (zh) 超混沌Rossler系统的彩色图像加密方法
CN103281504A (zh) 一种具有双向扩散机制的混沌图像加密方法
Telem et al. A simple and robust gray image encryption scheme using chaotic logistic map and artificial neural network
CN108319859A (zh) 一种位级同步置乱扩散和像素级环形扩散图像加密方法
Yahi et al. A color image encryption scheme based on 1D cubic map
CN112800444B (zh) 基于二维混沌映射的彩色图像加密方法
CN106407824A (zh) 一种图像加密方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180202

CF01 Termination of patent right due to non-payment of annual fee