利用图像之间的相关性,我们提出了一种基于混沌的图像加密算法,利用图像相邻像素点具有较高相关性,对传统置乱扩散加密框架进行了改进。该算法只需要一次置乱操作和一次扩散操作在保证算法安全性的前提下,有效地减少了加密时间。

一、图像的相关性及置乱操作

基于置乱扩散框架的加密算法需要进行若干轮的加密过程,且每一轮加密过程又分别包括若干轮的置乱和扩散,从而达到比较安全的加密效果通常来说,明文具有较高相关性,表现为相邻像素点的灰度值的差值均在一个较小范围的邻域内置乱操作的作用之一就是降低像素点之间的相关性。

在传统的置乱过程中,将所有像素点看成一个集合,然后使用二维混沌映射对这个集合进行置乱操作在进行置乱操作中,若只进行一次置乱操作,在得到的中间密文中很多原始相邻的像素点依然相邻,具有较高的相关性,这样往往需要多轮迭代才能有效地降低图像的相关性,进而达到理想的效果通常这样的方法往往需要更多的运算时间。

为此,本文提出一种将4个相邻的像素点“分而治之”的思想进行置乱对于相邻像素点先进行分离,然后再进行置乱,置乱之后再组合,有效地减少了单轮加密操作中的置乱轮数,从而减少了加密时间。

定义1 对于一个长和宽均为w的256级灰度图像,设图像中所有像素点p( i,j)的集合为:

若P上存在一个一一映射f,满足:

即,使得P中的所有元素分别映射到SubA,SubB,Sub C和Sub D子集合,则称,为分离映射。

分离映射,可以将原始集合中相邻的4个像素点被分离到4个子集中的对应位置。
定义2 对于集合P上的分离映射f,一定存在一个f的逆映射f-1。

则逆映射f-1定义了4个子集中的像素点与原始像素点集合中相应位置的对应关系。

设存在一个集合S(i,j),表示4个子集Sub A,SubB,Sub c和SubD中具有相同位置的4个像素点的集合,即:

则在上述定义的基础上,设计一个置乱操作:

1)分离映射,将明文的像素点集合映射到4个子集中对4个子集像素点使用不同的参数进行置乱,得到4种不同的置乱效果。

2)利用随机序列控制4个子集对应位置像素点S(i,j)进行旋转操作,即对SubA (i,j),SubB(i,j),Sub C(i,j)和SubD(i,j)4个像素点进行位置旋转置换。

随机旋转规则如图2所示对子集中所有像素点进行旋转操作之后,可以使用f-l将4个子集中的像素点映射到原始像素点集合中,结束置乱操作。

为了对比传统置乱操作和上述置乱操作的效果,使用512×512的Lena图进行实验对比对于传统的置乱方法,以参数为(3,3)的Cat Map对测试图进行一轮置乱操作,结果如图3b所示图3c为使用本文提出的置乱方法进行一轮置乱操作的效果分别使用参数为(1,6),(2,7),(3,8)和(4,9)的Cat Map对4个子集置乱后,进行对应位置像素点的旋转操作控制旋转的随机序列由Logistic映射生成,参数选择x0=0.123 400 123 432 3 α=4。

从表1可以看出,同样进行一轮置乱操作,由本文提出的置乱方法得到的置乱图像的相关性系数远远低于传统置乱方法得到的相关性系数。

二、基于图像相关性的混沌图像加密算法

本文采用经典加密框架,整个加密过程分为置乱阶段和扩散阶段。

1、置乱阶段

在置乱阶段,使用Cat Map对特定的像素点集进行置乱,其中p,g为Cat Map的控制参数。

第1步将原始图像的像素集根据分离映射f映射到4个像素子集中它们分别为SubA,SubB,Sub C和Sub D。

第2步对4个像素点子集SubA,SubB,Sub c和Sub D以不同的参数使用Cat Map进行置乱,对应的Cat Map参数分别为(127,234),(99 ,111),(233 ,55),(27 ,222)设得到4个子集为Sub A',SubB',Sub C'和SubD'。

第3步使用Logistic Map生成混沌序列,f(k),k∈[0, 65 535]式(2)中α=4.O, xo=0.123 400 123 432 3。

根据式(3),对f(k)进行量化操作,使生成的新的随机序列rand,cs(k)的元素的值域为[O,3]。

第4步设置乱后的像素点集的相对位置。

对4个子集中对应位置的像素点进行旋转操作即对Sub A'(i,j),SubB'(i,j),Sub c'(i,j)和SubD'(i,j) 4个像素点顺时针旋转rand_cs(k)次,如图2所示设旋转后得到的4个像素点子集为Sub Au''(i,j),SubB''(i,j),Sub C''(i,j)和Sub D''(i,j)。

第5步根据定义2,将SubA''(i,j),SubB''(i,j),Sub C''(i,j)和SubD''(i,j)映射到原始图像大小的像素点集合中,设其为permuted f m,n),其中O≤m≤w-l,O≤m≤w-l,置乱阶段结束。

2、扩散阶段

从安全性考虑,通常要求扩散过程对于明文的微小变化要足够的敏感并且能够将这种微小的变化扩散到其他像素点中去即当前像素值的变化需要与前面像素值相关,使得每一个微小的变化都可以影响到后续的像素点然后通过置乱操作,将所有变化分散到像素点集的不同位置由此,本文采取一种改进的Logistic映射进行扩散操作:

式中:d-key为扩散阶段的密钥,这里设d-key=0.177 234 534 242 4;a =4为Logistic映射的控制参数j。pi为置乱后的第z个像素点j ci是扩散后的第f个像素点通过式(4) ci+和ci的关系被建立起来,即当前处理的像素点总是和前一个像素点的值相关,从而使其对于像素点值的变化具有较高的敏感性。

三、混沌图像加密算法之图像相关性实验结果

实验环境为为Intel 2.5 GHz CPU,2(B内存操作系统为VVindows XP,编译环境为Visual C++6.0。

1、柱状图分析

柱状图显示了测试图像的像素值的分布信息加密后图像的柱状图应该是均匀平滑的,本文采用Lena图作为测试图。

2、相关性分析

为了对本文提出的算法进行相关性分析,试验中相关性系数的计算按照方法计算得到的明文和密文的相关性系数如表2所示通过表2可以看出,密文的3个方向的相关性系数在O的一个微小邻域内,相对明文减少很多为明文和密文的相关性散点图。

3、差分攻击分析

好的加密算法应该对明文的1b改变有两种准则判断这种敏感性,它们是NPCR和UACI以Lena图为例,将原始的明文和在明文的右下像素点改变1b的图像进行测试对比,即把像素点a[511][511]从‘‘01101100”改为"01101101”本算法和NPCR和UACI的信息。

从表3看出,本算法在第4轮NPCR可以达到99.6%,UACI在第3轮可以达到33.4%的理想值。本算法需要更少的轮数就可以达到更高的安全状态。

4、速度分析

本算法在每一轮加密中,只需要一次置乱操作和一次扩散操作对于512×512大小、256级灰度的Lena图来说,只需要21.8ms。

小知识之图像相关图像相关,图像在不同相对位置上相似性程度和相关匹配程度的度量。图像f(x,y)和g(x,Y)的相关两幅图像之间的相关称为互相关;同一图像的相关( f和g为同一图像)为自相关。