一种基于Feistel网络与动态DNA编码的图像加密方法与流程

文档序号:15099025发布日期:2018-08-04 15:16阅读:328来源:国知局
本发明涉及图像加密的
技术领域
,尤其涉及一种基于Feistel网络与动态DNA编码的图像加密方法。
背景技术
:信息安全问题已经成为影响国家安全、社会稳定、经济发展和人身财产的重大问题,必须采取措施保证信息资源的完整性、可用性、保密性和可靠性。数字图像具有直观易识别、生动、高冗余度,大数据容量等特征,是人们常用的信息交流方式之一。由于数字图像具有数据量大、冗余度高等特点,现有的经典加密方法诸如DES、AES、Feistel和RSA等因其加密效率低,安全性不高等原因,已不能满足图像加密的需要。随着DNA分子计算技术和生物技术研究的不断深入。科学家们发现核酸序列具有天然的四进制组合,这与半导体通断所形成的二进制类似。因此,运用核苷酸的排列组合可以进行信息存储和计算。DNA所具有的超大规模并行性、超高容量的存储密度以及超低的能量消耗正被人们开发出来用于分子计算、数据储存以及密码学等领域,这方面的研究有可能最终导致新型计算机、新型数据存储器和新型密码系统的诞生,引发一场新的信息革命。1999年,Gehani等提出了一种基于DNA的一次一密机制,给出了替代法和异或法两种一次一密密码方案。2003年,Chen等构建了一种基于DNA分子序列的密码体系;2005年,Kazuo等利用DNA解决了密钥分配问题;2006年,卢明欣等利用DNA合成技术、DNA克隆技术、DNA扩增技术以及DNA芯片技术,并结合计算复杂度理论提出了一种基于DNA的加密方法。2009年,Mousa等设计出一种信息隐藏方案,利用可对比映射技术,在不改变核酸功能的前提下,将密文信息嵌入核算序列的任意部分。总之,DNA的高并行计算能力和海量数据存储能力、现有生物技术和计算技术的局限性为已有的DNA加密方法提供了多重安全保障。但是,这些DNA加密算法多用于加密文字信息,对于图像信息,直接加密相当困难。近年来,结合DNA分子与传统密码的双重优势,2014年,徐光宪等提出了一种基于混沌映射的DNA图像加密算法。2015年,Wang等给出了一种基于2-Dlogistic映射和DNA操作的图像加密技术。2016年,周小安给出了一种基于DNA乱序编码和混沌映射的图像加密算法。2017年Chai等结合DNA操作,给出了一种基于混沌的图像加密算法。这些算法仅对图像像素的位置进行置换和灰度值进行了改变。但比特位置改变较少,是没能达到真正扩散的目的。技术实现要素:针对现有图像加密方法比特位置改变较少,没能达到真正的扩散的技术问题,本发明提出一种基于Feistel网络与动态DNA编码的图像加密方法,将二者Feistel网络和DNA编码的特性有机的结合,通过采用超混沌系统产生的超混沌系列来构建希尔加密矩阵对图像进行置换,利用混沌索引序列、Feistel网络及动态DNA编码技术对图像进行置乱与扩散,并通过密文反馈进一步增强算法的混淆和扩散特性。为了达到上述目的,本发明的技术方案是这样实现的:一种基于Feistel网络与动态DNA编码的图像加密方法,其步骤如下:步骤一:将大小为m×n的灰度图像转换成大小为m×n二维的图像矩阵I1;步骤二:采用哈希函数的Keccak算法计算图像矩阵I1的散列值K,通过散列值K得到混沌Chen系统的初值,将初值带入超混沌Chen系统生成均包含L=m×n个元素的序列B1、B2、B3和B4;步骤三:采用超混沌Chen系统产生的序列B4构造T=[m*n/4]个希尔加密矩阵KM1、KM2、…、KMT;步骤四:对图像矩阵I1按照每4个像素一组,通过构造的希尔加密矩阵进行加密置换,得到图像矩阵I2;步骤五:从GenBank数据库中下载ID号为:NZ_LOZQ01000042的DNA序列,从第S个碱基处开始截取6mn个碱基序列命名为DNA序列SQ;步骤六:根据超混沌Chen系统产生的序列B1,通过位置置乱置乱图像矩阵I2中的像素位置,得到置乱后的图像矩阵I3;步骤七:将图像矩阵I3进行动态DNA编码、Feistel变换和DNA解码并恢复成矩阵形式得到图像矩阵I4,完成第一轮置乱和变换;步骤八:根据超混沌Chen系统产生的序列B2,通过位置置乱对图像矩阵I4进行置乱得到图像矩阵P5;对图像矩阵P5进行动态DNA编码、Feistel变换和DNA解码并恢复成矩阵形式得到图像矩阵P6,完成第二轮置乱和变换。步骤九:根据超混沌Chen系统产生的序列B3,通过位置置乱对图像矩阵I6进行置乱得到图像矩阵P7;对图像矩阵P7进行动态DNA编码、Feistel变换和DNA解码并恢复成矩阵得到图像矩阵P8,完成第三轮置乱和变换。步骤十:根据密文扩散技术,对图像矩阵P8中的每个像素与前一个像素的密文进行异或运算,得到最终图像矩阵P9。所述序列B1、B2、B3和B4的生成方法为:超混沌Chen系统的方程为:其中,x、y、z和w为系统的状态变量;a、b、c、d和r为系统的控制参数,在a=35、b=3、c=12、d=7和0.085≤r≤0.798时,系统表现为超混沌运动;采用哈希函数的Keccak算法对图像矩阵I1生成512位散列值K,将其分为64组,每组8个比特位,记K={k1,k2,k3,…,k64};按照如下公式计算超混沌Chen系统的初值x0、y0、z0和w0:其中,v=6(i-1),u=1,2,3,4,表示异或运算;x′0、y′0、z′0、w′0为给定参数初始值;round(hi)为四舍五入取整函数;在超混沌Chen系统处于超混沌状态下,将混沌系统的初值x0,y0,z0,w0带入超混沌Chen系统中通过迭代舍去起始端数据,从中取出L=m×n个不重复的值,得到4个离散实数值超混沌序列A1:{a11,a12,…,a1L}、A2:{a21,a22,…,a2L}、A3:{a31,a32,…,a3L}和A4:{a41,a42,…,a4L};超混沌序列A1、A2、A3和A4为统一实数序列的值域,仅取4个序列的小数部分,得到新的序列分别为B1:{b11,b12,…,b1L}、B2:{b21,b22,…,b2L}、B3:{b31,b32,…,b3L}和B4:{b41,b42,…,b4L},即:其中,[Ai]表示取超混沌序列Ai的整数部分,mod(,)为求余运算。步骤三中采用超混沌Chen系统产生的序列B4构造T=[m*n/4]个希尔加密矩阵KM1、KM2、…、KMT的方法为:给定一个4×4的空矩阵M,将矩阵M分成四部分:其中,(1)超混沌Chen系统作为伪随机数发生器产生超混沌序列,依次从超混沌序列B4中选择4个元素,填充M11;(2)子矩阵M12=I-M11;(3)子矩阵M22=-M11;(4)子矩阵M21=I+M11;(5)将生成的四个子矩阵M11、M12、M22、M21合并得到可逆的希尔加密矩阵M,将其赋值给KM1;(6)重复(1)~(5)步,得到希尔加密矩阵KM2、…、KMT。所述步骤四中加密置换的方法为:将待加密的图像矩阵I1每4个像素为一组,将每组像素转换成4×1的矩阵I4*1,通过构造4×4的可逆的希尔加密矩阵KM,对每组图像进行希尔加密,加密公式如下:其中,E为希尔加密的结果矩阵、E11~41为矩阵E的像素、I11~41为待加密的一组像素、m11-44为希尔加密矩阵KM的元素;使用希尔加密矩阵KM的乘法逆矩阵KM-1对密文进行解密:I=(KM-1*E)mod256=(KM*E)mod256。所述位置置乱的方法为:按照升序排列序列B1或B2或B3得到置换索引序列X,将置换索引序列X按照每行m个值进行填充得到置换矩阵,用置换矩阵置乱图像矩阵I2、I4或I6。所述动态DNA编码、Feistel变换和DNA解码的实现方法为:将待处理的图像矩阵按照每8个一组进行分组,对每一组像素进行动态DNA编码;编码后,每组包含32个碱基,分为L和R两个小组进行Feistel变换,选择DNA异或运算作为Feistel变换的F函数,DNA序列SQ作为Feistel变换的秘钥K;Feistel变换后选择DNA编码规则进行DNA解码。所述Feistel变换的方法为:明文分组P被分割为左右两部分:P=(L0,R0),对于加密过程的每一轮λ,这里λ=1,2,...,η,新的左半部分和右半部分按如下规则计算生成:其中,表示按位异或运算,F是轮函数,Kλ是第λ轮的子密钥;子密钥派生自密钥K,并遵循特定的密钥调度算法。所述动态DNA编码是根据图像矩阵中待编码像素所在矩阵中的位置决定选择编码规则的一种,对像素Ii,j所选择的DNA编码规则Ri,j计算如下:Ri,j=Mod((i-1)*n+j,8)+1(7)其中,i∈{1,2,…,m},j∈{1,2,…,n}。所述密文扩散的实现方法为:将图像矩阵P8按照行优先的顺序转换为长度为m×n的一维序列S={s1,s2,s3,…sm×n},设密文扩散后的序列为SE={se1,se2,se3,…sem×m},密文扩散的公式如下:其中,初始化元素se(0)=127,l=1,2,…m*n。所述动态DNA编码的编码规则为:按照A→00,C→01,G→10,T→11进行对应编码,则互补数字配对及与碱基对的互补配对及吻合,这样共有8中编码组合满足互补配对规则,8种编码规则为:动态DNA编码中的运算规则为:根据互补配对规则,针对A→00,C→01,G→10,T→11编码,碱基之间的异或运算规则为:XORACGTAACGTCCATGGGTACTTGCA碱基之间的加法运算规则为:ADDACGTAACGTCCGTAGGTACTTACG碱基之间的减法运算规则为:本发明的有益效果:基于Feistel网络与动态DNA编码技术采用“置换-扩散-置乱”的结构实现;首先使用Keccak算法计算原始明文图像的哈希值作为超混沌系统的初值,采用超混沌系统生成的混沌序列生成希尔加密矩阵对原始图像的像素进行置换;其次用DNA编码运算作为Feistel网络的F函数,DNA序列库作为Feistel网络的密钥K,借助于Feistel网络实现图像像素值扩散;最后通过密文反馈进一步扩散。本发明通过三轮“混沌置乱-DNA编码-Feistel变换-DNA解码”的加密方式使密文随机性和抗攻击性更强,确保了加密后的密文更安全;通过希尔置换、Feistel变换、混沌置乱与动态DNA编码实现图像像素位置的置乱变换与像素值的扩散;DNA序列运算作为Feistel变换的F函数,通过多次置乱与DNA编码、解码,来减少加密的轮数,以达到多轮加密的效果。实验结果表明,本发明可以对图像进行有效加密,具有明文敏感性强,密钥空间大,密文统计特性优良等突出特点;三轮的Feistel变换、置乱与DNA编码解码能有效地抵抗明文攻击,差分攻击和统计攻击,具有很好的安全性和应用潜力。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明的加密流程图。图2为Feistel网络的结构图。图3为本发明原始图像与加密图像;(a)为原始图像,(b)为加密图像,(c)为错误密钥下的解密图像,(d)改变密钥后的加密图像。图4为本发明Lena图像加密前后的灰度直方图;(a)Lena加密前灰度直方图,(b)Lena加密后灰度直方图。图5为水平、垂直及对角方向相邻像素相关性比较;(a)为原始图水平方向,(b)为加密图水平方向,(c)为原始图垂直方向,(d)为加密图垂直方向,(e)为原始图对角方向,(f)为加密图对角方向。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。如图1所示,一种基于Feistel网络与动态DNA编码的图像加密方法,其步骤如下:步骤一:将大小为m×n的灰度图像转换成大小为m×n二维的图像矩阵I1。步骤二:采用哈希函数的Keccak算法计算图像矩阵I1的散列值K,通过散列值K得到混沌系统的初值,将初值带入超混沌Chen系统生成包含L个元素的序列B1、B2、B3和B4。作为哈希函数的一种,Keccak算法基于海绵结构是现代密码学中最基本的模块之一,以任意长度的消息值作为输入,生成固定长度的HASH值。但是,哈希函数的压缩并不是传统意义上的压缩,哈希函数是一种不可逆的压缩,一旦经过哈希运算,得到的结果将无法还原为原文。由哈希值产生的密钥,即使原图像有极其微小的变化,加密产生的哈希值都将完全不同,加密密钥也将完全不同。将原图像信息与密钥相结合,抗蛮力攻击为2512,因此这种加密方法能有效的抵抗已知明文、选择明文攻击以及蛮力攻击。混沌作为一种特有非线性现象,具有良好的伪随机性、轨道的不可预测性、对初始状态及结构参数的极端敏感性、迭代的不重复性等一系列优良特性,广泛被应用于保密通信。与低维混沌系统相比,高维超混沌系统有更多正性李雅昔诺夫指教、更加复杂和难以预测的动力学特性,能有效解决低维混沌系统动力学特性退化问题,保密性强,算法实现简单,密钥空间大。2005年,李等人通过状态反馈控制构建了超混沌Chen系统,其方程为:其中,x、y、z和w为系统的状态变量;a、b、c、d和r为系统的控制参数,在a=35、b=3、c=12、d=7和0.085≤r≤0.798时,系统表现为超混沌运动。采用哈希函数的Keccak算法对图像矩阵I1生成512位散列值K,将其分为64组,每组8个比特位,记K={k1,k2,k3,…,k64};按照如下公式计算超混沌Chen系统的初值x0、y0、z0、w0:其中,v=6(i-1),u=1,2,3,4,表示异或运算;x′0、y′0、z′0、w′0为给定参数初始值;round(hi)为四舍五入取整函数。在超混沌Chen系统处于超混沌状态下,将混沌系统的初值x0,y0,z0,w0带入超混沌Chen系统中通过迭代舍去起始端数据,从中依次取出L=m×n个不重复的值,可以得到4个离散实数值超混沌序列A1:{a11,a12,…,a1L}、A2:{a21,a22,…,a2L}、A3:{a31,a32,…,a3L}和A4:{a41,a42,…,a4L};超混沌序列A1、A2、A3和A4为统一实数序列的值域,仅取4个序列的小数部分,可以得到新的序列分别为B1:{b11,b12,…,b1L}、B2:{b21,b22,…,b2L}、B3:{b31,b32,…,b3L}和B4:{b41,b42,…,b4L},即:其中,[Ai]表示取超混沌序列Ai的整数部分,mod(x,y)为求余运算,是在整数运算中求一个整数x除以另一个整数y的余数的运算。步骤三:采用超混沌Chen系统产生的序列B4构造T=m*n/4个希尔加密矩阵KM1、KM2、…、KMT。希尔加密(Hill)是运用基本矩阵论原理的替换密码,由LesterS.Hill在1929年发明。Hill密码是一类替代密码,其优点有可隐藏明文字母频率,表示简洁,易于计算机实现,可使用可逆矩阵加密解密等,可将之应用于图像加密。希尔密码的关键在于加密矩阵,如果加密矩阵不可逆,密文将无法还原成明文。为了避免加密矩阵元素之间强相关性,本发明使用超混沌序列构造自逆加密矩阵,来降低加密矩阵之间的相关性,从而使密文难于破解。将自逆的希尔加密矩阵M分成四部分:其中,(1)超混沌Chen系统作为伪随机数发生器产生超混沌序列,依次从超混沌序列B4中选择4个元素,填充M11。(2)子矩阵M12=I-M11。(3)子矩阵M22=-M11。(4)子矩阵M21=I+M11。(5)将生成的四个子矩阵M11、M12、M22、M21合并得到可逆的希尔加密矩阵M,将其赋值给希尔加密矩阵KM1。(6)重复(1)~(5)步,得到希尔加密矩阵KM2、…、KMT。由混沌理论生成的希尔加密矩阵M,根据混沌特性各元素具有很好的随机性,不能简单地求出内在的规律性,加密强度高,这样基于分块矩阵M11,生成的密钥矩阵更具有鲁棒性。这样生成的自逆矩阵用于密钥作为加密系统免去求解逆矩阵。步骤四:对图像矩阵I1按照每4个像素一组,通过构造的希尔加密矩阵进行加密置换,得到图像矩阵I2。将待加密的图像矩阵I1每4个像素为一组,将每组像素转换成4×1的矩阵I4*1,通过构造4×4的可逆的希尔加密矩阵KM,对每组图像进行希尔加密。加密公式如下:其中,E为希尔加密的结果矩阵、E11~41为矩阵E的像素、I11~41为待加密的一组像素、k11-44为希尔加密矩阵KM的元素;使用希尔加密矩阵KM的乘法逆矩阵KM-1对密文进行解密:I=(KM-1*E)mod256=(KM*E)mod256。步骤五:从GenBank数据库中下载ID号为:NZ_LOZQ01000042的DNA序列,从第S个碱基处开始截取6mn个碱基序列命名为DNA序列SQ。序列SQ用于Feistel变换的密钥K。步骤六:根据超混沌Chen系统产生的序列B1,按照升序排列得到置换索引序列X,将置换索引序列X按照每行m个值进行填充可得到置换矩阵,用置换矩阵置乱图像矩阵I2中的像素位置,得到置乱后的图像矩阵I3。步骤七:将图像矩阵I3按照每8个一组进行分组,对每一组像素进行动态DNA编码;编码后,每组包含32个碱基,分为L和R两个小组进行Feistel变换,选择DNA异或运算作为Feistel变换的F函数,DNA序列SQ作为Feistel变换的秘钥K;Feistel变换后选择DNA编码规则进行DNA解码,并恢复成矩阵形式得到图像矩阵I4,完成第一轮置乱和变换。1988年Luby和Rackoff首次提出利用Feistel网络来构造伪随机置换的方法,它通过交替使用代替和置换两个基本操作,实现对加密数据的充分扩散和混淆,具有较好的安全性和加密效率。Feistel密码结构是用于分组密码中的一种对称结构。传统的许多分组密码都采用了Feistel的结构,其中包括DES、FEAL、RC5等。Feistel结构是一种典型的迭代结构,也是一种乘积形式的密码变换.能够充分实现扩散与混乱,构成强度很高的密码系统。Feistel网络结构图如图2所示,在Feistel变换中,明文分组P被分割为左右两部分,P=(L0,R0):对于加密过程的每一轮λ,这里λ=1,2,...,η,新的左半部分和右半部分按如下规则计算生成:其中,表示按位异或运算,F是轮函数,Kλ是第λ轮的子密钥。子密钥派生自密钥K,并遵循特定的密钥调度算法。对于Feistel网络结构,加密系统中的轮函数F的作用是将输入的比特扩散到输出中,就可以将明文信息扩散到所有的分组中。每一次的信息都扩散到其他的子分组中,当加密轮数为η时,所有的信息都将扩散到子分组中。因此,其加密的核心在于F函数的选定,不同的F函数就是遵循Feistel结构的不同的加密算法,一个好的F函数对于加密效果至关重要,一般情况下,F函数需要满足以下几点:①不要求可逆:即不求F函数有反函数,②非线性;③混乱性;④扩散性;⑤雪崩性:即随着轮数增加其加密效果雪崩式增强;⑥比特独立性:一个bit的加密结果不依赖于其他bit。本发明将DNA计算中的DNA序列运算作为加密变换的轮函数,满足F函数的要求,主要是它具有很好的密码学特性。DNA分子由四种脱氧核苷酸组成,分别是:腺嘌呤(A),胞嘧啶(C),鸟嘌呤(G),胸腺嘧啶(T)。对于两个单链DNA分子,可以通过核苷酸之间的氢键形成一个稳定的DNA分子。碱基的化学结构确定了碱基互补配对的原则,也称为Watson-Crick碱基配对原则,即A和T之间通过两个氢键配对,G和C之间通过三个氢键配对。这一天然的四进制组合,正好与半导体通断所形成的二进制类似。因此,运用碱基的排列组合可以进行信息的存储和计算。核酸数据库是所有已知核酸信息集合的一个数据资料库,它包含核酸的核苷酸序列,单核苷酸多态性、结构、性质以及相关描述等内容。数据库文件可以从生物信息资源中心通过计算机网络获得。序列在数据库中的ID号被称为序列代码,它具有唯一性和永久性。随着测序技术的快速发展,核酸数据库的规模正在以指数方式增长,平均不到9个月就增加一倍。1998年1月,EMBL中收录了15500个物种的序列,其序列数目已超过一百万,其中50%以上为模式生物的序列。到目前为止能够公开获取的DNA序列已经超过1.63亿条。如此巨大规模的数据库,相当于一个天然的密码本。为图像加密技术提供了一个全新的思路和解决方案。在图像加密算法中,为达到像素混淆与扩散的目的,定义如下规则:如果按照A→00,C→01,G→10,T→11进行对应编码,则互补数字配对及与碱基对的互补配对及吻合。这样共有8中编码组合满足互补配对规则。对于灰度图像来说,每个像素的灰度值可以用8位二进制数表示,如果采用DNA编码的话,只需要编码4个碱基序列。转换成DNA序列以后,就可以将DNA序列的转换规则用到图像处理中。在加密图像中,为达到像素值扰乱的目的,同时定义了如下碱基运算规则。表1.8种编码规则规则1234567800AACGCGTT01CGAATTCG10GCTTAAGC11TTGCGCAA根据互补配对规则,针对A→00,C→01,G→10,T→11编码,这里给出一种碱基之间的运算规则见表2-表4,针对其他编码,同样可以建立类似的运算规则。表2.异或运算规则XORACGTAACGTCCATGGGTACTTGCA表3.加法运算规则ADDACGTAACGTCCGTAGGTACTTACG表4.减法运算规则SubACGTAATGCCCATGGGCATTTGCA在图像的局部像素值一样的情况下,比如会有很多“00”,在使用常规DNA编码规则的时候会出现很多的“A”,这样一个缺点在自然图像尤其是医学图像变得非常明显。如果使用表1中的规则1对医学图像进行编码,在转换的DNA序列中“A”碱基是最多的。在图像加密过程中使用固定的DNA编码,也就是说,没有打乱明文的比特分布。动态DNA编码技术是根据图像矩阵中待编码像素所在矩阵中的位置决定选择表1编码规则的一种,也即对像素Ii,j所选择的DNA编码规则Ri,j计算如下:Ri,j=Mod((i-1)*n+j,8)+1(7)其中,i∈{1,2,…,m},j∈{1,2,…,n}。由于每个像素值可以由8位二进制表示,每个像素被编码为4个碱基,因此编码后的序列长度为4mn。如原始图像的第37行、54列的像素值是108,用二进制表示为[01101100],根据动态编码技术,应选择规则为R37,54=7,用DNA编码规则7进行编码,得到该像素的DNA序列为[CGAT]。步骤八:根据超混沌Chen系统产生的序列B2,类似于步骤六对图像矩阵I4进行置乱得到图像矩阵P5;对图像矩阵P5按照步骤七的方法进行动态DNA编码、Feistel变换和DNA解码并恢复成矩阵形式得到图像矩阵P6,完成第二轮置乱和变换。步骤九:根据超混沌Chen系统产生的序列B3,类似于步骤六对图像矩阵I6进行置乱得到图像矩阵P7;对图像矩阵P7按照步骤七的方法进行动态DNA编码、Feistel变换和DNA解码并恢复成矩阵得到图像矩阵P8,完成第三轮置乱和变换。步骤十:根据密文扩散技术,对图像矩阵P8中的每个像素与前一个像素的密文进行异或运算,得到最终图像矩阵P9。密文扩散操作使明文的微小变化可以扩散到整个密文,从而打乱明文图像与密文图像的关系,可以有效抵抗选择明文等密码学攻击手段,实现密文扩散。将图像矩阵P8按照行优先的顺序转换为长度为m×n的一维序列S={s1,s2,s3,…sm×n},设密文扩散后的序列为SE={se1,se2,se3,…sem×m},密文扩散的公式如下:其中,初始化元素se(0)=127,l=1,2,…m*n。解密算法是上述过程的逆过程。这里不再阐述。本算法也适用于彩色图像的加密,只需将像素的值进行RGB分解处理即可。本发明采用三轮的“置乱-扩散”的结构,主要包括:第一,希尔矩阵置换,借助于超混沌Chen系统产生的序列构建希尔加密矩阵对图像矩阵进行置换;第二,像素位置置乱,利用超混沌Chen系统产生的混沌序列构成的置换索引将图像像素位置进行置乱变化;第三,动态DNA编码与Feistel变换,对图像像素进行动态编码,转换成DNA序列;采用DNA序列运算作为F函数,DNA序列库中的序列作为密钥K,对转换后的DNA序列实现分组Feistel变换。最后,通过密文反馈进行扩散。针对本发明,应用Matlab软件编程实现来验证其的可行性。采用标准的256*256的lena灰度图像作为原始图像,密钥包括给定值x′0=y′0=z′0=w′0=0.00000005;核酸数据库的DNA序列ID号NZ_LOZQ01000042,起始位置S=1。采用本发明对图像进行加密,原始图像和加密图像分别如图3(a)和3(b)所示。如果计算精度为10-14,密钥的空间即可达到10100,可见本发明具有足够的空间来抵抗穷举攻击。为了测试密钥的灵敏度,对于超混沌Chen系统映射,将初值x′0的值增加0.00000001,其他密钥不变的情况下。使用修改后的密钥解密被加密的图像,得到的解密结果如图3(c)所示。从图3(c)中可以看出,对密钥进行微小的改变后,都无法正确解密出原图像。再者,利用修改后的密钥对图像重新加密,得到加密图像如图3(d)所示,与图3(b)进行对比可知,两个密文图像之间对应像素点的不同率在99.62%以上,可见本发明具有较强的密钥灵敏性,且能抵抗暴力攻击,具有很好的密钥安全性。图像的统计信息在一定程度上可以曝露出原始图像灰度值的分布规律,能否改变原始图像的统计分布也是图像加密中至关重要的指标。该算法对图像像素灰度值的运算操作是为抵御攻击方进行灰度统计攻击。如图4所示,从实验结果可以得出,异或处理及置换运算使所得加密图像灰度分布非常均匀,这说明了该算法具有很好的抵御统计分析能力,使攻击者不能够分析出原始灰度值分布范围。进一步,引入直方图的方差来测量密文图像的像素分布的均匀情况。方差值越低说明像素分布均匀性越高。釆用不同的密钥加密来同一明文图像,并计算对应的两个密文图像的方差值。如果这两个密文对应的方差的值接近,则意味着当密钥变化时,密文图像具有较高的均匀直方图。直方图方差的计算如下:其中,Z是图像直方图值向量Z={z0,z1,…,z256},zi和zj是灰度值为i和j的像素数量,n=256。明文图像的直方图方差为39851.33,应用前面给定的密钥,加密图像的直方图方差为283.7109,当改变混沌系统的初值x′0,则方差为231.7422,说明本发明加密得到的密文像素分布均匀。相关系数计算如下:其中,表5.相邻像素相关性比较一般原始图像中相像素的相关性比较大,为阻止统计分析,必须降低相邻像素的相关性。利用式(9)分别随机选取加密图像和原始图像各2500对像素对,测试其水平、垂直和对角方向的像素相关性,结果如表5所示。从表5可以看出,加密前的图像像素之间具有较大的相关性,经过加密后,图像像素之间相关性大大减少。这表明其相邻像素已基本不相关,原始图像的统计特征已被扩散到随机密文图像中。通过计算,原图像与加密图像相关系数为-0.00822。表5和图5给出了原始图像与加密图像相邻像素对之间的相关性比较。差分攻击即对原图像做细微的改变,再分别对原图像和改变后的图像进行加密。通过比较两幅被加密后的图像来获得原图像与加密图像之间的联系。通常使用像素数目改变率(NPCR)和平均强度变化率(UACI)两个标准来衡量加密方法是否能否抵御差分攻击。其中,m和n分别代表图像的长度和宽度,C和C′表示两个仅有一个像素点存在差异的明文图像所对应的密文图像。对于(i,j)的像素,如果C(i,j)≠C′(i,j),则D(i,j)=1,否则D(i,j)=0。针对Lena图像,本发明的NPCR和UACI值为99.6185%和28.7344%。因此,本发明具有很好的抗差分攻击能力。信息熵是一种测试不确定性的指标,计算公式如下:这里,p(i)表示信息i出现的概率。对于灰度图像来说,信息有256种状态,最小值0,最大值为255。则根据上式可知,当信息熵为8时,表明信息是完全随机的。也就是说,密文信息熵越大,信息越安全。本发明加密Lena图像得到的密文图像的信息熵为7.989,这表明密文的信息泄露极小,进一步证明了本发明的安全性。通常,假设攻击者知道所使用的加密系统,根据攻击者所获得的信息情况,一般典型的攻击包括四种攻击类型:唯密文攻击、已知明文攻击、选择明文攻击和选择密文攻击。上述四种攻击的类型强度是按顺序递增的,唯密文攻击是最弱的,选择密文攻击是最强的一种攻击,如果一种密码系统能够抵抗选择密文攻击,那么可以认为他也能够抵抗其余三种攻击方式。本发明对初始参数和初始值非常敏感,一旦他们中的一个被改变,则产生的序列B1、B2、B3和B4等序列总是不同的,进一步,在Feistel置换和密文扩散阶段,加密值不仅与明文相关,也和前一个像素的密文相关。这意味着,本发明能抵御选择明文或密文攻击。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1