安企神电脑监控软件 在线试用
扫码咨询客服
安企神电脑监控软件、局域网监控软件
首页
功能介绍
产品简介
下载中心
帮助中心
客户列表
关于安企神

基于Lorenz三维超混沌系统的图像加密方法

更新时间:2022-10-28 15:43:39


本文简介:鉴于传统图像加密技术和低维混沌加密技术各有其局限性,我们提出了一种利用Lorenz系统产生混沌序列,并结合混沌镜像加密方法的三维超混沌图像加密方法。一、三维Lorenz混沌系统1、Lorenz系统Lorenz系统是经典的三维混沌系统,以Lorenz系统生成加密混沌序列的优点在于:一是其结构较低维混沌系统复杂,产生的实数值序列更不可预测;二是系统的三个初始值和三个参数都可以作为生成加密混沌序列的种子

基于Lorenz三维超混沌系统的图像加密方法

鉴于传统图像加密技术和低维混沌加密技术各有其局限性,我们提出了一种利用Lorenz系统产生混沌序列,并结合混沌镜像加密方法的三维超混沌图像加密方法。

一、三维Lorenz混沌系统

1、Lorenz系统

Lorenz系统是经典的三维混沌系统,以Lorenz系统生成加密混沌序列的优点在于:一是其结构较低维混沌系统复杂,产生的实数值序列更不可预测;二是系统的三个初始值和三个参数都可以作为生成加密混沌序列的种子密钥,产生的密钥空间大大高于低维混沌系统;三是对系统输出的实值混沌序列进行处理,可采用单变量或多变量组合的加密混沌序列,这样序列密码的设计更灵活。

Lorenz系统的动力学方程式为:

基于Lorenz三维超混沌系统的图像加密方法

式(1)中,β,σ_,x为系统参数,典型的值为β=8/3,σ=10,x=28,在保持β,σ不变,x>24.74时Lorenz系统进入混沌状态。可用数值积分来求解微分方程(1)。采用4阶Runge-Kutta法进行求解,步长为0.01,得到随机性良好的数值序列x(n),n为数值积分算法的循环次数。Lorenz是三维混沌系统,所以得到的x(n)是一个三维的实值数组,有x1,x2,x3三个分量。

2、生成二进制序列

首先我们对Lorenz微分方程产生的实值序列进行处理,抽取二进制序列用于图像加密。定义一个量化处理的符号函数:

基于Lorenz三维超混沌系统的图像加密方法

其中阈值a选取x(k)的平均值。量化后得到一个三维的二进制混沌序列:

基于Lorenz三维超混沌系统的图像加密方法

量化处理是一个不可逆的过程,处理后的混沌序列中不包含原混沌系统的信息,因此利用混沌时间序列进行分析的攻击方法失败。

经过反复实验,下面对二进制序列性能进行分析:

(1)频数检验,用来测试序列中是否有大致相同数量的0、1,小于阈值则通过检验。

(2)序列检验,用来检验序列中出现的相同或不相同的相邻元素的概率,小于阈值则通过检验。经过反复实验,序列通过了显著水平为5%的频数检验、序列检验,由此可以证明二进制序列的随机性。如表1所示。

基于Lorenz三维超混沌系统的图像加密方法

二、改进的镜像变换

镜像变换是一种十分简单的图像加密方法。混沌镜像加密算法是利用图像数据的点阵特征,由密钥产生混沌序列对图像进行加密的空间域算法。

对大小为M*N的灰度图像,定义I(x,y)为图像在(x,y)位置的灰度值,其中x#[1,M]y#[1,N]。定义置换操作swap(I(a,b),I(c,d))交换I(a,b)和I(c,d)。是否执行swap操作由密钥产生的混沌序列b(i)决定。图1所示的是一种简单的镜像变换。

基于Lorenz三维超混沌系统的图像加密方法

模式1中为swap(I(,ij),I(,ij+N/2)),模式2中为sawp(I(,ij),I(i+M/2,j))。可以证明运用混沌二值序列结合镜像加密的算法,可能的加密结果有21/2*M*N。例如模式一中有1/2*M*N个镜像点,每个镜像点是否置换又有两种可能性,所以可能的加密结果有21/2*M*N种。

图像进行镜像变换的关键在于镜子的位置。镜子可以水平放置,也可以垂直放置。当镜子水平放置时,同一列内的象素进行变换,当镜子垂直放置时,同一行内的象素进行变换。该文的算法采用移动镜子的位置,并以数w,q代替N/2,M/2,以加强变换的效果。

例如swap(I(,ij),I(mod(95+,i256)+1,j)),mod(,ij)为求模运算。若b(1)=1执行swap操作,这样I(1,1)与I(96,1)交换了位置。若b(96)=1执行swap操作,I(96,1)与I(195,1)互换位置,这样增加了置换复杂度,有效避免了变换的规律可循。选择w须考虑到避免循环的出现,避免I(,ij)经过一系列的变换后回到原位置的可能性。算法考虑的镜像点为M*N个,可能加密结果为2M*N。

由于Lorenz系统产生的是三维的混沌序列,单纯利用其中的一维进行加密,加密的效果并不理想。如何利用三维的混沌序列加密二维的图像矩阵成为该文所解决的问题关键。可以考虑将二维的矩阵变为三维数据,如图2所示。

基于Lorenz三维超混沌系统的图像加密方法

对于图像来说很容易实现,只需将M*N的图像分块,将分块的索引排列即可形成三维的数组数据。将256*256的图像分成1024个8*8的块,按照i=1,2,3__1024编号图像块的索引,并排列块。加密时在x1轴方向和x2轴方向上按上述的镜像加密规则变换,在x3轴上方法类似,只是改为对块进行操作。为保证加密效果,在x1轴和x2轴上仍对M*N的整个二维平面图像操作,而不是对块内进行镜像变换。经过x1轴x2轴x3轴三个方向的立体变换,象素置乱的范围较大,可有效抵抗基于统计的攻击。

三、基于Lorenz三维超混沌系统的图像加密算法

基于上面介绍的镜像变换和三维超混沌Lorenz系统产生的混沌序列,我们提出如下的混沌图像加密算法。

图像加密算法:

(1)输入密钥x0={1.1840;1.3627;1.2519}由Lorenz系统产生三维的混沌的实值序列x(n),n为迭代次数。

(2)实值混沌序列预处理。用量化处理的符号函数(2)经过量化处理后得到二进制伪随机序列b(k),k=1,2,3,...n。同样b(k)也是一个三维的数组。

(3)读入256*256标准的lena灰度图作为待加密的图像。开始如下变换:

*在x1轴的方向上进行变换,若b1(i)=1则将I(,ij)与I(mod(w+,i256)+1,j)互换,否则不变。

*在x2轴的方向上进行变换,若b2(i)=1则将I(,ji)与I(,jmod(q+,i256)+1)互换,否则不变。

*在x3轴的方向上进行变换,若b3(i)=1则将第i块和第(mod(r+,i1024)+1)块互换,否则不变。整数w,q,r的选取不能使变换的位置重复。算法实现中令w=18,q=89,r=105。

(4)输出加密后的图像,并在网络中传输。将密钥x0通过安全的可信赖信道传输。

图像解密算法为图像加密算法的逆过程,图像解密算法:

(1)输入解密密钥,由Lorenz系统产生三维的混沌实值序列x(n)。

(2)实值混沌序列预处理。用量化处理的符号函数(2)经过量化处理后得到二进制伪随机序列b(k),k=1,2,3,...n。

(3)读入待解密的图像。开始如下变换:

*在x3轴的方向上进行变换,若b3(i)=1则将第i块和第(mod(r+,i1024)+1)块互换,否则不变。

*在x2轴的方向上进行变换,若b2(i)=1则将I(,ji)与I(,jmod(q+,i256)+1)互换,否则不变。

*在x1轴的方向上进行变换,若b1(i)=1则将I(,ij)与I(mod(w+,i256)+1,j)互换,否则不变。

(4)得到解密后的图像,密钥正确即可恢复出原图像。密钥错误,则无法正确解密。

四、实验和结论

这节将验证以上提出的基于三维Lorenz系统和镜像变换的加密算法的有效性,并进行安全分析。我们对256*256的lena图像文件加密,如图3中的a所示。输入密钥{1.1840;1.3627;1.2519}后得到的密图如图3中的b所示,若用错误密钥{1.1841;1.3627;1.2519}解密后的图像为图3中的c所示。d为正确解密后恢复的原图。由此可见,即使是密钥中的一维有微小的变化,也不能正确解密出原图。图3中的e,f分别为对原图像和加密后的图像上同一位置的线段上各个象素灰度值的分布显示。由此可见,加密后将原图的灰度值分布得更均匀更随机。由上面的算法分析可知,对于M*N的图像加密后,可能的加密结果为22*M*N+1024。该算法可以有效抵抗基于统计的攻击和利用混沌时间序列进行分析的攻击方法。且算法不必利用混沌序列生成置换矩阵,只须将实值混沌序列转换为二进制的混沌序列,预处理的时间短。

基于Lorenz三维超混沌系统的图像加密方法

小知识之二进制

二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统。

立即下载试用

基于3DES加密算法的研究

关于加密方法,我们之前有介绍过很多,最近大出风头的秀尔算法和DES、MD5等等一直占据鳌头,今天我们来介绍一个小众的加密算法——就是3DES。

加密算法主要通过软件和硬件两种方式来实现,软件的实现方式具有灵活方便的优点,同时也具有加密速度受限制的缺点。采用硬件实现加密算法是实际应用中必须要考虑到的问题。目前经常采用硬件FPGA等来实现,该种实验方式具有处理速度快的特点,但是对系统的复杂度要求较高。

嵌入式微处理器具有实现简单,系统集成度高,体积小,易于移植等众多优点,因此有必要研发基于嵌入式微处理器的加密算法硬件设备,在此提出一种基于ARM处理器的3DES的硬件实现方法。

3DES算法原理

DES是美国国家标准局颁布的数据加密算法,作为世界范围内的公开加密标准已经使用了20多年。随着计算机处理速度的提高,DES算法面临着一些安全威胁,DES采用56位密钥,曾经有人用穷举搜索法对DES进行过密钥搜索攻击。

近年来也有人提出了差分和线性攻击方案,该方案的实施必须有超高速计算机的支持。为了增强DES算法应对差分或线性攻击的可能性,人们提出了一系列改进方案,采用增加密钥长度是一种可行的途径。

为了增加密钥的长度,可将分组密码进行级联,在不同的密钥作用下,连续多次对一组明文进行加密。其中,最有效的方法是使用三重DES加密,它可使加密密钥长度扩展到128位,在提高加密强度的同时,足以应付目前的各种攻击。

DES是一个分组加密算法,它以64位为分组对数据加密。64位的分组明文序列作为加密算法的输入,经过16轮加密得到64位的密文序列。加密的密钥为64位,实际长度为56位,DES算法的保密性取决于密钥。DES对64位的明文分组进行操作。

首先通过一个初始置换IP,将64位的明文分成各32位长的左半部分和右半部分,该初始置换只在16轮加密过程进行之前进行一次。在经过初始置换操作后,对得到的64位序列进行16轮加密运算,这些运算被称为函数f,在运算过程中,输入数据与密钥结合。经过16轮运算后,左、右两部分合在一起得到一个64位的输出序列,该序列再经过一个末尾置换IP-1,获得最终的加密结果。过程如图1所示。

在每一轮加密过程中,函数厂的运算包括以下四个部分:

首先进行密钥序列移位,从移位后的56位密钥序列中选出48位;

然后通过一个扩展置换将输入序列32位的右半部分扩展成48位,再与48位的轮密钥进行异或运算;

再者通过8个s盒将异或运算后获得的48位序列替代成一个32位序列;

最后对32位序列应用置换P进行置换变换,得到-厂的32位输出序列。将函数厂的输出与输入序列的左半部分进行异或运算后的结果作为新一轮加密过程输入序列的右半部分,当前输入序列的右半部分作为新一轮加密过程输入序列的左半部分。

上述过程重复操作16次,便实现了DES的16轮加密运算。

假设Bi是第i轮计算的结果,则Bi为一个64位的序列,Li和Ri分别是Bi的左半部分和右半部分,Ki是第i轮的48位密钥,且f是实现代换、置换及密钥异或等运算的函数,那么每一轮加密的具体过程为:

以上操作的详细过程如图2所示。

在3DES加密算法中,加密过程用两个不同的密钥K1和K2对一个分组消息进行三次DES加密。首先使用第一个密钥进行DES加密,然后使用第二个密钥对第一次的结果进行DES解密,最后使用第一个密钥对第二次的结果进行DES加密。

解密过程首先使用第一个密钥进行DES解密,然后使用第二个密钥对第一次的结果进行DES加密,最后再使用第一个密钥对第二次的结果进行DES解密。

DES算法的密钥长度是56位,三重DES算法的密钥长度是112位,加密强度显著增强,可以很好地应付各种攻击,目前尚没有可行的攻击方法,应用3DES的加密系统具有很大的实用价值。

本文为收集整理,文章部分观点不代表本站观点,如有侵权或其它问题请反馈客服。https://www.wgj7.com/cjwt/16282.html