图像加密技术有二种思路:空域加密和频域加密。不管是空域加密还是频域加密的算法中都有三种思想方法:灰度值替代、像素位置变换以及二者的组合。灰度值替代是利用密钥改变源图像的灰度,可以逐点改变,也可以把源图像分成几块,逐块进行替代操作;像素位置变换是改变源图像中像素点的排列顺序:组合方法是加密过程中既有灰度值替代,又有像素位置的变换。混沌系统在二维相平面内的不规则性使得混沌系统更适合用于图像文件加密。

一、基于Baker映射的二维混沌图像的加密

图像就是一个由灰度值组成的二维矩阵,图像置乱的根本思想就是把象素值置乱,因此图像置乱的过程就是图像矩阵进行非线性变换的过程。因而可以在二维矩阵内进行可逆的保面积二维变换就完全可以实现图像置乱f从而达到加密的目的。在所有可逆二维混沌映射中。Baker映射的性能是最好的,下面我们以Baker映射为例详细分析基于二维混沌映射的图像加密方法。

一般Baker映射的定义为:

基于Baker映射的二维混沌图像文件加密

其中:α+β=1,且λa+λb<1。为了把Baker用于加密我们取λa+λb=1,这样Baker映射就是保面积的混沌映射。

图像文件的加密要达到较好的效果需要进行置乱和扩散:

(1)图像的置乱变换

假设我们对MxN的图像加密,那么采用Baker映射加密图像的基本原理是:首先把要加密的图像进行竖形分割形成图像块:[Fi-1,Fi)×[0,1),i=1,…,k。因此,可以把分割图像的参数(n1+....+nk)作为密钥,为了达到更好的置乱效果,可以进行m轮Baker置乱变换。所以m也作为密钥。但是对于任何一幅图像分割数n1,n2,…,nk有很多多种,同时每个巩应该满足能整除N。

(2)扩散变换

置乱可以改变像素的位置,但不能改变原图像的直方图,仅仅是置乱变换不能抵抗已知明文攻击和统计分析。因此需要引入像素值的扩散变换,使得密文的直方图更均匀。

设原始图像为工将之分解成2x2的小方块,对每个方块中的四个像素值f(2i,2j),f(2i+1,2j),f(2i,2j+l),f(2i+l,2j+l)运用变换x'= TX其中x=[f(2i,2j),f(2i+1,2j),f(2i,2j+l),f(2i+l,2j+l)]为图像块中四个像素值组成的向量。 x'=[f'(2i,2j),f'(2i+1,2j),f'(2i,2j+l),f'(2i+l,2j+l)]为经过扩散变换后的像素值向量。T为变化矩阵:

基于Baker映射的二维混沌图像文件加密

很显然|T|=1,所以该映射是保面积映射,解密时用逆映射T-1:X=T-lX'。这里我们先把T推广成如下矩阵:

基于Baker映射的二维混沌图像文件加密

对于n取任何值|T|=1,所以是保面积映射。这样我们可以把n作为替换度值的参数增加加密强度。

(3)密钥方案

完善的密钥方案是保证加密系统安全性的重要环节,本系统中有三个部分需要引入密钥:Logistic初始值xo、混迭轮数m和替换扩散矩阵参数na总共3个参数。因此我们可以引入32位比特的密钥:前24位记为k1用于产生xo,后8位记为k2用于产生m和n。

基于Baker映射的二维混沌图像文件加密

(4)图像加密的步骤如下:

①选定密钥作为密钥xo,nbn其中xo是Logistic映射的初始值,Logistic映射采用如下形式:x+1= 4xH(1- x),其中ri=∑k2(i=28,19,30, 31),为了增加混沌随机序列强度,只取混沌序列200次迭代之后的序列X201,X102,.. ,X200+n;

②对X2m,X202…,X2CO+n进行适当的量化,同时找出Baker的分块参数:(n1+…+nk);

③对图像重复进行二维Baker映射。

④对置乱后的图像进行扩散。

二、基于Baker映射加密方法的安全分析

1、密钥空间分析

①加密的控制参数

我们选择32位的密钥加密,其中前24位分别用于xo,后8位用于m和心密钥空间达232;4.2590e+0.09,显然,加密轮数越多,密钥空间越大。在实际应用中,一般取n>4。

②密钥敏感性测试

我们这么来测试密钥的敏感性:首先,对一幅512x512的图像用密钥“2345”进行加密,然后,任意改变密钥的一位,比如改变密钥的最底位,也就是将密钥改变“2346”,再来加密图像,比较两幅图像对应的不同像素的个数。图l给出两幅加密图像及其差值。测试结果为:两幅图像约有99.95%的不同像素。

基于Baker映射的二维混沌图像文件加密

2、统计分析

①加密图像直方图

同样我们比较刚才加密图像的直方图。如图2,可以看出,加密后图像直方图与原始图像的直方图有很大的不同,且非常均匀。变换后的直方图呈均匀分布,它掩盖了变换前的分布规律,增加了破译难度。

基于Baker映射的二维混沌图像文件加密

②相邻像素的相关性

图像中相邻像素的相关性是很大的,为了破坏统计攻击,必须使相邻两个像素的相关性降低。我们再加密图像和原始图像中各随机选择了1000对像素对,测试其水平方向、垂直方向和对角方向的像素相关性,并进行相关系数的计算。其中小,x,y表示两个相邻的像素灰度。在实际的测试中,我们使用如下三个离散化的计算公式:

基于Baker映射的二维混沌图像文件加密

图3给出了垂直方向原始图像和加密后图像相邻像素的相关关系,相关系数分别为:0.97643和0.00465810表1列出了图像加密前后各个方向的相关系数。

基于Baker映射的二维混沌图像文件加密

基于Baker映射的二维混沌图像文件加密

3、差分攻击

通常攻击者会通过图像中很小的一点,比如只改变一个像素,来观察加密后图像的变化情况,通过这种方式,攻击者可能破解加密图像。我们测试了明文一个像素的改变对密文的影响。首先定义两个量—像素变化率(Number of pixels ChangeRate,NPCR)和归一化平均变化强度(Unified Average ChangeIntensity, UACD。令两幅加密图像分别为C1和C2,这两幅图像对应的明文只有一个像素的改变。像素在位置(功的强度标记为C1(i,j)和C2(i,j)。定义一个二值矩阵D。它和C1与C2有相同的尺寸。若C1(i,j)=C2(i,j),则D(i'j)=1;否则D(i'j)=0。

NPCR定义为:

基于Baker映射的二维混沌图像文件加密

UACI定义为:

基于Baker映射的二维混沌图像文件加密

对256级灰度图的测试结果如图4所示,可以看出,随着加密轮数的多,一个像素的改变对密文图像的影响加大。因此,增加加密轮数能够提高加密强度。

基于Baker映射的二维混沌图像文件加密

小知识之直方图

直方图(Histogram)又称质量分布图。是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据分布的情况。 一般用横轴表示数据类型,纵轴表示分布情况。