针对传统的图像加密算法在效率和安全性上的不足,我们提出了一种新的图像并行加密算法——Square加密算法,它采用Square像素排列操作和改进的混合(Mixing)操作。那么接下来,我就给大加简单的介绍一下这种加密算法。
一、Squaree加密算法
图像加密并行算法的重点在于前2步,即分组内加密和像素排列。为了简化加密算法的没计,可对加密算法设计作进一步的规定:
(1)图像的每一行即为一个分组;
(2)各PE负责加密的分组数(图像行数)应尽量接近;
(3)第(1)步采用的加密操作应实现分组范围内的完全扩散效应。
下面分别介绍Square图像加密算法的分组内加密方法和像素排列方法。
1、分组内加密方法
与MASK加密算法相同,分组内加密方法由3个操作构成,即Mixing、密钥异或及S盒替换。
(1)Mixing操作表示如下:
其中,i=1,2,…,N,N为图像的列数。注意,式(1)中的加法和连加均为异或运算。
(2)密钥异或操作即将轮密钥与明文进行异或。轮密钥由Logistic混沌映射产生。
(3)S盒替换操作是3个操作中唯一的非线性运算,本文采用AES加密算法中的S盒。
2、像素捧列方法
在设计图像文件加密并行算法中,像素排列方法是算法设计的关键。本文采用的排列定义如下:
其中,i,j表示图像的行号和列号,数值从0开始。图2给出了一个按式(2)对图像像素进行排列的示例。可以看出,式(2)的实质是对于第i(i=0,1,…,M-1)列的像素循环上移f个位置。
这种操作很像魔方的转动,又因为图像是平面的,所以称为Square排列操作。
当分组内加密方法可实现分组内的完全扩散效应时,易证Square加密算法满足图像加密并行算法的4个要求。
二、 Mixing操作的改进
理论上2轮Sqvare加密即可实现图像的完全扩散。以64x64的Lena灰度图像为对象,作4 096次实验。每次实验只改变一个像素的最低位,并计算密文比特的改变率。这4096个改变率的最大值为0.4982,最小值为0.474 2,平均值为0.4861。可见,Square加密算法并没有达到理想的改变率。
经分析发现,这是由于Mixing操作的缺陷造成的。根据式(1),经Mixing操作后,各元素等于同一组中其他所有元素异或运算的结果。因此,当明文改变一比特时,密文分组中有且仅有一个元素保持不变。由此可推知,分组内加密方法不能实现分组内完全扩散的要求。
为满足分组内完全扩散的要求,本文提出了一个新的Mixing操作,定义如下:
式(3)与式(1)在表现形式上很相似,唯一不同的是式(1)中的加法为异或运算,而式(3)则采用模256加法。可以证明,当研均为0~255之间的整数,且分组个数N为偶数时。Mixing操作是可逆的。
同时,由式(3)可以推知,改进的MAS加密可实现分组内的完全扩敝效应。将这种Square排列与改进的MAS分组加密操作的联合称为“Squaren图像并行加密算法。经2轮Square加密算法加密后后密文比特改变率的最大值为0.5114,最小值为0.4922,平均值为0.5018。
三、实验结果分析
实验的目的是检测Square加密算法的加密速度和安全性能,如直方图、相邻像素相关性、密钥敏感性以及算法的完全扩散效应。
实验程序采用Matlab语言编写,采用1.5GHz的Intel_Celeron PC机模拟并行运算平台。图像明文是256x256的灰度图像Lena。用于产生轮密钥的混沌系统初值和参数分别为xo=0.123 456 78,μ=1.999 9。加密轮数为9轮。
(1)加密速度
表1为9轮MASK加密算法与Square加密算法加密速度的对比。
从表1可以看出Square加密算法的速度明显快于MASK加密算法。其主要原因在于MASK加密算法算法中的K变换需要进行多次乘法运算,比较耗时;而Square排列只需进行数据读写操作,其运算速度非常快。
(2)直方图
图3显示了加密前后图像的直方图。可以看出加密后图像的直方图非常均匀,从而提高了图像的安全性。
(3)相邻像素的相关系数
图像的一个显著特征是相邻像素的桶关性很高,一个成功的图像加密算法应该去除这种相关性。分别从图像的水平、竖直和对角方向随机地选取1000对像素,并对比它们加密前后的相关系数,如表2所示。
(4)密钥敏感性
本文将系统密钥,即混沌参数xo=0.123 45678改为0.123 456 79,保持μ不变,或将μ=1.999 9改为1.9998,保持xo不变,检查各轮加密后密文比特改变率。表3列出了实验结果。可以看出,Square加密算法经2轮加密后,密文比特改变率稳定在50%左右。
(5)完全扩散效应
将图像最后一个像素的最低位由“1”变为“0”,其他所有像素保持不变,检查各轮加密后密文比特改变率。表4列出了实验结果。从表4可以看出,Square加密算法经2轮加密后,密文比特的改变率稳定在50%左右,而MASK加密算法达到同样的目标需要至少3轮加密。
实验结果表明Square加密算法的安全特性和加密速度都超过了MASK加密算法,具有安全、快速和简洁等优点,可在实际的并行计算平台上使用。
小知识之并行算法
并行算法就是用多台处理机_联合求解问题的方法和步骤,其执行过程是将给定的问题首先分解成若干个尽量相互独立的子问 题,然后使用多台计算机同时求解它,从而最终求得原问题的解。