本发明属于图像加密以及编码领域,具体说是一种基于DNA编码的图像加密纠错方法。
背景技术:
计算机网络的出现改变了人们的通信方式,人们可以通过网络便捷的传输各种多媒体信息。但是由于网络的开放性,多媒体信息的安全受到了一定的威胁。数字图像是多媒体通信中的重要信息载体,如何保护图像信息成为目前普遍关注的问题。目前最为有效的保护图像信息安全的手段是图像加密。
混沌映射具有对初始值敏感、遍历性、以及其内在的伪随机性等特点,这些特点使得混沌映射被广泛地用于图像加密中。通过混沌映射产生混沌序列,利用置乱与扩散操作完成对原始图像的加密。通讯数据传输中,偶尔会发生数据的失真,现代纠错码理论可以有效地纠正在通讯传输过程中的错误。汉明码是其中应用广泛的一类编码方法,其通过在传输的消息流中插入验证码,以发现并纠正错误。
针对上述背景,目前已有很多针对DNA编码的图像加密方法,但是这些方法并没有考虑纠错问题。
技术实现要素:
针对现有技术的不足,本发明提出了基于DNA编码的图像加密纠错方法,该方法有很好的加密效果,并且能够实现纠错功能。
为实现上述目的,本发明提供了基于DNA编码的图像加密纠错方法,包括:
S1:将初始密钥作为混沌映射的初始条件,生成加密所需的混沌序列;
S2:将生成的混沌序列进行排列生成用于图像加密的置乱序列,置乱原始图像中的像素位置;
S3:对生成的混沌序列进行整数化处理,得到用于图像加密的扩散序列,改变置乱后的图像的像素值,完成对原始图像的加密;
S4:构建序列间汉明距离约束条件和逆补序列间的汉明距离约束条件,并结合GC含量约束条件,构建DNA序列集合设计组合约束条件;
S5:用改进的遗传算法初始化种群,然后根据组合约束条件对种群中的个体进行筛选,完成对DNA序列的优化设计,得到具有纠错功能的DNA编码集合;
S6:在设计好的DNA编码集合中随机选出N个不同的DNA序列,与密文图像中的像素值一一对应,最终将密文图像完全编码成DNA序列,生成可纠错的DNA编码加密图像。
进一步地,初始密钥分成两份,分别作为两个混沌映射的参数和初始值,混沌映射为:
xi+1=μxi(1-xi)
其中μ参数,x1为初始值,μ∈[3.9,4],x1∈(0,1),迭代混沌映射,生成加密所需的混沌序列。
进一步地,采用下述公式求取置乱后的图像像素:
Mim(i)=permute(P(i),Order(i)),i=1,2,...,M*N
P(i)表示的是明文图像的像素,Order(i)表示的是混沌顺序,Min(i)表示的是置乱后的图像像素。
进一步地,加密后的图像为:
Orbit(i)表示的是混沌轨道值,C(i)表示加密后的图像。
更进一步地,序列间汉明距离约束条件为:
其中H(u,v)表示序列u,v间的汉明距离。
更进一步地,逆补序列间的汉明距离约束条件为:
其中vC表示序列v的逆补序列。
更进一步地,GC含量约束条件为鸟嘌呤和胞嘧啶在DNA分子中的含量。
作为更进一步地,组合约束条件为:先用GC含量约束条件对DNA序列进行约束,然后再用序列间汉明距离约束条件和逆补序列间的汉明距离约束条件同时进行约束。
作为更进一步地,改进的遗传算法是:在选择算子中采用最优保存策略,在变异算子中采用动态变异算子;即根据适应度值的高低把种群中的个体分为3类,最小的变异概率为0.01,其次为0.03,最大的变异概率为0.3。
本发明由于采用以上技术方案,能够取得如下的技术效果:不仅可以实现对加密图像进行DNA编码,而且编码后的数据具有纠错功能。且采用上述方法加密效果非常好;由于在编码像素值时使用随机的N个DNA序列,直接增加了秘钥空间,因此增强了该方法的安全性。
附图说明
图1为明文图像;
图2为密文图像;
图3为DNA编码后可纠错密文图像;
图4为包含1000个错误的密文图像;
图5为图3与图4的差值图像;
图6纠错之后恢复的原始图像;
图7本发明的结构简图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
实施例1
本实施例提供了一种基于DNA编码的图像加密纠错方法,包括:
S1:将初始密钥作为混沌映射的初始条件,生成加密所需的混沌序列;
所述初始密钥随机生成,将初始密钥分成两份,分别作为两个混沌映射的初始值,所述混沌映射为xi+1=μxi(1-xi),其中μ参数,x1为初始值,μ∈[3.9,4],x1∈(0,1),迭代混沌映射,生成加密所需的混沌序列。
S2:将生成的混沌序列进行排列生成用于图像加密的置乱序列,置乱原始图像中的像素位置;
S3:对生成的混沌序列进行整数化处理,得到用于图像加密的扩散序列,并采用扩散操作,改变置乱后的图像的像素值,完成对原始图像的加密;
S4:序列间汉明距离约束条件为:其中H(u,v)表示序列u,v间的汉明距离;
逆补序列间的汉明距离约束条件为:其中vC表示序列v的逆补序列;
GC含量约束条件为鸟嘌呤和胞嘧啶在DNA分子中的含量;
将上述三个条件顺序的组合在一起,即先用GC含量对DNA序列进行约束,然后再用另外两个约束条件同时进行约束,构成DNA序列集合设计的约束条件。
S5:对遗传算法进行改进,在选择算子中采用最优保存策略,在变异算子中采用动态变异算子,即根据适应度值的高低把种群中的个体分为3类,最小的变异概率为0.01,其次为0.03,最大的变异概率为0.3。用改进的遗传算法初始化种群,然后根据组合约束条件对种群中的个体进行筛选,最终完成对DNA序列的优化设计,得到具有纠错功能的DNA编码集合。
S6:在设计好的DNA编码集合中随机选出256个不同的DNA序列,与密文图像中的像素值一一对应,最终将密文图像完全编码成DNA序列,生成可纠错的DNA编码加密图像。
实施例2
该实施例是在以实施例1的技术方案为前提下进行实施的,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述实施例。
步骤1:我们选取256×256大小的标准测试图像Lena,由于密钥长度为2128bit,将真实加密密钥分为大小为264的前后子密钥,并用它们作为两个混沌映射的初始值,生成混沌序列;
步骤2:利用如下公式
Mim(i)=permute(P(i),Order(i)),i=1,2,...,M*N置乱明文图像,
然后利用该公式扩散置乱后的图像,每一组混沌映射产生的序列执行一轮置乱-扩散操作,
上述公式中P(i)表示的是明文图像的像素,Order(i)表示的是混沌顺序,Min(i)表示的是置乱后的图像像素,Orbit(i)表示的是混沌轨道值,C(i)表示加密后的图像;
步骤3:利用构建好的组合约束条件,采用改进的遗传算法对DNA序列进行集合设计,选择算子为最优保存,交叉概率为0.6,动态变异为0.01,0.03和0.3,进化代数为500。其中DNA序列的长度为8个碱基,汉明距离设为3;
步骤4:设计出336个DNA汉明码序列,如表1所示。
表1 DNA序列集合
从中随机选取256个DNA序列用于编码密文图像的像素值,表2为编码像素值的DNA序列,0~255代表图像的像素值,后面为一一对应的DNA编码;
表2编码像素值的DNA序列
步骤5:最终将密文图像完全编码成DNA序列,生成可纠错的DNA编码加密图像。
从模拟结果和安全分析可以得出,该方法具有良好的加密效果,并能实现纠错功能。同时本发明不仅可以实现对加密图像进行DNA编码,而且编码后的数据具有纠错功能。由于在编码像素值时使用随机的256个DNA序列,直接增加了秘钥空间,因此增强了本发明的安全性。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。