基于相邻像素约瑟夫变换和Mealy状态机的图像加密方法转让专利

申请号 : CN202011524802.4

文献号 : CN112769545B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张勋才李林伟刘鹏牛莹岳伟超王凤仙任杭丽王延峰杨飞飞张曲遥张峰升张建伟

申请人 : 郑州轻工业大学

摘要 :

本发明提出了一种基于相邻像素约瑟夫变换和Mealy状态机的图像加密方法,其步骤如下:将大小为M*N的灰度图像转换成二维矩阵;计算灰度图像哈希值和像素值的平均值,分别计算混沌映射的初始值;根据希尔伯特曲线的扫描路线,进行像素级置换得到像素序列;2D‑LSCM混沌映射进行迭代并处理得到两个序列,以两个序列为起点和步长利用约瑟夫遍历进行相邻像素点间比特置乱得到像素序列;对Lorenz混沌映射进行迭代并处理得到3个序列,根据DNA编码转换为DNA序列;利用Mealy状态转换机得到新的DNA序列;将DNA序列转换为二进制序列,得到密文图像。本发明对密钥的敏感性强,能有效抵抗统计攻击和差分攻击等,具有很好的安全性和应用潜力。

权利要求 :

1.一种基于相邻像素约瑟夫变换和Mealy状态机的图像加密方法,其特征在于,其步骤如下:

步骤一:将大小为M*N的原始的灰度图像P转换成二维矩阵P1;

步骤二:计算灰度图像P的哈希值和灰度图像P像素值的平均值,根据哈希值、平均值及给定值分别计算2D‑LSCM混沌映射和Lorenz混沌映射的初始值;

步骤三:根据二维希尔伯特曲线的扫描路线,将二维矩阵P1进行像素级置换,从而置乱成一维向量得到一维的像素序列P2;

步骤四:将2D‑LSCM混沌映射的初始值代入2D‑LSCM混沌映射并进行迭代,得到2个长度为M*N的混沌序列LSX和混沌序列LSY;对混沌序列LSX和LSY进行处理分别得到序列LSX'和序列LSY',以序列LSX'为起点、LSY'为步长,利用约瑟夫遍历对像素序列P2的相邻像素的二进制位进行相邻像素点间比特置乱,得到像素序列P3;

步骤五:利用Lorenz混沌映射的初始值对Lorenz混沌映射进行迭代,得到3个长度为4*M*N的序列LOX、LOY和LOZ,对序列LOX、LOY和LOZ进行处理分别得到新的序列为LOX'、LOY'和LOZ';其中,序列LOX'中元素用于规则选择,根据DNA编码技术将像素序列P3转换为DNA序列P4;

步骤六,利用Mealy状态转换机将DNA序列P4作为输入、LOY'作为转换状态,得到新的DNA序列P5;

步骤七、将序列LOZ'中元素用于编码规则选择,根据DNA编码技术,将DNA序列P5转换为二进制序列,进而转换为十进制序列,恢复成矩阵形式,得到密文图像P6。

2.根据权利要求1所述的基于相邻像素约瑟夫变换和Mealy状态机的图像加密方法,其特征在于,所述计算灰度图像P的哈希值的方法为:使用SHA‑3算法对灰度图像P进行加密运算得到256位的二进制值哈希值H;

所述计算2D‑LSCM混沌映射和Lorenz混沌映射的初始值的方法为:将哈希值H按字节划分为32个字节并表示为:h1,h2,…,h32,则初始值为:其中,x′01、y′01、θ′0、x′02、y′02和z′02为给定值,x01、y01和θ为二维Logistic‑Sine耦合映射的初始值,x02、y02和z02为Lorenz混沌映射的初始值,Avg为灰度图像P的像素值的平均值,取模函数mod(x1,y1)表示x1除以y1的余数,He为哈希值H的第e位二进制值,⊕为异或运算。

3.根据权利要求1或2所述的基于相邻像素约瑟夫变换和Mealy状态机的图像加密方法,其特征在于,所述2D‑LSCM混沌映射是由一维混沌映射Logistic映射和Sine映射融合得到,数学表达式为:

其中,xi1和yi1为第i1次迭代得到的元素值,xi1+1和yi1+1为第i1+1次迭代得到的元素值,sin为正弦函数;当系统参数θ∈[0,1]时,2D‑LSCM混沌映射处于混沌状态;

所述Lorenz混沌映射的动力学方程为:其中, 和 分别是状态变量x、y和z的导数,α、β、γ为系统参数,在保持系统参数α,γ不变的情况下,β≥24.74时,Lorenz混沌映射进入混沌状态。

4.根据权利要求1所述的基于相邻像素约瑟夫变换和Mealy状态机的图像加密方法,其特征在于,所述步骤三中像素级置换的方法为:利用希尔伯特曲线遍历二维矩阵P1中的每一个像素点,希尔伯特曲线连续访问二维矩阵P1中的所有像素一次,并对每一个像素进行线性排序,从而将二维矩阵P1的像素位置打乱并重组一幅新的像素图像,从而得到置乱后的像素序列P2。

5.根据权利要求3所述的基于相邻像素约瑟夫变换和Mealy状态机的图像加密方法,其特征在于,所述对混沌序列LSX和LSY进行处理分别得到序列LSX'和序列LSY'的方法为:其中,lsxi和lsyi分别为混沌序列LSX和LSY的第i个元素,lsx′i和lsy′i分别为处理后的序列LSX'和LSY'的第i个元素,floor()为向上取整函数;且i=1,2,...M*N;

所述对序列LOX、LOY和LOZ进行处理分别得到新的序列为LOX'、LOY'和LOZ'的方法为:其中,loxi、loyi、lozi分别为伪随机序列LOX、LOY和LOZ的第i个元素,lox′i、loy′i、loz′i分别为处理后的序列LOX'、LOY'和LOZ'的第i个元素;且i=1,2,...M*N。

6.根据权利要求4或5所述的基于相邻像素约瑟夫变换和Mealy状态机的图像加密方法,其特征在于,所述约瑟夫遍历的函数为:J=f(T,a,s,r),T为在约瑟夫函数f执行前存放的初始序列,J存放遍历后的序列,a为初始序列长度,s为开始遍历的起始位置,且1≤s≤a,r为遍历时出列位置的报数值,1≤r≤a;

所述相邻像素点间比特置乱的方法是:设定每4个相邻像素为一组,然后转换成二进制形式,对转换后的序列进行约瑟夫遍历;且下一组的第一个像素为上一组的最后一个像素。

7.根据权利要求6所述的基于相邻像素约瑟夫变换和Mealy状态机的图像加密方法,其特征在于,所述DNA编码和DNA解码的规则为:规则 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.根据权利要求7所述的基于相邻像素约瑟夫变换和Mealy状态机的图像加密方法,其特征在于,所述DNA编码过程中,对于像素序列P3中的每个像素,用序列LOX’中对应位置的元素值作为编码的规则,将像素序列P3编码成DNA序列;对于Mealy状态机输出的DNA序列,用序列LOZ'的对应位置的元素值作为解码规则,将DNA序列P5解码成像素序列。

9.根据权利要求1或7所述的基于相邻像素约瑟夫变换和Mealy状态机的图像加密方法,其特征在于,所述Mealy状态机是一个6元组(S,S0,Σ,Λ,T1,G),其中,S是状态的有限集合,S0∈S是初始状态,Σ是有限输入字母表的集合,Λ为有限输出字母表集合,T1是状态转换函数且:S×Σ→S,G是输出函数且由:S×Σ→Λ构成;

将Mealy状态机的状态集合S设置为{S0,S1,S2,S3},开始状态为S0,输入字母表的有限集合Σ为{A,C,G,T},输出字母表的有限集合Λ为{A,C,G,T},S0,S1,S2,S3表示状态机的四种状态,输出表如下表所示:

输入A 输入C 输入G 输入TS0 T G C A

S1 G T A C

S2 C A T G

S3 A C G T

10.根据权利要求9所述的基于相邻像素约瑟夫变换和Mealy状态机的图像加密方法,其特征在于,通过输出表得到的状态转移表为: 输入A 输入C 输入G 输入TS0 S1 S0 S3 S2

S1 S2 S1 S0 S3

S2 S3 S2 S1 S0

S3 S0 S3 S2 S1

Mealy状态机以状态S0启动,Mealy状态机读取DNA序列P5中的每个DNA碱基,通过状态转移表输出得到一个新的DNA碱基序列;

为了提高加密的安全性,下一个状态随机产生,Mealy状态机中输入第i个碱基,其下一个状态由序列LOY'中的第i+1个元素确定,也即下一个状态

说明书 :

基于相邻像素约瑟夫变换和Mealy状态机的图像加密方法

技术领域

[0001] 本发明涉及数字图像加密的技术领域,尤其涉及一种基于相邻像素约瑟夫变换和Mealy状态机的图像加密方法。

背景技术

[0002] 作为信息的重要载体,图像以其直观优势成为人们传递信息的主要载体之一。然而,互联网的开放和共享给图像传输的安全性带来了巨大的挑战。数字图像加密技术是有
效保护数字图像传输的重要手段,因此,图像加密已成为计算机领域的一个热门研究方向。
[0003] 由于图像冗余度高、数据容量大、信息相关性强,早期的图像加密方法,如DES、AES、RSA等,已不能满足当前图像加密的要求。近年来,学者们提出了一些好的图像加密算
法,有基于混沌理论的加密方案、基于DNA计算的加密方案等。其中,混沌系统因具有良好的
伪随机特性、对初值的敏感性和轨道的不可预测性,使得基于混沌的图像加密得到了广泛
地研究,取得了良好的效果。
[0004] 目前混沌映射可分为两类:一维混沌映射和多维混沌映射。一维混沌系统具有参数与变量少、结构简单、而且产生的混沌序列时间短等优点,从而广泛的应用于图像加密
中。例如,Li等提出了一种基于混沌帐篷映射的图像加密算法,Wang等人提出了一种基于
Logistic映射的快速图像加密算法,然而,这些加密算法的密钥空间小,不能有效地抵御蛮
力攻击。相比之下,多维混沌映射特别是超混沌映射,变量和参数较多,动态特性更加复杂,
密钥空间更大,因此,使用多维混沌映射是一种更加优异的理想图像加密方案。Zhang等人
提出了一种基于新型多维多翼超混沌吸引子的图像加密算法,该系统具有两个大于零的
Lyapunov指数,它们可以在不同参数下生成超混沌吸引子。尽管多维混沌映射在图像加密
中取得了较好的效果,但是仍然存在一些不足。比如文献[G.Guan,C.Wu,Q.Jia  An 
improved high performance Lorenz system and its application Acta Phys.Sin.,64
(2)(2015),pp.35‑48]中,Gao等人提出了一种使用像素级置换的基于超混沌的图像加密算
法,尽管该算法具有密钥空间大的优点,但不能有效抵抗选择明文和密文攻击。特别地,当
原始图像是具有相同像素的特殊图像时,整个加密系统的安全性仅取决于扩散操作。一旦
破解了用于扩散的密钥流,攻击者就可以轻松获得原始图像的统计信息。
[0005] 然而,对于混沌序列的使用,受计算机字长的限制,会导致混沌的动力学特性退化,特别是低维混沌系统。这严重影响了混沌加密的安全性。为此,许多学者使用超混沌系
统来确保混沌序列的复杂性,以提高算法的安全性。但是,不可否认的是,单一的混沌映射
构成的加密算法无法保证所加密的图像具有较高安全性。

发明内容

[0006] 针对现有图像加密方法安全性差,不能有效抵抗攻击的技术问题,本发明提出一种基于相邻像素约瑟夫变换和Mealy状态机的图像加密方法,将约瑟夫遍历、Mealy状态机
与混沌序列结合,通过将混沌序列与约瑟夫遍历结合实现位级置换;混沌序列与DNA编码技
术、Mealy状态机结合实现像素的扩散,保证了扩散效果,减少了迭代次数,且抗选择明文
(密文)攻击更强,明文敏感性更好。
[0007] 为了达到上述目的,本发明的技术方案是这样实现的:一种基于相邻像素约瑟夫变换和Mealy状态机的图像加密方法,其步骤如下:
[0008] 步骤一:将大小为M*N的原始的灰度图像P转换成二维矩阵P1;
[0009] 步骤二:计算灰度图像P的哈希值和灰度图像P像素值的平均值,根据哈希值、平均值及给定值分别计算2D‑LSCM混沌映射和Lorenz混沌映射的初始值;
[0010] 步骤三:根据二维希尔伯特曲线的扫描路线,将二维矩阵P1进行像素级置换,从而置乱成一维向量得到一维的像素序列P2;
[0011] 步骤四:将2D‑LSCM混沌映射的初始值代入2D‑LSCM混沌映射并进行迭代,得到2个长度为M*N的混沌序列LSX和混沌序列LSY;对混沌序列LSX和LSY进行处理分别得到序列
LSX'和序列LSY',以序列LSX'为起点、LSY'为步长,利用约瑟夫遍历对像素序列P2的相邻像
素的二进制位进行相邻像素点间比特置乱,得到像素序列P3;
[0012] 步骤五:利用Lorenz混沌映射的初始值对Lorenz混沌映射进行迭代,得到3个长度为4*M*N的序列LOX、LOY和LOZ,对序列LOX、LOY和LOZ进行处理分别得到新的序列为LOX'、
LOY'和LOZ';其中,序列LOX'中元素用于规则选择,根据DNA编码技术将像素序列P3转换为
DNA序列P4;
[0013] 步骤六,利用Mealy状态转换机将DNA序列P4作为输入、LOY'作为转换状态,得到新的DNA序列P5;
[0014] 步骤七、将序列LOZ'中元素用于编码规则选择,根据DNA编码技术,将DNA序列P5转换为二进制序列,进而转换为十进制序列,恢复成矩阵形式,得到密文图像P6。所述计算灰
度图像P的哈希值的方法为:使用SHA‑3算法对灰度图像P进行加密运算得到256位的二进制
值哈希值H;
[0015] 所述计算2D‑LSCM混沌映射和Lorenz混沌映射的初始值的方法为:
[0016] 将哈希值H按字节划分为32个字节并表示为:h1,h2,…,h32,则初始值为:
[0017]
[0018]
[0019] 其中,x′01、y′01、θ′0、x′02、y′02和z′02为给定值,x01、y01和θ为二维Logistic‑Sine耦合映射的初始值,x02、y02和z02为Lorenz混沌映射的初始值,Avg为灰度图像P的像素值的平
均值,取模函数mod(x1,y1)表示x1除以y1的余数,He为哈希值H的第e位二进制值, 为异或
运算。
[0020] 所述2D‑LSCM混沌映射是由一维混沌映射Logistic映射和Sine映射融合得到,数学表达式为:
[0021]
[0022] 其中,xi1和yi1为第i1次迭代得到的元素值,xi1+1和yi1+1为第i1+1次迭代得到的元素值,sin为正弦函数;当系统参数θ∈[0,1]时,2D‑LSCM混沌映射处于混沌状态;
[0023] 所述Lorenz映射的动力学方程为:
[0024]
[0025] 其中, 和 分别是状态变量x、y和z的导数,α、β、γ为系统参数,在保持系统参数α,γ不变的情况下,β≥24.74时,Lorenz混沌映射进入混沌状态。
[0026] 所述步骤三中像素级置换的方法为:利用希尔伯特曲线遍历二维矩阵P1中的每一个像素点,希尔伯特曲线连续访问二维矩阵P1中的所有像素一次,并对每一个像素进行线
性排序,从而将二维矩阵P1的像素位置打乱并重组一幅新的像素图像,从而得到置乱后的
像素序列P2。
[0027] 所述对混沌序列LSX和LSY进行处理分别得到序列LSX'和序列LSY'的方法为:
[0028]
[0029] 其中,lsxi和lsyi分别为混沌序列LSX和LSY的第i个元素,lsx′i和lsy′i分别为处理后的序列LSX'和LSY'的第i个元素,floor()为向上取整函数;且i=1,2,...M*N;
[0030] 所述对序列LOX、LOY和LOZ进行处理分别得到新的序列为LOX'、LOY'和LOZ'的方法为:
[0031]
[0032] 其中,loxi、loyi、lozi分别为伪随机序列LOX、LOY和LOZ的第i个元素,lox′i、loy′i、loz′i分别为处理后的序列LOX'、LOY'和LOZ'的第i个元素;且i=1,2,...M*N。
[0033] 所述约瑟夫遍历函数为:J=f(T,a,s,r),T为在约瑟夫函数f执行前存放的初始序列,J存放遍历后的序列,a为初始序列长度,s为开始遍历的起始位置,且1≤s≤a,r为遍历
时出列位置的报数值,1≤r≤a;
[0034] 所述相邻像素点间比特置乱的方法是:设定每4个相邻像素为一组,然后转换成二进制形式,对转换后的序列进行约瑟夫遍历;且下一组的第一个像素为上一组的最后一个
像素。
[0035] 所述DNA编码和DNA解码的规则为:
[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] 所述DNA编码过程中,对于像素序列P3中的每个像素,用序列LOX’中对应位置的元素值作为编码的规则,将像素序列P3编码成DNA序列;对于Mealy状态机输出的DNA序列,用
序列LOZ'的对应位置的元素值作为解码规则,将DNA序列P5解码成像素序列。
[0038] 所述Mealy状态机是一个6元组(S,S0,Σ,Λ,T1,G),其中,S是状态的有限集合,S0∈S是初始状态,Σ是有限输入字母表的集合,Λ为有限输出字母表集合,T1是状态转换函
数且:S×Σ→S,G是输出函数且由:S×Σ→Λ构成;
[0039] 将Mealy状态机的状态集合S设置为{S0,S1,S2,S3},开始状态为S0,输入字母表的有限集合Σ为{A,C,G,T},输出字母表的有限集合Λ为{A,C,G,T},S0,S1,S2,S3表示状态机的
四种状态,输出表如下表所示:
[0040]   输入A 输入C 输入G 输入TS0 T G C A
S1 G T A C
S2 C A T G
S3 A C G T

[0041] 通过输出表得到的状态转移表为:
[0042]  输入A 输入C 输入G 输入T
S0 S1 S0 S3 S2
S1 S2 S1 S0 S3
S2 S3 S2 S1 S0
S3 S0 S3 S2 S1

[0043] Mealy状态机以状态S0启动,Mealy状态机读取DNA序列P5中的每个DNA碱基,通过状态转移表输出得到一个新的DNA碱基序列;
[0044] 为了提高加密的安全性,下一个状态随机产生,Mealy状态机中输入第i个碱基,其下一个状态由序列LOY'中的第i+1个元素确定,也即下一个状态
[0045] 与现有技术相比,本发明的有益效果:首先使用SHA‑3算法计算明文图像的哈希值,作为混沌系统的初始值输入密钥;其次,迭代混沌系统得到混沌序列,用混沌序列作为
约瑟夫遍历的起点和步长,对相邻像素进行约瑟夫遍历,实现比特级置换。最后,对置换后
的图像进行DNA编码,并将编码后的图像序列输入Mealy状态机进行状态转换,输出转换结
果,经解码后还原成二维矩阵形式,得到密文图像,实现了像素的扩散,进一步增强算法的
混淆和扩散特性。实验结果和安全性分析表明,该算法对密钥的敏感性强,能有效抵抗统计
攻击和差分攻击等,具有很好的安全性和应用潜力。本发明通过Hilbert扫描、约瑟夫置换
以及Mealy状态转换实现了像素的位置置乱和像素值的扩散,综合使用明文哈希值与明文
像素值的平均值对明文变化更为敏感,使得抗选择明文(密文)攻击更强,明文敏感性更好。

附图说明

[0046] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以
根据这些附图获得其他的附图。
[0047] 图1为本发明的流程示意图。
[0048] 图2为本发明二维Hilbert曲线置乱的示意图。
[0049] 图3为本发明采用约瑟夫置乱的实例图,其中,(a)为明文矩阵,(b)为序列LCX’和LCY’,(c)为约瑟夫遍历后的矩阵,(d)为置乱过程示意图。
[0050] 图4为本发明状态转换的示意图。
[0051] 图5为本发明的实验仿真结果示意图,其中,(a)为Lena原始图像,(b)为Lena密文图像,(c)为Lena解密图像,(d)为Peppers原始图像,(e)为Peppers密文图像,(f)为Peppers
解密图像,(g)为Cameraman原始图像,(h)为Cameraman密文图像,(i)为Cameraman解密图
像。
[0052] 图6为图5中三幅图像的明文和密文的直方图,其中,(a)为Lena明文直方图,(b)为Lena密文直方图,(c)为Peppers明文直方图,(d)为Peppers密文直方图,(e)为Cameraman明
文直方图,(f)为Cameraman密文直方图。
[0053] 图7为本发明的Lena明文和密文图像的相关性对比图。

具体实施方式

[0054] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他
实施例,都属于本发明保护的范围。
[0055] 如图1所示,一种基于相邻像素约瑟夫变换和Mealy状态机的图像加密方法,首先,像素位置置换:根据希尔伯特曲线对图像进行扫描并转换为一维序列;其次,对图像进行
Bit级置换:将原始图像的每相邻的4个像素点进行约瑟夫遍历;然后进行DNA编码,并将编
码后的序列输入Mealy状态机进行状态变换,再DNA解码技术恢复成矩阵形式,得到密文图
像。具体步骤如下:
[0056] 步骤一:将灰度图像P转换成大小为M*N的二维矩阵P1。
[0057] 步骤二:计算灰度图像P的哈希值和灰度图像P像素值的平均值,根据哈希值、平均值及给定值分别计算2D‑LSCM混沌映射和Lorenz混沌映射的初始值。
[0058] 混沌作为一种特有非线性现象,具有良好的伪随机性、轨道的不可预测性、对初始状态及结构参数的极端敏感性、迭代的不重复性等一系列优良特性,广泛被应用于保密通
信。
[0059] 二维Logistic‑Sine耦合映射(2D Logistic‑Sine Coupling Map 2D‑LSCM)由一维混沌映射Logistic映射和Sine映射融合得到,两种混沌映射的结合把系统维数由一维扩
展到二维,有效地提高了系统的复杂度,进而得到更加复杂的混沌行为,二维Logistic‑
Sine耦合映射的数学表达式定义如下:
[0060]
[0061] 其中,当系统参数θ∈[0,1]时,该系统处于混沌状态。xi1和yi1为第i1次迭代得到的元素值,xi1+1和yi1+1为第i1+1次迭代得到的元素值,sin为正弦函数。
[0062] Lorenz映射是混沌系统中具有代表性的混沌映射,系统的动力学方程为:
[0063]
[0064] 式中,α、β、γ为系统参数,典型值为α=10,β=28,γ=8/3。在保持α,γ不变的情况下,β≥24.74时,系统进入混沌态。其中, 和 分别是状态变量x、y和z的导数。
[0065] 以Lorenz映射生成的混沌序列系统结构较低维复杂,可产生单变量或多变量组合的混沌序列,使得序列的设计非常灵活。
[0066] 自适应密钥是提高加密图像抵抗已知明文攻击的有效方法,从明文图像生成自适应密钥,以抵御已知/选择明文攻击,并能达到一次一密的效果。当然,为了避免基于明文图
像的攻击,明文图像必须高度分散到加密方案使用的密钥流中。为此,本发明利用明文图像
的哈希值和明文图像像素值的平均值来生成自适应密钥。
[0067] SHA‑3算法是一种基于海绵结构的哈希函数,它以任意长度的信息作为输入,生成固定长度的哈希值。由哈希值产生的密钥,即使原图像有极其微小的变化,加密产生的哈希
值都将完全不同,加密密钥也将完全不同。将原图像的信息与密钥相结合,能有效的抵抗已
知明文、选择明文攻击以及蛮力攻击。使用SHA‑3算法(输出哈希值长度可以输出512位、384
位、256位等),通过对明文图像进行加密运算得到256位的二进制值哈希值H,用于产生混沌
系统的初始值。将哈希值H按字节划分为32个字节表示为:h1,h2,…,h32。根据以下公式计算
分别得到3D混沌系统的初始值:
[0068]
[0069]
[0070] 其中,x′01、y′01、θ′0、x′02、y′02和z′02为给定值,x01、y01和θ为二维Logistic‑Sine耦合映射的初始值,x02、y02和z02为Lorenz映射的初始值,Avg为待加密图像像素值的平均值,
取模函数mod(x1,y1)表示x1除以y1的余数,He为哈希值H的第e位二进制值, 为异或运算。
这样生成的初始值与明文关联,具有随机性优势,能有效抵抗统计明文攻击和已知明文攻
击。
[0071] 步骤三:根据二维希尔伯特曲线的扫描路线,将二维矩阵P1进行像素级置换,从而置乱成一维向量得到一维的像素序列P2。
[0072] 置乱技术是通过对图像像素矩阵的重排,破坏图像矩阵的相关性,以此实现信息的加密,达到安全传输图像的目的。为对图像像素更好的置乱,一些学者开始使用填充曲
线。一条空间填充曲线(SFC)可以连续访问图像中的所有像素一次,并对每一个像素进行线
性排序,从而将原图像的像素位置打乱并重组一幅新的像素图像。通过使用填充曲线进行
扫描可以对图像进行快速置乱。意大利数学家Peano和德国数学家Hilbert分别于1890年和
1891年给出了填满一个方形网格的FASS曲线,利用这条连续曲线遍历网格中每一个结点,
即Hilbert曲线,如图2所示。Hilbert曲线对图像置乱具有很好的效果。
[0073] 步骤四:将2D‑LSCM混沌映射的初始值代入2D‑LSCM混沌映射并进行迭代,得到2个长度为M*N的混沌序列LSX和混沌序列LSY;对混沌序列LSX和LSY进行处理分别得到序列
LSX'和序列LSY',以序列LSX'为起点、LSY'为步长,利用约瑟夫遍历像素序列P2的相邻像素
的二进制位,得到像素序列P3。
[0074] 本发明D‑LSCM混沌映射的迭代中舍弃一定次数的迭代值去除暂态效应。
[0075] 约瑟夫问题是一个循环遍历问题,被描述为:有a个人围坐在一个圆桌周围,依次编号为1到a,现从编号为s的人开始报数,数到第r的人出列,然后从出列的下一个人重新开
始报数,数到第r的人又出列,……,如此重复直到所有的人全部出列为止。对于任意给定的
a、s和r,均可得到这a个人员的出列次序。若把出列顺序看成是遍历序列,则称其为“约瑟夫
遍历”。定义约瑟夫遍历函数为:J=f(T,a,s,r),T为在约瑟夫函数f执行前存放的初始序
列,J存放遍历后的序列,a为初始序列长度,s为开始遍历的起始位置,且1≤s≤a,r为遍历
时出列位置的报数值,1≤r≤a。
[0076] 针对现有单一像素点间比特置乱的图像加密算法存在对所用混沌序列不敏感以及抵御选择明(密)文攻击弱的问题,本发明提出一种相邻像素点间比特置乱的方法,将约
瑟夫遍历与混沌序列相结合,通过将混沌映射产生的伪随机序列作为约瑟夫遍历的起点和
步长参数,综合置乱效率和效果,本发明设定每4个相邻像素为一组,然后转换成二进制形
式,对其进行约瑟夫遍历。为进一步增强扩散的效果,规定下一组的第一个像素为上一组
(已进行约瑟夫遍历)的最后一个像素。相邻4个像素共32位二进制数的置乱,充分利用了全
局置乱后相邻像素点间的相关性被完全打破的特性,解决单一像素点二进制下置乱所用混
沌序列不敏感问题,也间接实现了像素的扩散。
[0077] 对2D‑LSCM映射产生的伪随机序列LSX和LSY的元素按公式(5)进行处理,记为序列LSX'和LSY',分别作为约瑟夫遍历的起点和步长。图3为采用约瑟夫置乱实例,图3的(a)为
给定的数据矩阵,图3的(b)为序列LSX'和LSY',图3的(c)为采用约瑟夫序列对图3(a)遍历
后的矩阵,图3的(d)为约瑟夫置乱过程。
[0078]
[0079] 其中,lsxi和lsyi分别为伪随机序列LSX和LSY的第i个元素,lsx′i和lsy′i分别为处理后的序列LSX'和LSY'的第i个元素,floor()为向上取整函数。
[0080] 步骤五:利用Lorenz混沌映射的初始值对Lorenz混沌映射进行迭代,得到3个长度为4*M*N的序列LOX、LOY和LOZ,分别对序列LOX、LOY和LOZ进行处理得到新的序列分别为
LOX'、LOY'和LOZ';其中,序列LOX'中元素用于规则选择,根据DNA编码技术将像素序列P3转
换为DNA序列P4。
[0081] DNA分子由四种脱氧核苷酸组成,分别是:腺嘌呤(A)、胞嘧啶(C)、鸟嘌呤(G)和胸腺嘧啶(T)。根据Watson‑Crick碱基配对原则,A和T之间通过两个氢键配对,G和C之间通过
三个氢键配对,这一天然的四进制组合,正好与半导体通断所形成的二进制类似。因此,运
用碱基的排列组合可以进行信息的存储和计算。如果按照A→00、C→01、G→10、T→11进行
对应编码,则互补数字配对 及 与碱基对的互补配对 及 吻合。这
样共有8中编码组合满足互补配对规则。
[0082] 表1.DNA编码和解码规则
[0083] 规则 1 2 3 4 5 6 7 800 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
[0084] 对于灰度图像来说,每个像素的灰度值可以用8位二进制数表示,如果采用DNA编码的话,只需要编码4个碱基序列。转换成DNA序列以后,就可以将DNA序列的转换规则用到
图像处理中。在加密图像中,为了达到像素值扰乱的目的,本发明结合Mealy状态机对图像
像素进行扩散。
[0085] 本发明中Lorenz混沌映射迭代中舍弃一定次数的迭代值去除暂态效应。给定混沌系统的初值,迭代Lorenz映射产生3个伪随机序列LOX、LOY和LOZ,按公式(6)对序列中的元
素进行处理,记处理后的序列为LOX'、LOY'和LOZ'。
[0086]
[0087] 其中,loxi、loyi、lozi分别为伪随机序列LOX、LOY和LOZ的第i个元素,lox′i、loy′i、loz′i分别为处理后的序列LOX'、LOY'和LOZ'的第i个元素。
[0088] 将图像进行DNA编码过程中,对于其每个像素,用序列LOX’中对应位置的元素值作为编码规则的选择(比如某个元素值为3,则选择第3个编码规则),将像素序列编码成DNA序
列,同理,对于Mealy状态机输出的DNA序列,用序列LOZ'的对应位置的元素值作为解码规则
的选择,将DNA序列编码成像素序列。
[0089] 另外,为了确保Mealy状态机的状态转换的可逆性,输出状态直接从序列LOY'中选择。比如输入第j个碱基A,它的下一个状态由LOY'中的第j+1个元素确定。比如,LOY'中的第
j+1个元素为2,则表示下一个状态为S2。这样通过将图像序列转换为DNA编码序列,输入
Mealy状态机进行状态转换并输出新的DNA序列,进一步结合混沌序列进行DNA解码,实现像
素的扩散。
[0090] 步骤六,利用Mealy状态转换机将DNA序列P4作为输入、LOY'作为转换状态,得到新的DNA序列P5。
[0091] 有限状态机是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。米利型(Mealy)有限状态机是基于它的当前状态和输入生成输出的有限状态自动机,
它的状态图的每个转移边包括输入和输出,与输出只依赖于机器当前状态的摩尔有限状态
机不同,它的输出与当前状态和输入都有关。
[0092] Mealy状态机是一个6元组(S,S0,Σ,Λ,T1,G),其中,S是状态的有限集合,S0∈S是初始状态,Σ是有限输入字母表的集合,Λ为有限输出字母表集合,T1是状态转换函数且:S
×Σ→S,G是输出函数且由:S×Σ→Λ构成。
[0093] Mealy状态机为密码机提供了基本的数学模型。例如,考虑到拉丁字母表的输入和输出字母表,可以设计一个Mealy模型,给定一串字母(一系列输入)可以将其处理成加密的
字符串(一系列输出)。然而,尽管可以使用Mealy模型来描述Enigma(恩尼格玛密码机),但
状态图太复杂,无法提供设计复杂加密机器的可行方法。为此,本发明将结合DNA编码技术,
给出一种四个字母表的状态图,对图像像素进行扩散。
[0094] 本发明将Mealy状态机的状态集合S设置为{S0,S1,S2,S3},开始状态为S0,输入字母表的有限集合Σ为{A,C,G,T},输出字母表的有限集合Λ为{A,C,G,T},S0,S1,S2,S3表示状
态转换机的四种状态,输出表如表2所示,状态表随机生成,表3为一个状态表实例。
[0095] 表2.输出表
[0096]   输入A 输入C 输入G 输入TS0 T G C A
S1 G T A C
S2 C A T G
S3 A C G T
[0097] 表3.状态转移表
[0098]  输入A 输入C 输入G 输入T
S0 S1 S0 S3 S2
S1 S2 S1 S0 S3
S2 S3 S2 S1 S0
S3 S0 S3 S2 S1
[0099] 与表2和表3对应的状态转换示意图如图4所示,其中转移边都标有输入值和输出值(字母下面带下划线)。在本发明中,Mealy状态机以S0状态启动,通过将图像像素转换为
一个DNA序列,Mealy状态机的作用是读取一个DNA序列中的每个DNA碱基,通过状态转换输
出得到一个新的DNA碱基序列;然后再根据表1中的DNA编码方案进行解码,恢复成像素值。
状态转换借助于状态转移表来实现,为了体现随机性,本发明采用了随机序列来确定下一
个状态。为了提高加密的安全性,下一个状态将随机产生。为此,采用混沌系统产生的随机
序列来确定状态机的下一个状态。所述Mealy状态机中输入第j个碱基A,其下一个状态由序
列LOY'中的第j+1个元素直接确定,也即下一个状态
[0100] 步骤七、将序列LOX'中元素用于编码规则选择,根据DNA编码技术,将DNA序列P5转换为二进制序列,进而转换为十进制序列,恢复成矩阵形式,得到密文图像P6。
[0101] 本发明通过利用两种混沌映射、约瑟夫遍历、DNA编码技术及状态机转换以达到混淆与扩散的目的,从而实现对数字图像的加密。
[0102] 本发明使用标准的256×256的Lena、Peppers和Cameraman图像来验证方法的可行性和有效性。在Windows10操作系统下采用Matlab2018a工具对本发明进行仿真,混沌映射
的初始给定值x01'=y01'=θ0'=x02'=y02'=z02'=0.01,实验仿真结果如图5所示。由图5可
知,本发明能实现图像的有效加密与解密。
[0103] 一个好的加密方法应当有足够大的密钥空间抵御穷举攻击,对密钥有敏感性且能够抵抗常见的攻击:如统计攻击、差分攻击、噪声攻击和裁剪攻击等各种攻击。下面主要分
析和讨论所提出的加密算法的性能和安全性。
[0104] 根据研究表明,即使在计算机能力强大的情况下,如果密钥空间大于2100,加密方法就无法被蛮力攻击破解。因此,提出的加密方法的密钥空间应足够大,就能抵御蛮力攻
15 90
击。在本发明中,包括6个系统参数,如果计算精度为10 ,则密钥空间为10 ,因此本发明的
密钥空间足够大,能够有效的抵御蛮力攻击。
[0105] 为了抵抗差分攻击,一个好的加密系统必须对普通加密中的细微变化高度敏感。一般采用NPCR(像素数变化比)和UACI(统一平均变化强度)来衡量对不同攻击的不可抗性,
计算方法如下:
[0106]
[0107] 其中,P1是通过本发明对选定的原始图像进行加密得到的密文图像,P2是对选定的原始图像改变一个像素值后通过本发明进行加密产生的加密图像,如果P1(i,j)=P2(i,j),
则D(i,j)=1,否则D(i,j)=0。对给定的三幅明文图像,计算UACI和NPCR的值结果如表4所示,
由表4可知UACI和NPCR的值均接近理论值,因此本发明具有较强的抵抗差分攻击的能力。
[0108] 表4三组图的NPCR和UACI对比分析
[0109] 图像 NPCR UACILena 99.6095 33.3513
Pepper 99.6381 33.6835
Cameraman 99.6032 33.4637
[0110] 直方图是一种表示图像中像素强度值分布的函数图像,密文图像的像素值分布越均匀,对统计攻击的抵抗能力越强,加密效果越好。攻击者难以从密文图像的直方图中获得
任何信息。否则,通过对加密图像统计特性的分析,可以通过统计分析攻击获得一定数量的
信息。因此,好的加密方法对原始图像加密后产生的密文图像的像素值都是均匀分布的。
Lena、Peppers和Cameraman明文图像和密文图像的统计直方图如图6所示,从实验结果可以
得出,像素扩散及置换操作使所得加密图像统计直方图分布非常均匀,这说明了本发明具
有很好的抵抗统计攻击能力。
[0111] 信息论中信息熵用来度量密码信息的随机性,信息熵值计算方法如公式下:
[0112]
[0113] 其中,L为图像的灰度级,mi是图像上的第i个灰度值,P(mi)是灰度值mi出现的概率。对于L=256的灰度图像来说,信息熵越接近理论值,图像被攻击的可能性越小。Lena、
Peppers和Cameraman明文图像和密文图像的信息熵如表5所示,进一步说明了本发明的有
效性。
[0114] 表5.三组图的明文和密文的信息熵
[0115]
[0116] 明文图像的相邻像素在水平、垂直和对角方向上的相关性很高,理想的加密算法可以大大降低明文图像的相关性来有效抵抗统计攻击。皮尔逊积矩相关系数(PMCC)被用来
衡量图像相邻像素之间的相关性,被定义为:
[0117]
[0118] 其中,E(x)和D(x)分别代表变量x的期望和方差,cov(x,y)表示协方差,ρxy为相邻像素相关系数。以Lena图像为例,随机选取10000对相邻像素点,得到其在三个方向上的相
关性如图7所示。由图7可以看出,原始图像中相邻像素的分布高度集中,说明原始图像相关
性很强。密文图像中相邻像素的分布是随机分布的,这表明密文图像相关性很低。三个方向
的相关系数计算结果如表6所示。由表6可以看出,经过加密后,密文图像有效地降低了相邻
像素相关性。
[0119] 表6.明文图像和密文图像在三个方向上的相关性
[0120]
[0121] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。