CN102523365B - 一种基于元胞自动机的图像加密和解密方法 - Google Patents

一种基于元胞自动机的图像加密和解密方法 Download PDF

Info

Publication number
CN102523365B
CN102523365B CN201110397232.1A CN201110397232A CN102523365B CN 102523365 B CN102523365 B CN 102523365B CN 201110397232 A CN201110397232 A CN 201110397232A CN 102523365 B CN102523365 B CN 102523365B
Authority
CN
China
Prior art keywords
binary sequence
cellular
input
cellular automata
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201110397232.1A
Other languages
English (en)
Other versions
CN102523365A (zh
Inventor
平萍
王宇
许峰
王志坚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hohai University HHU
Original Assignee
Hohai University HHU
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hohai University HHU filed Critical Hohai University HHU
Priority to CN201110397232.1A priority Critical patent/CN102523365B/zh
Publication of CN102523365A publication Critical patent/CN102523365A/zh
Application granted granted Critical
Publication of CN102523365B publication Critical patent/CN102523365B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提供一种基于元胞自动机的图像加密和解密方法,属于信息安全领域中的图像保密技术。该加密方法首先提取明文图像的像素矩阵,将像素矩阵的每一行转换为二值序列,然后采用多个元胞自动机对图像的每一行进行两轮链式循环迭代,将迭代结果转换成相应像素矩阵后得到密文图像。在每个迭代环节中,迭代次数预先设定,使用的规则号由伪随机序列发生器产生。本发明的解密过程是加密过程的逆过程,规则号使用的顺序与加密时相反。本发明的效果和益处是采用元胞自动机的链式循环迭代使得明文、密钥与密文之间具有复杂且不可预测的关系,既保证了网络传输过程中图像的安全性,又具有一定的容错能力。

Description

一种基于元胞自动机的图像加密和解密方法
技术领域:
本发明涉及一种基于元胞自动机的图像加密和解密方法,属于信息安全领域中的图像保密技术。
背景技术:
图像是人类获取信息,表达信息和传递信息的重要手段。随着互联网和多媒体技术的迅猛发展,越来越多图像可以在网络上方便、快捷地发布和传输。一些涉及个人隐私、商业机密或国家秘密的图像就很容易被恶意攻击者轻易地浏览、窃取、窜改、非法复制与传播,若不对这些图像采取必要的安全保护措施,由此带来的严重后果是不可估量的。因而,图像加密作为图像安全保护的核心技术,其应用愈来愈广泛,其要求也愈来愈高。与文本信息不同,图像具有数据量大、冗余度高、相邻像素间相关性强等特点,一些传统的对称加密算法如DES、AES尽管具备良好的混淆和扩散特性,但在处理图像数据时显得效率不高、效果不理想,这些问题对图像加密提出了新的挑战,我们迫切需要研究和开发出更多适合图像自身特点的加密方法。
近年来,将元胞自动机应用于密码学引起了广泛关注。元胞自动机是一种空间、时间和状态均离散的动力系统,它由元胞空间、状态、邻域和规则四个主要部分构成。空间中的每一个元胞取有限的离散状态,并根据相同的局部规则作同步更新。元胞自动机具有组成单元的简单性、单元之间作用的局部性、信息处理的高度并行性以及全局的复杂性等特点,这些特点非常有利于设计出简单、并行、高效的加密系统。目前,元胞自动机加密研究主要集中在序列密码和分组密码,而专门涉及图像加密的方法较少。Martin提出了一种基于元胞自动机的二值图像加密方法,该方法利用混合元胞自动机构造出伪随机序列发生器,然后通过伪随机序列与明文图像进行异或来实现图像的加密。这种流密码加密方法虽然处理速度快,但安全性完全依赖于伪随机序列发生器的安全,并且经不住已知明文攻击。Chen等人利用元胞自动机的迭代实现图像加密过程中的替代操作,并利用SCAN技术实现置换操作。这类方法具有良好的混淆和扩散性能,但未能考虑算法的容错能力,当密文图像在传输过程中出错或受损时,即便是1比特的错误,也会因为误差的全局扩散而导致解密失败。
发明内容:
针对现有技术中的不足,本发明结合元胞自动机理论和密码学理论,提出一种安全性好且具有容错能力的基于元胞自动机的图像加密和解密方法。
本发明的技术方案如下:
1、加密过程(如图2):
提取明文图像的像素矩阵IM×N,M是图像的宽度,N是图像的高度,均以像素计,并且N为偶数,如果不是偶数,在像素矩阵末尾补上1行,补上的像素值全为0,然后将像素矩阵的每一行转换为二进制序列,得到N个二进制序列B1,B2,...,BN,每个二进制序列的长度为L=M×D,其中D代表存储每个像素所用的二进制位数;
(1)第一轮
步骤1:将二进制序列B1、二进制序列B2分别作为加密端的第一个元胞自动机的输入1和输入2,加密端的第一个元胞自动机根据输入的规则号f1迭代d次,产生的输出1和输出2分别为二进制序列C1、二进制序列C2
步骤2:将B3和C1异或的结果、B4和C2异或的结果分别作为加密端的第二个元胞自动机的输入1和输入2,加密端的第二个元胞自动机根据输入的规则号f2迭代d次,产生的输出1和输出2分别为二进制序列C3、二进制序列C4
以此类推继续执行,直到将BN-1和CN-3异或的结果、BN和CN-2异或的结果分别作为加密端的第N/2个元胞自动机的输入1和输入2,加密端的第N/2个元胞自动机根据输入的规则号fN/2迭代d次,产生的输出1和输出2分别为二进制序列CN-1、二进制序列CN
(2)第二轮
令B1=CN,B2=C1,B3=C2,...,BN=CN-1,然后重复第一轮的迭代:
步骤1:将二进制序列B1、二进制序列B2分别作为加密端的第一个元胞自动机的输入1和输入2,加密端的第一个元胞自动机根据输入的规则号f1迭代d次,产生的输出1和输出2分别为二进制序列C′1、二进制序列C′2
步骤2:将B3和C′1异或的结果、B4和C′2异或的结果分别作为加密端的第二个元胞自动机的输入1和输入2,加密端的第二个元胞自动机根据输入的规则号f2迭代d次,产生的输出1和输出2分别为二进制序列C′3、二进制序列C′4
以此类推继续执行,直到将BN-1和C′N-3异或的结果、BN和C′N-2异或的结果分别作为加密端的第N/2个元胞自动机的,加密端的第N/2个元胞自动机根据输入的规则号fN/2迭代d次,产生的输出1和输出2分别为二进制序列C′N-1、二进制序列C′N,最终第二轮输出的二进制序列C′1,C′2,...,C′N转换为像素矩阵I′M×N后得到密文图像;
2、解密过程(如图3):
提取密文图像的像素矩阵I′M×N,然后将像素矩阵的每一行转换为二进制序列,得到N个二进制序列C1,C2,...,CN,每个二进制序列的长度为L=M×D;
(1)第一轮
步骤1:将二进制序列CN、二进制序列CN-1分别作为解密端的第N/2个元胞自动机的输入1和输入2,解密端的第N/2个元胞自动机根据输入的规则号fN/2迭代d次,产生的输出1和输出2分别与二进制序列CN-2、CN-3进行异或运算,从而得到二进制序列BN、二进制序列BN-1
步骤2:将二进制序列CN-2、二进制序列CN-3分别作为解密端的第N/2-1个元胞自动机的输入1和输入2,解密端的第N/2-1个元胞自动机根据输入的规则号fN/2-1迭代d次,产生分别与二进制序列CN-4、CN-5进行异或运算,从而得到二进制序列BN-2、二进制序列BN-3
以此类推继续执行,直到将二进制序列C2、二进制序列C1分别作为解密端的第1个元胞自动机的输入1和输入2,解密端的第1个元胞自动机根据输入的规则号f1迭代d次,产生的输出1和输出2分别为二进制序列B2、二进制序列B1
(2)第二轮
令C1=B2,C2=B3,...,CN-1=BN,CN=B1,然后重复第一轮的迭代:
步骤1:将二进制序列CN、二进制序列CN-1分别作为解密端的第N/2个元胞自动机的输入1和输入2,解密端的第N/2个元胞自动机根据输入的规则号fN/2迭代d次,产生的输出1和输出2分别与二进制序列CN-2、CN-3进行异或运算,从而得到二进制序列B′N、二进制序列B′N-1
步骤2:将二进制序列CN-2、二进制序列CN-3分别作为解密端的第N/2-1个元胞自动机的输入1和输入2,解密端的第N/2-1个元胞自动机根据输入的规则号fN/2-1迭代d次,产生分别与二进制序列CN-4、CN-5进行异或运算,从而得到二进制序列B′N-2、二进制序列B′N-3
以此类推继续执行,直到将二进制序列C2、二进制序列C1分别作为解密端的第1个元胞自动机的输入1和输入2,解密端的第1个元胞自动机根据输入的规则号f1迭代d次,产生的输出1和输出2分别为二进制序列B′2、二进制序列B′1,最终第二轮输出的二进制序列B′1,B′2,...,B′N转换为像素矩阵IM×N后得到明文图像;
令j=1、2、…、N/2,
Figure BDA0000115996330000041
第j个元胞自动机根据输入的规则号fj迭代d次的过程如图4所示,具体步骤如下:
(1)建立第j个元胞自动机的迭代表达式:
s i t + 1 = g ( s i - 1 t , s i t , s i + 1 t ) ⊕ s i t - 1 , i = 1,2 , . . . , L \*MERGEFORMAT(1)
式中
Figure BDA0000115996330000043
为第i个元胞在t时刻的状态,
Figure BDA0000115996330000044
为第i-1个元胞在t时刻的状态,
Figure BDA0000115996330000045
为第i+1个元胞在t时刻的状态,
Figure BDA0000115996330000046
为第i个元胞在t-1时刻的状态,
Figure BDA0000115996330000047
为第i个元胞在t+1时刻的状态,状态取值为0或1;
Figure BDA0000115996330000048
是异或运算符;g是具有3个变量的逻辑函数,当
Figure BDA0000115996330000049
的取值分别为000,001,010,011,100,101,110,111时,对应的逻辑函数
Figure BDA00001159963300000410
的值分别为规则号fj中的元素k8j-7k8j-6k8j-5k8j-4k8j-3k8j-2k8j-1k8j,当i=1时,令
Figure BDA00001159963300000411
当i=L时,令
Figure BDA00001159963300000412
所述规则号fj由伪随机序列发生器产生,该伪随机序列发生器以密钥种子K作为输入,然后输出一串长度为4N比特的二进制伪随机序列k1k2k3,...,k4N,规则号fj取二进制伪随机序列k1k2k3,...,k4N中的k8j-7k8j-6k8j-5k8j-4k8j-3k8j-2k8j-1k8j
(2)初始化:将从第j个元胞自动机的输入1输入的长度为L的二进制序列作为t=0时刻的第j个元胞自动机的全局状态
Figure BDA00001159963300000413
分别表示第j个元胞自动机中t=0时刻的各个元胞的状态值,将从第j个元胞自动机的输入2输入的长度为L的二进制序列作为t=1时刻的第j个元胞自动机的全局状态
Figure BDA00001159963300000414
分别表示第j个元胞自动机中t=1时刻的各个元胞的状态值,
(3)计算第j个元胞自动机t=2时刻的全局状态方法为:第i个元胞(i=1,2,...L)根据的取值,得到对应的逻辑函数
Figure BDA00001159963300000417
的值,然后将该逻辑函数
Figure BDA00001159963300000418
的值与进行异或,从而得到
Figure BDA00001159963300000420
其中,
Figure BDA00001159963300000421
分别表示第j个元胞自动机中t=1时刻的第i-1,i,i+1个元胞的状态值,当i=1时,令
Figure BDA0000115996330000051
当i=L时,令
Figure BDA0000115996330000052
Figure BDA0000115996330000053
表示第j个元胞自动机中t=0时刻的第i个元胞的状态值,
Figure BDA0000115996330000054
表示第j个元胞自动机中t=2时刻的第i个元胞的状态值,
(4)计算元胞自动机t=3时刻的全局状态
Figure BDA0000115996330000055
方法为:第i个元胞,i=1,2,...L,根据
Figure BDA0000115996330000056
的取值,得到对应的逻辑函数
Figure BDA0000115996330000057
的值,然后将该逻辑函数
Figure BDA0000115996330000058
的值与
Figure BDA0000115996330000059
进行异或,从而得到其中,
Figure BDA00001159963300000511
分别表示第j个元胞自动机中t=2时刻的第i-1,i,i+1个元胞的状态值,当i=1时,令
Figure BDA00001159963300000512
当i=L时,令
Figure BDA00001159963300000513
Figure BDA00001159963300000514
表示第j个元胞自动机中t=1时刻的第i个元胞的状态值,
Figure BDA00001159963300000515
表示第j个元胞自动机中t=3时刻的第i个元胞的状态值,
以此类推继续执行,直到计算出第j个元胞自动机t=d时刻的全局状态
Figure BDA00001159963300000516
和t=d+1时刻的全局状态
Figure BDA00001159963300000517
然后将这两个全局状态分别作为第j个元胞自动机迭代d次后的输出1的输出值和输出2的输出值,其中,
Figure BDA00001159963300000518
分别表示第j个元胞自动机中t=d时刻的各个元胞的状态值,
Figure BDA00001159963300000519
分别表示第j个元胞自动机中t=d+1时刻的各个元胞的状态值。
本发明的有益效果在于:
首先,利用元胞自动机(如图1所示)无信息损失和不需要进行浮点运算的特点,杜绝了由于计算机精度产生的舍入误差。其次,采用二轮链式循环迭代不仅具有良好的全局扩散性能,而且使得明文图像、密文图像和密钥之间的依赖关系非常复杂,提高了安全性。另外,本发明对密文图像的数据损失具有一定的容错能力,适合用于误码率较高的无线网络环境下的图像加密。
附图说明:
图1是元胞自动机模块;
图2是第一轮链式迭代加密示意图;
图3是第一轮链式迭代解密示意图;
图4是元胞自动机的迭代过程;
图5是明文图像;
图6是密文图像;
图7是明文图像的直方图;
图8是密文图像的直方图;
图9是明文图像水平方向相邻像素的相关性分布图;
图10是密文图像水平方向相邻像素的相关性分布图;
图11是受损密文的解密图像。
具体实施方式:
下面结合附图和实施例对本发明作进一步详细说明,所给出的实施例是为了说明本发明方法的技术特点和功能特点,而不是限制本发明的范围。
本发明的实施例采用Mathematica 8软件进行仿真,明文图像选用大小为256×256的标准测试灰度图像“Lena”,图像的每一个像素由8比特组成,如图5所示。
加密方法的步骤如下:
首先,利用Mathematica的Import函数提取明文图像的像素矩阵I256×256,然后将像素矩阵的每一行转换为256个二值序列B1,B2,B3,...,B256,每个二值序列长度为2048比特。设定迭代次数d=512。然后,采用Mathematica的Random函数生成1024比特的二进制伪随机序列k1k2k3,...,k1024,依次赋值于规则号,令f1=k1k2k3k4k5k6k7k8,f2=k9k10k11k12k13k14k15k16,...,f128=k1017k1018k1019k1020k1021k1022k1023k1024。接着,
(1)第一轮
步骤1:将二进制序列B1、二进制序列B2分别作为加密端的第一个元胞自动机的输入1和输入2,加密端的第一个元胞自动机根据输入的规则号f1迭代512次,产生的输出1和输出2分别为二进制序列C1、二进制序列C2
步骤2:将B3和C1异或的结果、B4和C2异或的结果分别作为加密端的第二个元胞自动机的输入1和输入2,加密端的第二个元胞自动机根据输入的规则号f2迭代512次,产生的输出1和输出2分别为二进制序列C3、二进制序列C4
以此类推继续执行,直到将B255和C253异或的结果、B256和C254异或的结果分别作为加密端的第128个元胞自动机的输入1和输入2,加密端的第128个元胞自动机根据输入的规则号f128迭代512次,产生的输出1和输出2分别为二进制序列C255、二进制序列C256
(2)第二轮
令B1=C256,B2=C1,B3=C2,...,B256=C255,然后重复第一轮的迭代:
步骤1:将二进制序列B1、二进制序列B2分别作为加密端的第一个元胞自动机的输入1和输入2,加密端的第一个元胞自动机根据输入的规则号f1迭代512次,产生的输出1和输出2分别为二进制序列C′1、二进制序列C′2
步骤2:将B3和C′1异或的结果、B4和C′2异或的结果分别作为加密端的第二个元胞自动机的输入1和输入2,加密端的第二个元胞自动机根据输入的规则号f2迭代512次,产生的输出1和输出2分别为二进制序列C′3、二进制序列C′4
以此类推继续执行,直到将B255和C′253异或的结果、B256和C′254异或的结果分别作为加密端的第128个元胞自动机的,加密端的第128个元胞自动机根据输入的规则号f128迭代512次,产生的输出1和输出2分别为二进制序列C′255、二进制序列C′256,最终第二轮输出的二进制序列C′1,C′2,...,C256′转换为像素矩阵I′256×256后得到密文图像如图6所示,它类似于“噪声”图像,很好地隐藏了原图像的信息。
解密方法的步骤如下:
首先,利用Mathematica的Import函数提取密文图像的像素矩阵I′256×256,然后将像素矩阵的每一行转换为256个二值序列C1,C2,C3,...,C256,每个二值序列长度为2048比特。设定迭代次数d=512。
(1)第一轮
步骤1:将二进制序列C256、二进制序列C255分别作为解密端的第128个元胞自动机的输入1和输入2,解密端的第128个元胞自动机根据输入的规则号f128迭代512次,产生的输出1和输出2分别与二进制序列C254、C253进行异或运算,从而得到二进制序列B256、二进制序列B255
步骤2:将二进制序列C254、二进制序列C253分别作为解密端的第127个元胞自动机的输入1和输入2,解密端的第127个元胞自动机根据输入的规则号f127迭代512次,产生分别与二进制序列C252、C251进行异或运算,从而得到二进制序列B254、二进制序列B253
以此类推继续执行,直到将二进制序列C2、二进制序列C1分别作为解密端的第1个元胞自动机的输入1和输入2,解密端的第1个元胞自动机根据输入的规则号f1迭代512次,产生的输出1和输出2分别为二进制序列B2、二进制序列B1
(2)第二轮
令C1=B2,C2=B3,...,C255=B256,C256=B1,然后重复第一轮的迭代:
步骤1:将二进制序列C256、二进制序列C255分别作为解密端的第128个元胞自动机的输入1和输入2,解密端的第128个元胞自动机根据输入的规则号f128迭代512次,产生的输出1和输出2分别与二进制序列C254、C253进行异或运算,从而得到二进制序列B′256、二进制序列B′255
步骤2:将二进制序列C254、二进制序列C253分别作为解密端的第127个元胞自动机的输入1和输入2,解密端的第127个元胞自动机根据输入的规则号f127迭代512次,产生分别与二进制序列C252、C251进行异或运算,从而得到二进制序列B′254、二进制序列B′253
以此类推继续执行,直到将二进制序列C2、二进制序列C1分别作为解密端的第1个元胞自动机的输入1和输入2,解密端的第1个元胞自动机根据输入的规则号f1迭代512次,产生的输出1和输出2分别为二进制序列B′2、二进制序列B′1,最终第二轮输出的二进制序列B′1,B′2,...,B256′转换为像素矩阵I256×256后得到明文图像;
令j=1、2、…、128,第j个元胞自动机根据输入的规则号fj迭代512次的步骤如下:
(1)建立第j个元胞自动机的迭代表达式:
s i t + 1 = g ( s i - 1 t , s i t , s i + 1 t ) ⊕ s i t - 1 , i = 1,2 , . . . , 2048
式中
Figure BDA0000115996330000082
为第i个元胞在t时刻的状态,
Figure BDA0000115996330000083
为第i-1个元胞在t时刻的状态,
Figure BDA0000115996330000084
为第i+1个元胞在t时刻的状态,
Figure BDA0000115996330000085
为第i个元胞在t-1时刻的状态,
Figure BDA0000115996330000086
为第i个元胞在t+1时刻的状态,状态取值为0或1;当i=1时,令
Figure BDA0000115996330000087
当i=2048时,令
Figure BDA0000115996330000088
Figure BDA0000115996330000089
是异或运算符;g是具有3个变量的逻辑函数,又称为规则,规则的另一种表示形式为真值表,如下:
表1规则真值表
真值表中输入项是邻域内元胞状态取值
Figure BDA00001159963300000811
的所有可能组合{000,001,010,011,100,101,110,111},按二进制数递增排列。真值表的输出项是所有输入变量取值下的逻辑函数
Figure BDA00001159963300000812
的值{a0,a1,a2,a3,a4,a5,a6,a7},其中ak∈{0,1},k=0,1,...,7。输入项和输出项的对应关系为:(0,0,0)→a0;(0,0,1)→a1;(0,1,0)→a2;(0,1,1)→a3;(1,0,0)→a4;(1,0,1)→a5;(1,1,0)→a6;(1,1,1)→a7。这样,输入变量
Figure BDA0000115996330000091
取值一旦确定,即可从真值表中查找到相应的输出值ak,然后将该输出值与元胞t-1时刻的状态值
Figure BDA0000115996330000092
进行异或,从而得到元胞t+1时刻的状态值这里,将a0a1a2a3a4a5a6a7这样一个长度为8比特的二进制序列称为规则号。一旦给定了规则号fj,就可以建立该规则号的规则真值表。由于本实施例中一共有128个规则号f1,f2,...,f128,因此可建立128张真值表。
(2)初始化:将从第j个元胞自动机的输入1输入的长度为2048比特的二进制序列作为t=0时刻的第j个元胞自动机的全局状态
Figure BDA0000115996330000094
分别表示第j个元胞自动机中t=0时刻的各个元胞的状态值,将从第j个元胞自动机的输入2输入的长度为2048比特的二进制序列作为t=1时刻的第j个元胞自动机的全局状态分别表示第j个元胞自动机中t=1时刻的各个元胞的状态值,
(3)计算第j个元胞自动机t=2时刻的全局状态
Figure BDA0000115996330000096
方法为:第i个元胞(i=1,2,...2048)根据
Figure BDA0000115996330000097
的取值,查找规则号为fj的真值表,得到对应的逻辑函数
Figure BDA0000115996330000098
的值,然后将该逻辑函数
Figure BDA0000115996330000099
的值与
Figure BDA00001159963300000910
进行异或,从而得到
Figure BDA00001159963300000911
其中,分别表示第j个元胞自动机中t=1时刻的第i-1,i,i+1个元胞的状态值,当i=1时,令
Figure BDA00001159963300000913
当i=2048时,令
Figure BDA00001159963300000915
表示第j个元胞自动机中t=0时刻的第i个元胞的状态值,
Figure BDA00001159963300000916
表示第j个元胞自动机中t=2时刻的第i个元胞的状态值,
(4)计算元胞自动机t=3时刻的全局状态
Figure BDA00001159963300000917
方法为:第i个元胞,i=1,2,...2048,根据
Figure BDA00001159963300000918
的取值,查找规则号为fj的真值表,得到对应的逻辑函数
Figure BDA00001159963300000919
的值,然后将该逻辑函数
Figure BDA00001159963300000920
的值与
Figure BDA00001159963300000921
进行异或,从而得到
Figure BDA00001159963300000922
其中,
Figure BDA00001159963300000923
分别表示第j个元胞自动机中t=2时刻的第i-1,i,i+1个元胞的状态值,当i=1时,令
Figure BDA00001159963300000924
当i=2048时,令
Figure BDA00001159963300000925
Figure BDA00001159963300000926
表示第j个元胞自动机中t=1时刻的第i个元胞的状态值,
Figure BDA00001159963300000927
表示第j个元胞自动机中t=3时刻的第i个元胞的状态值,
以此类推继续执行,直到计算出第j个元胞自动机t=512时刻的全局状态和t=513时刻的全局状态
Figure BDA00001159963300000929
然后将这两个全局状态分别作为第j个元胞自动机迭代512次后的输出1的输出值和输出2的输出值,其中,
Figure BDA00001159963300000930
分别表示第j个元胞自动机中t=512时刻的各个元胞的状态值,
Figure BDA00001159963300000931
分别表示第j个元胞自动机中t=513时刻的各个元胞的状态值。
下面结合附图对实施例进行性能分析:
密文图像的直方图如图8所示,它与明文图像的直方图7完全不同,密文图像的直方图分布十分均匀,这表明密文图像的像素值在[0,255]上的取值概率均等,因此能够有效抵抗统计分析。
图9和图10分别给出了明文图像和密文图像水平方向相邻像素的相关性分布,由图可见,明文图像像素之间的相关性呈现明显的线性结构,而密文图像像素之间的相关性呈现均匀、随机分布。因此,加密图像比原始图像的相关性降低了。
为了测试当密文图像经过有噪信道发生误码时是否能恢复原始图像,我们在仿真过程中改变密文图像的一个像素值,然后检验解密效果。从图11可以看出,误码仅在局部扩散,只有若干分组不能恢复原始图像,其他部分仍然能正确解码,因此本发明方法对于密文受损具有一定的容错能力。
由上述性能分析可见,本发明方法具有良好的加密效果,能有效抵抗直方图和相关性等统计分析攻击,并且对密文受损具有一定的容错能力。

Claims (1)

1.一种基于元胞自动机的图像加密和解密方法,其特征在于:包括加密步骤和解密步骤,
所述加密步骤为:
提取明文图像的像素矩阵IM×N,M是图像的宽度,N是图像的高度,均以像素计,并且N为偶数,如果不是偶数,在像素矩阵末尾补上1行,补上的像素值全为0,然后将像素矩阵的每一行转换为二进制序列,得到N个二进制序列B1,B2,...,BN,每个二进制序列的长度为L=M×D,其中D代表存储每个像素所用的二进制位数;
(1)第一轮
步骤1:将二进制序列B1、二进制序列B2分别作为加密端的第一个元胞自动机的输入1和输入2,加密端的第一个元胞自动机根据输入的规则号f1迭代d次,产生的输出1和输出2分别为二进制序列C1、二进制序列C2
步骤2:将B3和C1异或的结果、B4和C2异或的结果分别作为加密端的第二个元胞自动机的输入1和输入2,加密端的第二个元胞自动机根据输入的规则号f2迭代d次,产生的输出1和输出2分别为二进制序列C3、二进制序列C4
以此类推继续执行,直到将BN-1和CN-3异或的结果、BN和CN-2异或的结果分别作为加密端的第N/2个元胞自动机的输入1和输入2,加密端的第N/2个元胞自动机根据输入的规则号fN/2迭代d次,产生的输出1和输出2分别为二进制序列CN-1、二进制序列CN
(2)第二轮
令B1=CN,B2=C1,B3=C2,...,BN=CN-1,然后重复第一轮的迭代:
步骤1:将二进制序列B1、二进制序列B2分别作为加密端的第一个元胞自动机的输入1和输入2,加密端的第一个元胞自动机根据输入的规则号f1迭代d次,产生的输出1和输出2分别为二进制序列C′1、二进制序列C′2
步骤2:将B3和C′1异或的结果、B4和C′2异或的结果分别作为加密端的第二个元胞自动机的输入1和输入2,加密端的第二个元胞自动机根据输入的规则号f2迭代d次,产生的输出1和输出2分别为二进制序列C′3、二进制序列C′4
以此类推继续执行,直到将BN-1和C′N-3异或的结果、BN和C′N-2异或的结果分别作为加密端的第N/2个元胞自动机的,加密端的第N/2个元胞自动机根据输入的规则号fN/2迭代d次,产生的输出1和输出2分别为二进制序列C′N-1二进制序列C′N最终第二轮输出的二进制序列C′1,C′2,...,C′N转换为像素矩阵I′M×N后得到密文图像;
所述解密步骤为:
提取密文图像的像素矩阵I′M×N,然后将像素矩阵的每一行转换为二进制序列,得到N个二进制序列C1,C2,...,CN,每个二进制序列的长度为L=M×D;
(1)第一轮
步骤1:将二进制序列CN、二进制序列CN-1分别作为解密端的第N/2个元胞自动机的输入1和输入2,解密端的第N/2个元胞自动机根据输入的规则号fN/2迭代d次,产生的输出1和输出2分别与二进制序列CN-2、CN-3进行异或运算,从而得到二进制序列BN、二进制序列BN-1
步骤2:将二进制序列CN-2、二进制序列CN-3分别作为解密端的第N/2-1个元胞自动机的输入1和输入2,解密端的第N/2-1个元胞自动机根据输入的规则号fN/2-1迭代d次,产生分别与二进制序列CN-4、CN-5进行异或运算,从而得到二进制序列BN-2、二进制序列BN-3
以此类推继续执行,直到将二进制序列C2、二进制序列C1分别作为解密端的第1个元胞自动机的输入1和输入2,解密端的第1个元胞自动机根据输入的规则号f1迭代d次,产生的输出1和输出2分别为二进制序列B2、二进制序列B1
(2)第二轮
令C1=B2,C2=B3,...,CN-1=BN,CN=B1,然后重复第一轮的迭代:
步骤1:将二进制序列CN、二进制序列CN-1分别作为解密端的第N/2个元胞自动机的输入1和输入2,解密端的第N/2个元胞自动机根据输入的规则号fN/2迭代d次,产生的输出1和输出2分别与二进制序列CN-2、CN-3进行异或运算,从而得到二进制序列B′N、二进制序列B′N-1
步骤2:将二进制序列CN-2、二进制序列CN-3分别作为解密端的第N/2-1个元胞自动机的输入1和输入2,解密端的第N/2-1个元胞自动机根据输入的规则号fN/2-1迭代d次,产生分别与二进制序列CN-4、CN-5进行异或运算,从而得到二进制序列B′N-2、二进制序列B′N-3
以此类推继续执行,直到将二进制序列C2、二进制序列C1分别作为解密端的第1个元胞自动机的输入1和输入2,解密端的第1个元胞自动机根据输入的规则号f1迭代d次,产生的输出1和输出2分别为二进制序列B′2、二进制序列B′1,最终第二轮输出的二进制序列B′1,B′2,...,B′N转换为像素矩阵IM×N后得到明文图像;
令j=1、2、…、N/2,
Figure FDA0000373078360000036
第j个元胞自动机根据输入的规则号fj迭代d次的步骤如下:
(1)建立第j个元胞自动机的迭代表达式:
s i t + 1 = g ( s i - 1 t , s i t , s i + 1 t ) ⊕ s i t - 1 , i = 1,2 , . . . , L
式中为第i个元胞在t时刻的状态,
Figure FDA0000373078360000039
为第i-1个元胞在t时刻的状态,
Figure FDA00003730783600000310
为第i+1个元胞在t时刻的状态,
Figure FDA00003730783600000311
为第i个元胞在t-1时刻的状态,
Figure FDA00003730783600000312
为第i个元胞在t+1时刻的状态,状态取值为0或1;⊕是异或运算符;g是具有3个变量的逻辑函数,
Figure FDA00003730783600000313
的取值分别为000,001,010,011,100,101,110,111时,对应的逻辑函数
Figure FDA00003730783600000314
的值分别为规则号fj中的元素k8j-7k8j-6k8j-5k8j-4k8j-3k8j-2k8j-1k8j,当i=1时,令
Figure FDA00003730783600000315
当i=L时,令
Figure FDA00003730783600000316
所述规则号fj由伪随机序列发生器产生,该伪随机序列发生器以密钥种子K作为输入,然后输出一串长度为4N比特的二进制伪随机序列k1k2k3,...,k4N,规则号fj取二进制伪随机序列k1k2k3,...,k4N中的k8j-7k8j-6k8j-5k8j-4k8j-3k8j-2k8j-1k8j
(2)初始化:将从第j个元胞自动机的输入1输入的长度为L的二进制序列作为t=0时刻的第j个元胞自动机的全局状态
Figure FDA00003730783600000317
Figure FDA00003730783600000318
分别表示第j个元胞自动机中t=0时刻的各个元胞的状态值,将从第j个元胞自动机的输入2输入的长度为L的二进制序列作为t=1时刻的第j个元胞自动机的全局状态
Figure FDA00003730783600000319
Figure FDA00003730783600000320
分别表示第j个元胞自动机中t=1时刻的各个元胞的状态值,
(3)计算第j个元胞自动机t=2时刻的全局状态
Figure FDA00003730783600000321
方法为:第i个元胞(i=1,2,...L)根据
Figure FDA00003730783600000322
的取值,得到对应的逻辑函数
Figure FDA00003730783600000323
的值,然后将该逻辑函数
Figure FDA00003730783600000324
的值与
Figure FDA00003730783600000325
进行异或,从而得到
Figure FDA00003730783600000326
其中,
Figure FDA00003730783600000327
分别表示第j个元胞自动机中t=1时刻的第i-1,i,i+1个元胞的状态值,当i=1时,令
Figure FDA0000373078360000041
当i=L时,令
Figure FDA0000373078360000042
Figure FDA0000373078360000043
表示第j个元胞自动机中t=0时刻的第i个元胞的状态值,
Figure FDA0000373078360000044
表示第j个元胞自动机中t=2时刻的第i个元胞的状态值,
(4)计算元胞自动机t=3时刻的全局状态
Figure FDA0000373078360000045
方法为:第i个元胞,i=1,2,...L,根据的取值,得到对应的逻辑函数
Figure FDA0000373078360000047
的值,然后将该逻辑函数
Figure FDA0000373078360000048
的值与
Figure FDA0000373078360000049
进行异或,从而得到
Figure FDA00003730783600000410
其中,
Figure FDA00003730783600000411
分别表示第j个元胞自动机中t=2时刻的第i-1,i,i+1个元胞的状态值,当i=1时,令
Figure FDA00003730783600000412
当i=L时,令
Figure FDA00003730783600000414
表示第j个元胞自动机中t=1时刻的第i个元胞的状态值,
Figure FDA00003730783600000415
表示第j个元胞自动机中t=3时刻的第i个元胞的状态值,
以此类推继续执行,直到计算出第j个元胞自动机t=d时刻的全局状态
Figure FDA00003730783600000416
和t=d+1时刻的全局状态
Figure FDA00003730783600000417
然后将这两个全局状态分别作为第j个元胞自动机迭代d次后的输出1的输出值和输出2的输出值,其中,
Figure FDA00003730783600000418
分别表示第j个元胞自动机中t=d时刻的各个元胞的状态值,分别表示第j个元胞自动机中t=d+1时刻的各个元胞的状态值。
CN201110397232.1A 2011-12-05 2011-12-05 一种基于元胞自动机的图像加密和解密方法 Expired - Fee Related CN102523365B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110397232.1A CN102523365B (zh) 2011-12-05 2011-12-05 一种基于元胞自动机的图像加密和解密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110397232.1A CN102523365B (zh) 2011-12-05 2011-12-05 一种基于元胞自动机的图像加密和解密方法

Publications (2)

Publication Number Publication Date
CN102523365A CN102523365A (zh) 2012-06-27
CN102523365B true CN102523365B (zh) 2014-02-19

Family

ID=46294150

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110397232.1A Expired - Fee Related CN102523365B (zh) 2011-12-05 2011-12-05 一种基于元胞自动机的图像加密和解密方法

Country Status (1)

Country Link
CN (1) CN102523365B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103745427B (zh) * 2014-01-16 2017-01-04 浙江传媒学院 基于迭代振幅-相位恢复算法的图像加密方法
CN104766266A (zh) * 2015-03-19 2015-07-08 河海大学 一种基于二维元胞自动机的图像置乱方法
CN105099654A (zh) * 2015-06-16 2015-11-25 南京理工大学 基于耦合自触发元胞自动机加解密方法
CN106056527B (zh) * 2016-09-05 2019-08-20 中山大学 基于混合型平衡二阶可逆二维细胞自动机图像加密方法
CN106971367A (zh) * 2017-03-23 2017-07-21 河海大学 一种基于可逆仿生元胞自动机的图像加密方法
CN107590843B (zh) * 2017-09-07 2019-08-13 电子科技大学 基于构造的二维可逆元胞自动机的图像加密方法
CN108021814B (zh) * 2017-11-27 2019-07-23 河海大学 一种基于平衡规则的仿生元胞自动机的图像加密方法
CN110213037B (zh) * 2019-06-03 2022-05-20 华中师范大学 一种适合硬件环境的流密码加密方法及系统
CN113422682B (zh) * 2021-06-21 2022-07-26 北京邮电大学 基于色散均衡和元胞自动机的物理层安全密钥分发方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5515307A (en) * 1994-08-04 1996-05-07 Bell Communications Research, Inc. Pseudo-random generator
US6064738A (en) * 1996-12-10 2000-05-16 The Research Foundation Of State University Of New York Method for encrypting and decrypting data using chaotic maps
CN101739695A (zh) * 2009-11-26 2010-06-16 西北工业大学 一种基于三维Arnold映射的图像分组加密方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5515307A (en) * 1994-08-04 1996-05-07 Bell Communications Research, Inc. Pseudo-random generator
US6064738A (en) * 1996-12-10 2000-05-16 The Research Foundation Of State University Of New York Method for encrypting and decrypting data using chaotic maps
CN101739695A (zh) * 2009-11-26 2010-06-16 西北工业大学 一种基于三维Arnold映射的图像分组加密方法

Also Published As

Publication number Publication date
CN102523365A (zh) 2012-06-27

Similar Documents

Publication Publication Date Title
CN102523365B (zh) 一种基于元胞自动机的图像加密和解密方法
Chen et al. An efficient image encryption scheme using lookup table-based confusion and diffusion
Talhaoui et al. Fast image encryption algorithm with high security level using the Bülban chaotic map
Xiong et al. Color image chaos encryption algorithm combining CRC and nine palace map
Norouzi et al. A novel image encryption based on hash function with only two-round diffusion process
Ye et al. Chaotic image encryption algorithm using wave-line permutation and block diffusion
Zhang A new unified image encryption algorithm based on a lifting transformation and chaos
Wang et al. A new chaos-based fast image encryption algorithm
Sun et al. A new cryptosystem based on spatial chaotic system
Xu et al. An improved chaotic cryptosystem based on circular bit shift and XOR operations
Kumar et al. IEHC: An efficient image encryption technique using hybrid chaotic map
Khan et al. A new hybrid image encryption algorithm based on 2D-CA, FSM-DNA rule generator, and FSBI
CN104917617B (zh) 一种加密群签名的混淆方法
CN107330338B (zh) 基于双混沌交叉扩散的彩色图像加密和解密方法及系统
CN103414549A (zh) 一种qr二维码二值图像分区变密钥混沌加密方法
Gao et al. Digital image encryption scheme based on generalized Mandelbrot-Julia set
Chen et al. Cryptanalysis of a chaotic image cipher based on plaintext-related permutation and lookup table
Al-Arjan et al. Intelligent security in the era of AI: The key vulnerability of RC4 algorithm
CN101022331B (zh) 一种基于载体的混沌加密方法
CN103458316B (zh) 一种图像加密方法
Song et al. Multi-image reorganization encryption based on SLF cascade chaos and bit scrambling
Wen et al. Secure image encryption algorithm using chaos-based block permutation and weighted bit planes chain diffusion
Ning et al. Construction of new 5D Hamiltonian conservative hyperchaotic system and its application in image encryption
Zhang et al. Reverse iterative image encryption scheme using 8-layer cellular automata
Faraoun Design of fast one-pass authenticated and randomized encryption schema using reversible cellular automata

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140219

Termination date: 20161205