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

文档序号:7999902阅读:377来源:国知局
专利名称:一种基于元胞自动机的图像加密和解密方法
技术领域
本发明涉及一种基于元胞自动机的图像加密和解密方法,属于信息安全领域中的图像保密技术。
背景技术
图像是人类获取信息,表达信息和传递信息的重要手段。随着互联网和多媒体技术的迅猛发展,越来越多图像可以在网络上方便、快捷地发布和传输。一些涉及个人隐私、 商业机密或国家秘密的图像就很容易被恶意攻击者轻易地浏览、窃取、窜改、非法复制与传播,若不对这些图像采取必要的安全保护措施,由此带来的严重后果是不可估量的。因而, 图像加密作为图像安全保护的核心技术,其应用愈来愈广泛,其要求也愈来愈高。与文本信息不同,图像具有数据量大、冗余度高、相邻像素间相关性强等特点,一些传统的对称加密算法如DES、AES尽管具备良好的混淆和扩散特性,但在处理图像数据时显得效率不高、效果不理想,这些问题对图像加密提出了新的挑战,我们迫切需要研究和开发出更多适合图像自身特点的加密方法。
近年来,将元胞自动机应用于密码学引起了广泛关注。元胞自动机是一种空间、时间和状态均离散的动力系统,它由元胞空间、状态、邻域和规则四个主要部分构成。空间中的每一个元胞取有限的离散状态,并根据相同的局部规则作同步更新。元胞自动机具有组成单元的简单性、单元之间作用的局部性、信息处理的高度并行性以及全局的复杂性等特点,这些特点非常有利于设计出简单、并行、高效的加密系统。目前,元胞自动机加密研究主要集中在序列密码和分组密码,而专门涉及图像加密的方法较少。Martin提出了一种基于元胞自动机的二值图像加密方法,该方法利用混合元胞自动机构造出伪随机序列发生器, 然后通过伪随机序列与明文图像进行异或来实现图像的加密。这种流密码加密方法虽然处理速度快,但安全性完全依赖于伪随机序列发生器的安全,并且经不住已知明文攻击。Chen 等人利用元胞自动机的迭代实现图像加密过程中的替代操作,并利用SCAN技术实现置换操作。这类方法具有良好的混淆和扩散性能,但未能考虑算法的容错能力,当密文图像在传输过程中出错或受损时,即便是1比特的错误,也会因为误差的全局扩散而导致解密失败。

发明内容
针对现有技术中的不足,本发明结合元胞自动机理论和密码学理论,提出一种安全性好且具有容错能力的基于元胞自动机的图像加密和解密方法。
本发明的技术方案如下
1、加密过程(如图2):
提取明文图像的像素矩阵Imxn,M是图像的宽度,N是图像的高度,均以像素计,并且N为偶数,如果不是偶数,在像素矩阵末尾补上1行,补上的像素值全为0,然后将像素矩阵的每一行转换为二进制序列,得到N个二进制序列B1, B2,..., Bn,每个二进制序列的长度为L = MXD,其中D代表存储每个像素所用的二进制位数;
(1)第一轮
步骤1 将二进制序列B1、二进制序列化分别作为加密端的第一个元胞自动机的输入1和输入2,加密端的第一个元胞自动机根据输入的规则号迭代d次,产生的输出1和输出2分别为二进制序列C1、二进制序列C2 ;
步骤2 将B3和C1异或的结果、B4和C2异或的结果分别作为加密端的第二个元胞自动机的输入1和输入2,加密端的第二个元胞自动机根据输入的规则号f2迭代d次,产生的输出1和输出2分别为二进制序列C3、二进制序列C4 ;
以此类推继续执行,直到将BN_i和CN_3异或的结果、 和CN_2异或的结果分别作为加密端的第N/2个元胞自动机的输入1和输入2,加密端的第N/2个元胞自动机根据输入的规则号fN/2迭代d次,产生的输出1和输出2分别为二进制序列CV1、二进制序列Cn ;
(2)第二轮
令B1 = CN, B2 = C1, B3 = C2, . . . , Bn = C1^1,然后重复第一轮的迭代
步骤1 将二进制序列B1、二进制序列化分别作为加密端的第一个元胞自动机的输入1和输入2,加密端的第一个元胞自动机根据输入的规则号迭代d次,产生的输出1和输出2分别为二进制序列C'工、二进制序列C' 2;
步骤2:将 和('工异或的结果、Bjn C' 2异或的结果分别作为加密端的第二个元胞自动机的输入1和输入2,加密端的第二个元胞自动机根据输入的规则号f2迭代d 次,产生的输出1和输出2分别为二进制序列C' 3、二进制序列C' 4 ;
以此类推继续执行,直到将Bim和C' N_3异或的结果、 和C' N_2异或的结果分别作为加密端的第N/2个元胞自动机的,加密端的第N/2个元胞自动机根据输入的规则号fN/2 迭代d次,产生的输出1和输出2分别为二进制序列C' η、二进制序列C' N,最终第二轮输出的二进制序列C' i;C' 2,...,C' 换为像素矩阵Γ ΜΧΝ后得到密文图像;
2、解密过程(如图3):
提取密文图像的像素矩阵Γ ΜΧΝ,然后将像素矩阵的每一行转换为二进制序列, 得到N个二进制序列C1, C2, ...,Cn,每个二进制序列的长度为L = MXD;
(1)第一轮
步骤1 将二进制序列Cn、二进制序列CV1分别作为解密端的第Ν/2个元胞自动机的输入1和输入2,解密端的第Ν/2个元胞自动机根据输入的规则号fN/2迭代d次,产生的输出1和输出2分别与二进制序列CN_2、CN_3进行异或运算,从而得到二进制序列Bn、二进制序列I1 ;
步骤2 将二进制序列CN_2、二进制序列CN_3分别作为解密端的第N/2-1个元胞自动机的输入1和输入2,解密端的第N/2-1个元胞自动机根据输入的规则号fN/2_i迭代d次, 产生分别与二进制序列CN_4、CN_5进行异或运算,从而得到二进制序列BN_2、二进制序列Bn_3 ;
以此类推继续执行,直到将二进制序列C2、二进制序列C1分别作为解密端的第1个元胞自动机的输入1和输入2,解密端的第1个元胞自动机根据输入的规则号迭代d次, 产生的输出1和输出2分别为二进制序列氏、二进制序列B1 ;
(2)第二轮
令C1 = B2, C2 = B3, ... , CV1 = Bn, Cn = B1,然后重复第一轮的迭代
步骤1 将二进制序列Cn、二进制序列CV1分别作为解密端的第N/2个元胞自动机的输入1和输入2,解密端的第N/2个元胞自动机根据输入的规则号fN/2迭代d次,产生的输出1和输出2分别与二进制序列CN_2、CN_3进行异或运算,从而得到二进制序列B' N、二进制序列B' ;
步骤2 将二进制序列CN_2、二进制序列CN_3分别作为解密端的第N/2-1个元胞自动机的输入1和输入2,解密端的第N/2-1个元胞自动机根据输入的规则号fN/2_i迭代d次, 产生分别与二进制序列CN_4、CN_5进行异或运算,从而得到二进制序列B' N_2、二进制序列R' .υ Ν-3 ‘
以此类推继续执行,直到将二进制序列C2、二进制序列C1分别作为解密端的第1个元胞自动机的输入1和输入2,解密端的第1个元胞自动机根据输入的规则号迭代d次, 产生的输出1和输出2分别为二进制序列B' 2、二进制序列B'工,最终第二轮输出的二进制序列B' 1 B' 2,...,B' 换为像素矩阵Imxn后得到明文图像;
令j = 1、2、…、N/2,J=^^,第j个元胞自动机根据输入的规则号fj迭代d次的过程如图4所示,具体步骤如下
(1)建立第j个元胞自动机的迭代表达式
if1 二乂夂”夂攻!) ·^—1,/=1,2,...,/ \*MERGEF0RMAT(1)
式中彳为第i个元胞在t时刻的状态,为第i_l个元胞在t时刻的状态,为第 i+1个元胞在t时刻的状态,1为第i个元胞在t-Ι时刻的状态,广1为第i个元胞在t+Ι时刻的状态,状态取值为0或1 是异或运算符;g是具有3个变量的逻辑函数,当攻乂‘的取值分别为000,001,ο 10,ο 11,100,101,110,111时,对应的逻辑函数玄C^1,4 <4)的值分别为规则号fJ中的元素、-决附!^-九^!^-九竹!^-知,当i = 1时,令么=/z,当i = L时,令c/ - c/ ^/+1 _ ‘
所述规则号f」由伪随机序列发生器产生,该伪随机序列发生器以密钥种子K作为输入,然后输出一串长度为4N比特的二进制伪随机序列Ic1I^k3,. . .,k4N,规则号fj取二进制伪随机序列 I^k2Ic3, ... , k4N 中的 1 ^! ^! ^! ^! ^! ^! ^! ,
(2)初始化将从第j个元胞自动机的输入1输入的长度为L的二进制序列作为t =0时刻的第j个元胞自动机的全局状态UVK...乂), 41,...乂分别表示第j个元胞自动机中t = 0时刻的各个元胞的状态值,将从第j个元胞自动机的输入2输入的长度为 L的二进制序列作为t = 1时刻的第j个元胞自动机的全局状态Cv11,...,4),44,4,...,4 分别表示第j个元胞自动机中t = 1时刻的各个元胞的状态值,
(3)计算第j个元胞自动机t = 2时刻的全局状态Cv1V2V32,…,亡,方法为第i个元胞(i = 1,2,...L)根据元乂丄的取值,得到对应的逻辑函数^1)的值,然后将该逻辑函数WU,心)的值与4进行异或,从而得到4,其中,元分别表示第j个元胞自动机中t = 1时刻的第i-1,i,i+Ι个元胞的状态值,当i = 1时,令元=4,当i = L时, 令A1 =4 4表示第j个元胞自动机中t = 0时刻的第i个元胞的状态值,乂表示第j个元胞自动机中t = 2时刻的第i个元胞的状态值,
(4)计算元胞自动机t = 3时刻的全局状态…乂),方法为第i个元胞,i =1,2, ... L,根据毛, +1的取值,得到对应的逻辑函数《(毛乂,元)的值,然后将该逻辑函数的值与4进行异或,从而得到4,其中,4, +1分别表示第· 个元胞自动机中t = 2时刻的第i-1,i,i+1个元胞的状态值,当i = 1时,令=#,当i = L时,令 =彳4表示第j个元胞自动机中t = 1时刻的第i个元胞的状态值,彳表示第j个元胞自动机中t = 3时刻的第i个元胞的状态值,
以此类推继续执行,直到计算出第j个元胞自动机t = d时刻的全局状态 Cvf,和t = d+i时刻的全局状态(if 1Z+1,if V..,if Ο,然后将这两个全局状态分别作为第j个元胞自动机迭代d次后的输出1的输出值和输出2的输出值,其中,if,分别表示第j个元胞自动机中t = d时刻的各个元胞的状态值,if+Vf1,ifV..,if1分别表示第j个元胞自动机中t = d+Ι时刻的各个元胞的状态值。
本发明的有益效果在于
首先,利用元胞自动机(如图1所示)无信息损失和不需要进行浮点运算的特点, 杜绝了由于计算机精度产生的舍入误差。其次,采用二轮链式循环迭代不仅具有良好的全局扩散性能,而且使得明文图像、密文图像和密钥之间的依赖关系非常复杂,提高了安全性。另外,本发明对密文图像的数据损失具有一定的容错能力,适合用于误码率较高的无线网络环境下的图像加密。


图1是元胞自动机模块;
图2是第一轮链式迭代加密示意图3是第一轮链式迭代解密示意图4是元胞自动机的迭代过程;
图5是明文图像;
图6是密文图像;
图7是明文图像的直方图8是密文图像的直方图9是明文图像水平方向相邻像素的相关性分布图10是密文图像水平方向相邻像素的相关性分布图
图11是受损密文的解密图像。
具体实施例方式
下面结合附图和实施例对本发明作进一步详细说明,所给出的实施例是为了说明本发明方法的技术特点和功能特点,而不是限制本发明的范围。
本发明的实施例采用Mathematica 8软件进行仿真,明文图像选用大小为 256X256的标准测试灰度图像“Lena”,图像的每一个像素由8比特组成,如图5所示。
加密方法的步骤如下
首先,利用Mathematica的Import函数提取明文图像的像素矩阵I256x256,然后将像素矩阵的每一行转换为256个二值序列B1, B2, B3, ... , B256,每个二值序列长度为2048 比特。设定迭代次数d = 512。然后,采用Mathematica的Random函数生成IOM比特的二进制伪随机序列啦3,... , k1Q24,依次赋值于规则号,令= k1k2k3k4k5k6k7k8, f2 =^gk1Qk1 jkjgk^k^kjgkjg, · · ·,f128 — k1017k1018k1019k1(^0k1021klffi2k1023k1024。
(1)第一轮
步骤1 将二进制序列B1、二进制序列化分别作为加密端的第一个元胞自动机的输入1和输入2,加密端的第一个元胞自动机根据输入的规则号迭代512次,产生的输出1 和输出2分别为二进制序列C1、二进制序列C2 ;
步骤2 将B3和C1异或的结果、B4和C2异或的结果分别作为加密端的第二个元胞自动机的输入1和输入2,加密端的第二个元胞自动机根据输入的规则号f2迭代512次,产生的输出1和输出2分别为二进制序列C3、二进制序列C4 ;
以此类推继续执行,直到将化55和C253异或的结果、B256和C254异或的结果分别作为加密端的第1 个元胞自动机的输入1和输入2,加密端的第1 个元胞自动机根据输入的规则号fm迭代512次,产生的输出1和输出2分别为二进制序列C255、二进制序列C2ai ;
(2)第二轮
令B1 = C256, B2 = C1, B3 = C2, ... , B256 = C255,然后重复第一轮的迭代
步骤1 将二进制序列B1、二进制序列化分别作为加密端的第一个元胞自动机的输入1和输入2,加密端的第一个元胞自动机根据输入的规则号迭代512次,产生的输出1 和输出2分别为二进制序列C'工、二进制序列C' 2;
步骤2:将 和('工异或的结果、B4和C' 2异或的结果分别作为加密端的第二个元胞自动机的输入1和输入2,加密端的第二个元胞自动机根据输入的规则号f2迭代512 次,产生的输出1和输出2分别为二进制序列C' 3、二进制序列C' 4 ;
以此类推继续执行,直到将化55和C' 253异或的结果、B256和C' 254异或的结果分别作为加密端的第1 个元胞自动机的,加密端的第1 个元胞自动机根据输入的规则号迭代512次,产生的输出1和输出2分别为二进制序列C' 255、二进制序列C' 256,最终第二轮输出的二进制序列C' i;C' 2,...,C256 ‘转换为像素矩阵Γ 256X2Ki后得到密文图像如图6所示,它类似于“噪声”图像,很好地隐藏了原图像的信息。
解密方法的步骤如下
首先,利用Mathematica的Import函数提取密文图像的像素矩阵Γ M6X256,然后将像素矩阵的每一行转换为256个二值序列C1, C2, C3, ... , C256,每个二值序列长度为2048 比特。设定迭代次数d = 512。
(1)第一轮
步骤1 将二进制序列C256、二进制序列C255分别作为解密端的第1 个元胞自动机的输入1和输入2,解密端的第1 个元胞自动机根据输入的规则号fm迭代512次,产生的输出1和输出2分别与二进制序列C254、C253进行异或运算,从而得到二进制序列B256、 二进制序列化55 ;
步骤2 将二进制序列C254、二进制序列C253分别作为解密端的第127个元胞自动机的输入1和输入2,解密端的第127个元胞自动机根据输入的规则号f127迭代512次,产生分别与二进制序列C252、C251进行异或运算,从而得到二进制序列化54、二进制序列化53 ;
以此类推继续执行,直到将二进制序列C2、二进制序列C1分别作为解密端的第1个元胞自动机的输入1和输入2,解密端的第1个元胞自动机根据输入的规则号迭代512 次,产生的输出1和输出2分别为二进制序列化、二进制序列B1 ;
(2)第二轮
令C1 = B2, C2 = B3, ... , C255 = B256, C256 = B1,然后重复第一轮的迭代
步骤1 将二进制序列C256、二进制序列C255分别作为解密端的第1 个元胞自动机的输入1和输入2,解密端的第1 个元胞自动机根据输入的规则号fm迭代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个元胞自动机根据输入的规则号迭代512 次,产生的输出1和输出2分别为二进制序列B' 2、二进制序列B' ”最终第二轮输出的二进制序列B' 1 B' 2,..., B256 ‘转换为像素矩阵I256x2ai后得到明文图像;
令j = 1、2、…、128,第j个元胞自动机根据输入的规则号。迭代512次的步骤如下
(1)建立第j个元胞自动机的迭代表达式
^+1/=1,2,...,2048
式中<为第i个元胞在t时刻的状态,为第i_l个元胞在t时刻的状态,为第 i+1个元胞在t时刻的状态,芩1为第i个元胞在t-Ι时刻的状态,圹1为第i个元胞在t+Ι时刻的状态,状态取值为0或1 ;当i = 1时,令(=^048,当i = 2048时,令= ^钫是异或运算符;g是具有3个变量的逻辑函数,又称为规则,规则的另一种表示形式为真值表,如下
表1规则真值表
输入输出J/-l ‘ J/ ‘ J/+l000aO001ax010a2Oil100aA101a5110ae111α
真值表中输入项是邻域内元胞状态取值的所有可能组合{000,001, 010,011,100,101,110,111},按二进制数递增排列。真值表的输出项是所有输入变量取值下的逻辑函数玄(毛,夂<4)的值{已。,£11,82,£13,&4,£15,&6,&7},其中£11;£ {0,1},k = 0,1,. . .,7。 输入项和输出项的对应关系为:(0,0,0) -a0 ; (0,0,1) -B1 ; (0,1,0) -a2 ; (0,1,1) — a3 ; (1,0,0) - a4 ; (1,0,1) -a5 ;(1,1,0) - a6 ; (1,1,1) — a7。这样,输入变量毛,取值一旦确定,即可从真值表中查找到相应的输出值4,然后将该输出值与元胞t-Ι时刻的状态值进行异或,从而得到元胞t+Ι时刻的状态值Jf1。这里,将^^ ^这样一个长度为8比特的二进制序列称为规则号。一旦给定了规则号。,就可以建立该规则号的规则真值表。由于本实施例中一共有128个规则号f1; f2,. . .,f128,因此可建立128张真值表。
(2)初始化将从第j个元胞自动机的输入1输入的长度为2048比特的二进制序列作为t = ο时刻的第j个元胞自动机的全局状态Cv1VK...,4,^,...,4^分另U 表示第j个元胞自动机中t = ο时刻的各个元胞的状态值,将从第j个元胞自动机的输入 2输入的长度为2048比特的二进制序列作为t = 1时刻的第j个元胞自动机的全局状态,分别表示第j个元胞自动机中t = 1时刻的各个元胞的状态值,
(3)计算第j个元胞自动机t = 2时刻的全局状态(元 ...,4J,方法为第i 个元胞(i = 1,2,. . . 2048)根据元乂元丨的取值,查找规则号为。的真值表,得到对应的逻辑函数玄(元乂丄)的值,然后将该逻辑函数玄CidX1)的值与4进行异或,从而得到彳,其中,Sii^1分别表示第j个元胞自动机中t = 1时刻的第i-l,i,i+l个元胞的状态值,当 i = 1时,令元=^2048,当i = 2048时,令‘ =^彳表示第j个元胞自动机中t = 0时刻的第i个元胞的状态值,<表示第j个元胞自动机中t = 2时刻的第i个元胞的状态值,
(4)计算元胞自动机t = 3时刻的全局状态Cv13,…乂),方法为第i个元胞, i = 1,2,...2048,根据毛,^+1的取值,查找规则号为fj的真值表,得到对应的逻辑函数厂^彳,义)的值,然后将该逻辑函数< (毛, +1)的值与4进行异或,从而得到4,其中, 毛, +!分别表示第J个元胞自动机中t = 2时刻的第i-1,i,i+1个元胞的状态值,当i =1时,令4 =危48,当i = 2048时,令A =彳4表示第j个元胞自动机中t = 1时刻的第 i个元胞的状态值,4表示第j个元胞自动机中t = 3时刻的第i个元胞的状态值,
以此类推继续执行,直到计算出第j个元胞自动机t = 512时刻的全局状态 GfV25V『,…,O和t = 513时刻的全局状态(Of 乂13,…,4),然后将这两个全局状态分别作为第j个元胞自动机迭代512次后的输出1的输出值和输出2的输出值,其中, 51 W.,^分别表示第j个元胞自动机中t = 512时刻的各个元胞的状态值, if3,if3,ifV.w=分别表示第j个元胞自动机中t = 513时刻的各个元胞的状态值。
下面结合附图对实施例进行性能分析
密文图像的直方图如图8所示,它与明文图像的直方图7完全不同,密文图像的直方图分布十分均勻,这表明密文图像的像素值在
上的取值概率均等,因此能够有效抵抗统计分析。
图9和图10分别给出了明文图像和密文图像水平方向相邻像素的相关性分布,由图可见,明文图像像素之间的相关性呈现明显的线性结构,而密文图像像素之间的相关性呈现均勻、随机分布。因此,加密图像比原始图像的相关性降低了。
为了测试当密文图像经过有噪信道发生误码时是否能恢复原始图像,我们在仿真过程中改变密文图像的一个像素值,然后检验解密效果。从图11可以看出,误码仅在局部扩散,只有若干分组不能恢复原始图像,其他部分仍然能正确解码,因此本发明方法对于密文受损具有一定的容错能力。
由上述性能分析可见,本发明方法具有良好的加密效果,能有效抵抗直方图和相关性等统计分析攻击,并且对密文受损具有一定的容错能力。
权利要求
1. 一种基于元胞自动机的图像加密和解密方法,其特征在于包括加密步骤和加密步骤,所述加密步骤为提取明文图像的像素矩阵Imxn,M是图像的宽度,N是图像的高度,均以像素计,并且N 为偶数,如果不是偶数,在像素矩阵末尾补上1行,补上的像素值全为0,然后将像素矩阵的每一行转换为二进制序列,得到N个二进制序列B1, B2,..., ,每个二进制序列的长度为L =MXD,其中D代表存储每个像素所用的二进制位数;(1)第一轮步骤1 将二进制序列B1、二进制序列4分别作为加密端的第一个元胞自动机的输入1 和输入2,加密端的第一个元胞自动机根据输入的规则号迭代d次,产生的输出1和输出 2分别为二进制序列C1、二进制序列C2 ;步骤2 将 和C1异或的结果、B4和C2异或的结果分别作为加密端的第二个元胞自动机的输入1和输入2,加密端的第二个元胞自动机根据输入的规则号f2迭代d次,产生的输出1和输出2分别为二进制序列C3、二进制序列C4 ;以此类推继续执行,直到将Bim和CN_3异或的结果、 和CN_2异或的结果分别作为加密端的第N/2个元胞自动机的输入1和输入2,加密端的第N/2个元胞自动机根据输入的规则号fN/2迭代d次,产生的输出1和输出2分别为二进制序列CV1、二进制序列Cn ;(2)第二轮令 B1 = CN, B2 = C1, B3 = C2, . . . , Bn = CV1,然后重复第一轮的迭代 步骤1 将二进制序列B1、二进制序列化分别作为加密端的第一个元胞自动机的输入1 和输入2,加密端的第一个元胞自动机根据输入的规则号迭代d次,产生的输出1和输出 2分别为二进制序列C'工、二进制序列C' 2;步骤2:将 和('工异或的结果、B4和C' 2异或的结果分别作为加密端的第二个元胞自动机的输入1和输入2,加密端的第二个元胞自动机根据输入的规则号f2迭代d次,产生的输出1和输出2分别为二进制序列C' 3、二进制序列C' 4 ;以此类推继续执行,直到将Bim和C' N_3异或的结果、 和('N_2异或的结果分别作为加密端的第N/2个元胞自动机的,加密端的第N/2个元胞自动机根据输入的规则号fN/2迭代d次,产生的输出1和输出2分别为二进制序列C' η、二进制序列C' N,最终第二轮输出的二进制序列C' i;C' 2,...,C' 换为像素矩阵Γ ΜΧΝ后得到密文图像; 所述解密步骤为提取密文图像的像素矩阵Γ ΜΧΝ,然后将像素矩阵的每一行转换为二进制序列,得到N 个二进制序列C1, C2, ... , Cn,每个二进制序列的长度为L = MXD ; (1)第一轮步骤1 将二进制序列Cn、二进制序列CV1分别作为解密端的第Ν/2个元胞自动机的输入1和输入2,解密端的第Ν/2个元胞自动机根据输入的规则号fN/2迭代d次,产生的输出 1和输出2分别与二进制序列CN_2、CN_3进行异或运算,从而得到二进制序列Bn、二进制序列 R ·jjN-I,步骤2 将二进制序列CN_2、二进制序列分别作为解密端的第Ν/2-1个元胞自动机的输入1和输入2,解密端的第Ν/21个元胞自动机根据输入的规则号fN/2_i迭代d次,产生分别与二进制序列CN_4、CN_5进行异或运算,从而得到二进制序列BN_2、二进制序列Bn_3 ;以此类推继续执行,直到将二进制序列C2、二进制序列C1分别作为解密端的第1个元胞自动机的输入1和输入2,解密端的第1个元胞自动机根据输入的规则号迭代d次,产生的输出1和输出2分别为二进制序列氏、二进制序列B1 ;(2)第二轮令 C1 = B2, C2 = B3, ... , CV1 = Bn, Cn = B1,然后重复第一轮的迭代步骤1 将二进制序列Cn、二进制序列CV1分别作为解密端的第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_i迭代d次,产生分别与二进制序列CN_4、CN_5进行异或运算,从而得到二进制序列B' N_2、二进制序列B' N_3;以此类推继续执行,直到将二进制序列C2、二进制序列C1分别作为解密端的第1个元胞自动机的输入1和输入2,解密端的第1个元胞自动机根据输入的规则号迭代d次,产生的输出1和输出2分别为二进制序列B' 2、二进制序列B'工,最终第二轮输出的二进制序列B' 1 B' 2,...,B' 换为像素矩阵Imxn后得到明文图像;令j = 1、2、…、N/2,J=^^,第j个元胞自动机根据输入的规则号fj迭代d次的步骤如下(1)建立第j个元胞自动机的迭代表达式^ =/.= 1,2”..,Z式中4为第i个元胞在t时刻的状态,J么为第i-Ι个元胞在t时刻的状态,为第i+1 个元胞在t时刻的状态,为第i个元胞在t-Ι时刻的状态,为第i个元胞在t+Ι时刻的状态,状态取值为0或1 是异或运算符;g是具有3个变量的逻辑函数,当的取值分别为000,001,010,011,100,101,110,111时,对应的逻辑函数玄的值分别为规则号fj中的元素、-知-知-知-^-知-如-知,当i = 1时,令么=/z ,当i = L时,令c/ - c/ _ ‘所述规则号fj由伪随机序列发生器产生,该伪随机序列发生器以密钥种子K作为输入,然后输出一串长度为4N比特的二进制伪随机序列Ii1I^k3,. . .,k4N,规则号fj取二进制伪随机序列 I^k2Ii3,!^"!^竹!^-;^“!^-击幻-;^幻-;^幻,(2)初始化将从第j个元胞自动机的输入1输入的长度为L的二进制序列作为t= 0 时刻的第j个元胞自动机的全局状态UVK..+乂), 41,...乂分别表示第j个元胞自动机中t = 0时刻的各个元胞的状态值,将从第j个元胞自动机的输入2输入的长度为L的二进制序列作为t = 1时刻的第j个元胞自动机的全局状态Cv11,...,4),...,4分另U 表示第j个元胞自动机中t = 1时刻的各个元胞的状态值,(3)计算第j个元胞自动机t= 2时刻的全局状态心,方法为第i个元胞 (i = 1,2,. . . L)根据元乂义,的取值,得到对应的逻辑函数玄Ci1,^1)的值,然后将该逻辑函数玄(元乂丄)的值与4进行异或,从而得到4,其中,A 乂 4分别表示第· 个元胞自动机中t = 1时刻的第i_l,i,i+1个元胞的状态值,当i = 1时,令^1=兄,当i = L时,令 H 4表示第j个元胞自动机中t = ο时刻的第i个元胞的状态值,乂表示第j个元胞自动机中t = 2时刻的第i个元胞的状态值,(4)计算元胞自动机t = 3时刻的全局状态(if,…乂),方法为第i个元胞,i = 1, 2, ... L,根据毛,^+1的取值,得到对应的逻辑函数< , :)的值,然后将该逻辑函数的值与4进行异或,从而得到4,其中,毛, +1分别表示第· 个元胞自动机中t =2时刻的第i-1,i,i+1个元胞的状态值,当i = 1时,令4 =#,当i = L时,令^ =<, 乂表示第j个元胞自动机中t = 1时刻的第i个元胞的状态值,4表示第j个元胞自动机中 t = 3时刻的第i个元胞的状态值,以此类推继续执行,直到计算出第j个元胞自动机t = d时刻的全局状态(if, 和t = d+i时刻的全局状态(圹1X+1,V..,if1),然后将这两个全局状态分别作为第j个元胞自动机迭代d次后的输出1的输出值和输出2的输出值,其中,分别表示第j 个元胞自动机中t = d时刻的各个元胞的状态值,if+Vf1,ifV..,if1分别表示第j个元胞自动机中t = d+Ι时刻的各个元胞的状态值。
全文摘要
本发明提供一种基于元胞自动机的图像加密和解密方法,属于信息安全领域中的图像保密技术。该加密方法首先提取明文图像的像素矩阵,将像素矩阵的每一行转换为二值序列,然后采用多个元胞自动机对图像的每一行进行两轮链式循环迭代,将迭代结果转换成相应像素矩阵后得到密文图像。在每个迭代环节中,迭代次数预先设定,使用的规则号由伪随机序列发生器产生。本发明的解密过程是加密过程的逆过程,规则号使用的顺序与加密时相反。本发明的效果和益处是采用元胞自动机的链式循环迭代使得明文、密钥与密文之间具有复杂且不可预测的关系,既保证了网络传输过程中图像的安全性,又具有一定的容错能力。
文档编号H04N1/44GK102523365SQ20111039723
公开日2012年6月27日 申请日期2011年12月5日 优先权日2011年12月5日
发明者平萍, 王宇, 王志坚, 许峰 申请人:河海大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1