数字图像已广泛用于人们的生活,然而应用得越广泛,它的安全性就越重要。比如,必须保护军事分布图、通过卫星获得的重要照片、商业机密图片等。另外,利用计算机犯罪的数量在逐年上升,信息安全技术不仅关系到个人通信的隐私问题,关系到一个企业的生存问题,同时也关系到一个国家的安全问题。数字图像的安全已成为现在计算机领域的一个重要主题。

数字图像有两个特点:1)数字图像通常以二维序列来表示,它要比文本文件大得多;2)文本文件往往是无损加密的,而数字图像由于人类的视觉系统特性往往允许图像的内容有缺损。为此,图像加密有其自身的要求,传统的文字加密方法不适合图像加密。针对数字图像加密的问题,已有很多文献提出了图像置乱的方法,最具代表性的有:Arnold变换、Fibonacci变换、E-曲线置乱变换、Hilbert曲线置乱变换问、基于采样理论的排列变换和基于几何运算的排列变换、按骑士巡游矩阵(knight-tour matrix)进行置乱。设计的混沌映射加密算法通过对产生的实数混沌序列进行排列,并以此来置换图像的位置。

本文在混沌映射加密算法的基础上提出一种利用随机序列对图像像素点置乱实现加密的算法,对产生的随机序列进行从小到大的排列,将待加密图像像素与随机序列元素一一对应,以此来置换图像的位置。结果表明,因像素的置乱位置具有随机性,所以加密图像相邻像素的相关性更小,抗攻击的免疫性强,具有良好的安全性。

一、加密与解密算法

本文的加密算法包括以下4个步骤:

步骤1:数字图像B大小为MxN(M是图像B的行像素数,N是图像B的列像素数),将B的第j行连接到j-l行后面(j=2,3,…,M),形成长度为MxN的序列C。

步骤2:用计算机产生长度为MxN的随机序列{k1,k2,...,kMxN},并构造等差序列D:{1,2,…:,MxN-1,MxN}。

步骤3:将随机序列{k1,k2,…,kMxN}的MxN个值由小到大排序,形成有序序列{k1,k2,…,kMxN},确定随机序列{k1,k2,…,kMxN}中的每个ti;在有序序列{k1,k2,…,kMxN}中
的编号,形成置换地址集合如{t1,t2,…,tMxN},其中ti为集合(1,2,…,MxN)中的一个;按置换地址集合{t1,t2,…,tMxN}对序列C进行置换,将其第i个像素置换至第ti列,i=l,
2,…,MxN,得到Ca将等差序列D做相同置换,得到D’。

步骤4:B’是一个肘xN的矩阵,B'(i,j)=C((i-l)xM+j),其中i=l,2,…,M;j=l,2,...,N。则B’就是加密后的图像。

解密算法与加密算法相似,不同之处在于步骤3中。以序列C‘代替随机序列{k1,k2,…,kMxN},即可实现图像的解密。图1(a)为lena原图,(b)为按照步骤4加密后的图像,(c)为解密后的图像。
随机数列在数字图像加密中的应用

二、相邻像素相关性分析

研究表明,图像置乱效果的好坏与相邻像素相关性的大小存在反比关系,相关性越大,置乱效果越差,相关性越小,置乱的效果越好。测试置乱图像的水平(垂直)相邻像素的相关性方法如下:将图像的像素与其水平(垂直)向的下一个像素组成相邻像素对,然后用下面的公式计算相邻像素的相关性。

随机数列在数字图像加密中的应用

式中:x是像素的灰度值;k是像素数;E(x)是x的数学期望,D(x)是x的方差。

随机数列在数字图像加密中的应用

式中:x是像素对中前者的灰度值;y是像素对中后者的灰度值,cov(x,y)是茗x,y的协方差。

随机数列在数字图像加密中的应用

式中:rxy是相关性系数。

表1列出了原图及其几种置乱图像相邻像素的相关性,随机置乱过程中使用的是随机序列,因此,每次加密的置乱程度不完全相同,为了使实验结果具有可比性,表中置乱图数据为100次置乱的均值;图1(a)的Amold置乱周期为23次,表中数据为相关性最小的第10次的值;表1说明随机置乱比Arnold置乱、混沌置乱的邻像素的相关性小。

随机数列在数字图像加密中的应用

三、加密算法免疫性分析

免疫性是指图像经过置乱后,抗拒因图像的某种改动而导致隐藏信息丢失的能力。改动包括:传输过程中的信道噪声、过滤操作、重新采样、编码、有损压缩、模/数转换、伸缩、旋转、破损和污染等。图像破损是日常生活工作中经常遇到的问题,下面对随机序列加密算法的抗破损能力进行研究。

从第2节知,加密后图像相邻像素的相关性很小,说明原图的信息被均匀分散到图像的各个区域;同样,置乱图像的某一部分,在解密后会分散到图像的各个区域。因此,如果置乱图像的某一部分受损(如图2(c)),在解密图像中将体现为均匀分布于全图的小点(如图2(d)),这有些类似于椒盐噪声的效果,经过中值滤波可将小点消去(如图2(e)),将(d)图中黑点区域用(e)图中对应像素替换,得到图(f)o可以看到(f)图比(d),(e)效果都要好,与原图(a)相当接近。

随机数列在数字图像加密中的应用

当受损区域大小为50x50(为图像面积12.94%)时,恢复的图像仍然比较清晰(如图3(a),(d));受损区域大小为60x60(为图像面积18.63%)时,恢复的图像效果开始变差,出现零星的黑点(如图3(b),(e));受损区域大小为70x70(为图像面积25.36%)时,恢复的图像效果不理想,布满黑点(如图3(b),(e))。

随机数列在数字图像加密中的应用

原图任意区域的像素在置乱图中是均匀分布的,置乱图受损区域的形状及所处的位置不同对恢复图像所造成的影响有限。图4中(a),(b),(c)是3幅遭到损坏的密图,受损区域(黑色)形状不同,位置不同,只有大小是相同的,均为2 500个像素点(为图像面积12.94%)。(a),(b),(c)的恢复图像分别为(d),(e),(f),3幅恢复图像的效果没有明显差别。因此,可认为恢复图像的效果取决于受损区域的面积大小,而受损区域的形状、位置产生的影响很小,只要其面积不大于原图面的.20%,就能够恢复出比较理想的图像。

小知识之数列

数列(sequence of number)是以正整数集(或它的有限子集)为定义域的函数,是一列有序的数。数列中的每一个数都叫做这个数列的项。排在第一位的数称为这个数列的第1项(通常也叫做首项),排在第二位的数称为这个数列的第2项……排在第n位的数称为这个数列的第n项。