一种复合级联混沌的彩色图像加密算法的制作方法

文档序号:12366973阅读:500来源:国知局
一种复合级联混沌的彩色图像加密算法的制作方法与工艺

本发明涉及信息传输安全研究领域,具体涉及通过一种图像加密方法对图像进行像素的置乱和扩散,达到原图像信息隐藏的加密方法。



背景技术:

随着互联网和网络技术的日渐成熟,更具表现力且便捷方便的数字图像作为传递信息的媒介正越来越被人们喜爱。区别于传统DES、AES等针对文本的加密算法,数字图像对加密算法的思路不尽相同。混沌系统的类随机性且对初值的极度敏感特性,这些优良特性尤其适合用来用于数字图像加密,其在图像加密过程中有着不可替代的作用。相比于黑白图象,彩色图像的信息表达更具体形象,但是对彩色图像的加密比黑白图象在运行时间和空间上都有更高的代价。目前,常用的图像加密方法都是基于像素位置置乱和像素值扩散这两个基本手段,从而达到更加理想的图像加密效果。

近年来,国内外针对彩色图像加密的相关研究工作不断增多。根据不同类型的图像特征,攻击手段和不同级别加密要求等,研究人员使用多种方法从数字图像特征出发,对数字图像进行多维度多层次的信息加密。

图像像素值排列组合的混淆和像素值不可预期的改变是数字图像加密的主要研究方向,提高混沌序列的空间复杂度或加大密钥空间是提高算法安全的有效方法,多混沌序列的组合、级联、升维、扩大外部输入密钥、自适应特征值等是常见的强化方法。其中,自适应特征值是图像加密算法的有效方法。从数字图像中提取特征值作为关键密钥,可以提高算法的加密效果,避免暴力攻击。例如,一些加密算法通过提取二维图像行列像素的像素值之积作为加密算法的关键密钥,这种方法可以加大密钥空间和提升算法复杂性,有利于图像加密的安全。



技术实现要素:

本发明的目的在于克服现有图像加密算法的缺点与不足,提出一种基于多混沌系统级联升维和多轮图像置乱相结合的彩色图像加密算法。该方法利用了三种复杂混沌系列的特征--Arnold映射迭代多次产生像素矩阵的相对位置变换从而置乱原始像素信息,利用级联混和离散混沌进行升维得到的混沌序列使得原图像像素值改变,从而隐藏图像信息,利用二维像素矩阵重新按大小排序且分块的方法进一步置乱原图信息,从而达到原图信息完全隐藏且抵御恶意攻击的安全算法。

混沌系统的加密算法,设计关键是对混沌映射的选择,不同的混沌映射在时间复杂度、空间复杂度以及安全性方面都有很大差别。本发明提出的Logistic-Logistic级联混沌和二维Henon混沌进行联立升维的加密算法,相对一维Logistic混沌映射安全性更高,且明显改善了其动力学特性。

1、Aronld像素置乱

Arnold变换是通过改变原图像素位置而使得原图像像素杂乱无章,不可辨认的一种加密方法。其中,影响Arnold加密效果的关键其迭代次数,一般迭代次数太少加密效果会比较差,但是Aronld迭代具有周期性,迭代次数过多置乱效果反而会使得原图像信息暴露。Aronld的置乱次数与原图像特征相关,相同的迭代次数对不同的图像加密效果大不相同。另外,虽然方形是矩形的一种形式,但是Aronld一般是对二维行列相等的方形图像加密效果更好,但是为了普遍使用,本加密算法将Aronld推广至加密图像的行列值不作要求的加密算法。对于Aronld的加密效果来说,像素均匀化是能最大化隐藏原文图像的理想状态。

2、升维加密原理

一维混沌结构简单易攻击的特点,混沌系统空间结构升维可以提升混沌加密的安全性。另外,增加密钥参数和提高混沌初值敏感的特性是混沌加密的两种主要方法,本发明方法提出的图像像素值扩散集合以上加密原理出发,提出的多离散混沌系统级联升维方法。

本算法选定级联Logistic-Logistic映射和Henon混沌映射复合升维。混沌的初始值x0、y0、Z0。再设定内部参数a=0.3、b=0.4、m1(大于1000的任意值)、m2(大于5000的任意值)和μ1、μ2∈[0,4]其中令μ1=4,μ2作为分岔参数,将选定的初始值和内部参数作为密钥,而xn、yn和zn为Logistic-Logistic级联混沌和Henon映射的复合混沌序列。解密过程是加密过程的逆。算法步骤如下:

a)把原彩色图像A(M,N,3)转换成R、G、B三个层次的二维灰度矩阵,其中L=MxN;

b)图像置乱,对公式一以选取合适参数和初始值进行迭代,迭代次数m1,得到首次置乱的灰度矩阵;

c)像素扩散,把新得到的三个灰度矩阵分别按行转换成三个一维数组。应用公式二结合特定参数和初始值进行迭代,迭代次数为m2,可以得到三组预处理的混沌序列x,y,z,分别从中截取长度为L的三组混沌序列x(L),y(L),z(L)分别与三个一维数组异或,然后把得到的三个序列分别按列优先的原则重新组成三个二维矩阵;

d)第二轮的像素置乱,把新得到的三个二维矩阵像素分别按从大到小的顺序排列,从中得到排列值在原序列中位置索引数组index1,index2,index3

e)洗牌,把有序排列的三个矩阵均分成九块,按从左到右的顺序标号,1,2,…,9;根据原图像素特征值决定与特定的块置换相应的像素块。

本发明的有益效果是:本发明是一种基于级联混沌升维的彩色图像加密算法,这种方法能够有效地加密原图像。本发明方法主要涉及到两种混沌加密思想,混沌级联和复合升维。算法将待加密的彩色图像经过预处理后,先后进行像素的置乱和扩散。本发明算法将进行置乱、扩散、再置乱的图像加密办法,在扩散阶段应用了级联且升维的新的混沌加密序列。实验表明,该方法在加密彩色图像中相比其他算法具有更高的安全性。

附图说明

图1为算法流程图;

图2为再次置乱像素矩阵的分块图;

图3为像素块置乱方案一图;

图4为像素块置乱方案二图。

具体实施方式

以下结合附图对本发明进行详细说明:

参考图1,本发明加密步骤如下:

步骤1,输入一幅MxN的彩色图像A作为待加密图像;

调用imread函数读入一幅MxNx3彩色图像作为待加密图像;

步骤2,把待加密三维图像A分离成R、G、B三个层面上的二维灰度矩阵a1_i(s,t),i=1,2,3;

步骤3,选取广义Arnold变换的变换矩阵参数α、β和迭代次数m1(大于1000的任意值),对图像矩阵a1_i(s,t)进行m1次广义Arnold变换,得到置乱后的图像矩阵a2_i(s,t),i=1,2,3;

对行列不等的像素矩阵,Arnold变换步骤如下:

首先,获取图像矩阵a1_i(s,t),i=1,2,3中的每一个像素点的坐标(αn,bn)处的像素值;

然后,将图像矩阵a1_i(s,t),i=1,2,3中的每一个像素点的坐标(αn,bn)都输入公式一,并记录每个点的输出坐标(an′,bn′);

接着把每个点的像素值导入输出的坐标(an′,bn′),以此来完成像素坐标的一次变换;

重复上述步骤m1次,得到Arnold置乱后的图像矩阵a2_i(s,t),i=1,2,3;

步骤4,分别选取级联混沌参数μ1、μ2、Z0和二维Henon混沌参数α、β、x0、y0,以及迭代次数m2(大于5000的任意数),并将该初值和参数代入复合混沌系统方程中进行迭代,得到作用于图像加密的三个序列;将这三个混沌序列的前1024个数值去掉,剩下的序列取前L个数并对其重新编号,得到作用于三个新的混沌序列{k1_i}、{k2_i}、{k3_i},i=1,2,3,…,L;

三维级联复合混沌公式如下:

其中x,y序列是离散混沌Henon序列,z序列是两个Logestic混沌系统的级联,二维混沌序列和一维级联混沌复合成三维混沌序列,这里将产生三个混沌序列作为中间密文作用于待加密像素。

步骤5,将置乱后的图像矩阵a2_i(s,t),i=1,2,3与,步骤(4)得到的三个混沌序列进行像素扩散得到图像矩阵a3_i(s,t),i=1,2,3;

步骤6,把步骤(5)得到的三个二维图像矩阵按行展开成三个一维数组s1,s2,s3,按从大到小的顺序进行排序,得到三组有序的一维数组S1,S1,S1;并分别记录新的有序数组中每个元素在原一维数组s1,s2,s3中的位置,得到三个位置信息的集合index1,index2,index3

步骤7,将步骤(6)中得到的三个一维数组分别按列优先重新排列成二维图像矩阵;

步骤8,将步骤(7)得到的三个二维矩阵分别均匀的分割成九块,按行分别标记为1,2,3,…,9;根据特征值选出特定方案对分块的像素矩阵再次空间置乱,将得到R、G、B三个层面上的像素矩阵,把三个矩阵合并成一个,得到加密后的图像矩阵。

其中步骤(8)中第二轮像素置乱的块分割按如下步骤获得:

4c)判断K=mod(L,2)是否为0,如果k=0,则执行4d);否则,执行4e);

4d)步骤(8)中均匀分割的九块像素,其中第7块不动其余八块都与对角或对面的像素块一一对应置换,实现像素块‘洗牌’,如图3像素块置乱方案一;

4e)步骤(8)中均匀分割的九块像素,其中第9块不动其余八块都与对角或对面的像素块一一对应置换,实现像素块‘洗牌’,如图4像素块置乱方案二。

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

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