1.本发明涉及图像加密技术领域,更具体的说是涉及一种基于混沌系统和可逆元胞自动机的图像加密方法及系统。
背景技术:
2.随着信息和通讯技术的迅猛发展,数字图像逐渐成为传播信息的主要媒介之一。越来越多的数字图像在网络上传播,图像数据的安全性问题日益突出。传统的加密算法如aes、des、rsa等,将数字图像作为一般文本数据进行处理,即将二维甚至是三维的图像信息按照一定的方法转换为二进制数据流,然后对得到的数据流按照一般加密方法进行加密。但是由于数字图像具有信息量大、冗余度高、像素间相关性强等特点,传统的加密算法在加密效率和性能上并不能达到理想效果,因此如何寻找较好的图像加密方法,是本领域技术人员亟需解决的问题。
技术实现要素:
3.有鉴于此,本发明提供了一种基于混沌系统和可逆元胞自动机的图像加密方法及系统,以克服现有技术的缺点。
4.为了实现上述目的,本发明提供如下技术方案:
5.一种基于混沌系统和可逆元胞自动机的图像加密方法,包括以下步骤:
6.步骤1、获取待加密图像的灰度图像p,所述灰度图像p的图像尺寸为m
×
n;获取大小为m
×
n的混沌矩阵h;
7.步骤2、将灰度图像p的灰度值矩阵与混沌矩阵h进行异或操作,得到初始加密图像矩阵v;
8.步骤3、将初始加密图像矩阵v中的每个元素值转换为八位的二进制,得到大小为m
×n×
8的矩阵s;
9.步骤4、将矩阵s进行转化,获取二维二阶耦合触发可逆元胞自动机的状态a0、状态a1和状态b0、状态b1;
10.步骤5、以状态a0、状态a1和状态b0、状态b1作为可逆元胞自动机演化的初始条件,基于预置的规则f进行演化处理,得到对应的演化时间步n-1的状态a
n-1
、状态b
n-1
,以及演化时间步n的状态an、状态bn;
11.步骤6、保存演化时间步n-1的状态a
n-1
、状态b
n-1
,将演化时间步n的状态an、状态bn进行整合和进制转换,得到最终的密文图像cp。
12.可选的,所述步骤1中,获取大小为m
×
n的混沌矩阵h的方法步骤为:
13.步骤1.1、设置二维logistic混沌系统的初始条件和控制参数;
14.步骤1.2、生成两组长度为m (m
×
n)/2的二维logistic混沌序列,其中m为任意整数;
15.优选的,为了达到理想效果,一般m取一较大的整数值。
16.步骤1.3、将所述二维logistic混沌序列排列成混沌矩阵h。
17.可选的,所述步骤1.2中,生成二维logistic混沌序列的步骤为:
18.步骤1.2.1、设置二维logistic混沌系统的初始条件x0、y0和控制参数μ1、μ2、γ1、γ2;
19.步骤1.2.2、基于二维logistic混沌系统公式和生成两组混沌序列,其中n=0,1,
…
,m,
…
,m (m
×
n)/2;
20.步骤1.2.3、去掉两组混沌序列的前m项,对两组剩余的(m
×
n)/2项序列分别进行取整求余操作,确保混沌序列中的元素在0到255之间,防止混沌系统的初值干扰,得到新的两组混沌序列:
21.xn=mod(round(103×
xn),256);
22.yn=mod(round(103×yn
),256);
23.步骤1.2.4、将新的两组混沌序列中的元素排列成大小为m
×
n的混沌矩阵h。
24.可选的,所述步骤1.2.4中,将新的两组混沌序列中的元素排列成大小为m
×
n的混沌矩阵h的过程为:
25.矩阵中元素行列下标和为偶数时,从混沌序列xn中依次取值;矩阵中元素行列下标和为奇数时,从混沌序列yn中依次取值。
26.可选的,所述步骤4中获取二维二阶耦合触发可逆元胞自动机的状态a0、状态a1和状态b0、状态b1的具体过程为:
27.步骤4.1、根据矩阵s中元素行列下标之和的奇偶性,分成两个大小均为m
×n×
4的矩阵a和矩阵b,并将矩阵a和矩阵b分别作为二维二阶耦合触发可逆元胞自动机在演化时间步为1时的状态a1、状态b1;
28.步骤4.2、依据矩阵a和矩阵b,生成两个大小均为m
×n×
4的二进制随机矩阵l和二进制随机矩阵r,并将二进制随机矩阵l、二进制随机矩阵r分别作为矩阵a和矩阵b在二维二阶耦合触发可逆元胞自动机在演化时间步为0时的状态a0、状态b0。
29.可选的,所述二维二阶耦合触发可逆元胞自动机的构造方法步骤为:
30.步骤a、在von neumann型、周期边界、邻域半径为r的空间中构造二维元胞自动机,元胞下一时刻的状态受到其上、下、左、右四个方向邻居及其自身当前时刻状态的影响;
[0031][0032]
其中,s表示元胞的状态,s的下标表示元胞的坐标位置信息,s的上标表示时刻信息;
[0033]
步骤b、引入二阶元胞自动机的思想,元胞下一时刻的状态还要受到元胞前一时刻状态的影响;
[0034][0035]
步骤c、为了增加元胞状态演化的复杂性,在二维二阶元胞自动机的基础上,将元胞自动机分成两个部分,分别为元胞自动机a和元胞自动机b,两个元胞自动机相互作用;
[0036][0037][0038]
步骤d、为了更加快速的实现元胞自动机的加解密操作,由两个元胞自动机构成耦合触发元胞自动机,触发元胞为t-1时刻(i,j)位置的元胞;
[0039][0040][0041]
步骤e、在构造出耦合触发元胞自动机之后,两个元胞自动机相互作用的元胞有限,为此将耦合触发元胞自动机的演化公式进行改进;
[0042][0043][0044]
可选的,所述步骤5的演化过程中,生成元胞自动机演化规则表,步骤为:
[0045]
步骤5.1、元胞自动机中元胞下一时刻的状态受到其上、下、左、右四个方向邻居当前时刻状态、耦合元胞自动机中对应位置元胞当前时刻状态、以及该元胞前一时刻状态的影响;
[0046]
步骤5.2、按照元胞自动机的演化公式,只需对上、下、左、右四个方向邻居以及耦合元胞的演化状态进行研究,即针对这4r 1个元胞的演化排列演化规则表;
[0047]
步骤5.3、每个元胞有两种可能的状态,分别为0或1,因此4r 1个元胞共有2
4r 1
种可能状态,元胞经过演化后也只有两种可能的状态,分别为0或1,因此共有种规则;
[0048]
步骤5.4、使用元胞自动机演化规则表参数λ=0.5的规则,此时演化结果为1时的不确定度最大,即信息熵最大;
[0049][0050]
其中,r表示von neumann型邻域的邻域半径,k表示元胞自动机演化规则表中输出0的个数。
[0051]
可选的,所述步骤6中进行整合和进制转换的具体过程为:
[0052]
步骤6.1、将演化时间步n的状态an、状态bn整合成大小为m
×n×
8的矩阵sn;
[0053]
步骤6.2、将矩阵sn中每一行的每八个二进制数转换成一个十进制的像素值,得到加密图像矩阵cp,cp即为最终的密文图像。
[0054]
可选的,所述步骤6.1中,进行整合的具体过程为:
[0055]
矩阵sn中元素下标之和为奇数时从状态an中依次取值,元素下标之和为偶数时从状态bn中依次取值。
[0056]
本发明还提供一种基于混沌系统和可逆元胞自动机的图像加密系统,包括:
[0057]
混沌矩阵获取模块,用于获取待加密图像的灰度图像p,所述灰度图像p的图像尺寸为m
×
m;获取大小为m
×
n的混沌矩阵h;
[0058]
初始加密图像矩阵获取模块,用于将灰度图像p的灰度值矩阵与混沌矩阵h进行异
或操作,得到初始加密图像矩阵v;
[0059]
进制转换模块,用于将初始加密图像矩阵v中的每个元素值转换为八位的二进制,得到大小为m
×n×
8的矩阵s;
[0060]
元胞自动机状态获取模块,用于将矩阵s进行转化,获取二维二阶耦合触发可逆元胞自动机的状态a0、状态a1和状态b0、状态b1;
[0061]
演化模块,用于以状态a0、状态a1和状态b0、状态b1作为可逆元胞自动机演化的初始条件,基于预置的规则f进行演化处理,得到对应的演化时间步n-1的状态a
n-1
、状态b
n-1
,以及演化时间步n的状态an、状态bn;
[0062]
最终处理模块,用于保存演化时间步n-1的状态a
n-1
、状态b
n-1
,将演化时间步n的状态an、状态bn进行整合和进制转换,得到最终的密文图像cp。
[0063]
经由上述的技术方案可知,本发明公开了一种基于混沌系统和可逆元胞自动机的图像加密方法及系统,与现有技术相比,具有以下有益效果:
[0064]
本发明通过二维二阶耦合触发可逆元胞自动机对图像进行加密,有效提高了加密的效率和安全性。通过设置二维logistic混沌系统的初始条件和控制参数生成混沌序列矩阵,与灰度图像矩阵按位异或,实现图像像素的置乱处理,然后在置乱之后的像素矩阵上建立二维二阶耦合触发可逆元胞自动机对像素点进行扩散。本发明结合了二阶元胞自动机、耦合元胞自动机、触发元胞自动机等思想,元胞自动机演化的规则空间随着von neumann型邻域的邻域半径r的增大成指数增长,构造了一种演化状态更加复杂、耦合元胞相互作用影响更强、密钥空间更大的可逆元胞自动机,提高了图像加密的效率和性能。
附图说明
[0065]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0066]
图1为本发明的加密方法流程图;
[0067]
图2(a)为本发明一种实施例的待加密图像;
[0068]
图2(b)为本发明一种实施例的加密图像;
[0069]
图3为本发明一种实施例的解密图像;
[0070]
图4(a)为本发明一种实施例的待加密图像的直方图;
[0071]
图4(b)为本发明一种实施例的加密图像的直方图;
[0072]
图5为本发明的系统结构示意图。
具体实施方式
[0073]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0074]
元胞自动机(cellular automata,ca)因其组成结构的简单性、组成单元相互作用
的局限性、信息处理的高度并行性以及全局复杂性等特点,广泛应用密码学领域。由于图像数据可以用二维像素矩阵表示,因此二维元胞自动机非常适合用于图像加密。
[0075]
可逆元胞自动机是一类特殊的元胞自动机,每一个构型不仅具有唯一的前驱,还具有唯一的后续。可逆元胞自动机可以保存初始信息,具有无信息损失、高度并行性等特点。通过建立可逆元胞自动机模型,利用其具有的特性将初始区域扩散、混合到整个像素空间,从而掩盖初始图像特征,实现高效、安全的加密。
[0076]
二维logistic混沌系统是一个非线性动态系统,具有伪随机性、对初始条件和控制参数的极端敏感性、扩散性等等与密码学相似的特性。基于混沌系统生成混沌序列,利用序列的非周期性和长期不可预测性等特性,实现对图像像素的置乱处理。
[0077]
基于上述关于可逆元胞自动机和二维logistic混沌系统的优点,本发明实施例公开了一种基于混沌系统和可逆元胞自动机的图像加密方法,参见图1,包括以下步骤:
[0078]
步骤1、获取待加密图像的灰度图像p,所述灰度图像p的图像尺寸为m
×
n;获取大小为m
×
n的混沌矩阵h;
[0079]
所述获取大小为m
×
n的混沌矩阵h的方法步骤为:
[0080]
步骤1.1、设置二维logistic混沌系统的初始条件和控制参数;
[0081]
步骤1.2、生成两组长度为m (m
×
n)/2的二维logistic混沌序列,,其中m为任意整数,具体步骤为:
[0082]
步骤1.2.1、设置二维logistic混沌系统的初始条件x0=0.10、y0=0.11和控制参数μ1=3.12、μ2=3.03、γ1=0.18、γ2=0.14;
[0083]
步骤1.2.2、基于二维logistic混沌系统公式和生成两组混沌序列,其中n=0,1,
…
,m,
…
,m (m
×
n)/2,m取值为1000;
[0084]
步骤1.2.3、去掉两组混沌序列的前1000项,对两组剩余的(m
×
n)/2项序列分别进行取整求余操作,确保混沌序列中的元素在0到255之间,防止混沌系统的初值干扰,得到新的两组混沌序列:
[0085]
xn=mod(round(103×
xn),256);
[0086]yn
=mod(round(103×yn
),256);
[0087]
步骤1.2.4、将新的两组混沌序列中的元素排列成大小为m
×
n的混沌矩阵h,具体的:矩阵中元素行列下标和为偶数时,从混沌序列xn中依次取值;矩阵中元素行列下标和为奇数时,从混沌序列yn中依次取值。
[0088]
步骤1.3、将所述二维logistic混沌序列排列成混沌矩阵h。
[0089]
步骤2、将灰度图像p的灰度值矩阵与混沌矩阵h进行异或操作,得到初始加密图像矩阵v;
[0090]
步骤3、将初始加密图像矩阵v中的每个元素值转换为八位的二进制,得到大小为m
×n×
8的矩阵s;
[0091]
步骤4、将矩阵s进行转化,获取二维二阶耦合触发可逆元胞自动机的状态a0、状态a1和状态b0、状态b1,具体的:
[0092]
步骤4.1、根据矩阵s中元素行列下标之和的奇偶性,分成两个大小均为m
×n×
4的
矩阵a和矩阵b,并将矩阵a和矩阵b分别作为二维二阶耦合触发可逆元胞自动机在演化时间步为1时的状态a1、状态b1;
[0093]
步骤4.2、依据矩阵a和矩阵b,生成两个大小均为m
×n×
4的二进制随机矩阵l和二进制随机矩阵r,并将二进制随机矩阵l、二进制随机矩阵r分别作为矩阵a和矩阵b在二维二阶耦合触发可逆元胞自动机在演化时间步为0时的状态a0、状态b0。
[0094]
步骤5、以状态a0、状态a1和状态b0、状态b1作为可逆元胞自动机演化的初始条件,基于预置的规则f进行演化处理,得到对应的演化时间步n-1的状态a
n-1
、状态b
n-1
,以及演化时间步n的状态an、状态bn;
[0095]
在演化过程中,需生成元胞自动机演化规则表,具体步骤为:
[0096]
步骤5.1、元胞自动机中元胞下一时刻的状态受到其上、下、左、右四个方向邻居当前时刻状态、耦合元胞自动机中对应位置元胞当前时刻状态、以及该元胞前一时刻状态的影响;
[0097]
步骤5.2、按照元胞自动机的演化公式,只需对上、下、左、右四个方向邻居以及耦合元胞的演化状态进行研究,即针对这5个元胞的演化排列演化规则表;
[0098]
步骤5.3、每个元胞有两种可能的状态,分别为0或1,因此5个元胞共有25种可能状态,元胞经过演化后也只有两种可能的状态,分别为0或1,因此共有2
32
种规则;
[0099]
步骤5.4、使用元胞自动机演化规则表参数λ=0.5的规则,此时演化结果为1时的不确定度最大,即信息熵最大;
[0100][0101]
其中,r表示von neumann型邻域的邻域半径,k表示元胞自动机演化规则表中输出0的个数。
[0102]
步骤6、保存演化时间步n-1的状态a
n-1
、状态b
n-1
,将演化时间步n的状态an、状态bn进行整合和进制转换,得到最终的密文图像cp,具体的:
[0103]
步骤6.1、将演化时间步n的状态an、状态bn整合成大小为m
×n×
8的矩阵sn,具体的,矩阵sn中元素下标之和为奇数时从状态an中依次取值,元素下标之和为偶数时从状态bn中依次取值。
[0104]
步骤6.2、将矩阵sn中每一行的每八个二进制数转换成一个十进制的像素值,得到加密图像矩阵cp,cp即为最终的密文图像。
[0105]
在具体实施例中,二维二阶耦合触发可逆元胞自动机的构造方法步骤为:
[0106]
步骤a、在von neumann型、周期边界、邻域半径为r=1的空间中构造二维元胞自动机,元胞下一时刻的状态受到其上、下、左、右四个方向邻居及其自身当前时刻状态的影响;
[0107][0108]
其中,s表示元胞的状态,s的下标表示元胞的坐标位置信息,s的上标表示时刻信息;例如,表示t 1时刻(i,j)位置元胞的状态。
[0109]
步骤b、引入二阶元胞自动机的思想,元胞下一时刻的状态还要受到元胞前一时刻状态的影响;
[0110][0111]
步骤c、为了增加元胞状态演化的复杂性,在二维二阶元胞自动机的基础上,将元胞自动机分成两个部分,分别为元胞自动机a和元胞自动机b,两个元胞自动机相互作用;
[0112][0113][0114]
步骤d、为了更加快速的实现元胞自动机的加解密操作,由两个元胞自动机构成耦合触发元胞自动机,触发元胞为t-1时刻(i,j)位置的元胞;
[0115][0116][0117]
步骤e、在构造出耦合触发元胞自动机之后,两个元胞自动机相互作用的元胞有限,为此将耦合触发元胞自动机的演化公式进行改进;
[0118][0119][0120]
本发明还提供一种基于混沌系统和可逆元胞自动机的图像加密系统,参见图5,包括:
[0121]
混沌矩阵获取模块,用于获取待加密图像的灰度图像p,所述灰度图像p的图像尺寸为m
×
n;获取大小为m
×
n的混沌矩阵h;
[0122]
初始加密图像矩阵获取模块,用于将灰度图像p的灰度值矩阵与混沌矩阵h进行异或操作,得到初始加密图像矩阵v;
[0123]
进制转换模块,用于将初始加密图像矩阵v中的每个元素值转换为八位的二进制,得到大小为m
×n×
8的矩阵s;
[0124]
元胞自动机状态获取模块,用于将矩阵s进行转化,获取二维二阶耦合触发可逆元胞自动机的状态a0、状态a1和状态b0、状态b1;
[0125]
演化模块,用于以状态a0、状态a1和状态b0、状态b1作为可逆元胞自动机演化的初始条件,基于预置的规则f进行演化处理,得到对应的演化时间步n-1的状态a
n-1
、状态b
n-1
,以及演化时间步n的状态an、状态bn;
[0126]
最终处理模块,用于保存演化时间步n-1的状态a
n-1
、状态b
n-1
,将演化时间步n的状态an、状态bn进行整合和进制转换,得到最终的密文图像cp。
[0127]
在具体实施例中,以图2(a)为待加密图像,图2(b)为使用本发明方法加密后的图像,图3为解密后的图像,进行以下验证分析:
[0128]
作为本发明的优选实施例,对加密10次的lena图(512
×
512)的加密效果通过性能指标直方图进行分析。直方图是用来描述加密图像相应统计特征,是图像所有像素值中每一个灰度值出现的次数的总体分布图,通过检验密图的直方图分布是否均匀,是否达到掩盖原图像像素灰度级的分布规律,以此判断加密算法是否具有良好的扩散性、随机性和扰乱性。图4(a)和图4(b)分别代表原灰度图和加密图的直方图,可以直观地看出加密后的图
像其灰度直方图处于均匀状况。
[0129]
作为本发明的优选实施例,对加密10次的lena图(512
×
512)的加密效果通过性能指标信息熵进行分析。信息熵是衡量像素随机性的重要指标之一。图像的信息熵越大,像素值分布越均匀,密码攻击者就很难从像素灰度分布中获取有用的信息,从而杜绝通过灰度值的分析进行攻击的行为。本加密算法加密10次后得到的加密图信息熵为7.999309,非常接近于理想值8。
[0130]
作为本发明的优选实施例,对加密10次的lena图(512
×
512)的加密效果通过性能指标相邻像素相关性进行分析。待加密图像的像素间具有很高的相关性,良好的加密算法能够破坏原图像不同方向上相邻像素间的相关性。相关系数的大小你能够反映加密算法置乱效果的好坏、抵抗统计分析攻击能力的强弱。表1列举了lena图加密前后的相邻像素相关性系数。
[0131]
表1相邻像素相关性系数
[0132][0133][0134]
作为本发明的优选实施例,对加密10次的lena图(512
×
512)的加密效果通过性能指标密钥敏感性进行分析。密钥敏感性是指加密算法随密钥的敏感程度,密钥中某一位密钥发生变化应该产生一个完全不同的加密结果。密钥的敏感性越好的加密算法具有很强的雪崩效应,同时抵抗差分分析的能力也越强。一般使用像素数变化率(npcr)和统一平均变化强度(uaci)来衡量密钥改变后两张密文图像之间的差别。本加密算法在改变密钥后,生成的两张密图的像素数变化率为99.6277%,统一平均变化强度为33.5132%,两者均接近理想值。
[0135]
作为本发明的优选实施例,对加密10次的lena图(512
×
512)的加密效果通过性能指标密钥空间进行分析。密钥分成两个部分,一部分是混沌系统的两个初始条件(x0,y0)和四个控制参数(μ1,μ2,γ1,γ2);另一部分是二维二阶耦合触发可逆元胞自动机的演化规则f和迭代次数n。本实施例所选取的两个初始条件和四个控制参数精度为10-2
,可逆元胞自动机的规则空间为2
32
,迭代次数为n=10,故密钥空间为n
×
4.295
×
10
21
。随着迭代次数n和参数精度的扩大,密钥空间也将不断增大,因此采用穷举攻击是不可能的,本图像加密算法是有效安全的。
[0136]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
[0137]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
转载请注明原文地址:https://tc.8miu.com/read-3444.html