一种基于混沌序列和DNA编码的图像加密方法转让专利

申请号 : CN202110584919.X

文献号 : CN113225449B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张勋才李宝珍马贺牛莹张曲遥杨飞飞狄佳丽张焕龙王延峰张建伟王时达

申请人 : 郑州轻工业大学

摘要 :

本发明提出了一种基于混沌序列和DNA编码的图像加密方法,其步骤为:将灰度图像转换成的图像矩阵计算哈希值并更新混沌系统的初始值;根据Bernoulli移位映射的控制参数和更新后的初始值生成序列作为Knuth‑Durstenfeld洗牌法的随机值进行置乱;对Lorenz混沌系统进行迭代得到3个序列;截取元素分别作为循环移位的位数进行比特级置乱;序列中元素用于DNA编码规则选择编码为DNA序列;利用Mealy状态机进行状态转换得到新的DNA序列;序列中元素用于DNA编码规则选择进行DNA解码,得到密文图像。本发明充分利用混沌的随机性和DNA编码与Mealy状态转换的非线性,有效消除图像相邻像素的相关性,提高了密文图像的安全性。

权利要求 :

1.一种基于混沌序列和DNA编码的图像加密方法,其特征在于,其步骤如下:步骤一:将灰度图像P转换成大小为M*N的图像矩阵P1,计算图像矩阵P1的哈希值并更新Bernoulli移位映射和Lorenz混沌系统的初始值;

步骤二:将图像矩阵P1转换成一维序列P2,根据Bernoulli移位映射的控制参数和更新后的初始值生成长度M*N的序列LW,序列LW作为Knuth‑Durstenfeld洗牌法的随机值,利用Knuth‑Durstenfeld洗牌法对一维序列P2进行置乱,并恢复成矩阵形式,得到图像矩阵P3;

步骤三:利用更新后的初始值对Lorenz混沌系统进行迭代,得到3个长度为4*M*N的混沌序列LX、混沌序列LY和混沌序列LZ;

步骤四:从混沌序列LX中分别截取两个序列,作为循环移位的位数对图像矩阵P3进行比特级置乱,得到图像矩阵P4;

步骤五:对混沌序列LY和LZ进行预处理分别得到序列LY'和序列LZ';序列LY'中元素用于DNA编码规则选择,根据DNA编码技术将图像矩阵P4编码为DNA序列P5;

步骤六:利用Mealy状态机将DNA序列P5作为输入,根据状态转移表和输出表进行状态转换,得到新的DNA序列P6;

步骤七:序列LZ'中元素用于DNA编码规则选择,根据DNA编码技术将DNA序列P6进行DNA解码,并恢复成矩阵形式,得到密文图像P7。

2.根据权利要求1所述的基于混沌序列和DNA编码的图像加密方法,其特征在于,所述步骤一中计算图像矩阵P1的哈希值的方法为SHA‑256算法;更新Bernoulli移位映射和Lorenz混沌系统的初始值的方法为:使用SHA‑256算法对图像矩阵P1进行加密运算得到256位的二进制值即哈希值H,将哈希值H按字节划分为32个字节并表示为:h1,h2,…,h32,计算得到混沌系统的初始值为:其中, 为异或运算,∧为与运算,mod(,)为取模运算;w′0为Bernoulli移位映射的初值,x′0、y′0、z′0为Lorenz混沌系统的初值,w0为更新后的Bernoulli移位映射的初始值,x0、y0和z0为Lorenz混沌系统更新后的初始值。

3.根据权利要求1或2所述的基于混沌序列和DNA编码的图像加密方法,其特征在于,所述Bernoulli移位映射为:

其中,λ为控制参数,且λ∈(0,0.5),第i个元素wi∈(0,1);所述Lorenz混沌系统的动力学方程为:

式中,α、β、γ均为系统参数, 分别为状态变量x、y、z的导数,在保持系统参数α和γ不变的情况下,系统参数β≥24.74时,Lorenz混沌系统进入混沌态;

利用更新后的初始值对Lorenz混沌系统进行迭代,舍弃一定次数的迭代值去除暂态效应,产生3个伪随机序列即是混沌序列LX、混沌序列LY和混沌序列LZ。

4.根据权利要求1所述的基于混沌序列和DNA编码的图像加密方法,其特征在于,所述步骤二中序列LW作为Knuth‑Durstenfeld洗牌法的随机值前对序列LW进行预处理为:

14

lw′i=mod(floor(10 ×lwi),i)+1;

其中,lwi为序列LW的第i个元素,lw′i为序列LW预处理后的第i个元素,i=1,2,...,M*N,floor(,)为向下取整函数,mod(,)为取模运算;

所述步骤四中从混沌序列LX中分别截取长度为2*M和4*N个元素,并分别记为序列L1X和序列L2X进行预处理,对序列L1X和序列L2X进行预处理的方法是:其中,l1xi1为序列L1X的第i1个元素,l2xj为序列L2X的第j个元素,l1x′i1为预处理后序列L1X′的第i1个元素,l2x′j为预处理后序列L2X′的第j个元素;i1=1,2,...,2*M,j=1,

2,...,4*N;

所述步骤五对混沌序列LY和LZ进行预处理的方法是将序列LY和LZ的值转化为1~8之间的整数,即:

其中,lyi2、lzi2、ly′i2、lz′i2分别是混沌序列LY、混沌序列LZ、序列LY′和序列LZ′的第i2个元素,i2=1,2,...,4*M*N。

5.根据权利要求4所述的基于混沌序列和DNA编码的图像加密方法,其特征在于,所述利用Knuth‑Durstenfeld洗牌法对一维序列P2进行置乱的方法为:将序列LW预处理后的序列LW′的第i个元素lw′i作为随机索引值,将一维序列P2的第lw′i个元素和(M*N‑i+1)个元素进行交换。

6.根据权利要求4或5所述的基于混沌序列和DNA编码的图像加密方法,其特征在于,所述步骤四对图像矩阵P3进行比特级置乱的方法为是:对图像矩阵P3的八个位平面重新排序,并将图像矩阵P3的每个像素转换为二进制形式;然后,针对每一行,按顺序取每个元素的高四位和低四位,其中高四位组成一行,低四位组成一行,每行为4*N个bit位,这样大小为M*N的图像矩阵P3被转换成大小为(2*M)*(4*N)的矩阵P3';最后,序列L1X'和L2X'的元素分别作为行和列循环移位的位置数,对转换后的矩阵P3'的每一行和列分别进行循环移动,实现位置置乱;移位后重新恢复成大小为M*N的图像矩阵P4。

7.根据权利要求6所述的基于混沌序列和DNA编码的图像加密方法,其特征在于,所述DNA编码技术按照A→00、C→01、G→10、T→11进行对应编码,共有8种编码规则满足互补配对规则,即:

编码规则 1 2 3 4 5 6 7 8

00 A A C G C G T T

01 C G A A T T C G

10 G C T T A A G C

11 T T G C G C A A每个像素的灰度值用8位二进制数表示,采用DNA编码需要编码4个碱基序列。

8.根据权利要求7所述的基于混沌序列和DNA编码的图像加密方法,其特征在于,所述根据DNA编码技术将图像矩阵P4编码为DNA序列P5的方法为:将图像进行DNA编码过程中,对于图像矩阵P4中的每个像素,用序列LY'中对应位置的元素值作为DNA编码规则的选择,将图像矩阵P4的像素序列按从左到右,从上到下的顺序编码成DNA序列P5;

所述根据DNA编码技术将DNA序列P6进行DNA解码的方法为:用序列LZ'对应位置的元素值作为DNA编码规则的选择进行DNA解码,将DNA序列P6解码成像素序列,将像素序列恢复成矩阵形式即为密文图像P7。

9.根据权利要求7所述的基于混沌序列和DNA编码的图像加密方法,其特征在于,所述Mealy状态机是一个6元组(S,S0,Σ,Λ,T,G),其中,S是状态的有限集合,S0∈S是初始状态,Σ是有限输入字母表的集合,Λ是有限输出字母表集合,T是状态转换函数:S×Σ→S,G是输出函数:S×Σ→Λ。

10.根据权利要求9所述的基于混沌序列和DNA编码的图像加密方法,其特征在于,所述步骤六中的Mealy状态机为:根据DNA分子碱基个数,Mealy状态机的状态集合S为{S0,S1,S2,S3},开始状态为S0,有限输入字母表的集合Σ为{A,C,G,T},有限输出字母表的集合Λ为{A,C,G,T},输出表为:

状态转移表为:

输入A 输入C 输入G 输入TS0 S1 S0 S3 S2

S1 S2 S1 S0 S3

S2 S3 S2 S1 S0

S3 S0 S3 S2 S1

Mealy状态机读取DNA序列P5中的每个DNA碱基,通过状态转换输出得到一个新的DNA序列P6。

说明书 :

一种基于混沌序列和DNA编码的图像加密方法

技术领域

[0001] 本发明涉及数字图像加密的技术领域,尤其涉及一种基于混沌序列和DNA编码的图像加密方法。

背景技术

[0002] 图像作为网络信息传输的载体之一,具有直观性强和信息量大等特点,在互联网通信中扮演着重要的角色。其中包含大量隐私和机密图像,如个人医学图像、军事图像及国
防机密图等。各个领域中数字图像的使用都面临着严峻的安全威胁。图像加密是保护图像
机密性的重要手段。为解决图像信息在公共信道传播过程中隐私内容泄漏问题,现阶段存
在许多成熟的分组加密方案,例如RSA、AES、国家密码算法SM4等,这些加密方案已经被广泛
应用于文本加密并取得了良好的加密效果。由于数字图像具备二维性、冗余性,且相邻像素
之间具有极高的相关性,因此传统的文本加密方案并不完全适用于数字图像。
[0003] 混沌是一种复杂的非线性、非平衡的动力学过程,混沌系统因对初始条件和参数控制的敏感性、混沌轨道的伪随机性、混沌态的不可预测性、遍历性、混合性等特性逐渐被
应用到图像加密中。许多学者提出了基于Logistic映射的混沌加密算法和基于PWLCM(分段
线性混沌)映射的混沌加密算法,该类混沌加密算法虽然具有结构简单、产生的混沌序列短
等优点,但是密钥空间低,很容易受到外部因素破坏。因此,使用低维混沌系统实现的加密
算法是不够安全的,目前已经有很多攻击方法破解了这类混沌加密方案。
[0004] 近年来,人们发现脱氧核糖核酸(DNA)计算的大规模并行、海量存储和超低功耗等特点应用于图像加密可以有效的提高算法的效率和安全性。以DNA计算为代表的生物计算
推动了数字图像在加密方面的发展。利用混沌系统和DNA计算的优良特性,国内外学者提出
了许多图像加密方案,但是多数方案中DNA编码规则对于图像加密系统中的所有像素都是
固定的,这样不同的普通图像可能具有相同的DNA编码规则,其编码规则和运算规则的单一
性、有限性使得加密算法容易受到统计攻击。

发明内容

[0005] 针对现有一些图像加密方法的抗统计分析能力差、加密系统安全性能不足的技术问题,本发明提出一种基于混沌序列和DNA编码的图像加密方法,通过两次使用DNA的随机
编码规则提高加密算法的复杂性,使图像加密算法具备更高的伪随机性。
[0006] 为了达到上述目的,本发明的技术方案是这样实现的:一种基于混沌序列和DNA编码的图像加密方法,其步骤如下:
[0007] 步骤一:将灰度图像P转换成大小为M*N的图像矩阵P1,计算图像矩阵P1的哈希值并更新Bernoulli移位映射和Lorenz混沌系统的初始值;
[0008] 步骤二:将图像矩阵P1转换成一维序列P2,根据Bernoulli移位映射的控制参数和更新后的初始值生成长度M*N的序列LW,序列LW作为Knuth‑Durstenfeld洗牌法的随机值,
利用Knuth‑Durstenfeld洗牌法对一维序列P2进行置乱,并恢复成矩阵形式,得到图像矩阵
P3;
[0009] 步骤三:利用更新后的初始值对Lorenz混沌系统进行迭代,得到3个长度为4*M*N的混沌序列LX、混沌序列LY和混沌序列LZ;
[0010] 步骤四:从混沌序列LX中分别截取两个序列,作为循环移位的位数对图像矩阵P3进行比特级置乱,得到图像矩阵P4;
[0011] 步骤五:对混沌序列LY和LZ进行预处理分别得到序列LY'和序列LZ';序列LY'中元素用于DNA编码规则选择,根据DNA编码技术将图像矩阵P4编码为DNA序列P5;
[0012] 步骤六:利用Mealy状态机将DNA序列P5作为输入,根据状态转移表和输出表进行状态转换,得到新的DNA序列P6;
[0013] 步骤七:序列LZ'中元素用于DNA编码规则选择,根据DNA编码技术将DNA序列P6进行DNA解码,并恢复成矩阵形式,得到密文图像P7。
[0014] 所述步骤一中计算图像矩阵P1的哈希值的方法为SHA‑256算法;更新Bernoulli移位映射和Lorenz混沌系统的初始值的方法为:
[0015] 使用SHA‑256算法对图像矩阵P1进行加密运算得到256位的二进制值即哈希值H,将哈希值H按字节划分为32个字节并表示为:h1,h2,…,h32,计算得到混沌系统的初始值为:
[0016]
[0017] 其中, 为异或运算,∧为与运算,mod(,)为取模运算;w′0为Bernoulli移位映射的初值,x′0、y′0、z′0为Lorenz混沌系统的初值,w0为更新后的Bernoulli移位映射的初始
值,x0、y0和z0为Lorenz混沌系统更新后的初始值。
[0018] 所述Bernoulli移位映射为:
[0019]
[0020] 其中,λ为控制参数,且λ∈(0,0.5),第i个元素wi∈(0,1);所述Lorenz混沌系统的动力学方程为:
[0021]
[0022] 式中,α、β、γ均为系统参数, 分别为状态变量x、y、z的导数,在保持系统参数α和γ不变的情况下,系统参数β≥24.74时,Lorenz混沌系统进入混沌态;
[0023] 利用更新后的初始值对Lorenz混沌系统进行迭代,舍弃一定次数的迭代值去除暂态效应,产生3个伪随机序列即是混沌序列LX、混沌序列LY和混沌序列LZ。
[0024] 所述步骤二中序列LW作为Knuth‑Durstenfeld洗牌法的随机值前对序列LW进行预处理为:
[0025] lw′i=mod(floor(1014×lwi),i)+1;
[0026] 其中,lwi为序列LW的第i个元素,lw′i为序列LW预处理后的第i个元素,i=1,2,...,M*N,floor(,)为向下取整函数,mod(,)为取模运算;
[0027] 所述步骤四中从混沌序列LX中分别截取长度为2*M和4*N个元素,并分别记为序列L1X和序列L2X进行预处理,对序列L1X和序列L2X进行预处理的方法是:
[0028]
[0029] 其中,l1xi1为序列L1X的第i1个元素,l2xj为序列l2X的第j个元素;i1=1,2,...,2*M,j=1,2,...,4*N;
[0030] 所述步骤五对混沌序列LY和LZ进行预处理的方法是将序列LY和LZ的值转化为1~8之间的整数,即:
[0031]
[0032] 其中,lyi2、lzi2、ly′i2、lz′i2分别是混沌序列LY、混沌序列LZ、序列LY'和序列LZ'的第i2个元素,i2=1,2,...,4*M*N。
[0033] 所述利用Knuth‑Durstenfeld洗牌法对一维序列P2进行置乱的方法为:将序列LW预处理后的序列LW'的第i个元素lw′i作为随机索引值,将一维序列P2的第lw′i个元素和(M*
N‑i+1)个元素进行交换。
[0034] 所述步骤四对图像矩阵P3进行比特级置乱的方法为是:对图像矩阵P3的八个位平面重新排序,并将图像矩阵P3的每个像素转换为二进制形式;然后,针对每一行,按顺序取
每个元素的高四位和低四位,其中高四位组成一行,低四位组成一行,每行为4*N个bit位,
这样大小为M*N的图像矩阵P3被转换成大小为(2*M)*(4*N)的矩阵P3';最后,序列L1X'和
L2X'的元素分别作为行和列循环移位的位置数,对转换后的矩阵P3'的每一行和列分别进
行循环移动,实现位置置乱;移位后重新恢复成大小为M*N的图像矩阵P4。
[0035] 所述DNA编码技术按照A→00、C→01、G→10、T→11进行对应编码,共有8种编码规则满足互补配对规则,即:
[0036]编码规则 1 2 3 4 5 6 7 8
00 A A C G C G T T
01 C G A A T T C G
10 G C T T A A G C
11 T T G C G C A A
[0037] ;每个像素的灰度值用8位二进制数表示,采用DNA编码需要编码4个碱基序列。
[0038] 所述根据DNA编码技术将图像矩阵P4编码为DNA序列P5的方法为:将图像进行DNA编码过程中,对于图像矩阵P4中的每个像素,用序列LY'中对应位置的元素值作为DNA编码规
则的选择,将图像矩阵P4的像素序列按从左到右,从上到下的顺序编码成DNA序列P5;
[0039] 所述根据DNA编码技术将DNA序列P6进行DNA解码的方法为:用序列LZ'对应位置的元素值作为DNA编码规则的选择进行DNA解码,将DNA序列P6编码成像素序列,将像素序列恢
复成矩阵形式即为密文图像P7。
[0040] 所述Mealy状态机是一个6元组(S,S0,Σ,Λ,T,G),其中,S是状态的有限集合,S0∈S是初始状态,Σ是有限输入字母表的集合,Λ是有限输出字母表集合,T是状态转换函数:S
×Σ→S,G是输出函数:S×Σ→Λ构成。
[0041] 所述步骤六中的Mealy状态机为:根据DNA分子碱基个数,Mealy状态机的状态集合S为{S0,S1,S2,S3},开始状态为S0,有限输入字母表的集合Σ为{A,C,G,T},有限输出字母表
的集合Λ为{A,C,G,T},输出表为:
[0042]  输入A 输入C 输入G 输入T
S0 T G C A
S1 G T A C
S2 C A T G
S3 A C G T
[0043] ;状态转移表为:
[0044]
[0045]
[0046] Mealy状态机读取DNA序列P5中的每个DNA碱基,通过状态转换输出得到一个新的DNA序列P6。
[0047] 与现有技术相比,本发明的有益效果:首先,利用Bernoulli移位映射产生的混沌序列作为Knuth‑Durstenfeld洗牌方法的随机值,对明文图像进行高效置乱;其次,根据位
平面所含信息的不同置乱位平面,对像素进行比特级的信息分解与循环移位,实现位级混
淆与扩散;然后,结合混沌序列,利用DNA编码规则对图像进行随机编码,并通过Mealy状态
机转换实现编码图像的扩散,最后通过DNA随机解码得到密文图像。
[0048] 本发明以比特级的操作与DNA随机编码为主要手段,通过像素置乱,比特级置换、像素扩散的三个主要过程实现图像的混淆和扩散,大大增强了算法的安全性和敏感性。本
发明比特置乱加密不仅保留了“置乱‑替代”加密算法的优点,同时强化了密码学性能,通过
比特置乱进一步改变像素值,更好掩盖明文统计特性,增加了密码系统的安全性和实用性;
同时,将混沌序列与明文产生关联,使得中间密钥随明文自适应变化,能较为有效地抵御选
择明(密)文攻击,极大提升了明文敏感性。本发明充分利用混沌的随机性和DNA编码与
Mealy状态转换的非线性,有效消除图像相邻像素的相关性,提高了密文图像的安全性。实
验结果验证了本发明的可行性和良好的加解密效果。实验结果还表明,本发明的密文分布
均匀、相邻相关性低、密钥空间大、足以抵御穷举攻击,性能分析表明,本发明不仅具有较高
的安全性,还对噪声攻击和数据丢失具有较好的鲁棒性,具有更好的应用前景。

附图说明

[0049] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以
根据这些附图获得其他的附图。
[0050] 图1为本发明的流程示意图。
[0051] 图2为本发明图1中Bit级置换的示意图。
[0052] 图3为本发明状态转换的示意图。
[0053] 图4为本发明加密和解密结果的示意图,其中,(a)为原始图像,(b)为原始图像的直方图,(c)为加密图像,(d)为加密图像的直方图。
[0054] 图5为本发明Elaine图像的密钥敏感性分析示意图,其中,(a)为改变密钥w0,(b)为改变密钥x0,(c)为改变密钥y0,(d)为改变密钥z0。
[0055] 图6为本发明鲁棒性分析的示意图,其中,(a)为1/16丢失的加密图像及解密图像,(b)为1/4丢失的加密图像及解密图像,(c)为加密度为0.01噪声的加密图像及解密图像,
(d)为加密度为0.05噪声的加密图像及解密图像,(e)为(a)的解密图像,(f)为(b)的解密图
像,(g)为(c)的解密图像,(h)为(d)的解密图像。

具体实施方式

[0056] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他
实施例,都属于本发明保护的范围。
[0057] 如图1所示,一种基于混沌序列和DNA编码的图像加密方法,分为三部分:首先,像素位置置换,将图像矩阵转换为一维序列,结合混沌序列,实现Knuth‑Durstenfeld洗牌;其
次,对图像进行Bit级置换,将原始图像的8个位平进行重排,转化为二进制形式,实现循环
移位;最后,结合DNA编码技术,利用Mealy状态机进行状态转移,实现像素值扩散,具体步骤
如下:
[0058] 步骤一:将灰度图像P转换成大小为M*N、二维的图像矩阵P1,计算图像矩阵P1的哈希值并分别更新Bernoulli移位映射和Lorenz混沌系统的初始值。
[0059] SHA‑256算法是一种基于海绵结构的哈希函数,它以任意长度的信息作为输入,生成固定长度的哈希值。由哈希值产生的密钥,即使原始图像有极其微小的变化,加密产生的
哈希值都将完全不同。使用SHA‑256算法通过对明文图像的图像矩阵P1进行加密运算得到
256位的二进制值即哈希值H,用于产生混沌系统的初始值。将哈希值H按字节划分为32个字
节,并表示为:h1,h2,…,h32,计算得到混沌系统的初始值为:
[0060]
[0061] 其中, 为异或运算,∧为与运算,mod(,)为取模运算。w′0为Bernoulli移位映射的初值,x′0、y′0、z′0为Lorenz混沌系统的给定初值,w0为Bernoulli移位映射更新后的初始
值,x0、y0和z0为Lorenz混沌系统更新后的初始值。更新后的初始值w0、x0、y0和z0与明文关
联,具有随机性优势,能有效抵抗统计明文共计和已知明文攻击。
[0062] 本发明通过将明文经过像素位置的全局置乱、比特置乱和非线性扩散三个阶段实现图像的加密,其中选择用明文的SHA‑256值作为明文与随机序列关联的值,用于比特置乱
和扩散,使得中间密钥随明文自适应变化,能较为有效抵御选择明(密)文攻击。
[0063] 步骤二:将二维的图像矩阵P1转换成一维序列的形式,得到一维序列P2;根据Bernoulli移位映射的控制参数和更新后的初始值生成长度M*N的序列LW,并对序列LW进行
预处理,作为Knuth‑Durstenfeld洗牌法的随机值,利用Knuth‑Durstenfeld洗牌法对图像
进行置乱,并恢复成矩阵形式,得到图像矩阵P3。
[0064] Bernoulli移位映射定义如下:
[0065]
[0066] 其中,λ为控制参数,且λ∈(0,0.5),元素wn∈(0,1)。给定控制参数λ和初值w0,经过循环迭代可以得到区间(0,1)上的随机序列,该随机序列具有很好的统计特性。i=1,2,
...M*N。
[0067] 本发明设计的加密算法中,将Bernoulli移位映射和Lorenz混沌映射的控制参数λ和给定初值w0、x0、y0和z0作为初始密钥,它们组成的密钥集合记作K0。通过更新给定初始
值,将密钥与明文图像建立联系。目前,很多混沌加密算法没有把明文和密钥关系考虑进
去,多张不同的图像采用相同的密钥加密,密码分析者可选择密文攻击或明文攻击。
[0068] 本发明利用明文哈希值来更新密钥,得到密钥K={λw0 x0 y0 z0}。SHA‑256算法比明文图像像素总和及均值更加敏感,使得本发明的抗选择明文(密文)攻击更强,明文敏感
性更好。两个混沌系统的初值敏感性能够有效地提高整个加密算法的安全性,初始值较大
的取值范围能够提供足够大的密钥空间。
[0069] 本发明用Bernoulli移位映射产生的混沌序列按照Knuth‑Durstenfeld洗牌方法对明文图像进行置乱。采用Bernoulli移位映射产生的长度为M*N的序列LW,作为置乱所需
要的随机值,序列LW按公式(3)进行预处理:
[0070] lw′i=mod(floor(1014×lwi),i)+1              (3)
[0071] 其中,lwi为序列LW的第i个元素,lw′i为序列LW预处理后的第i个元素,i=1,2,...,M*N,floor(,)为向下取整函数,mod(,)为取模运算。
[0072] 这样,每次选择随机数进行置乱操作之后随机数产生的范围会越来越小,前面被置乱的序列值位置就会固定,不会被下一次置乱所影响。
[0073] 目前,基于混沌理论的图像加密算法通常采用“置乱‑扩散”的加密结构。置乱方法通常采用改进的Arnold变换、幻方变换、Hilbert曲线变换等方法,对图像像素的位置进行
置乱。这些置乱方法极大促进了图像加密技术发展,但后来的研究又暴露了一些问题,如
Arnold变换具有明显的周期性,一些置乱方法存在全局置乱性差的缺点。
[0074] 置乱方法通过扰乱图像中的像素点位置消除原图像中相邻像素点的相关性。Knuth‑Durstenfeld洗牌方法是对有限序列生成一个随机排列的算法,所有的排列是等概
率的,该算法是无偏的、高效的,算法的时间正比于乱序的数组。给定一个从1到M*N的有序
序列,其核心思想是从1到M*N之间随机取出一个数和最后一个数交换,然后从1到M*N‑1之
间随机取出一个数和倒数第二个数交换,以此类推。由于每次的随机值不同,所以得到的置
乱序列也不同。当然,如果将算法直接应用于图像像素置乱,由于产生的随机数没有保存,
密文图像将无法正确解密。为此,本发明结合混沌映射的优势,利用混沌映射产生的伪随机
序列来替换每次生成的随机值,然后对算法中每个交换的元素进行有效控制。
[0075] 步骤三:利用更新后的初始值对Lorenz混沌系统进行迭代,得到3个长度为4*M*N的混沌序列LX、LY和LZ。
[0076] Lorenz混沌映射是混沌系统中具有代表性的混沌映射,系统的动力学方程为:
[0077]
[0078] 式中,α、β、γ均为系统参数, 分别为状态变量x、y、z的导数,典型值取α=10、β=28、γ=8/3,系统处于混沌状态。在保持系统参数α和γ不变的情况下,系统参数β≥
24.74时,Lorenz混沌系统进入混沌态。以Lorenz混沌映射生成的混沌序列,系统结构较低
维复杂,可产生单变量或多变量组合的混沌序列,使得混沌序列的设计非常灵活。
[0079] Lorenz混沌系统进行迭代,舍弃一定次数的迭代值去除暂态效应。给定混沌系统的初值,迭代Lorenz混沌系统产生3个伪随机序列LX、LY和LZ。由于混沌系统产生的伪随机
序列数值类型与图像的数值类型不相符,不能直接用于加密系统,需要对混沌序列进行预
处理。由于得到的伪随机序列存在局部连续递增或递减问题,所以要对伪随机序列进行预
处理。
[0080] 步骤四:从混沌序列LX中分别截取长度为2*M和4*N个元素,分别记为序列L1X和序列L2X并进行预处理,序列L1X'和L2X'的元素分别作为循环移位的位数,对图像矩阵P3进行
比特级置乱,得到图像矩阵P4。
[0081] 对序列L1X和序列L2X进行预处理的方法是:
[0082]
[0083] 其中,l1xi为序列L1X的第i个元素,l2xj为序列L2X的第j个元素;i=1,2,...,2*M,j=1,2,...,4*N。
[0084] 为了尽可能弱化明文图像与密文图像之间的潜在联系,进而提高算法的抗差分能力,本发明通过密钥流控制,实现比特级置乱与扩散。我们知道,灰度图像可以分解为8个位
平面,高四位位平面含有明文图像中大部分信息,低四位位平面占明文信息量较少。很多加
密算法没考虑8个位平面所占的信息量的不同,对8个位平面进行了同样的操作,使得置乱
效果不明显。本发明首先对图像矩阵P3的八个位平面重新排序(比如将原位平面的顺序P1,
P2,P3,P4,P5,P6,P7,P8重新排列成P1,P3,P5,P7,P2,P4,P6,P8);其次,将每个像素转换为
二进制形式;然后,针对每一行,按顺序取每个元素的高四位和低四位,其中高四位组成一
行,低四位组成一行,每行为4*N个bit位,这样大小为M*N的图像矩阵被转换成大小为(2*
M)*(4*N)的矩阵P3'。最后,序列L1X'和L2X'的元素分别作为行和列循环移位的位数,对转
换后的矩阵P3'的行和列分别进行循环移动一定位数,实现位置置乱;移位后,重新恢复成
大小为M*N的矩阵,即图像矩阵P4。
[0085] 图2为一个2行3列的置乱矩阵的实例,表格右边的数字是该行右循环移位的位数,表格下方的数字为上循环移位的位数,在置乱阶段进行循环移位时不仅置乱了明文图像,
还具有扩散效果。
[0086] 步骤五:对混沌序列LY和LZ进行预处理,分别得到序列LY'和序列LZ',其中序列LY'中元素用于DNA编码规则选择,根据DNA编码技术将图像矩阵P4编码为DNA序列P5。
[0087] DNA分子由四种脱氧核苷酸组成,分别是:腺嘌呤(A)、胞嘧啶(C)、鸟嘌呤(G)和胸腺嘧啶(T)。根据Watson‑Crick碱基配对原则,A和T之间通过两个氢键配对,G和C之间通过
三个氢键配对。这一天然的四进制组合,正好与半导体通断所形成的二进制类似。因此,运
用碱基的排列组合可以进行信息的存储和计算。如果按照A→00、C→01、G→10、T→11进行
对应编码,则互补数字配对 及 与碱基对的互补配对 及 吻合,这
样共有8种编码组合满足互补配对规则,如表1所示。
[0088] 表1编码和解码规则
[0089]编码规则 1 2 3 4 5 6 7 8
00 A A C G C G T T
01 C G A A T T C G
10 G C T T A A G C
11 T T G C G C A A
[0090] 对于灰度图像来说,每个像素的灰度值可以用8位二进制数表示,如果采用DNA编码的话,只需要编码4个碱基序列。
[0091] 在进行状态转移之前,需要先将图像矩阵编码为DNA序列,为达到像素值扩散的目的,结合Mealy状态机对图像像素执行状态转移运算。
[0092] 在编码时,如果采用固定编码方式,一方面易受到蛮力攻击而被轻松破译;另一方面存在重大缺陷尚未引起注意,即明文本身的比特分布不会受到干扰。如果明文中有很多
的00,若使用表1中的规则1对其进行编码时,就会产生很多的A,明文的统计特性并没有被
掩盖,泄露了明文的比特信息分布。本发明将对像素进行随机的编码和解码。令混沌序列LY
和LZ的值分别决定图像的编码规则和解码规则,因为DNA编码一共有8种编码方式,因此将
序列LY和LZ的值按式(6)转化为1~8之间的整数,记处理后的序列为序列LY'和LZ':
[0093]
[0094] 其中,lyi、lzi、ly′i、lz′i分别是序列LY、LZ、LY'和LZ'的第i个元素,i=1,2,...,4*M*N。
[0095] 将图像进行DNA编码过程中,对于其每个像素,用序列LY'中对应位置的元素值作为DNA编码规则的选择(比如某个元素值为3,则选择表1中的第3个编码规则),将像素序列
编码成DNA序列。同理,对于Mealy状态机输出的DNA序列,用序列LZ'对应位置的元素值作为
DNA解码规则的选择,将DNA序列编码成像素序列。
[0096] 步骤六:利用Mealy状态转换机,将DNA序列P5作为输入,根据状态转移表和输出表进行状态转换,得到新的DNA序列P6。
[0097] 有限状态机是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。米利型(Mealy型)有限状态机是基于它的当前状态和输入生成输出的有限状态自动
机,它的状态图的每个转移边包括输入和输出,与输出只依赖于机器当前状态的摩尔有限
状态机不同,它的输出与当前状态和输入都有关。
[0098] Mealy状态机是一个6元组(S,S0,Σ,Λ,T,G),其中,S是状态的有限集合,S0∈S是初始状态,Σ是有限输入字母表的集合,Λ是有限输出字母表集合,T是状态转换函数:S×
Σ→S,G是输出函数:S×Σ→Λ构成。
[0099] Mealy状态机为密码机提供了基本的数学模型。例如,考虑到拉丁字母表的输入和输出字母表,可以设计一个Mealy状态机,给定一串字母(一系列输入)可以将其处理成加密
的字符串(一系列输出)。然而,尽管可以使用Mealy状态机来描述Enigma(恩尼格玛密码
机),但状态图太复杂,无法提供设计复杂加密机器的可行方法。为此,本发明将结合DNA编
码技术,给出一种四个字母表的状态转换模型,对图像像素进行扩散。
[0100] 根据DNA分子碱基个数,将Mealy状态机的状态集合S设置为{S0,S1,S2,S3},开始状态为S0,有限输入字母表的集合Σ为{A,C,G,T},有限输出字母表的集合Λ为{A,C,G,T}。输
出表如表2所示,状态转移表如表3所示。
[0101] 表2输出表
[0102]
[0103]
[0104] 表3状态转移表
[0105]   输入A 输入C 输入G 输入TS0 S1 S0 S3 S2
S1 S2 S1 S0 S3
S2 S3 S2 S1 S0
S3 S0 S3 S2 S1
[0106] 状态转换示意图如图3所示,其中转移边都标有输入值和输出值。
[0107] 步骤七:序列LZ'中元素用于DNA编码规则选择,根据DNA编码技术将DNA序列P6进行DNA解码,恢复成矩阵形式,得到密文图像P7。
[0108] 本发明Mealy状态机以状态S0启动,通过将图像像素转换为一个DNA序列,Mealy状态机的作用是读取一个DNA序列中的每个DNA碱基,通过状态转换输出得到一个新的DNA碱
基序列;然后再根据表中的DNA编码方案,结合序列LZ’进行DNA解码,并恢复成像素值,进而
恢复成大小为M*N的矩阵形式。这样通过将图像序列转换为DNA编码序列,输入Mealy状态机
进行状态转换并输出新的DNA序列,进一步结合混沌序列进行DNA解码,实现了像素的扩散。
[0109] 本发明利用SHA‑256算法计算出两个超混沌系统的初始值,迭代混沌系统,得到4个混沌序列,处理后用于图像的置乱和扩散;使用Knuth‑Durstenfeld洗牌方法对图像进行
置乱;利用DNA编码规则和操作规则进行操作,进一步加强破坏相邻像素间的相关性,从而
达到混淆原图像的目的;结合Lorenz混沌系统生成的混沌序列对图像做进一步的扩散,来
增加图像的密钥空间,保证安全性。
[0110] 利用本发明对图4(a)所示大小为256*256的Lena、Baboon、Boat、Pepper和Elaine图像分别进行仿真实验。初始密钥随机设置为:λ=0.35,x′0=y′0=z′0=w′0=0.01,加密结
果分别如4(c)所示。从实验结果可知,密文图像能够完全隐藏原始图像所包含的直观信息,
无法从中获取任何与明文图像相关的数据,可以清晰地说明该算法加密效果良好。
[0111] 算法安全性已成为衡量加密算法优劣的重要指标,下面从密钥空间、差分攻击分析、自相关性分析、局部信息熵、算法鲁棒性等方面分析其安全性。
[0112] 密钥空间是衡量密码系统安全性的一个重要指标。密钥空间越大,抵抗穷举能力越强,加密系统安全性越高。本发明所设计的加密系统中,加密系统所采用的加密密钥为K
‑15 75
={w0、λ、x0、y0、z0},64位计算机的运算精度为10 ,则密钥空间的大小至少为10 。
[0113] 为测试本发明的密钥敏感性,每次仅对一个密钥值做微小改动,其他密钥保持不‑15
变。例如,仅对密钥w0做微小改变w01=w0+10 ,其余密钥λ、x0、y0、z0不作改变。利用改动后
的密钥对图4(a)所示的Elaine密文图像进行解密,得到的解密图像如图5(a)所示。类似地,
依次改变密钥x0、y0、z0后,利用本发明所得到的解密图像分别如图5(b)~(d)所示,由图5可
知,当对密钥做微小改动后,利用本发明无法恢复出原始明文图像。
[0114] 直方图显示了一幅图像中像素的分布情况,好的加密算法密文图像应具有均匀的直方图。图4(b)和图4(d)分别为明文图像的直方图与密文图像的直方图。从图4可知,加密
图像的直方图类似噪声分布,接近于理想均匀分布,与明文图像的直方图有着显著区别,能
够很好地隐藏明文的灰度值统计信息,具备很强的抵抗统计攻击的能力。
[0115] 信息熵的本质是描述信息的不确定性,是像素点随机性的重要指标,熵越大,不确定性越大,可视信息即越少。因此,一个理想的密文图像其像素值应该近似服从均匀分布。
信息熵值计算方法如公式下:
[0116]
[0117] 其中,L为图像的灰度级,mi是图像上的第i个灰度值,P(mi)是灰度值mi出现的概率,H(m)为信息熵。对于L=256的灰度图像来说,信息熵H(m)越接近理论值,图像被攻击的
可能性越小。Lena、Baboon、Boat、Peppers和Elaine明文图像和密文图像的信息熵如表4所
示,密文图像的信息熵接近于8,进一步说明了本发明的有效性。
[0118] 表4.三组图的明文和密文的信息熵
[0119] 图像 明文图像 密文图像Lena 7.4532 7.9974
Baboon 7.0092 7.9970
Boat 7.1572 7.9973
Elaine 7.4874 7.9971
Peppers 7.5797 7.9974
[0120] 由于图像数据本身的特性,图像相邻像素点之间存在着很强的相关性,经加密后的密文图像尽量减小相关性,避免攻击者从密文图像中截获任何有价值的信息。图像的自
相关系数是衡量相邻像素相关性的一个显著指标,相关系数越小,像素值间的相关性越差,
随机性更强;相关系数趋近于1,像素间的相关性就越强。相关性计算公式如下:
[0121]
[0122] 其中,E(x)和D(x)分别代表变量x的期望和方差,cov(x,y)表示协方差,ρxy为相邻像素相关系数。对于给定的测试图像,随机选取5000对相邻像素点,得到其在三个方向上的
相关系数如表5所示。由表5可知,明文图像在三个方向具有较强的线性相关性,而通过本发
明加密后,相关性已经得到很好的抑制。故加密前明文图像相邻的像素点相关性较强,而加
密后密文图像相邻的像素点间相关性很弱,这表明本发明遮掩了明文图像的全部特征,有
良好的均匀分布特性。
[0123] 表5明文图像和密文图像各方向的相关系数
[0124]
[0125] 明文敏感性是通过分析有细微明文变换在加密后的变化程度来攻击密码算法。对于图像加密算法而言,若轻微改变某一个像素点值,通过加密后,得到截然不同的密文图
像,则该算法具有更强的抵抗差分攻击的能力,衡量密文图像差别的指标常用的是像素数
变化率(NPCR)和统一平均变化强度(UACI)。NPCR和UACI的计算公式如(10)‑(11)所示。
[0126]
[0127]
[0128] 其中,C1和C2分别表示两个密文图像,对于像素点(i,j)的像素值,如果C1(i,j)≠C2(i,j),则D(i,j)=1,否则D(i,j)=0。其中,i=1,2,...M,j=1,2,...N,M和N为图像的大
小。对于两幅随机的灰度图像,由于位置的任意性,其理想的NPCR值为255/256=
99.6094%,理想的UACI值为33.4635%。
[0129] 表6中列举了明文图像发生1bit改变时的密文图像与原密文图像之间的NPCR、UACI的值,表中的数据均接近于理论值,这反映出使用本发明加密的密文图像与原始图像
之间存在着很强的关联性,即使原始图像发生1bit的微小改变,密文图像便会发生彻底的
变化。
[0130] 表6明文图像发生微小改变时,对应密文图像间的NPCR和UACI的值(%)
[0131] 图像 NPCR UACILena 99.6154 33.3682
Baboon 99.6185 33.3575
Boat 99.6475 33.3717
Elaine 99.635 33.6094
Pepper 99.6140 33.5051
[0132] 在网络传输过程中,图像不可避免要遭受噪声攻击以及数据丢失等问题。因此,加密算法的鲁棒性是图像加密算法安全性分析中非常重要的衡量指标。
[0133] 对图4(c)所示的Pepper密文图像分别剪切大小为占整个图像1/16和1/4比例的数据块,以及施加密度为0.01和0.05的椒盐噪声,对应的密文图像分别如图6(a)~(d)所示。
利用本发明分别对受攻击后的密文图像进行解密,解密结果分别如图6(e)~(h)所示。当密
文图像出现部分数据丢失时,解密后的图像仍可看出明文大致轮廓;当密文图像受到椒盐
噪声噪声攻击后,解密图像依然保留了大量明文特征。即密文图像遭受噪声和剪切攻击后,
利用本发明仍能恢复出大部分明文信息。可见,解密图像依然足够清晰,保留了明文中的大
量信息,这表明本发明能够有效抵御数据丢失攻击、噪声攻击。
[0134] 本发明采用SHA‑256哈希函数并结合原始图像的信息熵值,更新混沌系统的参数和初值,使得密码系统可有效抵抗选择明文攻击和已知明文攻击。利用Bernoulli映射产生
的密钥流结合洗牌方法对图像进行高效置乱;其次根据混沌序列生成循环移位数对矩阵的
行、列依次做循环移位操作,实现位级置乱与扩散,并根据混沌系统序列计算出相应的DNA
编码规则,保证的图像的每一像素点的编码具有随机性;最后通过结合状态转移规则对图
像进行扩散,消除加密系统中存在的线性关系。本发明通过两次使用DNA的随机编码规则提
高加密算法的复杂性,使图像加密算法具备更高的伪随机性。为抵御差分攻击、选择明文攻
击等,本发明建立明文图像与密文图像紧密的关联,以此提高加密算法对明文的敏感性,当
攻击者对明文图像进行微小扰动时,密钥随之更新,从而扩散编码图像的编码也将随之改
变,从而导致密文图像的混淆与扩散结果明显不同。
[0135] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。