现有的自适应图像加密算法可以抵抗已知明文攻击,其单轮加密速度很快,但安全性和整体加密速度较低。基于自适应排列,我们提出一种新的快速图像加密算法,在确保加密操作简单高效的前提下,改变加密前后图像的像素分布。

一、自适应图像加密算法

1、自适应图像加密算法描述

排列是图像文件加密中最常用的加密操作。通过排列可以改变图像的空间有序性和相邻像素的相关性,使明文变为视觉上无意义的图像。由于排列操作只涉及内存的读写操作,因此运算速度很快。但仅采用传统的排列操作是不安全的,一般只要通过若干对明文和密文图像就能恢复大部分密钥。

其原因是传统的排列操作仅与密钥相关,而与明文无关,因此,容易受已知明文和选择明文攻击。攻击者通过明文和密文对可以获得密钥的部分信息,而此类信息对于解密其他明文同样有效。为了避免上述缺陷,有管专家提出了一种自适应图像加密算法,使排列变换可以由明文决定。排列时先将图像分成上下(或左右)2个部分,对下半部分进行排序,然后按下半部分的排序序号对上半部分进行排列(图1给出了一个排列示例),再采用同样方法对下半部分进行排列。

快速图像加密算法之自适应排列加密

上文仅描述了一轮图像文件加密过程,为保证安全性,需要进行多轮加密。加密轮数由密钥长度决定。为了防止穷举攻击,目前公认安全的密钥长度至少为100 bit,即自适应排列的加
密轮数至少为100轮。若密钥的第i位(i=1,2,…,128)的值为0,则图像分为左右2个部分。先根据右半部分像素的顺序对左半部分进行排列,再排列右半部分。若第i位的值为1,则
先排列上半部分,再排列下半部分。

2、自适应图像加密算法性能

(1)安全性

由于自适应图像加密算法中的排列变换依赖明文自身的信息,因此可以有效抵抗已知明文攻击。此外,加密算法密钥长度为128位,可以抵抗穷举攻击。

由于该加密算法仅引入了排列变换,因此无法改变图像的像素分布,即加密前后图像的直方图没有变化。因为直方图通常可以反映图像的重要信息,所以该加密算法存在一定安全隐患。

(2)加密速度

自适应图像加密算法的主要运算为排列操作。一个排列操作可以通过内存的读和写操作实现,因此,一轮加密耗费的时间很短。但出于安全性考虑,要求密钥长度为128位,即加密轮数为128轮,因此,加密整个图像的耗时较大。

二、基于自适应排列的快速图像加密算法

本节利用自适应排列设计一种新的图像加密算法。该加密算法改正了原加密算法加密前后像素分布不变以及加密速度较慢2个主要缺点。新加密算法保留了原加密算法的优点,如加密操作简单高效、可以抵抗已知明文攻击和穷举攻击等。

1、加密结构

加密算法采用Feistel网络结构,先将图像分成左右2个部分,然后对图像进行多轮Feistel迭代,迭代过程由式(1)和式(2)确定。

快速图像加密算法之自适应排列加密

其中,Li和Ri表示经i次迭代后图像的左半部分和右半部分;⊕为异或运算;F表示任意非线性函数;Ki为第i个轮密钥。

图2描述了Feistel网络结构。

快速图像加密算法之自适应排列加密

2、F函数与轮密钥产生过程

采用Feistel网络结构的加密算法最核心的问题是F函数的具体实现(图3)。在本加密算法中,F函数包含4个过程:

(1)混沌迭代

以轮密钥Ki为初始值x0和系统参数μ进行256次logistic迭代,产生256个混沌状态,其值均位于[0,1]区间内。logistic迭代公式如下:

快速图像加密算法之自适应排列加密

(2)产生S盒

对256个混沌状态进行排序,得到256个排列序号,将所有序号减1,以产生S盒。该S盒的输入输出均为8 bit,共有256个元素,每个元素为0—255之间的整数。

(3)S盒替换

使用步骤(2)产生的5盒对图像的全体像素进行S盒替代。

(4)自适应排列

对S盒替代后的图像进行自适应排列。

在Feistel结构中,每轮均需要轮密钥,即logistic迭代的系统参数和初始值。在第1轮加密中,系统参数和初始值采用外部密钥,为(0,1)区间内的2个双精度浮点数(每个数占52 bit有效值)。以后的轮密钥中系统参数不变,初始值为上一轮最后一次的迭代值。

快速图像加密算法之自适应排列加密

三、实验结果与对比分析

本节主要考查第2节中提出的图像加密算法的各种安全特性,包括直方图、明文和密钥的敏感性以及密文相邻像素的相关性。对本文算法与2个已有图像加密算法进行比较,实验所用明文为128x128的Lena图像,密钥(μ,x)设为(4,0.1)。

1、直方图

图4列出了Lena图像加密后的直方图和加密前后的直方图对比。可以看出,加密后的直方图较均匀,掩盖了明文图像各像素的分布。

快速图像加密算法之自适应排列加密

2、明文敏感性检测

严格雪崩效应是衡量加密算法的重要指标之一,它是指当明文或密钥改变一位时,密文应有接近一半的比特发生改变。该特性也称为密文对明文或密钥的敏感性。本节对明文、logistic映射的系统参数和初始值进行微小改动,并考查密文的改动情况。

将Lena图像最后一个像素的最后一比特由“1”置为“0”,并对比加密后密文的变化。表1列出了各轮加密后,密文位的改变率。可以看出,经过3轮加密后,密文位的变化稳定在0.5左右,即产生严格雪崩效应。

快速图像加密算法之自适应排列加密

将系统初始值由0.1改为x1=0.09999999,明文和系统参数保持不变,并对比加密后密文的变化。表2列出了各轮加密后密文位的改变率。可以看出,经过2轮加密后,密文位的变化稳定在0.5左右。

快速图像加密算法之自适应排列加密

将参数值由0.1改为3.99999999,明文和系统初始值保持不变,并对比加密后密文的变化。表3列出了各轮加密后密文位的改变率。可以看出,经过2轮加密后,密文位的变化稳定在0.5左右。

快速图像加密算法之自适应排列加密

3、密文相关性检测

在连续色调图像中,相邻像素的相关性通常很高,好的图像加密算法可以去除这种相关性。从明文和密文图像的水平、竖直和对角3个方向随机选取1 000对像素,并计算对应的相关系数。表4对比了加密前后3个方向上的相关系数。

由表4可知,加密后相邻密文像素之间的相关性接近于0。

快速图像加密算法之自适应排列加密

小知识之自适应

自适应是指处理和分析过程中,根据处理数据的数据特征自动调整处理方法、处理顺序、处理参数、边界条件或约束条件,使其与所处理数据的统计分布特征、结构特征相适应,以取得最佳的处理效果。