基于希尔加密与动态DNA编码的图像加密方法与流程

文档序号:15131386发布日期:2018-08-10 07:54阅读:548来源:国知局
本发明涉及图像加密的
技术领域
,尤其涉及一种基于希尔加密与动态dna编码的图像加密方法。
背景技术
:数字图像具有直观易识别、生动、高冗余度、大数据容量等特征,逐渐成为人们常用的信息交流方式之一。数字图像在未经授权的网络传输中容易受到攻击,必须运用加密技术来保障图像传输的安全性。一些传统的诸如des、aes和rsa等加密算法并没有考虑到数字图像本身所具有的像素之间相关性强的特点。因此,将它们应用到图像加密中会存在加密强度不高,或者加密时间过长等众多问题。现在,越来越多的方法应用于图像加密,比如超混沌理论和dna编码技术。超混沌系统具有良好的伪随机特性、轨道的不可预测性、对初始状态及控制参数的敏感性。超混沌序列具有预测期长、随机性好、加密图像密钥空间大、安全性能更高、更不易破解等一系列优点。dna分子具有超大规模并行性、超低的能量消耗和超高的存储密度等特点。将超混沌序列与dna编码相结合不但可以解决dna编码的单一性等缺点,又可弥补超混沌序列对密钥的低敏感性等问题。2010年薛等人提出了一种基于dna编码与混沌序列相结合的加密方法,利用dna编码和超混沌系统对初始条件的敏感性和高度随机性对图像提供了很好的加密。文献[wangx,zhaoj,liuh.anewimageencryptionalgorithmbasedonchaos[j].opticscommunications,2012,285(5):562-566]提出一种基于混沌和dna动态编码的图像加密算法,该算法加入了动态dna编码规则;但是该算法在加密过程中只有一种dna运算,计算规则单一。文献[f,yavuzs.analysisandimprovementofanovelimagefusionencryptionalgorithmbasedondnasequenceoperationandhyper-chaoticsystem[j].nonlineardynamics,2014,78(2):1311-1320]指出了采用固定编码和单一运算规则的dna混沌图像加密算法容易通过选择明文攻击进行破解。后续又提出了基于编码和多混沌映射的图像加密改进算法,用超混沌系统置乱像素位置和像素值,用dna编码规则编码进行伪dna运算,最后通过dna解码获得加密图像。尽管dna编码和超混沌系统提供了很好的图像加密结果,但是,由于其对称性质,无法完全正向保密。为了解决这些问题,有学者提出用公钥密码技术弥补对称密码技术不能有效进行密钥管理的不足。当前密码技术主要有对称密码技术与公钥密码技术两类。公钥密码技术适合多用户在公共网络中进行安全的通信。在公钥密码技术应用中,主要有rsa公钥密码系统、elgamal公钥密码系统,还有椭圆曲线公钥密码(ecc)系统。由于椭圆曲线密码体制在同等的安全强度下,具有密钥短、参数选取灵活、安全性高、加密快速等优点被广泛应用于安全认证、数字签名以及数据安全传输体制中。文献[zhug,wangw,zhangx,etal.digitalimageencryptionalgorithmbasedonpixels[c]//intelligentcomputingandintelligentsystems(icis),2010ieeeinternationalconferenceon.ieee,2010,1:769-772.]提出了一种结合图像的特点,将图像数据嵌入至椭圆曲线中,这样处理后图像仍可按椭圆曲线点群运算恢复出。文献[蒋金山,曾德炉.基于椭圆曲线公钥密码体制的数字图像加密技术[j].微型机与应用,2004,23(5):50~52.]提出对数字图像的像素值进行加密,缺点是加解密耗费的时间较长。文献[王峰,张晓强,朱贵良.基于ecc的块图元加密算法研究[j].通信技术,2008,41(3):82-84.]中提出了一种基于ecc的块图元加密算法,该算法将经过置乱后的图像分割成图元,再进行椭圆加密变换,但对发送过程中的块图元像素质量要求较高且加解密过程较复杂。文献[李道丰,覃勇.一种基于椭圆曲线的数字图像加密算法[j].广西工学院学报,2008,19(2):57-61.]提出一种利用图像本身的特点,结合椭圆曲线的加密算法将椭圆曲线公钥密码应用于数字图像加密中,但是该算法在加密解密中耗费很长的时间。文献[kumarm,iqbala,kumarp.anewrgbimageencryptionalgorithmbasedondnaencodingandellipticcurvediffie–hellmancryptography[j].signalprocessing,2016,125:187-202.]中使用dna计算和椭圆曲线交换密码为rgb图像加密,但该算法对参数的敏感度不高。bibhudendra等人提出应用构造自逆矩阵对信息进行加密以克服这一弱点。由于其自逆矩阵的构造采用伪随机数并且元素之间具有很强相关性,因此易于破解。文献[patelkd,belanis.imageencryptionusingdifferenttechniques:areview[j].internationaljournalofemergingtechnologyandadvancedengineering,2011,1(1):30-34.]提出使用混沌序列来构造加密矩阵,但是其加密方法较为单一。文献[gutubaaa,khanfaa.hybridcryptohardwareutilizingsymmetric-keyandpublic-keycryptosystems[c]//advancedcomputerscienceapplicationsandtechnologies(acsat),2012internationalconferenceon.ieee,2012:116-121.]提出通过椭圆曲线去构造希尔加密中的加密矩阵,但是该算法过于复杂。技术实现要素:针对现有图像加密算法过于复杂、易于破解的技术问题,本发明提出一种基于希尔加密与动态dna编码的图像加密方法,采用超混沌系统、椭圆曲线相结合的方法构造希尔加密矩阵对图像进行置换加密,避免了元素之间的强相关性,也避免了椭圆曲线加密的复杂性与难以实现性;再根据像素所处位置的不同随机选择编码规则,对像素进行dna编码,最后使用超混沌序列对图像进行置乱;提高了密钥敏感性、传输数据的安全性,还能有效的抵抗已知明文和选择明文攻击,且具有较好的抗穷举攻击能力、统计攻击和差分攻击。为了达到上述目的,本发明的技术方案是这样实现的:一种基于希尔加密与动态dna编码的图像加密方法,其步骤如下:步骤一:输入大小为m*n的灰度图像,将灰度图像转化为明文图像矩阵i;步骤二:将明文图像矩阵i用哈希函数sha-3进行运算得到密钥b,将密钥b与汉明距离结合产生超混沌lorenz系统的初始值;采用超混沌lorenz系统产生的混沌序列q1、q2、q3和q4构造l/16个新的整数m序列,其中,l为像素组中的像素数;步骤三:利用椭圆曲线的参数和m序列构造l个可逆的希尔加密矩阵k1、k2.....、kl;步骤四:将明文图像矩阵i中的每l个像素为一像素组,得到l个像素组,对像素组i’k选择一个希尔加密矩阵kk,对其进行加密,得到加密图像矩阵i1,k=1,2,3…,l;步骤五:利用动态dna编码规则将加密图像矩阵i1转换为dna序列矩阵i2;取l个希尔加密矩阵k1、k2.....、kl的第一列合成新的矩阵kl+1,根据动态编码规则将矩阵kl+1转换为dna序列矩阵k’l+1;将dna序列矩阵i2与dna序列矩阵k′l+1进行dna序列运算得到dna序列矩阵i3;步骤六:利用动态dna编码规则对dna序列矩阵i3进行dna解码,还原成图像矩阵i4;步骤七:采用左循环移位操作对图像矩阵i4进行移2位操作,得到图像矩阵i5;步骤八:将混沌序列q4按从小到大的顺序排列得到新序列,用新序列各元素所在的位置之值替换混沌序列q4中的元素,得到索引序列;用索引序列对图像矩阵i5进行行列置乱,得到最终的加密图像矩阵i6。所述超混沌lorenz系统描述如下:其中,x、y、z、u为系统状态变量,a、b、c、r为系统参数;当a=10,b=8/3,c=28,r=-1时,上述超混沌lorenz系统处于超混沌状态。所述动态dna编码规则包括两种:对给定的明文图像矩阵i(m,n),针对每个像素p(i,j),动态dna编码规则如公式(2)或(3)所示:ri,j=(round(mod((i+j),8))+1),(2)r′i,j=(round(mod(i*j,8))+1),(3)其中,i∈{1,2,…,m},j∈{1,2,…,n},i,j分别表示像素p(i,j)在图像矩阵中的位置;mod(x″,y″)为求余运算,是在整数运算中求一个整数x″除以另一个整数y″的余数的运算;round(x″)为四舍五入取整函数。所述超混沌lorenz系统的初始值的计算方法为:原始m*n的明文图像矩阵i用sha-3-256运算后,产生出一组256位的哈希值:dbbf374d57de108723c923b41d768d018c8e538a2de7479962c487a0335e1e85;将哈希值转换为二进制后作为密钥b;进一步用汉明距离对密钥b进行处理,将密钥b按字节划分为32个字节表示为:b1,b2,b3,…,b32;令通过公式(5)-(8)计算超混沌lorenz系统的初始值:x0=x1+h(c1,c2)+c1/4(5)y0=y1+h(c2,c3)+c2/4(6)z0=z1+h(c3,c4)+c3/4(7)u0=u1+h(c4,c1)+c4/4(8)其中,h(x’,y’)为计算汉明距离的函数,x1、y1、z1、u1为给定值。所述汉明距离就是将一个字符串变换成另外一个字符串所需要替换的字符个数,给定任意两个长度为n的序列u={u1、u2、…、un}和v={v1、v2、…、vn},计算这两个序列的汉明距离公式如下:所述构造l/16个新的整数m序列的方法为:步骤1:构造l/16个空序列m1、m2、...、ml/16,每个序列将包含256个元素;步骤2:将区间t=[0,256)划分成256个子区间tw=[w,w+1),其中,w=0,1,2,...,255;步骤3:根据初始值x0、y0、z0、u0对超混沌lorenz系统进行迭代s次运算可以得到四组超混沌序列q1={q11、q12、…、q1s}、q2={q21、q22、…、q2s}、q3={q31、q32、…、q3s}和q4={q41、q42、…、q4s};对超混沌序列中的每个元素采用公式(9)进行预处理,得到序列q1’、q2’、q3’和q4’,其中s>m*n;f(x″)=mod(x″*1000,256)(9);步骤4:依次对序列q1’、q2’、q3’和q4’中的元素进行判断其是否落入区间t的某个子区间,假设某个元素的值落入子区间tw内,并且w不在序列m1中,则将w加入序列m1,直到序列m1中的元素个数达到256个;步骤5:继续将序列q1’,q2’,q3’,q4’中的剩余元素进行判断是否落入区间t的某个子区间并填充序列m2、...、ml/16。使用特征值为素数域fp上的椭圆曲线,在素数域fp上随机寻找一条阶含有大素数因子的椭圆曲线e,椭圆曲线e上阶为素数p的基点g0=(x'0,y'0);定义在素数域fp上的椭圆曲线e为:y2=x3+βx+γ(modp)(11)其中,参数β,γ∈fp且满足4β2+27γ3≠0(modp)是随机从m序列中选取两个数;p为椭圆曲线的阶,则满足方程(11)的点和一个无限远点o就组成了一个椭圆曲线e。所述希尔加密矩阵k1、k2、.....、kl构造方法为:(1)发送方alin在m序列中随机选取一个整数da作为私钥保存,且1≤da≤p-1;接收方bill在m序列中随机选取整数db作为私钥保存,且1≤db≤p-1;计算双方的公钥pa=dag0,pb=dbg0,pa、pb为公钥公开;(2)根据椭圆曲线系统参数,计算(x',y')=da*pb=db*pa,(k11,k12)=x'g0;(k13,k14)=m1g0;(k21,k22)=m2g0;(k23,k24)=m3g0;(k31,k32)=m4g0;(k33,k34)=m5g0;(k41,k42)=m6g0;(k43,k44)=y'g0,得到k11子矩阵;其中,m1、m2……m6为m1序列中的前6个元素;(3)对子矩阵k11做如下计算生成子矩阵k12,k12=n*(i-k11);(4)令子矩阵k22=-k11;(5)对子矩阵k11做如下计算生成子矩阵k21,k21=1/n*(i+k11),最后将生成的四个子矩阵k11,k12,k22,k21合并得到希尔加密矩阵(6)将l/16个m序列中的元素,每16个为一组,转换4*4的矩阵,将这l个4*4的矩阵与子矩阵k11相乘构成l个加密矩阵的第一部分;重复步骤(3)-(5)得到l个希尔加密矩阵k1、k2.....、kl。根据碱基配对规则思想,将两位二进制数用碱基表示,满足互补规则的dna编码规则有8种,表示为:规则1规则2规则3规则4规则5规则6规则7规则800-a00-a00-c00-c00-g00-g00-t00-t01-g01-c01-t01-a01-t01-a01-c01-g11-t11-t11-g11-g11-c11-c11-a11-a10-c10-g10-a10-t10-a10-t10-g10-c所述步骤五中的dna序列运算包括dna序列的加法运算和减法运算,dna序列的碱基之间的加减法运算规则为:。利用希尔加密矩阵k进行加密的方法为:将待加密的灰度图像i每8个像素为一组,将每组像素转换成8×1的矩阵i8*1;利用椭圆曲线构造8×8希尔加密矩阵k,对每组像素进行希尔加密,加密公式如下:其中,e为希尔加密的结果矩阵、i11~81为待加密的一组像素、k11-88为希尔加密矩阵k的元素;使用希尔加密矩阵k的乘法逆矩阵k-1对密文进行解密:i=(k-1*e)mod256=(k*e)mod256。本发明的有益效果:采取椭圆曲线与混沌加密相结合的方法构造加密矩阵,避免了椭圆曲线图像嵌入的复杂性和加密矩阵元素的相关性等问题,使加密算法简易,加密矩阵具有随机性等优点;再结合动态dna编码规则,增加了加密算法的安全性,使密钥之间的相关性降低,从而使密文难于破解。实验分析表明,本发明具有较好的加密效果,较大的密钥空间,对密钥的敏感度较高,易于实现;此外,还能有效的抵抗已知明文和选择明文攻击,可以较好地抵抗穷举和统计攻击、差分攻击,提高了传输数据的安全性,可用于图像的安全传输中。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明的流程图。图2为本发明图像加密、还原前后对比图,其中,(a)为原始图像,(b)为加密图像,(c)为解密图像。图3为错误密钥下的解密图像,(a)为错误密钥x1=63.1的解密图像,(b)为错误密钥y1=25.1的解密图像,(c)为错误密钥z1=47.1的解密图像,(d)为错误密钥u1=21的解密图像。图4本发明加密前后图像灰度直方图对比,(a)为lena明文图像的直方图,(b)为lena密文图像的直方图。图5为原始图像与加密图像在水平方向、垂直方向、对角线方向的两个相邻像素的相关性比较图,(a)为原始图像水平方向的相关性,(b)为加密图像水平方向的相关性,(c)为原始图像垂直方向的相关性,(d)为加密图像垂直方向的相关性,(e)为原始图像对角线方向相关性,(f)为加密图像对角线方向相关性。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。如图1所示,一种基于希尔加密与动态dna编码的图像加密方法,利用椭圆曲线与超混沌序列相结合构造希尔加密矩阵,对图像进行加密,并使用动态dna编码技术对图像像素值进行进一步扩散,其流程如图1所示,具体的加密步骤如下:步骤一:输入大小为m*n的灰度图像,将灰度图像转化为明文图像矩阵i。将大小为m*n的灰度图像转化为大小为m*n的二维明文图像矩阵i,方便后续的处理。步骤二:将明文图像矩阵i用哈希函数sha-3进行运算得到密钥b,将密钥b与汉明距离结合产生超混沌lorenz系统的初始值;采用超混沌lorenz系统产生的混沌序列q1、q2、q3和q4构造l/16个新的整数m序列,其中l为像素组中的像素数。超混沌lorenz系统描述如下:其中,x、y、z、u为系统状态变量,a、b、c、r为系统参数。当a=10,b=8/3,c=28,r=-1时,上述超混沌lorenz系统处于超混沌状态。dna是一种由脱氧核糖核酸作为基本单位的高分子聚合物。脱氧核苷酸由三部分组成,分别为一分子的磷酸、一分子的脱氧核糖和一分子的含氮碱基。含氮碱基共有4种类型,腺嘌呤(a),胞嘧啶(c)、鸟嘌呤(g)和胸腺嘧啶(t)。其中a与t,g与c分别是两两互补的关系,这是众所周知的watson–crick碱基配对规则。而二进制编码中0和1互补,因此00与11、01与10也互补。根据这种思想,将两位二进制数用碱基表示。满足互补规则的编码规则有8种,如表1所示。灰度图像的像素值在0到255之间,因此既可用8位二进制数表示,也可用4位dna编码表示。例如:十进制数133,用8位二进制数表示为10000101,用规则3编码为actt,用规则8解码则为11100000,仅通过编码和解码方式的不同便可实现信息的加密。表18种dna编码规则规则1规则2规则3规则4规则5规则6规则7规则800-a00-a00-c00-c00-g00-g00-t00-t01-g01-c01-t01-a01-t01-a01-c01-g11-t11-t11-g11-g11-c11-c11-a11-a10-c10-g10-a10-t10-a10-t10-g10-c给定明文图像矩阵i(m,n),针对每个像素p(i,j),动态dna编码规则的选择如公式(2)或(3)所示:ri,j=(round(mod((i+j),8))+1),(2)r′i,j=(round(mod(i*j,8))+1),(3)其中,i∈{1,2,…,m},j∈{1,2,…,n},i,j分别表示像素p(i,j)在图像矩阵中的位置;mod(x″,y″)为求余运算,是在整数运算中求一个整数x″除以另一个整数y″的余数的运算;round(x″)为四舍五入取整函数。根据像素位置来选择编码规则,增加了编码规则的多样性。dna序列的加减法类似于传统的代数计算,碱基之间的加减法运算规则定义如表2所示。表2dna加减法规则+atcg-atcgaatcgaatcgttagcttagcccgatccgatggctaggcta作为哈希函数的一种,sha-3算法基于海绵结构,是现代密码学中最基本的模块之一,以任意长度的消息值作为输入生成固定长度的hash值。但是哈希函数的压缩并不是传统意义上的压缩,哈希函数是一种不可逆的压缩,一旦经过哈希运算,得到的结果将无法还原为原文。由哈希值产生的密钥,即使原图像有极其微小的变化,加密产生的哈希值都将完全不同,加密密钥也将完全不同。sha-3算法将原图像信息与密钥相结合,抗蛮力攻击为2256,因此,这种加密方法能有效的抵抗已知明文、选择明文攻击以及蛮力攻击。原始图像用sha-3-256运算后,产生出一组256位的哈希值:dbbf374d57de108723c923b41d768d018c8e538a2de7479962c487a0335e1e85;将哈希值转换为二进制后作为密钥b。用汉明距离对密钥b进一步处理,用于产生超混沌lorenz系统的初始值,这样生成的初始值具有随机性、周期性等优势。在信息论中,两个等长字符串之间的汉明距离是两个字符串对应位置的不同字符的个数。换句话说,汉明距离就是将一个字符串变换成另外一个字符串所需要替换的字符个数。给定任意两个长度为n的序列u={u1、u2、…、un},v={v1、v2、…、vn},定义计算这两个序列的汉明距离h(u,v)公式如下:将密钥b按字节划分,可划分为32个字节,表示为:b1,b2,b3,…,b32。例如:b1=11011101,b2=11001001,则这两个序列的汉明距离h(b1,b2)=2。令通过公式(5)-(8)来计算混沌系统的初始值:x0=x1+h(c1,c2)+c1/4(5)y0=y1+h(c2,c3)+c2/4(6)z0=z1+h(c3,c4)+c3/4(7)u0=u1+h(c4,c1)+c4/4(8)其中,h(u,v)表示序列u和序列v之间的汉明距离,x1、y1、z1、u1为给定值。给定明文图像矩阵i(m,n),设采用超混沌lorenz系统产生的混沌序列来构造l/16个新的整数序列——m序列。具体构造过程如下:步骤1:构造l/16个空序列m1、m2、...、ml/16,每个序列将包含256个元素。步骤2:将区间t=[0,256)划分成256个子区间tw=[w,w+1),其中,w=0,1,2,...,255。步骤3:根据初始值x0、y0、z0、u0对超混沌lorenz系统利用公式(1)进行迭代s次运算(s>m*n),可以得到四组超混沌序列q1={q11、q12、…、q1s}、q2={q21、q22、…、q2s}、q3={q31、q32、…、q3s}和q4={q41、q42、…、q4s};对超混沌序列中的每个元素采用公式(9)进行预处理,得到序列q1’、q2’、q3’和q4’。f(x″)=mod(x″*1000,256)(9)步骤4:依次对序列q1’,q2’,q3’,q4’中的元素进行判断其是否落入t的某个子区间,假设某个元素的值落入子区间tw内,并且w不在序列m1中,则将w加入序列m1,直到序列m1中的元素个数达到256个。步骤5:继续将序列q1’、q2’、q3’和q4’中的剩余元素进行判断是否落入t的某个子区间并填充序列m2、...、ml/16。这样构造出的m序列具备了随机性,能有效的抵抗明文攻击。步骤三:利用椭圆曲线的参数和m序列构造l个可逆的希尔加密矩阵k1、k2.....、kl。椭圆曲线是指由韦尔斯特拉斯(weierastrass)方程:y2+a1xy+a3y=x3+a2x2+a4x+a6(10)所确定的平面曲线。若f是一个域,其中,系数ai∈f(i=1,2,3,4,6)。满足weierastrass方程的数(x,y)称为f域上椭圆曲线的点。f域可以是有理数域,也可以是复数域。椭圆曲线的所有点,加上一个特殊的无穷远点o所确定的曲线是有限域f上的椭圆曲线。在密码学应用中,经常用到的椭圆曲线有两类:特征值为素数域fp上的椭圆曲线,其中p为奇素数和特征值为2的有限域f2m上的椭圆曲线。本发明使用特征值为素数域fp上的椭圆曲线。在素数域fp上随机寻找一条阶含有大素数因子的椭圆曲线e,椭圆曲线e上阶为素数p的基点g0=(x'0,y'0);β,γ是椭圆曲线e的参数。定义在素数域fp上的椭圆曲线e为:y2=x3+βx+γ(modp)(11)其中,参数β,γ∈fp且满足4β2+27γ3≠0(modp)是随机从m序列中选取两个数;p为椭圆曲线的阶,则满足这个方程的点和一个无限远点o就组成了一个椭圆曲线e。随机从m序列中选取两个数作为椭圆曲线的参数β、γ。若选取的β=180,γ=226,p=251,则e:y2=x3+180x+226(mod251),且4*(180)2+27*(226)3=140≠0(mod251),得到该椭圆曲线的基点g0=(1,77)。系统参数则为(f251,(1,77),251,180,226)。密钥的生成:每个用户各自产生自己的密钥,发送方alin在m序列中随机选取一个整数da作为私钥保存,且1≤da≤p-1;接收方bill在m序列中随机选取整数db作为私钥保存,且1≤db≤p-1。计算双方的公钥:pa=dag0,pb=dbg0,pa、pb作为公钥公开。再计算da*pb=db*pa=(x',y')。由上面的算法可知,要得到(x',y')必须知道用户alin的私钥da和bill的公钥pb,或者必须bill的私钥db和alin的公钥pa,而根据g0、pa、pb要计算出用户alin的私钥da或用户bill的私钥db,这相当于求解椭圆曲线离散对数问题,因此想要得到(x',y')是很困难的。希尔密码是一种替换密码,希尔密码的关键在于加密矩阵。如果加密矩阵不可逆,密文将无法还原成明文。为了避免椭圆曲线难以实现及其复杂性,对称密码技术不能有效进行密钥管理,以及加密矩阵元素之间具有很强的相关性,容易通过离散元素找到元素之间内在的规律性,导致加密系统易于破解。本发明使用椭圆曲线和m序列构造加密矩阵。将待加密的灰度图像每8个像素为一组,将每组像素转换成8×1的矩阵i8*1。通过构造8×8可逆矩阵k,对每组图像进行希尔加密。加密公式如下:其中,e为希尔加密的结果矩阵、i11~81为待加密的一组像素、k11-88为希尔加密矩阵k的元素。使用可逆矩阵k的乘法逆矩阵k-1对密文进行解密:i=(k-1*e)mod256=(k*e)mod256。为避免求逆矩阵增加算法的复杂度,这里融合椭圆曲线的基点g0及m序列构造自逆的希尔加密矩阵k。将希尔加密矩阵k分成四部分:(1)发送方alin在m序列中随机选取一个整数da作为私钥保存,且1≤da≤p-1;接收方bill在m序列中随机选取整数db作为私钥保存,且1≤db≤p-1;计算双方的公钥pa=dag0,pb=dbg0,pa、pb为公钥公开;(2)根据椭圆曲线系统参数,计算da*pb=db*pa=(x,y),xg0=(k11,k12);m1g0=(k13,k14);m2g0=(k21,k22);m3g0=(k23,k24);m4g0=(k31,k32);m5g0=(k33,k34);m6g0=(k41,k42);yg0=(k43,k44)来获得k11,k12……k44的值,得到k11子矩阵。其中,m1、m2……m6为m1序列中的前6个元素。(3)对子矩阵k11做如下计算生成子矩阵k12,k12=n*(i-k11)。(4)令子矩阵k22=-k11。(5)对子矩阵k11做如下计算生成子矩阵k21,k21=1/n*(i+k11),最后将生成的四个子矩阵k11,k12,k22,k21合并得到可逆的希尔加密矩阵k。(6)将l/16个m序列中的元素,每16个为一组,转换4*4的矩阵,将这l个4*4的矩阵与子矩阵k11相乘构成l个加密矩阵的第一部分。重复步骤(3)-(5)得到l个希尔加密矩阵k1、k2.....、kl。希尔加密矩阵k是l个希尔加密矩阵k1、k2.....、kl的总称。步骤四:将明文图像矩阵i中的每l个像素为一像素组,得到l个像素组,对像素组i’k选择一个希尔加密矩阵kk进行相乘加密,得到加密图像矩阵i1,k=1,2,3…,l。加密运算上将像素组i’k与希尔加密矩阵kk相乘。步骤五:利用动态dna编码规则将加密图像矩阵i1转换为dna序列矩阵i2;取l个希尔加密矩阵k1、k2.....、kl的第一列合成新的dna序列矩阵kl+1,根据动态dna编码规则将dna序列矩阵kl+1转换为dna序列矩阵k’l+1;将dna序列矩阵i2与dna序列矩阵k′l+1进行dna序列运算得到dna序列矩阵i3。动态dna编码规则为公式(2)或公式(3)的运算规则。dna序列运算包括加法或减法运算,具体运算规则如表2所示。步骤六:利用动态dna编码规则对dna序列矩阵i3进行dna解码,还原成图像矩阵i4。这一步骤中动态dna编码规则与步骤五中的运算规则不同。步骤七:用二进制表示图像矩阵i4的每个像素值,对图像矩阵i4中的每个像素值进行做循环移2位操作,得到图像矩阵i5。步骤八:将混沌序列q4按从小到大的顺序排列得到新序列,用新序列各元素所在的位置之值替换混沌序列q4中的元素,得到索引序列;用索引序列对图像矩阵i5进行行列置乱,得到最终的加密图像矩阵i6。本发明采用超混沌系统和椭圆曲线相结合构造加密矩阵,对图像进行加密,然后使用动态dna编码对图像进行扩散,最后再用超混沌序列实现对图像的混淆和置乱。解密算法是加密算法的逆过程,由于可逆希尔加密矩阵k为自逆矩阵,因此,解密算法中不需要再求k的逆矩阵,这样大大节省了计算时间与计算的复杂度。解密算法是加密算法的逆过程。本发明的实验仿真平台为matlab7.1(r2014a),用标准的256*256的lena灰度图像作为原始图像,给定x1=0,y1=0,z1=0,u1=0,在此条件下进行实验。加密和解密结果如图2所示,其中图2(a)-(c)分别为lena原图、加密图像和解密图像。从图2中可以看到原图像在经过加密以后完全无法辨认,说明了加密的有效性。从解密结果看,解密图像可以无失真的恢复出来,可以初步判断本发明的可行性。一个好的加密算法应该能抵抗不同类型的攻击。下面从密钥敏感程度、统计攻击、差分攻击等方面来分析本发明方法的安全性。良好的加密算法有足够大的密钥空间,并能有效抵御穷举攻击。本发明的加密算法中,主要密钥包含:x1、y1、z1、u1、β,γ以及发送方私钥da。计算精度按1014算,则密钥空间为:1084*2128≈3.4*10122,可见本发明方法具有足够大的密钥空间来抵抗穷举攻击。为测试密钥的灵敏性,将已知的密钥进行微小的改动,再作为解密秘钥来测试图像的灵敏度。图3(a)表示x1=63.3,其它密钥不变的解密图;图3(b)、图3(c)、图3d)分别表示y1=25.1、z1=47.1、u1=21其它密钥不变的解密图。以超混沌系统初值为算法的加密密钥,使加密算法有足够大的密钥空间和对初值密钥的高度敏感性,改变了单独应用dna编码导致的密钥空间有限易被破解的缺点。因此,本发明加密方法具有抵御对加密密钥攻击的能力。直方图用来显示灰度图像像素值的分布。图4(a)给出了原始图像直方图,图4(b)给出了加密后的图像直方图,可以看出加密前的直方图像素集中在某些值上,加密后相应的直方图基本上是均匀的,攻击者难以利用像素灰度值的统计特性恢复原图像。由此可见该算法能够有效的抵抗统计分析。相关性可以表明两个随机变量的线性关系。在图像处理中,用来研究像素的关系。在原始图像中,图像的相邻像素一般具有较强的相关性,为了抵抗统计攻击,必须降低加密图像的相关性。从lean明文和密文图像上,按水平、垂直和对角线三个方向分别随机选择n=2500对像素值,利用下面的公式(13-16)计算其相关性:其中,x和y是图像中相邻像素的灰度值,cov(x,y)是协方差,d(x)是方差,e(x)是平均值。原图像与加密图像相关系数-0.00037211。表3是原始图像和密文图像不同方向的相关系数。从图5可以看出,原文图像的分量在每个方向的相关性都很大,而经过加密之后,密文图像的不同分量的不同方向的相关性都很小,可以更好的保存图像的信息不被泄露,因此,本发明图像加密算法能有效的抗统计攻击。表3原始图像和加密图像中两个相邻像素相关系数对比图像的信息熵可以用来描述图像信息的不确定性,测试图像灰度值的分布情况。信息熵越大则图像灰度值分布越均匀。信息熵的计算公式如下:其中p(mi)是mi出现的概率。对于256级灰度图像来说,其信息熵的最大值为8。所以好的加密算法对密文图像的信息熵应接近理论值8。实验结果信息熵h=7.9897,与理论值8非常接近。这表明该算法具有很高的安全性。表4本发明与其它算法信息熵的比较信息熵leanref.[1]ref.[2]h7.98977.98717.9874其中,ref.[1]为zhangq,liul,weix.improvedalgorithmforimageencryptionbasedondnaencodingandmulti-chaoticmaps[j].aeu-internationaljournalofelectronicsandcommunications,2014,68(3):186-192。ref.[2]为liuh,wangx,kadira.imageencryptionusingdnacomplementaryruleandchaoticmaps.applsoftcomput2012;12:1457–66。在测试差分攻击中,通常会用到图像像素的数目变化率和图像平均强度的改变率。原始图像的其中一个像素值发生变化时,密文图像的像素值也会发生变化,密文像素值发生变化的数目的比率就是图像像素的数目的变化,也就是npcr(像素数改变率)。如果算法对明文有着很强的敏感性,npcr的数值就会越大,npcr值越接近于100%,这就表明算法抵抗差分攻击的能力越强;图像的平均强度的改变率,也就是uaci,它的含义是所有的原始图像以及密文图像的相对应位置的像素值的平均变化的强度的比率。uaci的理想值为33%,其值越接近于理想值,则说明抵抗差分攻击的能力也越强。npcr和uaci的计算公式如下:其中,m和n分别代表图像的长和宽,p1(i,j)和p2(i,j)图像的同一个像素点在加密前、后的值通过计算得出lean加密图像的npcr=99.6%,uaci=33.44%。从结果中可以发现,该加密技术即使原始图像发生微小变化加密结果都将完全不同。由此证明该加密方案具有很强的抗差分攻击能力。表5本发明与其他文献npcr与uaci的对比npcruaciours99.6%33.44%ref.[3]99.0276%32.8399%ref.[4]99.59%33.41%ref.[5]99.1390%32.2306%ref.[2]99.60%28.13%其中,ref.[3]为enayatifarr,sadaeihj,abdullahah,etal.anovelchaoticbasedimageencryptionusingahybridmodelofdeoxyribonucleicacidandcellularautomata[j].opticsandlasersinengineering,2015:33-41;ref.[4]为chaix,cheny,broydel.anovelchaos-basedimageencryptionalgorithmusingdnasequenceoperations[j].opticsandlasersinengineering,2017,88:197-213;ref.[5]为enayatifarr,abdullahah,isninif.chaos-basedimageencryptionusingahybridgeneticalgorithmandadnasequence.optlaserseng2014;56:83–93。本发明将图像分块,每个图像块的dna编解码方式和运算操作取决于超混沌系统,都是伪随机的,一幅明文图像可以包含多种编码方式和运算操作。本发明采取椭圆曲线与希尔、混沌加密相结合的加密方案,避免了椭圆曲线图像嵌入的复杂性,希尔加密中密钥矩阵中元素的相关性使加密算法简易,自逆矩阵更具有随机性等优点;给每个图像块都配上不同的密钥矩阵,更是大大增加了加密算法的复杂度,安全性也更高;再结合dna编码使密钥之间的相关性较低,从而使密文难于破解。实验分析表明,本发明具有较好的加密效果,较大的密钥空间,对密钥的敏感度较高;本发明还可以抵抗穷举和统计攻击、差分攻击,可用于安全的图像传输中。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1