当前位置:首页 期刊杂志

一种基于超混沌系统的图像加密算法

时间:2024-09-03

赵亚慧,杨 有,翟 浩

(重庆师范大学计算机与信息科学学院, 重庆 沙坪坝 401331)



一种基于超混沌系统的图像加密算法

赵亚慧,杨有,翟浩

(重庆师范大学计算机与信息科学学院, 重庆沙坪坝401331)

[摘要]文章针对目前混沌图像加密算法密钥空间小的问题,提出一种基于超混沌系统的图像加密算法.该算法的主要思想是利用两组不同的初始值产生两组不同的随机序列,然后对数字图像进行加密.加密算法主要分为两部分:首先利用随机序列对图像像素进行置乱,其次将置乱后的矩阵利用随机序列进行像素值替代.实验结果以及安全性分析表明:该算法具有较大的密钥空间,较低的相邻像素相关性,并且能够有效抵御穷举攻击和统计攻击.

[关键词]超混沌系统;图像加密;像素置乱;像素值替代

信息安全越来越引起人们的注意.目前已经有数字水印、信息加密、信息隐藏[1]等,密码学中图像加密领域也逐渐被人们关注并得到深入研究.自1989年Robert A. J. Matthews首次提出将混沌应用于密码学以来,由于混沌系统其自身对初值和系统参数的敏感性以及伪随机性而广泛应用到图像加密中.此后,低维混沌系统得到了广泛使用[2,3].虽然这些低维混沌系统具有形式简单、运行效率高的优点,但密钥空间太小,使用穷举攻击破解难度不大[4].高维混沌系统有更大的密钥空间,实现简单,随机性更好,能够更有效地抵御相空间重构、穷举攻击等破译方法[5].同时,高维混沌中的四维混沌系统也就是超混沌系统,拥有两个以上正的Lyapunov指数,正的Lyapunov指数越多,系统的运动轨迹越复杂、越难以预测,对初始条件也越敏感,在加密中使用超混沌系统,更能提高系统的安全性.

随着现代计算机系统性能的提高,研究超混沌图像加密越来越重要.卢辉斌[6]等人提出了一种基于新型超混沌系统的加密算法.该算法在总体上沿用像素位置置乱和像素值替代的基本结构,但只有一轮加密替代操作,复杂度不高.文献[7]和文献[8]发现缺陷并分别进行改进.文献[9]提出一种图像置乱与置换的方案,方案中使用与明文图像信息相关的序列进行置乱替换,并使加密公式的密文和密钥、明文之间的关系更复杂.但是,由于计算机的精度有限,影响了混沌随机序列的随机特性,使得产生的混沌序列的初值敏感性降低,存在一定的周期,并且混沌密码的安全性很大程度上依赖于混沌序列的分布特性、复杂性和随机性.因此,在本文的加密方案中采用两组不同的初值,使用同一混沌系统以及系统参数来进行迭代,将得到的两组随机序列交叉使用,并将像素的置乱与明文信息相关联,增强了明文对密钥的敏感性.理论分析以及实验仿真证明:通过该算法加密后的密文、明文和密钥之间的关联度非常低,拥有较大的密钥空间,使算法能够抵抗选择明文和选择密文的攻击,具有良好的安全性,同时算法实现简单,也具有较高的执行效率.

1 超混沌系统加密算法

1.1超混沌系统

本文采用的超混沌系统的动力学方程为[10]:

(1)

1.2像素位置置乱

数字图像是一个由灰度值组成的二维矩阵,通过对原图像矩阵进行一系列的非线性变换,使得图像中的像素点重新随机排列,得到一幅杂乱无章的图像.虽然从统计直方图来看,原图像和新图像的统计规律完全相同,但从视觉效果来看完全不同,从而起到图像加密的作用.

设数字图像为PM×N,图像大小为M×N,P(i,j)(i=1,2,…,M;j=1,2,…,N)表示图像像素的灰度值.像素矩阵可以表示为:

(2)

Step1:算法中将给出两组初始值(x10,x20,x30,x40),(y10,y20,y30,y40)作为密钥,分别使用四阶五级龙格-库塔函数迭代n0次,n0与初始条件及系统参数有关.得到两组混沌序列,分别设为{xi(j)},{yi(j)}(i=1,2,3,4;j=1,2,…,n0).为消除暂态过程带来的有害效应,增强算法对初始密钥的敏感性,将两组序列分别保留后M个和N个值作为混沌序列,得到两组序列{ai(j) , i=1,2,3,4; j=1,2,…,M},{bi(j) , i=1,2,3,4; j=1,2,…,N}.

Step2: 计算原图像所有像素灰度值的和,得到sumP,并计算如下值:

s=sumP⨁16

(3)

(a)在(x1,x2)平面的投影;(b)在(x1,x3)平面的投影;

为了选取两个序列分别进行行置乱和列置乱,我们设对应关系如下:若s=0,选取序列{a1(j)}, {b1(j)};若s=1,选取序列{a1(j)}, {b2(j)};若s=2,选取序列{a1(j)}, {b3(j)};若s=4,选取序列{a1(j)}, {b4(j)}等.s∈[0,5],因此共16个对应关系.最后,将得到的两个序列分别进行升序排序,将排序后新的向量中值的位置组成位置编号序列,并使用这两个位置编号序列分别对原图像矩阵P进行行的置乱和列的置乱,最终得到置乱后的矩阵Q.

原图像矩阵经过以上算法的像素置乱,不仅降低了相邻像素之间的相关性,并且将图像像素的置乱与原图像信息紧密相关,提高了密文对明文的敏感性.但为了进一步加强算法的安全性,改变图像的灰度直方图,使算法更能抵抗统计攻击,还需要进行图像像素值替代.

1.3图像像素扩散

图像像素值的扩散是将冗余度高、相关性强的明文信息作用到密文中,以便隐藏明文的统计信息.为了达到扩散替代的效果,本文使用置乱后的图像Q,进行以下算法来提高安全性.

Step1:将置乱后的图像矩阵Q按逐行扫描顺序得到的像素序列为{Q(i),i=1,2,…,L},其中L=M×N.将系统迭代得到的两组序列{xi(j)},{yi(j)}分别取后L/4个,假设L为4的倍数,得到序列

{mi(j),i=1,2,3,4;j=1,2,…,L/4 },

{ni(j),i=1,2,3,4;j=1,2,…,L/4}.

Step2:将序列{mi(j)},{ni(j)}组合成四组序列:{m1(j),n3(j),m2(j),n4(j)},{n1(j),m3(j),n2(j),m4(j)},{m1(j),n1(j),m2(j),n2(j)},{n3(j),m3(j),n4(j),m4(j)}.选定一组序列作为密钥,将选定序列的组数设为k.若k=3,则首先选定第三组,并将该组序列的第一组状态值加入序列L1中,此时L1={m1(0),n1(0),m2(0),n2(0)},并继续计算如下k的值:

k=(m1(0)+n1(0)+m2(0)+n2(0))mod4

(4)

若计算得到k=0,则选取第一组序列中的第2组状态值加入序列L1,即L1={L1,m1(1),n3(1),m2(1),n4(1)},以此类推,通过计算i的值来决定下一组要加入序列L1的状态值.最终直至L1的长度为L.

Step3:将四组序列中没有加入L1的状态值,按照组数依次组成序列L2,序列L2的长度也为L.

Step4:由于超混沌系统迭代得到实值序列的数值类型与数字图像的像素值类型不匹配,不能直接用于图像的加密.因此,算法中将使用(5)式对序列L1,L2中的状态值进行改造:

Li(j)=mod(fix(abs(Li(j)-floor(Li(j)))

*10^15),256)

(5)

其中:i= 1,2 ;j= 1,2,…,L.函数abs(Li(j))表示取Li(j)的绝对值,函数floor(Li(j))表示取小于或等于Li(j)的最大整数,函数fix()表示将得到的结果向零靠拢取整,最终Li(j)将得到[0,255]之间的整数.

Step5:将改造后的序列L1,L2对图像像素值进行异或操作.已知原图像像素序列{D(i),i=1,…,L},加密后的像素序列为{C(i),i=0,…,L},首先将C(0)设定一个[0,255]的值作为密钥,并由下面公式计算得到q的值:

(6)

若q=0,则使用公式(7)对像素D(i)进行替代操作,得到加密后的像素值C(i).

C(i)=D(i)⨁L1(i)⨁C(i-1)

(7)

若q=1,则使用公式(8)对像素D(i)进行替代操作,得到加密后的像素值C(i).

C(i)=D(i)⨁L2(i)⨁C(i-1)

(8)

Step6:重复以上步骤,直到所有像素都加密完成,最终将得到的序列{C(i)}转化为M×N的矩阵,便得到加密后的图像.

在以上的像素替代中,首先对两组随机序列值进行处理,使序列值的数值类型不仅能够用于图像像素的加密,并且将两组由不同初始值产生的随机序列按照一定规则重新进行交叉组合,使最终得到两组新的序列增加了对密钥的敏感性,有效地增强了算法的安全性.

图像的加密一定对应图像的解密,解密过程就是加密的逆过程.加密过程先对原图像进行像素置乱,然后进行像素的扩散和替代,而解密是先对密文进行反替代,再将反替代后的密文进行反置乱.首先已知本算法在进行加密时所需的加密密钥,并将密钥中的两组初始值使用本算法中的超混沌系统进行迭代得到两组序列,然后将密文进行(9)式和(10)式的反替代

D(i)=C(i)⨁L1(i)⨁D(i-1)

(9)

D(i)=C(i)⨁L2(i)⨁D(i-1)

(10)

将反替代后的矩阵再分别进行列的反置乱和行的反置乱,最终得到原图像.

2实验结果及分析

在实验仿真中,采用经典的大小为256×256的8位图像“cameraman”,如图2(a)所示.

(a)原图像     (b)置乱后图像

(c)加密后图像     (d)解密后图像

作为测试图像,使用Matlab7.1作为仿真实验平台.在本算法中,对超混沌系统进行迭代所需的两组状态初始值分别设为(x10,x20,x30,x40) =(2.5,5.2,3.0,7.3),(y10,y20,y30,y40) =(3.0,6.0,3.5,6.8).为了使系统处于超混沌状态,将系统参数设为:a=27.5,b=3,c=19.3,d=2.9,e=3,并将在计算过程中使用的四阶五级龙格-库塔函数的步长,也就是函数的迭代次数,设置为0.001,其它参数C(0)=86,k=2.

2.1加密效果分析

通过设置以上参数,将算法运行在Matlab中得到以下实验结果,如图2所示.其中图2(a)为原图像“cameraman”, 图2(b)为图像像素置乱后的图像,图2(c)为最终加密后的图像,图2(d)为解密后的图像.通过对图2(a)、图2(b)和图2(c)进行对比,发现图像在进行像素置乱后成为与原图像完全不同的图像,并且在进行像素混乱后加密的效果更加明显,直观上来说,无法从加密后的图像中获取原图像的任何信息.

2.2统计分析

图像的灰度直方图描述了图像中像素值的分布情况,是图像的重要统计特性.图3(a)为原图像的灰度直方图.可以看出,图像像素分布极不均匀,而一个好的加密方案应该消除图像的这种统计特性,使加密后的图像能够抵御统计方法的攻击.经过本算法加密后图像的灰度直方图如图3(b).可以看出,加密后图像的像素分布非常均匀,因而本算法能有效地抵抗统计攻击.

图3 加密前后图像直方图

2.3相关性分析

由于图像本身固有的特性,使得图像中相邻像素之间存在很大的相关性,包括水平像素相关性、垂直像素相关性和对角像素相关性,而攻击者常常利用这种特性进行统计攻击,好的加密算法应该打破这种相关性,借助概率论的相关系数来衡量相邻像素的相关性,相关系数rxy的定义如下:

(11)

(12)

(13)

(14)

图4 图像垂直相关性

方向原始图像密文图像Lena密文文献[6]Lena密文水平0.9291-0.0021 0.00230.0064垂直0.9599-0.00400.00330.0084对角0.90600.0108-0.00200.0107

2.4密钥敏感性测试

一个好的加密方案应该对密钥有很高的敏感性,当输入一个错误的密钥,不论与正确密钥值的误差有多小,得到解密后的图像都应该与明文有很大的差别,并且不能从错误密钥解密后的图像中得到原图像的任何信息.错误解密后的图像与原图像差别大小可以通过像素变化率NPCR来进行计算:

(15)

其中,M×N为图像大小,D(i,j)为一个二值矩阵.假如C1和C2为两个大小为M×N的图像矩阵,当C1(i,j) = C2(i,j),则D(i,j)=0;当C1(i,j) ≠ C2(i,j),则D(i,j)=1.对于本系统的密钥敏感度将进行多轮测试,其中每一轮都将微小改变正确密钥组中的一个参数.例如:将x10设置为x10=2.500 000 000 000 01,与x10相差1014倍,进行解密后的图像如图5.

(a)正确解密图像  (b)错误解密图像

通过直观对比正确解密后的图像和错误解密后的图像,可以发现差别很大,并且通过(15)式计算可知:错误解密后图像与原图像之间的NPCR值为99.6428﹪,而对于256级的灰度图像,NPCR理想期望值为99.6049﹪[8].文献[11]在密钥误差相同的情况下,正确解密图像与错误解密图像之间的NPCR为99.615﹪.通过对比可以看出,本文算法加密的图像对密钥初值更加敏感.最终我们通过分析发现,错误的密钥是无法得到原图像信息的.当对其他密钥进行相应改变时,也得到同样的结论,因而表明该加密方案可以抵抗基于敏感性的攻击.

2.5密钥空间和执行效率分析

穷举攻击是对加密系统进行攻击的最基本的方法之一.它主要是通过对加密系统的密钥空间进行大量的搜索,希望通过这种手段得到密钥从而达到破解密码系统的目的.为了能够抵御这种攻击方法,加密方案就要有足够大的密钥空间.本算法中的密钥有:超混沌系统的4个初始值(a,b,c,d),共需要两组,微分方程的步长n0,选定的序列值k,密文像素值C(0),其中k的取值范围为[1,4],C(0)的取值范围为[0,255].本系统设置的精度为10-15,则8个超混沌初始值的密钥空间为(1015)8=10120≈2398,相当于二进制的398比特密钥长度.若将系统预迭代的次数n0、正整数k和正整数C(0)也作为原始密钥,则算法密钥空间更大,足够抵御穷举攻击.

本系统运行的硬件环境为IntelCorei7-2640M2.80GHz的CPU,4G内存,使用Matlab7.1作为仿真实验平台,操作系统为Windows7.将图像大小为256×256的“cameraman”图像运行在以上环境中,经过测试,图像加密的平均时间为0.361s.将文献[6]的算法运行在同样的计算机环境下,并使用同样的数据进行实验,得到的加密平均时间为0.796s.可见,本文的加密算法具有较高的加密效率.文献[6]算法中对像素置乱的过程中要首先对随机序列进行预处理增加了算法的时间复杂度.

3结论

本文提出一种基于超混沌系统的加密方案,方案中使用两组初始值产生两组随机序列,两组初始值共有8个密钥值,使系统有更大的密钥空间,并且由混沌系统产生随机、无周期的实数序列.由于计算机精度的影响,使单混沌序列会存在一定的周期,因此在像素置乱和像素替代中,采用一定的规则将迭代得到的双混沌序列交叉使用,不仅缓解了由于计算机精度带来的混沌序列的周期性问题,而且增加了密文对密钥的敏感度.经过仿真实验分析,该算法拥有足够大的密钥空间,对密钥极其敏感,加密后的图像相邻像素之间相关性极低,能够抵御来自穷举方法的攻击和统计方法的攻击.因此,该算法不仅加密效果好,而且具有很高的安全性.

[参考文献]

[1]杨有,翟浩,余平. 利用行列变换的无损信息隐藏算法[J]. 重庆大学学报,2014,37(9):40-46.

[2]YANGH,WONGKW,LIAOX,etal.Afastimageencryptionandauthenticationschemebasedonchaoticmaps[J].CommunicationsinNonlinearScienceandNumericalSimulation, 2010, 15(11):3507-3517.

[3]刘星沙,李敏,费耀平. 一种高安全性的数字图像加密算法[J]. 微电子学与计算机,2007,24(2):21-23.

[4]WANGY,WONGKW,LIAOX,etal.Anewchaos-basedfastimageencryptionalgorithm[J].AppliedSoftComputing, 2011, 11(1):514-522.

[5]潘勃,冯金富,陶茜,等. 基于超混沌映射和加法模运算的图像保密通信方案[J]. 计算机科学,2009,36(8):273-275.

[6]卢辉斌,孙艳. 基于新的超混沌系统的图像加密方案[J]. 计算机科学,2011(6):149-152.

[7]廖雪峰,邹华胜. 超混沌图像加密方案的分析与改进[J]. 计算机工程与应用,2012(33):105-111.

[8]朱从旭,胡玉平,孙克辉. 基于超混沌系统和密文交错扩散的图像加密新算法[J]. 电子与信息学报,2012(7):1735-1743.

[9]钟厚桥,李建民,林振荣,等. 基于超混沌序列的图像加密方案[J]. 计算机应用研究,2013(10):3110-3113.

[10]WANGHX,CAIGL,MIAOS,etal.Nonlinearfeedbackcontrolofanovelhyperchaoticsystemanditscircuitimplementation[J].ChinesePhysicsB, 2010, 19(3):154-161.

[11]廖春成,廖春龙. 基于像素位置置乱和替代的超混沌图像加密算法[J]. 北京建筑工程学院学报,2013(3):59-65.

(责任编辑穆刚)

Image encryption based on hyperchaotic system

ZHAO Yahui, YANG You,ZHAI Hao

(College of Computer and Information Sciences, Chongqing Normal University, Shapingba Chongqing 401331, China)

Abstract:For the current chaotic image encryption algorithm key problem of small space, proposed a image encryption algorithm based on hyperchaotic system. The main idea is to use two different groups of initial values produce two different random sequence, and encryption of digital image. Encryption algorithm is divided into two parts, first, use the random sequence to scrambled the image pixel, then use the random sequence to replace the pixel for the matrix scrambled. The experiment result indicates that the algorithm has a larger key space, a lower correlation of adjacent pixels, a strong resist ability of exhaustive attack and statistic attack.

Key words:hyperschaotic system; image encryption; pixel scrambling; pixel values substitution

[中图分类号]TP312

[文献标志码]A

[文章编号]1673-8004(2016)02-0130-06

[作者简介]赵亚慧(1990-),女,河南周口人,硕士,主要从事图像加密方面的研究.

[基金项目]重庆市教育委员会科学技术研究项目(KJ130646);重庆师范大学横向科研项目(60102-000232).

[收稿日期]2015-05-19

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!