一种基于明文自身特性的双混沌图像加密方法与流程

文档序号:12603791阅读:262来源:国知局
一种基于明文自身特性的双混沌图像加密方法与流程

本发明属于图像加密领域,尤其涉及对图像使用的一种基于明文自身特性的双混沌图像加密方法。



背景技术:

信息安全是一门专门研究保护信息被安全合法使用的综合性科学,它涵盖了密码学、数学、计算机科学、信息论等多门学科,加密技术是保护信息不被非法侵害的常用方法,是信息安全的核心技术。对图像的加密技术是解决图像信息安全问题的关键技术,由于科学技术的不断发展和密码分析理论的不断创新使得很多传统的对于图像的加密技术已经无法抵御各种黑客的攻击,一些高性能的计算机能够在短时间内破解一些加密方案。由于数字图像的信息和普通的文本信息不同,数据量非常大,若是使用传统的加密技术将会需要很长的加密时间,因此效率比较低;而且数字图像是以二维矩阵的格式进行存储的,若以传统加密技术对其明文信息进行数据重新排列,也会使加密效率降低。所以,对于数字图像必须设计出符合它的数据特点的数字图像加密算法。

巨大的市场需求下,多种多样的加密体制不断涌现。由于混沌系统对于初始值和参数的敏感性以及后期生成的序列的混乱性正好与密码学中的某些原则极其相似,学者们开始设想把混沌应用于加密技术,并且提出了一系列混沌加密算法。基于混沌的图像加密算法研究开始阶段主要基于Shannon提出的混淆和扩散框架。首先,在混淆阶段利用混沌系统产生的混沌序列来置乱像素点的位置;其次,在扩散阶段主要是通过改变像素点的像素值来获取更好的加密效果。而其中的猫映射是在混淆阶段中使用最为经典的方法,它不仅易于实现,而且运行速度快等特点使它至今依旧被很多加密算法所青睐。目前基于混沌图像加密算法大部分采用像素位置置乱和像素值替代的思想,该思想也很好地体现出了置乱和扩散这两个密码设计的基本原则。而仅仅使用一维混沌系统对图像加密不能有效抵抗常见的攻击,而超混沌系统具有具有更好的混沌特性以及随机性而受到更多学者们的青睐,在混沌图像加密中被广泛应用。而目前的一些图像加密方法主要存在不能有效地抵抗抵抗差分攻击、统计特性分析、选择明文(密文)攻击等问题。针对以上所存在的安全性问题,本文提出了一种基于明文自身特性的双混沌图像加密方法。



技术实现要素:

本发明主要针对以上所存在的安全性问题,提供了一种基于明文自身特性的双混沌图像加密方法,该方法不仅能很好的抵抗统计特性分析和差分攻击,还能有效抵抗选择明文(密文)攻击以及加密效果良好、密钥空间大等特性。

为解决上述技术问题,本发明采用了如下技术方案是:

在使用混沌系统产生混沌序列对明文图像进行全局性位置置乱时,使混沌序列的产生与明文图像自身的宽高、像素值总值等特性联系紧密。这样将直接导致不同的明文图像会产生截然不同的混沌序列,同样,也会产生不同的密钥序列,所以选择明文(密文)攻击方法将失效。算法结合了Logistic映射和Chebyshev映射,利用Chebyshev映射的平衡性产生密钥,控制Logistic映射的参数,产生多个不同的Logistic序列对图像中颜色分量分别进行全局性的置乱。在进行图像像素值扩散时,使用了特有公式(4)使得中间密文前后紧密相关,更快且更大程度上达到像素扩散作用,最终达到图像的加密。

本发明的有益效果是:大大的提升了图像加密的安全性,能够有效抵抗差分攻击、统计特性分析、选择明文(密文)攻击,而且能有效抵抗选择明文(密文)攻击以及密钥空间大、加密效果好。

附图说明

图1是整个加密过程流程图。

图2是加密前和加密后的对比图。

图3是原始图像和加密图像的各颜色分量直方图。

图4是正确解密和错误解密图。

具体实施方式

实施例一。

本实施例的基于明文自身特性的双混沌图像加密方法,可以将明文图像加工成密文图像,所述加密方法包括对所述明文图像的图像像素位置的置乱和图像像素值的比特位的置乱。

其中所述图像像素位置的置乱和图像像素值的比特位的置乱包括:

Step1将明文图像的三基色进行分离,将其RGB三基色的像素值分别存入R[m][n]、G[m][n]、B[m][n]这三个二维数组里面,使用原始图形所有颜色分量总和sum和m、n计算出迭代次数N:

N=mod(sum,256)+m+n (3);

Step2使用密钥key1作为Chebyshev混沌系统的初始值进行Chebyshev映射的迭代;

Step3再将迭代N次后的值作为Chebyshev系统的初值,然后继续迭代,直到迭代产生连续6个不为0的值时停止迭代,并将这6个值组成序列L;

Step4对序列L中的数值求取其绝对值并进行从小到大排序产生序列L',把L'分成两序列{l'0,l'2,l'4}和{l'1,l'3,l'5};

Step5分别对两组序列进行式(4)和式(5)变换,把{l'0,l'2,l'4}变换后的值按顺序赋给LX序列,{l'1,l'3,l'5}变换后的值按顺序赋给LY;

LX[i/2]=(l'i×0.3)+3.7 (4)

LY[(i-1)/2]=(l'i×0.3)+3.7 (5);

Step6以LX序列的值作为Logistic混沌系统的参数,对应的初始值分别为x1、x2、x3,进行3个Logistic混沌系统迭代,每次均迭代m次,产生3个混沌序列,对3个混沌序列分别进行从小到大排序并生成3个用于记录各元素在原始序列中位置的新序列X1、X2、X3;

Step7以LY序列的值作为Logistic混沌系统参数,对应的初始值分别为y1、y2、y3,进行3次Logistic映射迭代,每个映射均迭代n次,产生3个混沌序列,对3个混沌序列进行从小到大排序并生成3个用于记录各元素在原始序列中位置的新序列Y1、Y2、Y3;

Step8将(X1[x],Y1[y])、(X2[x],Y2[y])、(X3[x],Y3[y])作为三组位置索引值,再把原图像的每个像素点(x,y),其中x∈[0,m-1],y∈[0,n-1],中的三个颜色分量值,即三基色的各像素值R[x][y]、G[x][y]、B[x][y],来替换R、G、B二维数组中所在位置分别为(X1[x],Y1[y])、(X2[x],Y2[y])、(X3[x],Y3[y])的三个颜色分量值,得到位置置乱后的大小为3m×n的加密矩阵C1即密文图像。

在实际使用中可以将以上步骤Step1-8重复进行Z次,得到密文图像C1+Z,提高加密度和解密难度。

实施例二。

通过混沌系统对明文图像像素点位置进行全局性置乱,接着进行像素值扩散操作来进行像素值的改变,从而来达到明文图像的加密。加密过程主要可以分为以下两大步:第一,图像像素位置的置乱;第二,图像像素值的比特位置乱。具体步骤如下:

一、图像位置置乱

Step1将明文图像A的三基色进行分离,将其RGB三基色的像素值分别存入R[m][n]、G[m][n]、B[m][n]这三个二维数组里面,使用原始图形所有颜色分量总和sum和m、n经(3)式计算出迭代次数N。

N=mod(sum,256)+m+n (3)

Step2使用密钥key1作为Chebyshev混沌系统的初始值x0,参数k=6进行Chebyshev映射的迭代。

Step3为了消除暂态效应带来的影响,舍弃前N次迭代并将迭代N次后的值作为系统的初值x0,然后继续迭代,直到迭代产生连续6个不为0的值时停止迭代,这6个值组成序列L。Step4由于Chebyshev混沌系统迭代出的值范围为[-1,1],对序列L进行正数化:对于值为负数的值取其绝对值。然后对序列中值进行从小到大排序产生序列L'

,把L'分成两序列{l'0,l'2,l'4}和{l'1,l'3,l'5}。

Step5分别对两组序列进行式(4)和式(5)变换,把{l'0,l'2,l'4}变换后的值按顺序赋给LX序列,{l'1,l'3,l'5}变换后的值按顺序赋给LY。

LX[i/2]=(l'i×00.3)+3.7 (4)

LY[(i-1)/2]=(l'i×0.3)+3.7 (5)

Step6以LX序列的值作为Logistic混沌系统的参数,对应的初始值分别为x1、x2、x3,进行3个Logistic混沌系统迭代,每次均迭代m次(m为原图像的行数),产生3个混沌序列,对3个混沌序列分别进行从小到大排序并生成3个用于记录各元素在原始序列中位置的新序列X1、X2、X3,用于位置置乱。

Step7以LY序列的值作为Logistic混沌系统参数,对应的初始值分别为y1、y2、y3,进行3次Logistic映射迭代,每个映射均迭代n次(n为原图像的列数),产生3个混沌序列,对3个混沌序列进行从小到大排序并生成3个用于记录各元素在原始序列中位置的新序列Y1、Y2、Y3,用于位置置乱。

Step8于是将(X1[x],Y1[y])、(X2[x],Y2[y])、(X3[x],Y3[y])看作是三组位置索引值,再把原图像的每个像素点(x,y)(其中x∈[0,m-1],y∈[0,n-1])中的三个颜色分量值(即三基色的各像素值R[x][y]、G[x][y]、B[x][y])来替换R、G、B二维数组中所在位置分别为(X1[x],Y1[y])、(X2[x],Y2[y])、(X3[x],Y3[y])的三个颜色分量值,最后将三基色进行融合,可得位置置乱后的大小为3m×n的加密矩阵C1。

二、图像像素值扩散

Step1将key2作为Chebyshev混沌系统的初始值,类似以上置乱步骤,进行迭代产生3个值,以这3个值作为Logistic混沌系统的系统参数,初始值得到方式同上,然后迭代产生3个长度为m×n的混沌序列,将其进行合并获得一个长度为3m×n混沌序列P={p1,p2,...p3m*n}。

Step2对混沌序列P使用(6)式进行整数化,可以得到取值在[0,255]之间的序列Q={q1,q2,...q3m*n}。

qi=mod(p'i×107,256),1≤i≤3m×n (6)

Step3将位置置乱后的加密矩阵C1按照行优先的顺序变换成为长度大小为m×n的一维序列C'={c11',c12',......,c3m×n'},对每个中间密文ci;进行式(7)操作,可令c0为[0,255]中任意数,因此c0也可作为一个密钥。这一步使得中间密文前后紧密相关,以达到像素扩散作用,得到最终密文序列C={c1,c2,......,c3m×n},最后将密文序列C进行行优先的顺序排列为和明文图像大小一致的彩色密文图像。

ci=mod(qi+ci',256)⊕ci-1,1≤i<3m×n (7)

Step4为了得到更好的图像置乱和扩散效果,将以上所得彩色密文图像当做新的“明文”图像继续进行以上所有的置乱-扩散操作,连续进行50次,可得最终彩色密文图像。

本实施例的成功实践过程可以参见图2-4:

图2是原始图像和对应的置乱图像与加密图像。由图可知加密后的图像已经完全没有了原来图像的丝毫踪迹。

图3是原始图像和加密图像的各颜色分量直方图,图中可看出原始图像中各分量是不均衡的,加密后的图像中各分量非常均衡,即加密后图像很好掩盖了原始图像的信息,可抵抗密文攻击。

图4是对密文图像进行正确解密和对加密密钥进行微小改变后进行解密的解密图图像,用此来说说明本文加密方法的秘药敏感性,密钥敏感性指的是即使密钥微小的变化也会导致图像显著性变化,足够强的密钥敏感性有助于抵抗明文攻击。设置原始加密密钥分别为key1=0.35845654,key2=0.39999999,k=1,x1=x2=x3=y1=y2=y3=0.3。当输入正确秘钥可得图4(a),可正确解密图像,当解密密钥key1为0.35845655,key2为0.39999999时,即对key1改变0.00000001,生成的解密图像如图4(a),当解密密钥key1为0.35845654,key2为0.39999998时,对key2改变0.00000001,生成的解密图像如图4(b)。因此,哪怕是10-8的微小改变也无法成功解密图像,说明了该算法具有较好的密钥敏感性。

通过以上可以证明,本发明的算法不仅能较好的抵抗差分攻击、统计特性分析,而且能有效抵抗选择明文(密文)攻击以及密钥空间大、加密效果好。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1