基于正弦映射和Logistic混沌序列的图像加密方法

文档序号:6513367阅读:499来源:国知局
基于正弦映射和Logistic混沌序列的图像加密方法
【专利摘要】本发明涉及一种基于正弦映射和Logistic混沌序列的图像加密方法,其技术特征在于:记原始图像各像素点的灰度值为二维矩阵Q(x,y),并将图像的每个像素灰度值按位异或得到数值c,利用正弦映射得到混沌序列对原始图像以某种方式进行c次置乱,得到置乱后的图像像素矩阵Q1(x,y),再利用Logistic混沌系统产生的混沌序列与矩阵Q1(x,y)进行逐位异或运算,完成加密过程。本方法运用两种混沌映射对图像进行加密,具有隐蔽性强,密钥敏感性强,安全性好,抗攻击能力尤其是抗明文攻击能力强的优点,适合用于图像保密通信中。
【专利说明】基于正弦映射和Logistic混沌序列的图像加密方法
【技术领域】
[0001]本发明涉及一种基于正弦映射和Logistic混沌序列的图像加密新方法,属于信息安全领域,特别涉及图像加密领域,主要利用两种混沌序列对图像进行加密。
【背景技术】
[0002]随着多媒体技术的不断发展,数字图像克服了以往因数据量大而带来的存储及传输问题,它正在成为一种主流的信息表达方式。可不断发生的黑客事件以及网上盗版,严重制约着互联网应用的进一步发展。因而图像数据的保护越来越受到社会的普遍重视。
[0003]混沌系统以其随机性及对初值的敏感性越来越多地被应用于图像加密中,现阶段,主要的加密方法有对图像像素值置乱和对像素位置置乱或二者结合三种方法,但单一的混沌系统有时并不能满足图像加密的要求,而且由于选择性明文攻击、差分攻击、分割攻击等攻击方法的出现,加密的关键问题也正由原来的单一追求大密钥空间逐渐转向算法对密钥和明文都具有高度敏感性。
[0004]Logistic映射是由数学生态学家May于1976年提出的,其表达式为:
[0005]χη+1=μ Xn(1-Xn), n e N, Xn e (O, I) (2)
[0006]当3.569945<μ≤4时,Logistic映射将处于混沌状态,可以应用于图像加密中的密钥值。

【发明内容】

[0007]针对上述问题,本发明的提出一种基于正弦映射和Logistic混沌序列的图像加密新方法,是一种使用两种混沌系统的数字图像加密方法。本算法密钥空间足够大,密钥和明文都极具敏感性,且能够很好的抵抗明文攻击。
[0008]本发明为了达到上述目的,可以使用以下技术方案:
[0009]本发明提供了一种基于正弦映射和Logistic混沌序列的图像加密方法,其特征在于步骤如下:(I)选取规格为mXn的灰度图像作为原始图像,并获得第一图像像素值矩阵,将第一图像像素值矩阵中的每个值进行按位异或运算,得到第一数值;(2)选取第一初始值作为正弦映射的密钥,并将其代入正弦映射方程中迭代复数次得到第一组加密混沌序列;(3)在第一组加密混沌序列中随机从一元素开始,依次取m个元素,组成第一组序列,再随机从第一组加密混沌序列中一元素开始,依次取η个元素,组成第二组序列,并将第一组序列和第二组序列总顺次排序生成一行m列的第一矩阵以及η行一列的第二矩阵,再生成一个mXm的第一零矩阵和一个nXn的第二零矩阵;(4)将第一矩阵与第二矩阵按由小到大的顺序排列,获得两个排列矩阵,根据两个排列矩阵分别将第一零矩阵以及第二零矩阵转换成第一置乱矩阵以及第二置乱矩阵,并利用第一置乱矩阵和第二置乱矩阵对第一图像像素值矩阵作第一数值次置乱操作,即得到置乱后的第二图像像素值矩阵;(5)选取第二初始值作为Logistic混沛系统的密钥,并将其代入Logistic混沛系统方程中迭代复数次次得到第二组加密混沌序列;(6)从第二组加密混沌序列中随机从一元素开始,依次取mXn个元素,组成第三序列,并对第三序列做处理操作;(7)将第三序列的元素依次读取生成mXn的加密矩阵,并与置乱的第二图像像素矩阵中的元素进行逐位异或操作,获得最终加密的第三图像像素矩阵;(8)将加密的第三图像像素矩阵按照图像标准格式保存,得到最终的加密图像。
[0010]本发明所涉及的一种基于正弦映射和Logistic混沌序列的图像加密方法,还具有相应的解密步骤,以应用于对于图像的解码,从而验证版权等问题,具体步骤如下:(1)选取加密过程中使用的加密矩阵依次与加密的第三图像像素矩阵进行逐位异或操作,即获得加密过程中的置乱的第二图像像素矩阵;(2)对第一置乱矩阵和第二置乱矩阵求得第一逆矩阵和第二逆矩阵,对第二图像像素矩阵做第一数值次反置乱操作,即得到第一图像像素矩阵,从而得到解密图像。
[0011]进一步,加密过程中步骤2中的正弦映射,见公式(a):
[0012]χη+1= μ sin ( ^ χη), n=0, 1,2,...(a),
[0013]xn为迭代的密钥值。
[0014]进一步,加密过程中步骤4中对第一图像像素值矩阵进行置乱操作操作,见公式(b)
[0015]Q1=C2XQXD2 (b),
[0016]C2、D2为第一置乱矩阵和第二置乱矩阵,Q为第一图像像素值矩阵,Ql为第二图像
像素值矩阵。[0017]另外,加密过程中步骤6中的相应处理操作,见公式(C)
[0018]Sx2=mod(round(Sx2*1010), 256) (c)
[0019]round (A)表示对数值A进行取整运算,Sx2为第三序列中的值。
[0020]图像像素值矩阵本发明的有益效果
[0021]本发明的基于正弦映射和Logistic混沌序列的图像加密方法,采用了两种混沌系统分别对图像进行像素位置置乱和像素值置乱,比起单一的混沌系统图像加密来说,其密钥空间更大,且本算法中的置乱次数与原始图像每一个像素灰度值都有关,原始图像中任意一个灰度值发生改变,都会引起加密图像的很大变化,所以本算法具有很好的抗明文攻击的能力。
【专利附图】

【附图说明】
[0022]图1是基于正弦映射和Logistic混沌序列的图像加密的过程流程图;
[0023]图2是基于正弦映射和Logistic混沌序列的图像加密的过程流程图;
[0024]图3是hill原始图像和加密图像的统计直方图;
[0025]图4是明密文图像中的水平相邻像素相关性分析。
【具体实施方式】
[0026]以下结合附图对本发明所涉及的一种基于正弦映射和Logistic混沌系统的图像加密方法的优选实施例做详细阐述,但本发明并不仅限于该实施例。为了使公众对本发明有彻底的了解,在以下本发明优选实施例中详细说明了具体的细节。
[0027]在Matlab7.1环境下,对240X358的hill灰度图像进行加解密。[0028]图1为基于正弦映射和Logistic混沌序列的图像加密的过程流程图。
[0029]如图1所示,基于正弦映射和Logistic混沌序列的图像加密的过程流程由如下具体步骤对数字灰度图像进行加密。
[0030]步骤S1-101:
[0031]选取mXn的灰度图像Q作为原始图像,并获得图像像素值矩阵Q(x,y),将矩阵Q(x,y)中的每个值进行按位异或运算,得到数值C。
[0032]步骤S1- 102:
[0033]选取合适的(μ 1; χ0),即取正弦映射的初值xQ=0.786753,μ 1=0.982716,作为正弦映射的密钥,并将其代入正弦映射方程中迭代NI次得到一组加密混沌序列{Kxl},其中NI的值足够大。
[0034]其中,正弦映射,见公式(I):
[0035]χη+1= μ sin ( ^ χη), η=0, 1,2,...(I),
[0036]Xn为迭代的密钥值。
[0037]步骤S1- 103:
[0038]在混沌序列{Kxl}中随机从某一元素开始,依次取m个元素,组成序列{Kx2},再随机从某一元素开始,依次取η个元素,组成序列{Κχ3},并将两个序列{Κχ2}、{Κχ3}顺次排序生成一行m列的矩阵C、n行一列的矩阵D,再生成一个mXm的零矩阵Cl和一个nXn的零矩阵Dl。
[0039]步骤S1- 104:
[0040]将矩阵C、D按由小到大的顺序排列,并获得排列矩阵a、b,假设矩阵a中的第i列数字为j,那么就将矩阵Cl的第i行第j列的元素置为0,同理,假设矩阵b中的第i行数字为j,那么就将矩阵Dl的第j行第i列的元素置为0,以此类推,原来的零矩阵Cl、Dl经过如此变换变为矩阵C2、D2,对原始图像像素值矩阵Q(x,y)作c次置乱操作,即得到置乱后的图像矩阵Ql(x,y)。
[0041]对第一图像像素值矩阵Q(x,y)进行置乱操作操作,见公式(2)
[0042]Q1=C2XQXD2 (2),
[0043]C2、D2为第一置乱矩阵和第二置乱矩阵,Q为第一图像像素值矩阵,Ql为第二图像像素值矩阵。
[0044]步骤S1- 105:
[0045]取Logistic 的初值 Xcitl=0.786294797419169,μ 2=3.874329453426846,作为Logistic混沌系统的密钥,并将其代入Logistic混沌系统方程中迭代N2次得到一组加密混沌序列{Sxl},其中N2的值足够大;
[0046]步骤S1- 106:
[0047]从混沌序列{Sxl}中随机从某一元素开始,依次取mXn个元素,组成序列{Sx2},并对序列{Sx2}做相应处理操作。
[0048]其中,相应处理操作,见公式(3)
[0049]Sx2=mod(round(Sx2*1010), 256) (3)
[0050]round (A)表示对数值A进行取整运算。
[0051]步骤S1-107:[0052]将加密混沌序列{Sx2}的元素依次读取生成mXn的加密矩阵B,并与置乱图像矩阵Qi(x,y)中的元素进行逐位异或操作,获得最终加密图像矩阵Q2(x,y)。
[0053]步骤S1- 108:
[0054]将加密图像矩阵Q3(x,y)按照图像标准格式保存,得到最终的加密图像。
[0055]图2为基于正弦映射和Logistic混沌序列的图像加密的过程流程图。
[0056]如图2所示,对已加密的图像进行解密的过程就是加密过程的逆运算,即可得到解密后的图像。解密过程可以用于对加密图像验证版权等作用。对已加密的图像进行解密具有以下步骤:
[0057]步骤S1-201:
[0058]选取加密过程中使用的加密矩阵B依次与加密图像矩阵Q2(x,y)进行逐位异或操作,即获得加密过程中的置乱图像矩阵Ql(x,y)。
[0059]步骤S1- 202:
[0060]求得矩阵C2、D2的逆矩阵C2、’ D2’,对Ql(x,y)做c次反置乱操作,即得到图像矩阵Q(x,y),从而得到解密图像。
[0061]为了更好的说明该加密算法的安全性,本发明分别从统计直方图、明文敏感性、密钥敏感性以及相邻像素间的相关性等进行了分析。
[0062]1.统计直方图
[0063]图3为hill原始图像`和加密图像的统计直方图
[0064]如图3 (a)、(b)所示,我们通过直方图的比较,来分析明密文图像统计特性的改变。加密后的图像直方图分布均匀,将原始图像信息特征完全隐藏起来,说明该算法具有很好的抵抗统计分析的能力。
[0065]2.明文敏感性分析
[0066]像素数变化率(Rnpc)是衡量图像加密算法抵抗明文攻击的重要指标,它表示随机地改变原始图像的某个像素值以后,加密图像像素值发生改变的数目所占的比例,若图像的某个像素值的改变可以很大程度地改变加密图像,那么就说明该算法具有较强的抵抗明文攻击的能力。
[0067]设两幅加密图像分别为B和B’,对应的明文矩阵只有一个像素值不同,位置为(i, j)处的像素值分别记为B (i,j)和B’(i,j),定义矩阵S,若B(i,j)=B’(i,j) J(JSaj)=O,否则S(ij=l,则有
【权利要求】
1.一种基于正弦映射和Logistic混沌序列的图像加密方法,其特征在于步骤如下: (1)选取规格为mXn的灰度图像作为原始图像,并获得第一图像像素值矩阵,将所述第一图像像素值矩阵中的每个值进行按位异或运算,得到第一数值; (2)选取第一初始值作为正弦映射的密钥,并将其代入正弦映射方程中迭代复数次得到第一组加密混沌序列; (3)在所述第一组加密混沌序列中随机从一元素开始,依次取m个元素,组成第一组序列,再随机从第一组加密混沌序列中一元素开始,依次取η个元素,组成第二组序列,并将所述第一组序列和第二组序列总顺次排序生成一行m列的第一矩阵以及η行一列的第二矩阵,再生成一个mXm的第一零矩阵和一个nXn的第二零矩阵; (4)将所述第一矩阵与第二矩阵按由小到大的顺序排列,获得两个排列矩阵,根据两个所述排列矩阵分别将所述第一零矩阵以及第二零矩阵转换成第一置乱矩阵以及第二置乱矩阵,并利用所述第一置乱矩阵和第二置乱矩阵对第一图像像素值矩阵作所述第一数值次置乱操作,即得到置乱后的第二图像像素值矩阵; (5)选取第二初始值作为Logistic混沌系统的密钥,并将其代入Logistic混沌系统方程中迭代复数次得到第二组加密混沌序列; (6)从所述第二组加密混沌序列中随机从一元素开始,依次取mXn个元素,组成第三序列,并对所述第三序列做处理操作; (7)将所述第三序列的元素依次读取生成mXn的加密矩阵,并与置乱的第二图像像素矩阵中的元素进行逐位异或操作,获得最终加密的第三图像像素矩阵; (8)将加密的所述第三图像像素矩阵按照图像标准格式保存,得到最终的加密图像。`
2.根据权利要求1所述的一种基于正弦映射和Logistic混沌序列的图像加密方法,其特征在于,还具有相应的解密步骤,具体步骤如下: (1)选取加密过程中使用的所述加密矩阵依次与加密的所述第三图像像素矩阵进行逐位异或操作,即获得加密过程中的置乱的第二图像像素矩阵; (2)对所述第一置乱矩阵和所述第二置乱矩阵求得第一逆矩阵和第二逆矩阵,对所述第二图像像素矩阵做所述第一数值次反置乱操作,即得到第一图像像素矩阵,从而得到解密图像。
3.根据权利要求1所述的基于正弦映射和Logistic混沌序列的图像加密方法,其特征在于: 其中,加密过程中所述步骤2中的正弦映射,见公式(a):
χη+1=μ sinO χη), n=0, 1,2,...(a), xn为迭代的密钥值。
4.根据权利要求1所述的基于正弦映射和Logistic混沌序列的图像加密方法,其特征在于: 其中,加密过程中所述步骤4中对所述第一图像像素值矩阵进行置乱操作操作,见公式(b) Q1=C2XQXD2 (b), C2、D2为所述第一置乱矩阵和第二置乱矩阵,Q为所述第一图像像素值矩阵,Ql为所述第二图像像素值矩阵。
5.根据权利要求1所述的基于正弦映射和Logistic混沌序列的图像加密方法,其特征在于: 其中,加密过程中所述步骤6中的相应处理操作,见公式(c)
Sx2=mod (round (Sx2*1010), 256) (c) round(A)表示对数值A进行取整运算,Sx2为所述第三序列中的值。
【文档编号】G06F21/62GK103530571SQ201310446452
【公开日】2014年1月22日 申请日期:2013年9月25日 优先权日:2013年9月25日
【发明者】杜翠霞, 张定会, 张宗楠, 纪志超, 唐素娟 申请人:上海理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1