CN107481180B - 基于元胞自动机和分块压缩感知的图像加密方法 - Google Patents
基于元胞自动机和分块压缩感知的图像加密方法 Download PDFInfo
- Publication number
- CN107481180B CN107481180B CN201710546446.8A CN201710546446A CN107481180B CN 107481180 B CN107481180 B CN 107481180B CN 201710546446 A CN201710546446 A CN 201710546446A CN 107481180 B CN107481180 B CN 107481180B
- Authority
- CN
- China
- Prior art keywords
- matrix
- image
- column
- row
- scramble
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0021—Image watermarking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Image Processing (AREA)
Abstract
本发明涉及一种基于元胞自动机和分块压缩感知的图像加密方法,采用单层小波分解将图像分解为包含高频和低频的四个矩阵,对矩阵分别采用初等元胞自动机进行置乱;再采用不同的压缩率进行压缩感知,采用变参数混沌系统来构造测量矩阵,同时混沌系统的初始值和参数是通过明文图像的SHA256函数产生的;对压缩后的四个矩阵进行重组,并对重组后的矩阵进行置乱操作,得到密文图像。本发明利用初等元胞自动机对图像进行置乱,提高算法的安全性,通过压缩感知对图像进行压缩加密,以减少数据量;一方面增加了密钥空间,增强了算法抵抗暴力攻击的能力,另一方面又使得密钥的产生紧紧地依赖于明文,提高了算法抵抗选择明文攻击的能力。
Description
技术领域
本发明属于信息安全技术领域,涉及一种图像加密方法,特别涉及一种基于元胞自动机和分块压缩感知的图像加密方法。
背景技术
当今,随着计算机技术,多媒体技术和数字信号处理技术的快速发展,越来越多的图像特别是数字图像通过网络传输和保存。网络技术带给人们便利的同时,一些不法分子也会利用网络窃取信息,如个人隐私,商业机密,甚至军事机密,这些行为可能会损害个人和公司的利益,甚至威胁到国家安全。所以,信息安全越来越受到人们和国家的重视。通常来说图像信息都有相同的特点,它们都存在着数据量大、相邻像素相关性强、冗余度高等特点。过去常用的加密方法,是以一维数据流为设计目标的,像DES、3-DES、AES和RSA等,主要用于文本信息的加密,没有考虑到数字图像的特点,所以加密的效率不高。因此,提出了许多图像加密算法,如基于混沌系统的加密算法,基于光学变换的加密算法和基于DNA计算的图像加密算法等。因为图像的数据量一般都比较大,信息冗余度高,不利于数据的传输。为了减少网络传输数据量,图像需经过压缩来进行传输,将图像压缩与加密有效融合,这样既可以提高图像的安全性又可以提高传输效率,具有较高的实用价值。
近年来,压缩感知(CS)在信息处理领域被广泛应用,压缩感知理论是在2006年,由Candés和Donoho提出的,该理论在采样的同时实现压缩。其核心思想是利用信息空间结构,将压缩与采样合并进行,突破了香农采样定理的瓶颈,可以减少采样点数,大大减少数据量。假定长度为n的信号X,在稀疏基上表示为:X=Ψα,Ψ为正交矩阵,α=ΨTX,其中,α向量中只有K个非零值,则信号X是稀疏的。根据CS理论,若存在一个与Ψ不相关的M×N变换基Φ,M<<N,信号X投影在Φ上得到M个投影值y=ΦX,上述过程完成了对信号X的低速采样和压缩过程。压缩感知理论主要包括信号的稀疏表示、编码测量和重构算法。
混沌系统是一种非线性系统,能够表现出复杂的伪随机性。混沌现象具有不可重复,不可预测的行为。它对初始条件和控制参数极其敏感,任何微小的初始偏差,经过系统多次迭代后,都会产生很大的差别。混沌系统具有随机性、确定性、遍历性和对初值的高度敏感性等特点,我们可以设计出密钥空间大、加密流随机性强的加密算法,使它特别适合于图像的加密。目前,采用混沌系统对图像进行加密已经成为了信息安全领域研究的一个热点,具有巨大的应用潜力。因为混沌系统是一种确定性系统表现出来的类随机行为,一旦非线性系统方程,参数和初始值确定,其值也相对确定,因此稳定性较好。而且用混沌系统来设计测量矩阵仅需存储和传输少量的参数,节省了内存空间和传输的压力。与随机矩阵相比,利用混沌系统来设计测量矩阵实现起来更简单高效。
元胞自动机属于一种离散的动力系统,具有在时间、状态和空间上都离散的特性,除此之外,元胞结构简单、并行性好,具有简单的操作但复杂的行为,非常适合图像加密。Wolfram首次提出了基于元胞自动机的加密算法,在他的模型中将元胞自动机的初始状态作为密钥,利用30号规则将元胞自动机迭代产生的伪随机序列作为序列密码,从而开创了元胞自动机在密码学中的应用。近年来,随着元胞自动机研究的不断深入,将元胞自动机用于图像加密领域越来越受到研究学者的青睐。
发明内容
为克服现有技术中的不足,本发明提出一种基于元胞自动机和分块压缩感知的图像加密方法,将压缩感知和元胞自动机相结合,利用初等元胞自动机对图像进行置乱,提高算法的安全性,通过压缩感知对图像进行压缩加密,以减少传输和存储的数据量。
按照本发明所提供的设计方案,一种基于元胞自动机和分块压缩感知的图像加密方法,包含如下内容:明文图像通过SHA256函数获取变参数混沌系统的初始状态值和参数;通过单层小波分解将明文图像分解为三个高频分量矩阵和一个低频分量矩阵,对四个分量矩阵分别采用初等元胞自动机进行置乱;将变参数混沌系统的初始状态值和参数带入变参数混沌系统获取测量矩阵,利用测量矩阵对置乱后的四个矩阵进行压缩感知,得到四个压缩后的矩阵;对压缩后的矩阵进行重组,将重组后的矩阵进行置乱操作,得到密文图像。
上述的,具体实现步骤如下:
步骤1、利用SHA256函数对大小为M×N的明文图像P进行计算,得到一组256位的哈希值,作为图像密钥Key,图像密钥Key换算为32个十进制数k1,k2,…,k32,并计算变参数混沌系统的初始状态值x0,y0和参数u,其中,M=N=2t,t为正整数;
步骤2、将明文图像P进行单层小波分解,得到大小为(M/2)×(N/2)的4个小波子带系数矩阵cA,cH,cV和cD,其中,cA表示低频分量矩阵,cH、cV和cD表示高频分量矩阵;
步骤3、用离散小波变换DWT对低频分量cA进行稀疏化处理,得到大小为(M/2)×(N/2)的低频稀疏系数矩阵cA1;
步骤4、将步骤1中得到的变参数混沌系统的初始状态值和参数带入变参数混沌系统进行迭代,得到混沌序列Y,通过混沌序列Y构建压缩感知过程中需要的大小不同的测量矩阵Ф1和Ф2,其中,Ф1大小为M1×(M/2),Ф2大小为M2×(M/2),M1=(M/2)×LCR,M2=(M/2)×HCR,LCR代表低频分量矩阵cA的压缩率,HCR代表高频分量矩阵cH,cV和cD的压缩率;
步骤5、将明文图像P的每个像素按位展开,得到八个大小为M×N的位平面,选取其中的两个位平面矩阵C和D,将矩阵C的第一列的前M/2个数作为元胞自动机的初始行构型将矩阵D的第一行的前N/2个二进制数作为元胞自动机的初始列构型
步骤6、对元胞自动机的初始行构型和初始列构型按照设定演变规则演变l次,得到每次演变的行构型和列构型其中,l为演变的总轮数;
步骤7、初始化设定k=1;
步骤8、根据步骤6中得到的第k-1次演变的行构型和第k次演变的行构型对四个矩阵,包括cA1k-1,cHk-1,cVk-1,cDk-1,分别进行行循环置乱操作,然后根据步骤6中得到的第k-1次演变的列构型和第k次演变的列构型对行置乱后的四个矩阵再分别进行列循环置乱操作;在置乱操作中,将行构型和列构型分别作为矩阵cA1k,cHk,cVk,cDk的行状态和列状态,其中,和分别表示元胞自动机第k次演变后得到的构型,cA1k,cHk,cVk,cDk分别表示cA1,cH,cV,cD的第k轮置乱后的矩阵,cA10,cH0,cV0,cD0分别等于矩阵cA1,cH,cV,cD;令k=k+1;
步骤9、返回步骤8进行迭代,直至k=l+1,完成置乱过程,得到大小为(M/2)×(N/2)的四个矩阵cA2,cH1,cV1和cD1;
步骤10、对步骤9中得到的四个矩阵进行压缩感知,得到大小为M1×(N/2)的矩阵cA3,大小为M2×(N/2)的矩阵cH2,cV2和cD2;
步骤11、对步骤10中得到的四个矩阵进行重组,将重组后的矩阵转置,得到大小为(N/2)×(3M2+M1)的图像P1;
步骤12、对步骤11中得到的图像P1进行置乱操作,得到大小为(N/2)×(3M2+M1)的密文图像C。
优选的,步骤1中变参数混沌系统由一维分段线性迭代混沌映射PLCM和Logistic混沌映射组成,利用PLCM来产生混沌序列,利用Logistic混沌映射来产生PLCM的参数。
优选的,步骤4中构建压缩感知过程中需要的大小不同的测量矩阵Ф1和Ф2,包含如下内容:
步骤4.1:将初始状态值x0,y0和参数u带入变参数混沌系统迭代m+max(M1,M2)×(M/2)×d次,舍去前m个值,得到长度为max(M1,M2)×(M/2)×d的向量序列Y,其中,M1和M2分别是测量矩阵Ф1和Ф2的行数,M/2是测量矩阵Ф1和Ф2的列数,max(M1,M2)表示求M1和M2的最大值,d表示采样间隔;
步骤4.2:对向量序列Y做等间隔为d的采样,即zk=y1+kd,k=0,1,2,...;对采样得到的序列{z0,z1,...,zk}进行如下修改:zk=1-2zk,k=0,1,2,...;
步骤4.3:根据如下公式构造混沌测量矩阵Ф1和Ф2,公式表示为:
,
其中,(1/2M1)1/2和(1/2M2)1/2为归一化系数。
上述的,步骤8中的行循环置乱操作,包含内容如下:设定置乱规则,该置乱规则表示为:如果元胞自动机第k-1次演变的行构型的第i个元素与第k次演变的行构型的第i个元素相同,则矩阵cA1k-1,cHk-1,cVk-1,cDk-1中第i行的所有元素向右循环移动w1位,若第k-1次演变的行构型的第i个元素由0演变为第k次演变的行构型的第i个元素1,则矩阵cA1k-1,cHk-1,cVk-1,cDk-1中第i行的所有元素同时向右循环移动w2位,若第k-1次演变的行构型的第i个元素由1演变为第k次演变的行构型的第i个元素0,则矩阵cA1k-1,cHk-1,cVk-1,cDk-1中第i行的所有元素同时向左循环移动w3位;将所有行按该置乱规则置乱一遍,则完成一轮行置乱,k=1,2,...,l,w1,w2和w3与置乱图像的行的序列号有关,即:
,
i表示被置乱矩阵的行的序列号,n表示被置乱矩阵的列数,i=1,2,...,M/2,n=N/2,M和N分别表示明文图像的行数和列数。
上述的,步骤8中的列循环置乱操作,包含如下内容:设定置乱规则内容,该置乱规则内容表示为:如果元胞自动机第k-1次演变的列构型的第j个元素与第k次演变的列构型的第j个元素相同,则行置乱后的矩阵中第j列的所有元素向下循环移动w4位,若第k-1次演变的列构型的第j个元素由0演变为第k次演变的列构型的第j个元素1,则行置乱后的矩阵中第j列的所有元素同时向下循环移动w5位,若第k-1次演变的列构型的第j个元素由1演变为第k次演变的列构型的第j个元素0,则行置乱后的矩阵中第j列所有元素向上循环移动w6位;将所有列按该置乱规则内容置乱一遍,则完成一轮列置乱,得到置乱后的矩阵cA1k,cHk,cVk,cDk,其中,k=1,2,...,l,w4,w5和w6与置乱图像的列的序列号有关,即:
,
j表示被置乱矩阵的列的序列号,m表示被置乱矩阵的行数,j=1,2,...,N/2,m=M/2,M和N分别表示明文图像P的行数和列数。
上述的,步骤10中压缩感知,包含内容如下:按照如下公式对四个矩阵cA2,cH1,cV1和cD1进行压缩采样,得到矩阵cA3,cH2,cV2和cD2,公式如下所示:
,
其中,cA3为压缩后的低频分量矩阵,cH2,cV2和cD2分别为压缩后的3个高频分量矩阵,Ф1和Ф2分别代表压缩感知过程中的两个测量矩阵。
上述的,步骤11具体包含如下内容:根据公式s=mod((P(1,1),4)确定图像矩阵P1,其中,P(1,1)表示明文图像P的第1行第1列的像素值,确定过程如下:
当s=0时,P1=[cA3;cH2;cV2;cD2]';
当s=1时,P1=[cH2;cA3;cD2;cV2]';
当s=2时,P1=[cV2;cH2;cD2;cA3]';
当s=3时,P1=[cV2;cD2;cA3;cH2]'。
上述的,步骤12中的置乱操作包含行置乱操作和列置乱操作。
优选的,步骤12中的置乱操作具体包含如下内容:
步骤12.1:令n=1,矩阵P10等于矩阵P1;
步骤12.2:对图像进行行置乱操作,内容如下:对P1n-1的所有奇数行循环向右移动w7位,所有偶数行循环向左移动w8位,得到大小为(N/2)×(3M2+M1)的图像矩阵P2,其中,w7,w8表示图像矩阵的行的序列号;
步骤12.3:对行置乱后的图像矩阵进行列置乱操作,内容如下:对P2的所有奇数列循环向下移动w9位,所有偶数列循环向上移动w10位,得到大小为(N/2)×(3M2+M1)的图像矩阵P1n,其中,w9,w10表示图像的列的序列号,P1n表示第n次置乱后的图像;
步骤12.4:令n=n+1,循环执行步骤12.2到步骤12.4,直至n=t+1,完成置乱过程,获得最终的密文图像C,其中,t为设定置乱次数。
本发明的有益效果:
1、本发明利用初等元胞自动机对图像进行置乱,提高算法的安全性,通过压缩感知对图像进行压缩加密,以减少传输和存储的数据量;在压缩感知过程中,将明文图像按频率分块,对含有重要数据的低频系数进行少量压缩,对高频系数适当提高压缩率,一方面提高了图像的整体压缩率,另一方面提高了图像重建速度;元胞自动机与压缩感知相结合,在减少数据量的同时,又提高了算法的安全性,同时又增强了图像的重建效果。
2、本发明采用变参数的混沌系统,减少了参数易被破解的风险,同时明文图像通过作用SHA256函数来产生密钥,增加了密钥空间,增强了算法抵抗暴力攻击的能力,另一方面又使得密钥的产生紧紧地依赖于明文,提高算法抵抗选择明文攻击的能力;利用由SHA256产生变参数混沌系统的初始值和参数,再利用该混沌系统生成测量矩阵,一方面节省了内存空间和传输的压力,另一方面使得测量矩阵也依赖于明文。
3、本发明采用初等元胞自动机和分块压缩感知相结合的图像加密技术,通过利用初等元胞自动机技术对图像进行置乱,通过压缩感知技术在实现图像压缩的同时对图像进行加密,能够有效减少数据量的传输,并提高图像的安全性,同时具有良好的鲁棒性。
附图说明:
图1为实施例一加密方法流程示意图;
图2为实施例二加密方法实现步骤示意图;
图3(a)为实施例三所用的原始图像Lena;
图3(b)为实施例三所用的压缩加密后图像;
图3(c)为实施例三所用的密钥正确时解密图像;
图4(a)为实施例三所用的使用错误密钥时的解密图像之一;
图4(b)为实施例三所用的使用错误密钥时的解密图像之二;
图4(c)为实施例三所用的使用错误密钥时的解密图像之三;
图5(a)为实施例三所用的Lena密文的直方图;
图5(b)为实施例三所用的brone密文的直方图;
图6为实施例三所用的原始图像Lena的水平、垂直、对角方向相邻像素的相关性分析图;
图7(a)为实施例三所用的经过密度为0.00005的椒盐噪声污染后的密文图像;
图7(b)为实施例三所用的密文图像经过密度为0.00005的椒盐噪声污染后的解密图像;
图7(c)为实施例三所用的经过方差为0.00001的高斯噪声污染后的密文图像;
图7(d)为实施例三所用的密文图像经过方差为0.00001的高斯噪声污染后的解密图像;
图7(e)为实施例三所用的经过密度为0.00001的斑点噪声污染后的密文图像;
图7(f)为实施例三所用的密文图像经过密度为0.00001的斑点噪声污染后的解密图像;
图8为实施例三中列置乱过程示意图。
具体实施方式:
下面结合附图和技术方案对本发明作进一步详细的说明,并通过优选的实施例详细说明本发明的实施方式,但本发明的实施方式并不限于此。
实施例一,因图像数据量较大、信息冗余度高及不利于数据传输等情形,在信息安全图像加密中,为了减少网络传输数据量,图像需经过压缩来进行传输,将图像压缩与加密有效融合,参见图1所示,提供一种基于元胞自动机和分块压缩感知的图像加密方法,包含如下内容:明文图像通过SHA256函数获取变参数混沌系统的初始状态值和参数;通过单层小波分解将明文图像分解为三个高频分量矩阵和一个低频分量矩阵,对四个分量矩阵分别采用初等元胞自动机进行置乱;将变参数混沌系统的初始状态值和参数带入变参数混沌系统获取测量矩阵,利用测量矩阵对置乱后的四个矩阵进行压缩感知,得到四个压缩后的矩阵;对压缩后的矩阵进行重组,将重组后的矩阵进行置乱操作,得到密文图像。将图像压缩与加密有效融合,既可以提高图像的安全性又可以提高数据传输效率,具有较高的实用价值。
实施例二,参见图2所示,将压缩感知和元胞自动机相结合,利用初等元胞自动机对图像进行置乱,通过压缩感知对图像进行压缩加密,其具体实现步骤如下:
步骤1:利用SHA256函数对大小为M×N的明文图像P进行计算,得到一组256位的哈希值并将它作为图像密钥Key,将256位的图像密钥Key换算为32个十进制数k1,k2,…,k32,计算变参数混沌系统的初始状态值和参数,变参数混沌系统是由具有良好随机统计特性的一维分段线性迭代混沌映射(PLCM)和Logistic混沌映射组成,利用PLCM来产生混沌序列,利用Logistic混沌映射来产生PLCM的参数,PLCM的表达式为:
,
其输出信号分布在[0,1)上且是遍历的,其中p∈(0,0.5)。为了解决上式生成的序列存在参数p易被破解的缺陷,PLCM的参数p由Logistic混沌映射产生,即:
其中,yn∈[0,1]。当u∈[3.57,4]时,系统处于混沌状态。于是,变参数混沌系统的表达式为:
并通过公式:
得到中间变量h1,h2,h3和h4,通过公式:
,
计算混沌系统的初始状态值x0,y0和参数u,其中sum(k1,k2,…,k8)表示对k1,k2,…,k8进行求和,mod表示取余运算。
步骤2:将大小为M×N的明文图像P进行单层小波分解,分解为四个大小相同的子块矩阵cA,cH,cV和cD,单层分解变换后cA为低频信息,显示图像的轮廓信息,对图像来说,是最主要的部分,cH,cV和cD为高频信息。
步骤3:用DWT对大小为(M/2)×(N/2)的低频分量cA进行稀疏化处理,得到大小为(M/2)×(N/2)的低频稀疏系数矩阵cA1。
步骤4:将步骤1得到的初始状态值和参数带入变参数混沌系统进行迭代,得到混沌序列Y,并利用生成的混沌序列构建压缩感知过程中需要的大小不同的测量矩阵Ф1(大小为M1×(M/2)),Ф2(大小为M2×(M/2));其中,M1=(M/2)×LCR,M2=(M/2)×HCR,LCR代表低频分量cA的压缩率,HCR代表高频分量cH,cV和cD的压缩率;其所述的测量矩阵是基于混沌系统设计的。具体包含如下步骤:
步骤4.1:将步骤1计算得到的初始状态值x0,y0和参数u带入变参数的混沌系统迭代m+max(M1,M2)×(M/2)×d次,为了避免有害影响,舍去前m(m≥500)个值,得到长度为max(M1,M2)×(M/2)×d的向量序列Y,其中,M1和M2分别是测量矩阵Ф1和Ф2的行数,M/2是测量矩阵Ф1和Ф2的列数,max(M1,M2)表示求M1和M2的最大值,d表示步骤4.2中的采样间隔;
步骤4.2:对序列Y做等间隔为d的采样,即zk=y1+kd,k=0,1,2,...;为了使构造出来的混沌测量矩阵与随机伯努力矩阵具有类似的分布,对采样得到的序列{z0,z1,...,zk}做如下修改:zk=1-2zk,k=0,1,2,...
步骤4.3:构造混沌测量矩阵Ф1(M1×(M/2))和Ф2(M2×(M/2))如下:
,
其中,(1/2M1)1/2和(1/2M2)1/2为归一化系数。
步骤5:将明文图像P的每个像素按位展开,得到八个大小为M×N的位平面,选取其中的两个位平面矩阵C和D,将矩阵C的第一列的前M/2个数作为元胞自动机的初始行构型将矩阵D的第一行的前N/2个二进制数作为元胞自动机的初始列构型具体包含如下步骤:
步骤5.1:通过计算a和b的值确定所选取的位平面,计算公式如下所示:a=mod(P(2,1),8)+1,b=mod(P(12,1),8)+1,其中P(2,1)表示明文图像P第2行第1列的像素值,P(12,1)表示明文图像P第12行第1列的像素值;
步骤5.2:将明文图像P每个像素按位展开,得到八个大小为M×N的位平面,然后选取其中的第a和b个位平面分别作为矩阵C和D;
步骤5.3:选取矩阵C的第一列前M/2个二进制数作为元胞自动机的初始行构型,选取矩阵D的第一行前N/2个二进制数作为元胞自动机的初始列构型。
步骤6:对元胞自动机的初始行构型和初始列构型按照某一规则演变l次,得到每次演变的行构型和列构型其中l为演变的总轮数;对初等元胞自动机进行演变,具体包含如下内容:
初等元胞自动机(ECA)的状态集S只有两个元素{s1,s2},设定元胞的状态空间为{0,1}。局部映射f可记为:公式中有三个变量,如果每个变量取两个状态值,就有23=8种组合,这样局部函数映射就由这8个变量组合完全确定。如下表所示,是60号初等元胞自动机规则:
表1 60号元胞自动机规则
t | 111 | 110 | 101 | 100 | 011 | 010 | 001 | 000 |
t+1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 |
,通过以上规则对元胞自动机进行演变。
步骤7:根据步骤6中得到的第k-1次演变的行构型和第k次演变的行构型对四个矩阵cA1k-1,cHk-1,cVk-1,cDk-1分别进行行循环置乱操作,然后根据步骤6中得到的第k-1次演变的列构型和第k次演变的列构型对行置乱后的四个矩阵再分别进行列循环置乱操作;在置乱操作中,将行构型和列构型分别作为矩阵cA1k,cHk,cVk,cDk的行状态和列状态,即和分别对应于cA1k,cHk,cVk,cDk的行状态和列状态,其中k=1,2,...,l,l为演变的总轮数,和分别表示元胞自动机第k次演变后得到的构型,cA1k,cHk,cVk,cDk分别表示cA1,cH,cV,cD的第k轮置乱后的矩阵;cA10,cH0,cV0,cD0分别等于矩阵cA1,cH,cV,cD。
置乱操作具体包含以下步骤:
步骤7.1:令k=1;
步骤7.2:令cA10=cA1,cH0=cH,cV0=cV,cD0=cD,对cA10,cH0,cV0和cD0进行行置乱。行置乱过程:如果元胞自动机第k-1次演变的行构型的第i个元素与第k次演变的行构型的第i个元素相同,则矩阵cA1k-1,cHk-1,cVk-1,cDk-1中第i行的所有元素向右循环移动w1位,若第k-1次演变的行构型的第i个元素由0演变为第k次演变的行构型的第i个元素1(0→1),则矩阵cA1k-1,cHk-1,cVk-1,cDk-1中第i行的所有元素同时向右循环移动w2位,若第k-1次演变的行构型的第i个元素由1演变为第k次演变的行构型的第i个元素0(1→0),则矩阵cA1k-1,cHk-1,cVk-1,cDk-1中第i行的所有元素同时向左循环移动w3位。将所有行按此置乱方式置乱一遍,则完成一轮行置乱。这里,k=1,2,...,l,w1,w2和w3与置乱图像的行的序列号有关,即:
i表示被置乱矩阵的行的序列号,n表示被置乱矩阵的列数,i=1,2,...,M/2,n=N/2,M和N分别表示明文图像的行数和列数;
步骤7.3:列置乱过程:如果元胞自动机第k-1次演变的列构型的第j个元素与第k次演变的列构型的第j个元素相同,则行置乱后的矩阵中第j列的所有元素向下循环移动w4位,若第k-1次演变的列构型的第j个元素由0演变为第k次演变的列构型的第j个元素1(0→1),则行置乱后的矩阵中第j列的所有元素同时向下循环移动w5位,若第k-1次演变的列构型的第j个元素由1演变为第k次演变的列构型的第j个元素0(1→0),则行置乱后的矩阵中第j列所有元素向上循环移动w6位。将所有列按此置乱方式置乱一遍,则完成一轮列置乱。得到置乱后的矩阵cA1k,cHk,cVk,cDk。其中,k=1,2,...,l,w4,w5和w6与置乱图像的列的序列号有关,即:,
j表示被置乱矩阵的列的序列号,m表示被置乱矩阵的行数,j=1,2,...,N/2,m=M/2,M和N分别表示明文图像P的行数和列数;
步骤8:令k=k+1,循环执行步骤7.2,步骤7.3和步骤8共l次,完成置乱过程,得到大小为(M/2)×(N/2)的四个矩阵cA2,cH1,cV1和cD1;
步骤9:对得到的四个置乱的子矩阵进行压缩感知,得到大小为M1×(N/2)的矩阵cA3,大小为M2×(N/2)的矩阵cH2,cV2和cD2;具体步骤如下:按照如下公式对四个矩阵cA2,cH1,cV1和cD1进行压缩采样,得到矩阵cA3,cH2,cV2和cD2,公式如下所示:
,
其中,cA3为压缩后的低频分量,cH2,cV2和cD2分别为压缩后的3个高频分量,Ф1和Ф2分别代表压缩感知过程中的两个测量矩阵。
步骤10:对得到的四个子矩阵进行重组,将重组后的矩阵转置,得到大小为(N/2)×(3M2+M1)的图像P1的具体步骤如下:对得到的步骤9中的四个子块进行排列重组,得到重组矩阵P1,其中,P1由s的值来确定,即:s=mod((P(1,1),4),P(1,1)表示明文图像P的第1行第1列的像素值;
当s=0时,P1=[cA3;cH2;cV2;cD2]';
当s=1时,P1=[cH2;cA3;cD2;cV2]';
当s=2时,P1=[cV2;cH2;cD2;cA3]';
当s=3时,P1=[cV2;cD2;cA3;cH2]';
P1即为压缩采样后的图像;
步骤11:对得到的图像P1进行进一步置乱处理后得到大小为(N/2)×(3M2+M1)的密文图像C,具体置乱步骤如下:
步骤11.1:令n=1,矩阵P10等于矩阵P1;
步骤11.2:首先,对图像进行行置乱操作,具体的:对P1n-1的所有奇数行循环向右移动w7位,所有偶数行循环向左移动w8位,得到大小为(N/2)×(3M2+M1)的图像P2;其中w7,w8表示图像的行的序列号;
步骤11.3:接着,对行置乱后的图像进行列置乱操作,具体的:对P2的所有奇数列循环向下移动w9位,所有偶数列循环向上移动w10位,得到大小为(N/2)×(3M2+M1)的图像P1n,其中w9,w10表示图像的列的序列号;步骤11.2和步骤11.3中P1n表示第n次置乱后的图像,n=1,2,…,t;
步骤11.4:令n=n+1,循环执行步骤11.2,11.3和步骤11.4共t次,完成置乱过程,获得最终的密文图像C。其中,t为置乱的次数。
实施例三,参见图3~7所示,在本实施例中,采用的编程软件为Matlab R2016b,选取大小为512×512的Lena灰度图像为实验对象,具体加密过程如下:
步骤1:输入原始大小为512×512的Lena灰度图像,用P=imread(‘Lena.bmp’)读取图像信息,利用SHA256函数对明文图像P进行计算,得到一组256位的哈希值并将它作为图像密钥Key,然后将256位的Key换算为32个十进制数k1,k2,…,k32,用来计算变参数混沌系统的初始状态值的具体步骤如下:
1.1)采用变参数混沌系统,它是由具有良好随机统计特性的一维分段线性迭代混沌映射(PLCM)和Logistic混沌映射组成,利用PLCM来产生混沌序列,利用Logistic混沌映射来产生PLCM的参数,PLCM的表达式为:
,
其输出信号分布在[0,1)上且是遍历的。其中p∈(0,0.5)。为了解决上式生成的序列存在参数p易被破解的缺陷,PLCM的参数p由Logistic混沌映射产生,即:
,
其中,yn∈[0,1]。当u∈[3.57,4]时,系统处于混沌状态。于是,变参数混沌系统的表达式为:
1.2)利用SHA256函数对明文图像进行计算,得到一组256位的哈希值(十六进制表示为[b 3 2 1 7 1 5 3 7 d e 5 1 9 d 7 c 1 c 8 3 f f 2 5 9 8 9 a 5 5 9 5 3 2 c6 b 2 6 9 a 3 0 3 a c 1 9 d 3 d 0 a 9 0 6 b b 5 e 2 5 0]),并把它作为图像的密钥,然后将256位的哈希值转换为32个十进制数(179 33 113 83 125 229 25 215 193 20063 242 89 137 165 89 83 44 107 38 154 48 58 193 157 61 10 144 107 181 22680),并将其定义为k1,k2,…,k32,接着利用如下公式计算变参数混沌系统的初始状态值的具体步骤为:首先,利用下述公式
,
得到中间变量h1,h2,h3和h4,然后通过公式:
,
计算混沌系统的初始状态值x0,y0和参数u,其中sum(k1,k2,…,k8)表示对k1,k2,…,k8进行求和,mod表示取余运算;
通过计算得到混沌系统的初始状态值x0=0.7461,y0=0.3750和参数u=3.6411。
步骤2:将大小为512×512的Lena图像进行单层小波分解,得到大小为256×256的四个矩阵,分别为低频分量cA,高频分量cH,cV和cD。
步骤3:用DWT对大小为256×256的低频分量cA进行稀疏化处理,得到大小为256×256的低频稀疏系数矩阵cA1;
步骤4:将步骤1得到的初始状态值和参数带入变参数混沌系统进行迭代,得到混沌序列Y,并利用生成的混沌序列构建压缩感知过程中需要的大小不同的测量矩阵Ф1(大小为205×256),Ф2(大小为52×256);其中,LCR=0.2、HCR=0.8分别代表低频分量cA和高频分量cH,cV和cD的压缩率;所述的测量矩阵是基于混沌系统设计的。具体包含如下步骤:
步骤4.1:将步骤1计算得到的初始状态值x0,y0和参数u带入变参数沌系统迭代m+max(M1,M2)×(M/2)×d=1100+205×256×2=106060次,为了避免有害影响,舍去前m=1100个值,得到长度为max(M1,M2)×(M/2)×d=205×256×2=104960的向量序列Y,其中,Y=[y1,y2,...,y104960],在本实施例中,M1=205和M2=52分别是测量矩阵Ф1和Ф2的行数,M/2=256是测量矩阵Ф1和Ф2的列数,d=2表示步骤4.2中的采样间隔;
步骤4.2:对序列Y做等间隔为d=2的采样,即zk=y1+kd,k=0,1,2,...;为了使构造出来的混沌观测矩阵与随机伯努力矩阵具有类似的分布,对采样得到的序列{z0,z1,...,zk}做如下修改:zk=1-2zk,k=0,1,2,...;
步骤4.3:构造混沌测量矩阵Ф1和Ф2如下:
步骤5:将Lena图像的每个像素按位展开,得到八个大小为512×512的位平面,选取其中的两个位平面矩阵C和D,将矩阵C的第一列的前256个数作为元胞自动机的初始行构型将矩阵D的第一行的前256个二进制数作为元胞自动机的初始列构型具体包含如下步骤:
步骤5.1:通过计算a和b的值确定所选取的位平面,计算公式如下所示:a=mod(P(2,1),8)+1,b=mod(P(12,1),8)+1,其中P(2,1)表示明文图像P第2行第1列的像素值,P(12,1)表示明文图像P第12行第1列的像素值。在本实施例中,P(2,1)的值为162,P(12,1)的值为156,故得a=3,b=5。
步骤5.2:将明文图像P每个像素按位展开,得到八个大小为512×512的位平面,然后选取其中的第3和第5个位平面分别作为矩阵C和D。
步骤5.3:选取矩阵C的第一列前256个二进制数作为元胞自动机的初始行构型,选取矩阵D的第一行前256个二进制数作为元胞自动机的初始列构型;
具体过程如下:
步骤6:对元胞自动机的初始行构型和初始列构型按照某一规则演变l=15次,得到每次演变的行构型和列构型其中l为演变的总轮数;对初等元胞自动机的构型进行演变,具体包含如下内容:
初等元胞自动机(ECA)的状态集S只有两个元素{s1,s2},设定元胞的状态空间为{0,1}。局部映射f可记为:公式中有三个变量,如果每个变量取两个状态值,就有23=8种组合,这样局部函数映射就由这8个变量组合完全确定。如下表所示,是60号初等元胞自动机规则:
表2 60号元胞自动机规则
t | 111 | 110 | 101 | 100 | 011 | 010 | 001 | 000 |
t+1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 |
通过以上规则对元胞自动机进行演变;
步骤7:根据步骤6中得到的第k-1次演变的行构型和第k次演变的行构型对四个矩阵cA1k-1,cHk-1,cVk-1,cDk-1分别进行行循环置乱操作,然后根据步骤6中得到的第k-1次演变的列构型和第k次演变的列构型对行置乱后的四个矩阵再分别进行列循环置乱操作;在置乱操作中,将行构型和列构型分别作为矩阵cA1k,cHk,cVk,cDk的行状态和列状态,即和分别对应于cA1k,cHk,cVk,cDk的行状态和列状态,其中k=1,2,...,15,和分别表示ECA第k次演变后得到的构型,cA1k,cHk,cVk,cDk分别表示cA1,cH,cV,cD的第k轮置乱后的矩阵;cA10,cH0,cV0,cD0分别等于矩阵cA1,cH,cV,cD;
置乱操作具体包含以下步骤:
步骤7.1:令k=1;
步骤7.2:令cA10=cA1,cH0=cH,cV0=cV,cD0=cD,对cA10,cH0,cV0和cD0进行行置乱。行置乱过程:如果元胞自动机第k-1次演变的行构型的第i个元素与第k次演变的行构型的第i个元素相同,则矩阵cA1k-1,cHk-1,cVk-1,cDk-1中第i行的所有元素向右循环移动w1位,若第k-1次演变的行构型的第i个元素由0演变为第k次演变的行构型的第i个元素1(0→1),则矩阵cA1k-1,cHk-1,cVk-1,cDk-1中第i行的所有元素同时向右循环移动w2位,若第k-1次演变的行构型的第i个元素由1演变为第k次演变的行构型的第i个元素0(1→0),则矩阵cA1k-1,cHk-1,cVk-1,cDk-1中第i行的所有元素同时向左循环移动w3位。将所有行按此置乱方式置乱一遍,则完成一轮行置乱。这里,k=1,2,...,15,w1,w2和w3与置乱图像的行的序列号有关,即:
,
i表示被置乱矩阵的行的序列号,n表示被置乱矩阵的列数,i=1,2,...,256,n=256;
步骤7.3:列置乱过程:如果元胞自动机第k-1次演变的列构型的第j个元素与第k次演变的列构型的第j个元素相同,则行置乱后的矩阵中第j列的所有元素向下循环移动w4位,若第k-1次演变的列构型的第j个元素由0演变为第k次演变的列构型的第j个元素1(0→1),则行置乱后的矩阵中第j列的所有元素同时向下循环移动w5位,若第k-1次演变的列构型的第j个元素由1演变为第k次演变的列构型的第j个元素0(1→0),则行置乱后的矩阵中第j列所有元素向上循环移动w6位。将所有列按此置乱方式置乱一遍,则完成一轮列置乱,得到置乱后的矩阵cA1k,cHk,cVk,cDk。其中,k=1,2,...,15,w4,w5和w6与置乱图像的列的序列号有关,即:,
j表示被乱矩阵的列的序列号,m表示被置乱矩阵的行数,j=1,2,...,256,m=256;
步骤8:令k=k+1,循环执行步骤7.2,步骤7.3和步骤8共15次,完成置乱过程,得到大小为(M/2)×(N/2)的四个矩阵cA2,cH1,cV1和cD1;
一个具体的例子如下:如下图所示,假设用元胞自动机对4×4的矩阵按照本发明置乱方法进行置乱操作,具体操作步骤如下:
步骤A1:假设元胞自动机的初始行构型和初始列构型分别是和对初始构型按照60号规则演变1次得到行构型和列构型
步骤A2:根据和的行状态对矩阵的每行进行行循环置乱,行置乱过程如下所示:
的第1个元素和的第1个元素相同,则向右循环移动w1=mod(1*1000,4)=0位,即矩阵的第1行所有的元素不移动;的第2个元素1变为的第2个元素0,则向左循环移动w3=mod(2*1000,4)+1=1位,即矩阵的第2行所有的元素循环向左移动1位,按照此规则,将所有的行置乱一遍,完成行置乱过程;
步骤A3:根据和的列状态对行置乱后的矩阵的每列进行列循环置乱,列置乱过程如图8所示,的第1个元素1变为的第1个元素0,则向上循环移动w6=mod(1*1000,4)+1=1位,即行置乱后的矩阵的第1列所有的元素循环向上移动1位;的第2个元素0变为的第2个元素1,则向下循环移动w5=mod(2*1000,4)+1=1位,即矩阵的第2列所有元素循环向下移动1位,按照此规则,将所有的列置乱一遍,完成一轮置乱过程。
步骤9:对得到的四个置乱的子矩阵进行压缩感知,得到大小为205×256的矩阵cA3,大小为52×256的矩阵cH2,cV2和cD2的具体步骤如下:按照如下公式对四个矩阵cA2,cH1,cV1和cD1进行压缩采样,得到矩阵cA3,cH2,cV2和cD2。公式如下所示:
步骤10:对得到的四个压缩后的矩阵进行重组,将重组后的矩阵转置,得到大小为256×361的图像P1的具体步骤如下:对得到的步骤9中的四个子块进行排列重组,得到重组矩阵P1,其中,P1由s的值来确定,即:s=mod((P(1,1),4),P(1,1)表示明文图像P的第1行第1列的像素值;在本实施例中,P(1,1)=162,所以s=2,故压缩后的矩阵为P1=[cV2;cH2;cD2;cA3]'。
步骤11:对得到的图像P1进行进一步置乱处理,得到大小为256×361的密文图像C的具体置乱步骤如下:
步骤11.1:令n=1,矩阵P10等于矩阵P1;
步骤11.2:首先,对图像进行行置乱操作,具体的:对P1n-1的所有奇数行循环向右移动w7位,所有偶数行循环向左移动w8位,得到大小为256×361的图像P2;其中w7,w8表示图像的行的序列号;
步骤11.3:接着,对行置乱后的图像进行列置乱操作,具体的:对P2的所有奇数列循环向下移动w9位,所有偶数列循环向上移动w10位,得到大小为256×361的图像P1n,其中w9,w10表示图像的列的序列号;步骤11.2和步骤11.3中P1n表示第n次置乱后的图像,n=1,2,…,10;
步骤11.4:令n=n+1,循环执行步骤11.2,步骤11.3和步骤11.4共10次,完成置乱过程,获得最终的密文图像C。
通过初等元胞自动机对图像进行置乱,提高算法的安全性,通过压缩感知对图像进行压缩加密,以减少数据量;一方面增加了密钥空间,增强了算法抵抗暴力攻击的能力,另一方面又使得密钥的产生紧紧地依赖于明文,提高了算法抵抗选择明文攻击的能力;通过分块压缩感知一方面提高了压缩率,另一方面提高了图像的重建速度。
一个好的加密算法应该能够抵抗各种攻击,密钥空间足够大,密钥的敏感性足够高。下面对本发明的图像加密算法进行安全性分析。
1.密钥空间足够大,足以抵抗穷举攻击
混沌系统对初始条件和控制参数极其的敏感,任何微小的初始偏差都会被指数式放大,因此混沌加密算法的安全性与密钥空间有很大关系。一般来说,密钥空间越大,其抵抗穷举攻击的能力也就越强。本文密钥具体包括:1)由SHA256函数产生的256位哈希值;2)舍弃的混沌序列的个数m;3)元胞自动机的初始构型和4)重组方式的选择参数s;5)采样间隔d;6)两次置乱的轮数l,t。若设置精度为10-14,则密钥空间至少为2232,可见密钥空间足够大,能够有效的抵御穷举攻击。
2.密钥敏感性高
密钥敏感性高是指对密钥进行轻微的改变后,其加密的密文或者解密的图像也会发生显著的变化。也就是说,当攻击者用一个跟密钥很相近的数据进行图像破解时,也不能恢复出原始的图像,则说明该算法的密钥敏感性高。附图3为该算法按正确密钥加密和解密的实验结果,其中正确的256位哈希值密钥(十六进制表示)Key=b 3 2 1 7 1 5 3 7 d e5 1 9 d 7 c 1 c 8 3 f f 2 5 9 8 9 a 5 5 9 5 3 2 c 6b 2 6 9 a 3 0 3 a c 1 9 d3 d 0 a 9 0 6 b b 5 e 2 5 0,第一个像素值P(1,1)=162(即s=2),舍弃的混沌序列的个数m=1100,采样间隔d=2,两次置乱的轮数l=15,t=10。图3(a),3(b),3(c)分别表示明文图像,按正确密钥加密的密文图像和按正确密钥解密的重建图像。附图4为密钥敏感性实验,其中,图4(a)是当其余值不变,令第一个像素值P(1,1)=163(即s=3)时的解密图像。图4(b)和4(c)是当其余值不变,分别将密钥Key第一位(将b改为c)和最后一位(将0改为1)改变后的解密图像。从解密的效果图片来看,此加密算法对密钥的敏感性高,加密安全性也更好。
3.密文图像的灰度直方图相似,抗统计分析攻击能力强。
直方图描述了数字图像中所有灰度级的像素出现的频率。一个好的图像加密算法在对不同图像进行加密后,得到的密文图像的灰度直方图应该是相似的,这样可以防止窃密者通过直方图的漏洞来破解图像。图5(a)表示Lena密文的直方图;图5(b)表示brone密文的直方图。
从图中可以看出,对于不同图像加密后密文图像的直方图相似,能够有效抵御统计分析的攻击。
4.原始图像相邻像素高度相关,加密后图像相邻像素相关系数接近于0,基本不相关。
对于大多数图像,每个像素与它周围的像素点之间存在着很大的联系,也就是说,某个像素点与它附近的像素点通常都是缓慢变化的,具体来说就是像素点与它临近的像素点在水平、垂直和对角方向上存在着关联性。相关系数越大,说明相邻像素的相关性越大;反之,相邻像素的相关性越小。其计算公式如下所示:
,
其中,x、y分别表示图像中临近的两个像素点的像素值,N代表试验中选取的像素对个数,E(x)代表像素值的平均值,D(x)代表像素值的均方差,cov(x,y)代表相关函数,Rx,y代表相邻两个像素的相关系数。
对于512×512的Lena图像,从其明文图像和密文图像中分别选取10000对水平、垂直、对角方向相邻像素对进行测试,其测试结果如图6和下表所示。
Lena的明文、密文相关性对比结果:
表3 Lena的明文和密文的相邻像素的相关性
测试素材 | 水平方向 | 垂直方向 | 对角方向 |
Lena明文 | 0.9853 | 0.9720 | 0.9604 |
Lena密文 | 0.0039 | 0.0003 | -0.0005 |
可以看出明文图像相邻像素是高度相关的,相关系数接近1。而加密图像的相邻像素的相关系数接近于0,相邻像素间相关性明显减小,可以有效抵御统计攻击。
5.结构相似性接近于1,图像重建效果好。
SSIM(Structural Similarity),结构相似性,是一种衡量两幅图像相似度的指标。SSIM取值范围[0,1],值越大,表示图像失真越小。在实际应用中,可以利用滑动窗将图像分块,令分块总数为N,然后计算对应块的结构相似度SSIM,最后将平均值作为两图像的结构相似性度量指标,即平均结构相似性MSSIM。利用如下公式计算SSIM和MSSIM:
SSIM(X,Y)=l(X,Y)×c(X,Y)×s(X,Y)
,
式中,μX、μY分别表示明文图像X和解密图像Y的均值,σX、σY分别表示图像X和图像Y的方差,σXY表示图像X和图像Y的协方差,N表示图像分块的总数,C1,C2,C3为常数,为了避免分母为0的情况,取C1=(K1×L)2,C2=(K2×L)2,K1=0.01,K2=0.03,L=255。在本例中,取N=128。
对Lena图像,采用不同的压缩率,得到的MSSIM如下表所示:
表4 Lena的不同压缩率下的MSSIM
可以看出,在不同的压缩率下,MSSIM接近于1,说明原始图像和重构图像之间的相似度较高,图像失真小。因此该算法可以达到较好的解密效果。
6.可以抵抗一定的噪声攻击,具有较强的鲁棒性。
图像在网络传输过程中或者在复制、移动的过程中,可能会受到机器自身的因素或者其它外界因素而使获得的图像中含有噪声。本文通过产生不同程度的各类噪声然后添加到Lena的密文图像上,进而对其进行解密处理来测试该算法对噪声的抵抗能力,其测试结果如图7(a),7(b),7(c),7(d),7(e),7(f)所示。噪声污染后的解密图像和明文图像之间的MSSIM如下表所示。
表5 噪声污染后的解密图像和明文图像之间的MSSIM
攻击类型 | MSSIM |
密度为0.00005的椒盐噪声 | 0.9883 |
方差为0.00001的高斯噪声 | 0.9853 |
密度为0.00001的斑点噪声 | 0.9908 |
从测试结果可以看出,该算法对斑点噪声,高斯噪声及椒盐噪声具有较强的抵抗力,图像经过斑点噪声,高斯噪声及椒盐噪声污染后经过解密,基本上能得到与原图相同的信息。总体来说,该算法对噪声攻击有一定的抵抗能力。
由上述实施例可知,本发明提供的加密算法可对M×N(M=N=2t,t为整数)的灰度图像进行高安全的加密,在信息加密领域具有广阔的应用前景。
本发明并不局限于上述具体实施方式,本领域技术人员还可据此做出多种变化,但任何与本发明等同或者类似的变化都应涵盖在本发明权利要求的范围内。
Claims (9)
1.一种基于元胞自动机和分块压缩感知的图像加密方法,其特征在于,包含如下内容:明文图像通过SHA256函数获取变参数混沌系统的初始状态值和参数;通过单层小波分解将明文图像分解为三个高频分量矩阵和一个低频分量矩阵,对四个分量矩阵分别采用初等元胞自动机进行置乱;将变参数混沌系统的初始状态值和参数带入变参数混沌系统获取测量矩阵,利用测量矩阵对置乱后的四个矩阵进行压缩感知,得到四个压缩后的矩阵;对压缩后的矩阵进行重组,将重组后的矩阵进行置乱操作,得到密文图像;具体实现步骤如下:
步骤1、利用SHA256函数对大小为M×N的明文图像P进行计算,得到一组256位的哈希值,作为图像密钥Key,图像密钥Key换算为32个十进制数k1,k2,…,k32,并计算变参数混沌系统的初始状态值x0,y0和参数u,其中,M=N=2t,t为正整数;
步骤2、将明文图像P进行单层小波分解,得到大小为(M/2)×(N/2)的4个小波子带系数矩阵cA,cH,cV和cD,其中,cA表示低频分量矩阵,cH、cV和cD表示高频分量矩阵;
步骤3、用离散小波变换DWT对低频分量cA进行稀疏化处理,得到大小为(M/2)×(N/2)的低频稀疏系数矩阵cA1;
步骤4、将步骤1中得到的变参数混沌系统的初始状态值和参数带入变参数混沌系统进行迭代,得到混沌序列Y,通过混沌序列Y构建压缩感知过程中需要的大小不同的测量矩阵Ф1和Ф2,其中,Ф1大小为M1×(M/2),Ф2大小为M2×(M/2),M1=(M/2)×LCR,M2=(M/2)×HCR,LCR代表低频分量矩阵cA的压缩率,HCR代表高频分量矩阵cH,cV和cD的压缩率;
步骤5、将明文图像P的每个像素按位展开,得到八个大小为M×N的位平面,选取其中的两个位平面矩阵C和D,将矩阵C的第一列的前M/2个数作为元胞自动机的初始行构型将矩阵D的第一行的前N/2个二进制数作为元胞自动机的初始列构型
步骤6、对元胞自动机的初始行构型和初始列构型按照设定演变规则演变l次,得到每次演变的行构型和列构型其中,l为演变的总轮数;
步骤7、初始化设定k=1;
步骤8、根据步骤6中得到的第k-1次演变的行构型和第k次演变的行构型对四个矩阵cA1k-1,cHk-1,cVk-1,cDk-1分别进行行循环置乱操作,然后根据步骤6中得到的第k-1次演变的列构型和第k次演变的列构型对行置乱后的四个矩阵再分别进行列循环置乱操作;在置乱操作中,将行构型和列构型分别作为矩阵cA1k,cHk,cVk,cDk的行状态和列状态,其中,和分别表示元胞自动机第k次演变后得到的构型,cA1k,cHk,cVk,cDk分别表示cA1,cH,cV,cD的第k轮置乱后的矩阵,cA10,cH0,cV0,cD0分别等于矩阵cA1,cH,cV,cD;令k=k+1;
步骤9、返回步骤8进行迭代,直至k=l+1,完成置乱过程,得到大小为(M/2)×(N/2)的四个矩阵cA2,cH1,cV1和cD1;
步骤10、对步骤9中得到的四个矩阵进行压缩感知,得到大小为M1×(N/2)的矩阵cA3,大小为M2×(N/2)的矩阵cH2,cV2和cD2;
步骤11、对步骤10中得到的四个矩阵进行重组,将重组后的矩阵转置,得到大小为(N/2)×(3M2+M1)的图像P1;
步骤12、对步骤11中得到的图像P1进行置乱操作,得到大小为(N/2)×(3M2+M1)的密文图像C。
2.根据权利要求1所述的基于元胞自动机和分块压缩感知的图像加密方法,其特征在于,步骤1中变参数混沌系统由一维分段线性迭代混沌映射PLCM和Logistic混沌映射组成,利用PLCM来产生混沌序列,利用Logistic混沌映射来产生PLCM的参数。
3.根据权利要求1所述的基于元胞自动机和分块压缩感知的图像加密方法,其特征在于,步骤4中构建压缩感知过程中需要的大小不同的测量矩阵Ф1和Ф2,包含如下内容:
步骤4.1、将初始状态值x0,y0和参数u带入变参数混沌系统迭代m+max(M1,M2)×(M/2)×d次,舍去前m个值,得到长度为max(M1,M2)×(M/2)×d的向量序列Y,其中,
M1和M2分别是测量矩阵Ф1和Ф2的行数,M/2是测量矩阵Ф1和Ф2的列数,max(M1,M2)表示求M1和M2的最大值,d表示采样间隔;
步骤4.2、对向量序列Y做等间隔为d的采样,即zk=y1+kd,k=0,1,2,...;对采样得到的序列{z0,z1,...,zk}进行如下修改:zk=1-2zk,k=0,1,2,...;
步骤4.3、根据如下公式构造混沌测量矩阵Ф1和Ф2,公式表示为:
,
其中,(1/2M1)1/2和(1/2M2)1/2为归一化系数。
4.根据权利要求1所述的基于元胞自动机和分块压缩感知的图像加密方法,其特征在于,步骤8中的行循环置乱操作,包含内容如下:设定置乱规则,该置乱规则表示为:如果元胞自动机第k-1次演变的行构型的第i个元素与第k次演变的行构型的第i个元素相同,则矩阵cA1k-1,cHk-1,cVk-1,cDk-1中第i行的所有元素向右循环移动w1位,若第k-1次演变的行构型的第i个元素由0演变为第k次演变的行构型的第i个元素1,则矩阵cA1k-1,cHk-1,cVk-1,cDk-1中第i行的所有元素同时向右循环移动w2位,若第k-1次演变的行构型的第i个元素由1演变为第k次演变的行构型的第i个元素0,则矩阵cA1k-1,cHk-1,cVk-1,cDk-1中第i行的所有元素同时向左循环移动w3位;将所有行按该置乱规则置乱一遍,则完成一轮行置乱,k=1,2,...,l,w1,w2和w3与置乱图像的行的序列号有关,即:
,
i表示被置乱矩阵的行的序列号,n表示被置乱矩阵的列数,i=1,2,...,M/2,n=N/2,M和N分别表示明文图像的行数和列数。
5.根据权利要求1所述的基于元胞自动机和分块压缩感知的图像加密方法,其特征在于,步骤8中的列循环置乱操作,包含如下内容:设定置乱规则内容,该置乱规则内容表示为:如果元胞自动机第k-1次演变的列构型的第j个元素与第k次演变的列构型的第j个元素相同,则行置乱后的矩阵中第j列的所有元素向下循环移动w4位,若第k-1次演变的列构型的第j个元素由0演变为第k次演变的列构型的第j个元素1,则行置乱后的矩阵中第j列的所有元素同时向下循环移动w5位,若第k-1次演变的列构型的第j个元素由1演变为第k次演变的列构型的第j个元素0,则行置乱后的矩阵中第j列所有元素向上循环移动w6位;将所有列按该置乱规则内容置乱一遍,则完成一轮列置乱,得到置乱后的矩阵cA1k,cHk,cVk,cDk,其中,k=1,2,...,l,w4,w5和w6与置乱图像的列的序列号有关,即:
,
j表示被置乱矩阵的列的序列号,m表示被置乱矩阵的行数,j=1,2,...,N/2,m=M/2,M和N分别表示明文图像P的行数和列数。
6.根据权利要求1所述的基于元胞自动机和分块压缩感知的图像加密方法,其特征在于,步骤10中压缩感知,包含内容如下:按照如下公式对四个矩阵cA2,cH1,cV1和cD1进行压缩采样,得到矩阵cA3,cH2,cV2和cD2,公式如下所示:其中,cA3为压缩后的低频分量矩阵,cH2,cV2和cD2分别为压缩后的3个高频分量矩阵,Ф1和Ф2分别代表压缩感知过程中的两个测量矩阵。
7.根据权利要求1所述的基于元胞自动机和分块压缩感知的图像加密方法,其特征在于,步骤11具体包含如下内容:根据公式s=mod((P(1,1),4)确定图像矩阵P1,其中,P(1,1)表示明文图像P的第1行第1列的像素值,确定过程如下:
当s=0时,P1=[cA3;cH2;cV2;cD2]';
当s=1时,P1=[cH2;cA3;cD2;cV2]';
当s=2时,P1=[cV2;cH2;cD2;cA3]';
当s=3时,P1=[cV2;cD2;cA3;cH2]'。
8.根据权利要求1所述的基于元胞自动机和分块压缩感知的图像加密方法,其特征在于,步骤12中的置乱操作包含行置乱操作和列置乱操作。
9.根据权利要求1或8所述的基于元胞自动机和分块压缩感知的图像加密方法,其特征在于,步骤12中的置乱操作具体包含如下内容:
步骤12.1、令n=1,矩阵P10等于矩阵P1;
步骤12.2、对图像进行行置乱操作,内容如下:对P1n-1的所有奇数行循环向右移动w7位,所有偶数行循环向左移动w8位,得到大小为(N/2)×(3M2+M1)的图像矩阵P2,其中,w7,w8表示图像矩阵的行的序列号;
步骤12.3、对行置乱后的图像矩阵进行列置乱操作,内容如下:对P2的所有奇数列循环向下移动w9位,所有偶数列循环向上移动w10位,得到大小为(N/2)×(3M2+M1)的图像矩阵P1n,其中,w9,w10表示图像的列的序列号,P1n表示第n次置乱后的图像;
步骤12.4、令n=n+1,循环执行步骤12.2到步骤12.4,直至n=t+1,完成置乱过程,获得最终的密文图像C,其中,t为设定置乱次数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710546446.8A CN107481180B (zh) | 2017-07-06 | 2017-07-06 | 基于元胞自动机和分块压缩感知的图像加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710546446.8A CN107481180B (zh) | 2017-07-06 | 2017-07-06 | 基于元胞自动机和分块压缩感知的图像加密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107481180A CN107481180A (zh) | 2017-12-15 |
CN107481180B true CN107481180B (zh) | 2019-10-22 |
Family
ID=60596396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710546446.8A Active CN107481180B (zh) | 2017-07-06 | 2017-07-06 | 基于元胞自动机和分块压缩感知的图像加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107481180B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108040191B (zh) * | 2017-12-20 | 2019-07-23 | 北京邮电大学 | 基于哈希链压缩感知的图像加密和解密方法 |
CN108235029B (zh) * | 2018-01-05 | 2021-03-23 | 广西师范大学 | 一种基于压缩感知和蔡氏电路的图像压缩加密方法 |
CN108596851A (zh) * | 2018-04-26 | 2018-09-28 | 安徽理工大学 | 一种基于小波变化的压缩感知图像处理算法 |
CN112134681B (zh) * | 2020-08-19 | 2021-11-19 | 河南大学 | 一种图像压缩加密方法和云辅助解密方法 |
CN113852827B (zh) * | 2021-08-18 | 2023-10-17 | 河海大学 | 一种基于部分块匹配和半张量积的图像加密方法 |
CN114866811B (zh) * | 2022-03-31 | 2023-04-28 | 广州科拓科技有限公司 | 视频加密方法、装置及视频解密方法、装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105139331A (zh) * | 2015-07-23 | 2015-12-09 | 河海大学 | 一种面向比特的基于仿生元胞自动机的图像置乱方法 |
CN106023052A (zh) * | 2016-05-09 | 2016-10-12 | 河南大学 | 基于忆阻超混沌系统、元胞自动机和dna计算的图像加密算法 |
CN106600518A (zh) * | 2016-11-23 | 2017-04-26 | 河南大学 | 基于压缩感知的视觉安全和数据安全的图像加密、解密方法 |
-
2017
- 2017-07-06 CN CN201710546446.8A patent/CN107481180B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105139331A (zh) * | 2015-07-23 | 2015-12-09 | 河海大学 | 一种面向比特的基于仿生元胞自动机的图像置乱方法 |
CN106023052A (zh) * | 2016-05-09 | 2016-10-12 | 河南大学 | 基于忆阻超混沌系统、元胞自动机和dna计算的图像加密算法 |
CN106600518A (zh) * | 2016-11-23 | 2017-04-26 | 河南大学 | 基于压缩感知的视觉安全和数据安全的图像加密、解密方法 |
Non-Patent Citations (2)
Title |
---|
A novel cellular automata based technique for visual multimedia content encryption;Savvas A 等;《Optics Communications》;20100630;第1-11页 * |
基于自适应和多混沌系统的彩色图像压缩加密算法;丁文珂 等;《河南大学学报(自然科学版)》;20150316;第45卷(第2期);第223-228页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107481180A (zh) | 2017-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107481180B (zh) | 基于元胞自动机和分块压缩感知的图像加密方法 | |
CN111050020B (zh) | 基于压缩感知和双随机加密机制的彩色图像压缩加密方法 | |
Xian et al. | Fractal sorting matrix and its application on chaotic image encryption | |
François et al. | A new image encryption scheme based on a chaotic function | |
CN111105339B (zh) | 一种基于多维混沌系统和约瑟夫置乱的图像加密方法 | |
CN112637441B (zh) | 一种基于压缩感知的彩色图像压缩加密方法 | |
Zhang et al. | An image encryption scheme using self-adaptive selective permutation and inter-intra-block feedback diffusion | |
CN104751403B (zh) | 一种基于多混沌系统的明文相关图像加密方法 | |
CN110139000B (zh) | 基于压缩感知和生命游戏置乱的图像压缩加密方法 | |
CN109360141A (zh) | 基于压缩感知和三维猫映射的图像加密方法 | |
CN109379510A (zh) | 一种基于二维Logistic混沌系统算法的图像加密方法 | |
CN112202545B (zh) | 基于y型填充曲线和变步长约瑟夫遍历的图像加密方法 | |
Zhu et al. | Improving for chaotic image encryption algorithm based on logistic map | |
CN107330338B (zh) | 基于双混沌交叉扩散的彩色图像加密和解密方法及系统 | |
CN107590394B (zh) | 一种基于混沌映射和比特重组的图像加密方法 | |
CN114679250B (zh) | 基于混合混沌和Arnold变换的图像加密算法 | |
Jiang et al. | Image encryption algorithm for crowd data based on a new hyperchaotic system and Bernstein polynomial | |
Telem et al. | A simple and robust gray image encryption scheme using chaotic logistic map and artificial neural network | |
CN113129195A (zh) | 一种基于改进魔方变换和忆阻混沌的图像加密方法 | |
Zhao et al. | Primitively visually meaningful image encryption: A new paradigm | |
Mizher et al. | A simple flexible cryptosystem for meshed 3D objects and images | |
CN114389788B (zh) | 混合混沌与分块置乱的图像加密算法 | |
Wen et al. | Triple-image bit-level encryption algorithm based on double cross 2D hyperchaotic map | |
Ye et al. | Reversible image hiding algorithm based on compressive sensing and deep learning | |
Jiang et al. | Image encryption algorithm based on 2D‐CLICM chaotic system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |