本发明专利技术提供一种基于细胞自动机和混沌映射的数字图像加密及其解密方法,加密方法首先利用288位的密钥生成加密算法所需的混沌映射参数和细胞自动机演化规则,然后对原始图像进行三维分解和分块等预处理、利用3D混沌映射对像素位置进行置乱,对待加密的图像块进行交叉异或运算,再利用本发明专利技术提出的生成边界的2D二阶细胞自动机对展开的明文块进行迭代加密,混淆像素,反复迭代直至满足迭代需求,最后逆向预处理,将分块后的密文图像组合为一个密文图像。
【技术实现步骤摘要】
本专利技术涉及数字图像处理领域,更具体地,涉及一种基于细胞自动机和混沌映射的数字图像加密及其解密方法。
技术介绍
数字图像以其视觉效果来表示信息,其数据量大,像素间的相关度高,实时性加密的要求高,经典密码学的方法都不能很好地满足这一要求。因此,针对数字图像加密的技术引起学者的广泛关注,并逐渐成为密码学中一个重要分支。数字图像加密区别于传统数据加密,主要有以下特点:(1)数字图像以其视觉画面表示信息,因此相较于文字信息具有更大的信息量,因此利用经典加密算法对其加密时需要较长时间,加密效率不高。(2)数字图像以二维矩阵的数据格式来存储,在对其加密时,大多算法不能利用这一特征并行化处理,而是要进行预处理,重新排列等操作,其大大增加了时间,降低了加密效率。(3)与文本等信息不同,图像由于其视觉特性,允许在加解密时存在一定程度的失真。(4)数字图像的相邻像素之间存在很大的相关性,从其表现来看就是相邻像素的值大多相近或者相同,必须要使加密后的图像去除掉这种相关性,这意味着加密算法要有很好的敏感性,对安全性的要求也更高。目前现有的数字图像加密方案有很多,大致可分为置乱、替代以将两者结合这三个方向。置乱,也称为像素置乱,其手段是通过打乱原始图像像素的位置从而达到对图像进行加密的目的。主要的置乱算法有Arnold映射、Baker映射和Magic映射等,以及其衍生的置乱算法,近年来混沌系统也逐渐成为置乱技术的趋势。替换,则是指像素值本身被替换,发生了改变。对图像像素值进行替换,使得整幅图像的直方图呈均匀分布,并且尽量降低像素间的这种相关性。利用细胞自动机的演化对像素进行替换已成为近年的趋势。目前Arnold映射、Baker映射和Magic映射等传统的置乱算法由于其每次的置乱操作非常简单,因此需要多次置乱操作后才能达到理想的混乱效果;其次,由于置乱操作不会改变每个像素的值,因此其统计特征并不会改变,而这带来了很大的安全隐患;利用混沌映射进行数字图像加密的方案,其密钥大多较短,面对暴力破解时具有很大的安全隐患;此外,单一使用混沌映射作为加密手段,其相对混淆度不够高,面对选择明文攻击时比较容易攻破;利用细胞自动机进行数字图像加密的方案,大多迭代次数需求较高,加密轮数多,加密效率低,不满足实时性。
技术实现思路
本专利技术提供一种基于细胞自动机和混沌映射的数字图像加密的方法,该方法加密效果好,具有更好的混沌特性。本专利技术的又一目的在于提供一种基于细胞自动机和混沌映射的数字图像加密的方法的解密方法。为了达到上述技术效果,本专利技术的技术方案如下:一种基于细胞自动机和混沌映射的数字图像加密方法,包括以下步骤:S1:产生秘钥来产生3D混沌映射的系数、迭代次数和细胞自动机演化规则;S2:对待加密的图像进行预处理;S3:利用S1中得到的3D混沌映射的系数对预处理后的图像的像素进行像素位置置乱;S4:利用S1中得到的细胞自动机演化规则对像素置乱后的图像的明文块进行迭代加密,反复迭代直至满足迭代需求,最后逆向预处理得到密文图像。进一步地,所述步骤S1的具体过程如下:选择一个长度为288位的二进制比特流作为密钥key,用来产生3D混沌映射的系数、迭代次数和细胞自动机演化规则的规则号,其中,密钥生成算法为,前7×32比特,每32比特表示一个整数,分别作为3D混沌映射的六个系数(axayazbxbybz)和迭代次数t,最后64位构成细胞自动机的规则号r。进一步地,所述步骤S2的具体过程如下:把作为明文的待加密的灰度图像的像素变成三维,令图像M的长度和高度分别为W和H,则可以按照下式进行分解:W×H=2N13+2N23+...+2Nk3+R---(1)]]>其中,表示两个相等大小的像素立方体,每个长度Nk,R∈(0,1,2,…,15)是无法分解的尾项,在之后的加密过程中可以忽略。进一步地,所述步骤S3的具体过程如下:S31:建立3D混沌映射函数:2)通过引入两个参数a和b将传统的Arnold变换:xi+1yi+1=1112xiyi(modp)---(3)]]>扩展为公式(4):xi+1yi+1=1abab+1xiyi(modp)---(4)]]>2)保持z不变,在x-y平面对公式(4)进行二维Arnold变换,得到公式(5):xi+1yi+1zi+1=1az0bzazbz+10001xiyizi(mod1)---(5)]]>3)保持x不变,在y-z平面对公式(4)进行二维Arnold变换,得到公式(6):xi+1yi+1zi+1=10001ax0bxaxbx+1xiyizi(mod1)---(6)]]>4)保持y不变,在x-z平面对公式(4)进行二维Arnold变换,得到公式(7):xi+1yi+1zi+1=10ay010by0ayby+1xiyizi(mod1)---(7)]]>5)将公式(5)(6)(7)中的系数矩阵相乘,得到3D混沌映射公式(8)所示:xi+1yi+1zi+1=Axiyizi(modp)---(8)]]>其中,A=1+axazayazay+axaz+axayazbxbz+axby+axazbybzazbz+1ayaz+axayazbybz+axazbz+axayby+axaxbxby+bybxaxaybxby+axbx+ayby+1,]]>axayazbxbybz全部都是正整数,N为立方体的长度,i∈[0,N-1],x,y,z分别为一个像素在三维空间的坐标;S32:利用的得到的3D混沌映射函数对像素进行位置置乱处理:先对Q使用公式(2)进行一次3D混沌映射得到Q1,然后Q1和Q′在每个位置进行异或操作(XOR)得到Q′,即接着对Q′1进行3D混沌映射得到Q′2,最后Q1和Q′2进行异或操作(XOR)得到Q2,即其中Q和Q′为图象征一对相等体积的像素立方体。进一步地,所述步骤S4的具体过程如下:把Q2和Q′2按位展开成二维平面,分别作为2D二阶细胞自动机演化的两个初始状态C0和C1,计算C0和C1的Hash值,将其作为分段线性混沌映射的初始值和参数,从而生成细胞自动机的随机边界,根据规则号r得到全局演化函数G使得Ct+1=G(Ct,Ct-1),并用其对两初始状态进行两次演化,得到C2和C3,将C2和C3重新构造成像素立方体,以此作为一次加密迭代,判断迭代次数是否达到t次,若满足迭代次数,则根据公式(1)逆向构造出加密后的图像:否则转到步骤S3,进行下一轮迭代,直到满足次数为止。一种基于细胞自动机和混沌映射的数字图像加密方法的解密方法,包括以下步骤:S61:利用与加密阶段相同的288位二进制流密钥key,生成3D混沌映射的参数和2D二阶细胞自动机的规则号,生成方式与加密阶段相同;S62:采用与加密阶段相同的方式对待解密的图像图像进行预处理;S63:对像素块做细胞自动机的反向迭代,设密文图像块构成的细胞自动机的两个初始状态分别为C2和C3,分别计算两者的Hash值,从而生成细胞自动机的随机边界,由于二阶细胞自动机的逆规则就是其自身,所以根据规则号r得到反向全局演化函数G',使得Ct-1=G′(Ct,Ct+1),经过两次演化后得到C1和C0;S64:建立3D混沌映射的逆映射函数:xiyizi=A-1xi+1yi+1zi+1(m本文档来自技高网...
【技术保护点】
一种基于细胞自动机和混沌映射的数字图像加密方法,其特征在于,包括以下步骤:S1:产生秘钥来产生3D混沌映射的系数、迭代次数和细胞自动机演化规则;S2:对待加密的图像进行预处理;S3:利用S1中得到的3D混沌映射的系数对预处理后的图像的像素进行像素位置置乱;S4:利用S1中得到的细胞自动机演化规则对像素置乱后的图像的明文块进行迭代加密,反复迭代直至满足迭代需求,最后逆向预处理得到密文图像。
【技术特征摘要】
1.一种基于细胞自动机和混沌映射的数字图像加密方法,其特征在于,包括以下步骤:S1:产生秘钥来产生3D混沌映射的系数、迭代次数和细胞自动机演化规则;S2:对待加密的图像进行预处理;S3:利用S1中得到的3D混沌映射的系数对预处理后的图像的像素进行像素位置置乱;S4:利用S1中得到的细胞自动机演化规则对像素置乱后的图像的明文块进行迭代加密,反复迭代直至满足迭代需求,最后逆向预处理得到密文图像。2.根据权利要求1所述的基于细胞自动机和混沌映射的数字图像加密方法,其特征在于,所述步骤S1的具体过程如下:选择一个长度为288位的二进制比特流作为密钥key,用来产生3D混沌映射的系数、迭代次数和细胞自动机演化规则的规则号,其中,密钥生成算法为,前7×32比特,每32比特表示一个整数,分别作为3D混沌映射的六个系数(axayazbxbybz)和迭代次数t,最后64位构成细胞自动机的规则号r。3.根据权利要求2所述的基于细胞自动机和混沌映射的数字图像加密方法,其特征在于,所述步骤S2的具体过程如下:把作为明文的待加密的灰度图像的像素变成三维,令图像M的长度和高度分别为W和H,则可以按照下式进行分解:W×H=2N13+2N23+...+2Nk3+R---(1)]]>其中,表示两个相等大小的像素立方体,每个长度Nk,R∈(0,1,2,…,15)是无法分解的尾项,在之后的加密过程中可以忽略。4.根据权利要求3所述的基于细胞自动机和混沌映射的数字图像加密方法,其特征在于,所述步骤S3的具体过程如下:S31:建立3D混沌映射函数:1)通过引入两个参数a和b将传统的Arnold变换:xi+1yi+1=1112xiyi(modp)---(3)]]>扩展为公式(4):xi+1yi+1=1abab+1xiyi(modp)---(4)]]>2)保持z不变,在x-y平面对公式(4)进行二维Arnold变换,得到公式(5):xi+1yi+1zi+1=1az0bzazbz+10001xiyizi(mod1)---(5)]]>3)保持x不变,在y-z平面对公式(4)进行二维Arnold变换,得到公式(6):xi+1yi+1zi+1=10001ax0bxaxbx+1xiyizi(mod1)---(6)]]>4)保持y不变,在x-z平面对公式(4)进行二维Arnold变换,得到公式(7):xi+1yi+1zi+1=10ay010by0ayby+1xiyizi(mod1)---(7)]]>5)将公式(5)(6)(7)中的系数矩阵相乘,得到3D混沌映射公式(8)所示:xi+1yi+1zi+1=Axiyizi(modp)---(8)]]>其中,A=1+axazayaz...
【专利技术属性】
技术研发人员:单汇丰,陈炬桦,
申请(专利权)人:中山大学,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。