基于有限素域乘法群与倾斜帐篷的图像加密算法

2020-03-11 13:17杨耀森
计算机应用与软件 2020年2期
关键词:加密算法密文直方图

孟 浩 李 博 杨耀森

(中北大学仪器科学与动态测试教育部重点实验室 山西 太原 030051)

0 引 言

在过去的几十年中,保密数据的安全性受到了密码学家的广泛关注。研究人员提出了不同类型的信息安全技术。由于图像中较大的数据容量和相邻像素之间的严重相关性,许多传统的算法,如高级加密标准(AES)、数据加密标准(DES)、国际数据加密标准(IDES)在处理图像方面速度较低,不能满足图像/视频的实时加密要求。混沌系统具有许多敏感特性,使得混沌系统保证了对于不同统计攻击和差分攻击的安全性和鲁棒性[1-3]。文献[4]中提出了一种新的基于混沌分组密码的图像加密算法。该算法结合密码原始运算、非线性变换函数和混沌帐篷映射实现加密。它可以抵御蛮力攻击。文献[5]中提出了一种具有线性反馈移位寄存器和混沌映射的时间域和频域图像加密方法,该方法能抵抗差分攻击。Tang等[6]提出了一种基于Arnold变换和三种随机策略的加密算法。这种加密技术是一种安全的算法,可以克服Arnold变换的尺寸限制。但研究人员分析发现,有些混沌方法很容易受到不同攻击。文献[7]使用斜帐篷混沌映射来实现排列和扩散,而不改变像素信息。该方法具有较高的效率和较大的密钥空间,但从直方图的角度来看,其安全性不够。Fridrich[8]使用二维标准Baker映射演示了对称块加密技术。Solak等强调了Fridrich方法对所选密码文本攻击的一些弱点。混沌映射另一个重要问题是混沌系统迭代中的需要进行大量的浮点计算[9],并且混沌映射在有限的精密平台下会退化为周期性行为。对此,研究人员提出了数学模型与混沌相结合的图像加密系统,其中置换是由一些非混沌方法定义的,如基于灰度码的排列方法、基于螺旋相位调制的非相干点扩散函数、圆的性质等。这些非混沌技术与一些著名的基于混沌的图像加密技术相比,效果更好。

香农证明,对于一个强大的安全系统,在一定程度上产生数据的混乱和扩散是必要的[10]。因此本文提出了一种新的置乱扩散结构的加密方案。该方案首先利用有限素域乘法群的性质,生成一个置换序列,在置乱阶段,像素被重新定位,降低了像素之间的相关性。但是,直方图仍然与原始图像相同,会导致攻击者有机会从直方图中猜测原始图像。因此,在扩散阶段,采用斜帐篷映射对像素进行异或运算,以此提高系统的安全性。本文使用标准度量来测试所提方法的安全性和鲁棒性,与现有技术相比,取得了较好的效果。

1 有限素域乘法群与倾斜帐篷

1.1 有限素域乘法群的性质及置乱原理

1.1.1有限素域乘法群

设G={X1,X2,…,Xn}为含有n个元素的集合。“*”定义为G集合中的二元运算符。如果满足:

∀xi,xj∈G,xi·xj∈G∀xi,xj,xp∈G,(xi·xj)·xp=xi·(xj·xp) ∃e∈G,e·xi=xi·e,∀xi∈G∀xi∈G,∃xj∈G,xi·xj=xj·xi=e

那么(G,*)则为在二元运算下的的群。

若—个群G的每—个元都是G的某—个固定元a的乘方,则称G为循环群,记作G=={am|m∈Z},a称为G的—个生成元。

循环群分为无限循环群与有限循环群。针对有限的图像尺寸,我们只讨论有限循环群。

1.1.2有限素域乘法群置乱原理

表1 以2为生成元的序列

根据上表结果可知新序列Z={2,4,8,3,6,12,11,9,5,10,7,1}。

由有限域模n乘法群的第二个性质可知生成元的个数为Φ(Φ(13))=4。

表2 在P=13情况下的所有生成元的序列

续表2

从表中数据可知,新序列的排列顺序依赖于生成元的选择,因此在加密过程中生成元a被视为密钥。在进行像素置乱过程中,为了扩充密钥,我们可以随机选择一个较大的素数p,满足p>n+1即可。生成的新序列则会包含大于n的元素,只需删除掉这些大于n的元素,保留剩余元素即可。比如:继续使用表2中以2为生成元的新序列,假设图像大小为10×10,即n=10,则{2,4,8,3,6,12,11,9,5,10,7,1}序列会变成{2,4,8,3,6,9,5,10,7,1}。因此,质数p同样被视为密钥。

1.2 倾斜帐篷映射

由于置乱后的图像只破坏了明文图像相邻像素的相关性,并不改变灰度值的大小,所以整体图像的统计信息并没有发生改变。本文采用混沌映射对置乱后图像像素点进行异或运算,使得各像素灰度值分布更加均匀,破坏整体图像的统计信息。

混沌系统具有非周期性、遍历性和对初值的敏感性三大特性。故将混沌系统用于图像加密具有保密性强、随机性好、密钥空间大等优势,同时具有良好的抗干扰性、抵御攻击的能力。本文在进行灰度扩散时使用的是斜帐篷混沌映射。其动力学方程为:

(1)

式中:Vn∈[0,r]定义了混沌系统的状态;r∈(0,1)作为混沌系统的控制参数。式(1)对任意控制参数r∈(0,1)具有正的Lyapunov指数,因此,由式(1)定义的映射总是表现出混沌行为[11]。本文利用式(1)迭代65 536次,生成长度为65 536的扩散序列。

2 仿真实现及结果分析

加密流程如图1所示。

图1 加密流程图

步骤1定义图像为P,大小为256×256。按照上述循环群置乱算法,定义按行排列的密钥scrkeyrow=(a1,p1,T),定义按列排列的密钥为scrkeycolumn=(a2,p2,T)。根据密钥生成的两种新序列Z1、Z2,分别对图像P的行和列进行置乱操作得到置乱图像Pscrambling。因此,置乱过程的密钥scrkey=(a1,p1,a2,p2,T)。

步骤2在扩散过程中,定义斜帐篷映射初始条件,即diffkey=(r,V0)。根据初始密钥进行迭代,生成长度为256×256的随机序列V。由于序列元素是分布在(-1,1)上的浮点型实数,将随机序列中的元素都与1014相乘得到序列Y,并对Y序列元素进行取模运算以获得0到256范围内的随机数[12],运算公式如下:

Ydiffusion=Modulo(Y,256)

(2)

将Ydiffusion序列以256×256的矩阵形式排列对Pscrambling进行按位异或运算。运算公式如下:

Pdiffusion=bitxor(Pscrambling,Ydiffusion)

(3)

按照上述过程对lena和cameraman图像进行仿真,结果如图2所示。

(a) lena原始图像 (b) lena置乱图像 (c) lena扩散图像

(d) cameraman原始图像 (e) camerama置乱图像 (f) cameraman扩散图像图2 原始、置乱和最终加密的图像

从图2两种不同图像加密结果来看,经过本文算法加密后的图像看不出原始图像任何信息,达到了加密的效果。

对不同的原始图像和加密图像的直方图进行分析。由图3可知原始图像的直方图包含较大的尖峰,并且倾斜很大。图4中的加密图像与原始图像的直方图相比具有平坦、均匀的特性。因此,通过比较原始图像和加密图像的直方图,我们得出加密图像是随机的,攻击者无法看出原始图像的分布规律,这有效地抵制了攻击者的破译。

(a) lena原始图像 (b) cameraman原始图像

(c) lena直方图(d) cameraman直方图图3 加密前灰度值直方图

(a) lena密文图像 (b) cameraman密文图像

(c) lena密文图像直方图 (d) cameraman密文图像直方图 图4 加密后灰度值直方图

3 安全性分析

安全密码系统必须有效抵抗任何类型的统计攻击[13]。因此,我们运用一些严格的测试,包括密钥空间、密钥敏感度、相关性、图像熵和抗差分攻击测试,来检查所提出的加密算法的性能。

3.1 密钥的空间分析

一种好的加密算法具有密钥空间大的特点,可以增强其抵抗不同攻击的能力。图像加密方案的密钥空间至少为2100,甚至更大[14]。在计算密钥空间过程中,考虑到尺寸为2k×2k的图像。首先,计算置乱过程中scrkey的密钥空间。p1和p2的大小至少为k+1位;假定a1和a2为k+1位;T为中等大小,可设为6位。因此,对于scrkey位,要求至少为4(k+1)+6位。在扩散过程中,根据IEEE浮点标准[15],64位双精度计算精度为1015因此,diffkey密钥空间为1030,大于299。

综上所述,对于一幅256×256大小的图像,密钥空间至少为scrkey+diffkey=141位。在现有的64位机器中无法通过穷举法进行破译。

3.2 密钥敏感性分析

密钥敏感度是影响密码系统安全性的主要因素。因此,安全性强的加密方案中密钥中只有一个位的微小变化也应该产生不同的加密图像。分析密钥敏感度有两种方法:(1) 使用两个不同的密钥加密同一图像,然后比较加密图像。(2) 使用不同于实际密钥的密钥解密加密图像,然后将原始图像与新解密的图像进行比较。

本文采用前者进行测试。在测试过程中,diffkey(r,V0)的值保持不变,通过更改p或a修改密钥。

通过两个不同的密钥对lena原始图像进行加密,结果如图5所示。

(a) 密钥1图像及其直方图Scrkey1(10157,5893,1) (b) 密钥2图像及其直方图Scrkey1(10157,5893,1) (c) 差分图像|(b)-(a)|图5 秘钥敏感性测试图

根据结果图显示这两个加密的图像都产生均匀的直方图,然而差分图像的直方图表明两种密钥之间99%的像素不相等。这表明加密结果很大程度上依赖于密钥,具有很强的密钥敏感度。

3.3 相关性测试

普通图像的像素与相邻的像素高度相关,因此它们可以形成一些有意义的形状。对于一个安全的密码系统,需要产生像素间相关性很低的密码图像,这样密码分析员就不能得到任何信息。

本文随机随机选择明文和密文图像水平、垂直、对角方向各1 000对像素点[16],计算相关性系数,公式如下:

(4)

(5)

式中:cov(x,y)表示相关系数;xi、yi为像素值。

由表3可知,明文图像具有较强的相关性。经过本文算法加密后,相关性不足0.01,表明密文图像各个像素点基本无相关性。

表3 图像相关性参数

图6、图7给出了加密前后摄影师图像相关性对比图。

(a) 原始图像 (b) 水平方向

(c) 垂直图像 (d) 对角方向图6 原始图像相关性

(a) 原始图像 (b) 水平方向

(c) 垂直图像 (d) 对角方向图7 密文图像相关性

3.4 图像熵测试

信息熵反映了图像中平均信息量的多少,通过信息熵可以判断一幅图像的随机性。对于一幅图像,灰度值分布得越均匀,图像的信息熵就越大,图像的随机性越强[17]。当每个灰度值的概率相等时,信息熵为8。

信息熵计算公式如下:

(6)

式中:P(xi)表示某个灰度值出现的概率。

利用式(6)对lena和摄影师加密图像进行了信息熵测试,结果见表4。

表4 密文图像信息熵

由表4可知所提出的加密方案在密文图像中产生了高度的随机性。表1中的结果表明加密图像的熵非常接近8,并且比文献[18-20]的方案要好得多。因此,我们可以推断该加密方案具有很强的抗熵攻击能力。

3.5 抗差分攻击能力分析

差分攻击是通过比较分析有特定区别的明文在通过加密后的变化传播情况来攻击密码算法的。算法对明文的敏感性越强,抗差分攻击能就越强。本文通过像素改变率(NPCR)与归一化像素值平均改变强度(UACI)测试加密算法对明文图像的敏感性[17],计算公式如下:

(7)

(8)

表5 NPCR与UACI测量结果

由表5可知本文加密方案NPCR平均值均高于文献[21-22]的NPCR与UACI的平均值。该结果表明即使对原文图像做一点细微的变化,计算得出的密文图像也有明显的差异,即本文算法具有更强的抗差分攻击能力。

4 结 语

本文提出了一种基于有限素域乘法群和斜帐篷映射的图像加密算法。与已有的图像加密算法相比,该算法在图像置乱过程中对两个方面进行了提升:(1) 相比传统的混沌序列,有限素域乘法群序列的生成不仅依赖于迭代次数,更与生成元a与质数P的选择有不可分割的作用;(2) 有限素域乘法群的低复杂性表明它在实时图像传输应用中具有很高的潜力。实验结果表明,该方案面对不同的攻击具有足够的安全性和鲁棒性,优于一些常用的图像加密算法。

猜你喜欢
加密算法密文直方图
一种支持动态更新的可排名密文搜索方案
加密文档排序中保序加密算法的最优化选取
嵌入式异构物联网密文数据动态捕获方法
一种新的密文策略的属性基加密方案研究
用直方图控制画面影调
一种抗攻击的网络加密算法研究
例析频率分布直方图
中考频数分布直方图题型展示
教育云平台的敏感信息保护技术研究
一种改进的加密算法在空调群控系统中的研究与实现