针对图像等多媒体信息的特点,我们提出一种结合了两种混沌映射,即基于区间数目参数化的混沌映射与标准映射的数字图像加密算法。通过基于区间数目参数化的混沌映射产生混沌实数序列,将其转化为加密需要的伪随机二值序列,然后用该伪随机序列和标准映射变换进行数字图像文件加密。
一、混沌映射的选择
1、伪随机序列的生成
为了充分利用分段线性混沌映射的运算速度快的特点,本文采用区间数目参数化的PLCM来产生拟混沌伪随机序列。同分段区间PLCM相比较,该混沌映射具有更高的安全性。区间数目参数化PLCM的数学表达式为:
式中:i=0,1,2,....,l-1;μ是控制参数,且μ∈(0,0.5);参数X∈[0,1];l为区间数目选择参数;映射的分段区间数目为4xl。通过对l的选择,可以选择分段区间数目。
这个映射具有很多产生独立同分布的伪随机数序列方面的密码学相关优良特性。
混沌运动是一类相当特殊的运动形式,它既有确定性的动力机制,又表现为内在的随机性,因而非常适合用于产生伪随机数。目前,就如何通过混沌映射产生伪随机序列这个问题,已经有许多的方法被提出来。产生伪随机变量序列,实数x的二进制表示形式如下:
在这个表示形式中,第i比特可以表示成:
此处,θt(x)是一个域值函数,其定义如下:
由此,一个独立同分布的二进制伪随机序列就得到了。
2、tandard映射
已经有很多的研究人员分别在不同的文献中提出了用3个二维混沌映射,即标准映射、猫映射和Baker映射,来置乱像素的位置。然而,当用猫映射和Baker映射时存在弱密钥问题。同时,这两个映射的密钥空间也不如标准映射的密钥空间大。因此,本文将采用标准映射作为像素置乱的混沌映射。另外,在标准映射中,左上角的像素
(s=0,t=0)根本不会被置乱,这样就会存在一定的安全隐患。所以,本文为了克服这一缺陷,采用随机扫描一个数对(rs,rt)来置乱左上角的像素。因此,修改后的标准映射如下:
此处,sk,tk和(Sk+1,tk+1)分别是NxN图像像素的置乱前位置和置乱后位置。控制参数kc是一个正整数。
二、基于一维混沌映射网络的图像加密方案
本文提出的加密框图如图1所示。
加密步骤描述如下:
(1)先使用修改后的标准映射(公式(5))对图像进行像素位置置乱。
(2)按照文中的方法,先用公式(l)产生的拟混沌序列,然后用公式(2)~(4)产生伪随机序列层。
(3)按如下方式把伪随机序列转化为整数序列φ(k)。
(4)按如下方式加密图像。
式中:k-当前处理的第k个像素,P(k)和C(k)分别是其对应的明文像素和密文像素,C(k-l)是前一像素的密文,当k=0时,取秘密初始值C(O)。G表示图像的灰度级,对于256级的灰度图像,G=256。
(5)循环步骤(4),直到整个图像处理完毕。
为了进一步增强算法的扰乱与扩散性,重复执行上述步骤m轮。
(6)由于算法的对称性,解密过程与上述加密过程类似,解密时只需修改第(4)步,采用如下公式:
三、数值仿真
为了验证算法的安全性,下面将分别从理论分析和仿真实验两个方面来加以证明。实验中,采用了一个512x512像素的灰度图像“Tiger”图。设区间参数化非线性混沌映射(1)中的初始值、,控制参数和区间选择参数分别是xo;0.63687244053129,u=0.32696149531473,l=3,初始数对以,(rs,rt)取值为(139,218)。实验结果表明,本文的算法能够正确地加密文件和解密文件,加密后图像的灰度直方图比原始图像的分布更加均匀。Tiger图加密与解密实验如图2所示。
四、安全性与性能分析
1、抗统计攻击性能测试
由于图像相邻像素的相关性,要求密码系统,特别是图像加密算法,在抗统计攻击方面应该具有很好的性质。数值实验结果表明,加密后图像的像素灰度分布直方图分布已经相当均匀了(如图2(e)),并且与明图的分布直方图完全不同。此外,还从概率论角度,分别任选10000对水平相邻、垂直相邻和对角相邻的像素按公式(8)和(9)进行了相关性测试。
测试结果如图3和表1所示。
此处x和y是两个相邻像素的灰度值。。
实验结果表明,虽然原始图像的相邻像素相关性较大,而通过本文算法加密后,完全破坏了这种相关性。因此,本文提出的密码系统具有良好的抗统计攻击特性。
2、密钥敏感性和明文敏感性测试
通常,一个图像加密方案,应该是密钥敏感和明图敏感的,即:
①密钥的微小变化,将产生两个完全不同的加密图像:
②明文图像的细微变化,也将得到两个完全不同的加密图像。
为了进行敏感性测试,采用如下两个通用测试指标:
(1)加密图像的像素变化率CPCR(cipher-image pixel changerate,CPCR)。定义如下:
式中:W一图像的宽度,H一图像的高度,I(i,j),I’(i,j)——图像I和I’的第I行第J列的像素灰度值。
(2)一致平均变化强度UACl(unified average changing intensity)。定义如下:
UACI主要是用来度量两个图像的平均差异强度的。
本文加密算法的密钥是由方程(1)的控制参数u和初始值Xo两部分组成,所以分别从两个方面来进行敏感性测试:
(1)保持系统的控制参数H不变,改变系统初始密钥x0的最后一位,得到xo'=0.63687244053128。然后用密xo'和u加密图像图3(a)(当然,也可以改变u来进行测试)。
(2)保持密钥不变,改变图2(a)的任意一个点的像素灰度值(可以是最右下角的像素),将其灰度值加1。然后用密钥x0和甜加密修改后的图像。测试结果如表2所示。
实验数据表明,尽管只对密钥和明文图像做了极小的改变(最后1位,即10的-14次方)都产生了很高的CPCR值和UACI值。这表明,本文的加密算法具有一般加密算法的密钥敏感性和明文敏感性。另外,由于在进行第二种敏感性测试时,改变的是明文图像的最右下角的像素,由公式(6)可知,如果只进行一轮加密,此时只有最后一个密文像素与原来密文值不同,所以有较小的NPCR和UACI值(如果改变的是比较靠左上角的像素,其NPCR和UACI值也较大)。因此,对于本文提出的图像加密算法,为了得到较好的算法安全性,要求至少加密两轮。
小知识之灰度直方图
灰度直方图是灰度级的函数,它表示图像中具有某种灰度级的像素的个数,反映了图像中某种灰度出现的频率。
如果将图像总像素亮度(灰度级别)看成是一个随机变量,则其分布情况就反映了图像的统计特性,这可用probability density function (PDF)来刻画和描述,表现为灰度直方图。