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

基于m序列变换和混沌映射的图像加密算法

更新时间:2022-10-28 15:44:22


本文简介:基于m序列变换和混沌映射的图像加密算法是利用m序列发生器中移位寄存器状态的遍历性进行位置置换;同时,也利用了m序列的伪随机特性能很好地实现图像位置置乱。图像替代是改变图像每个像素点的值,使替代后的图像直方图近似于由随机序列组成的图像的直方图。这种方法可以有效地紊乱图像,使经替代处理后图像的相关性进一步降低,从而更好地保护图像数据。一、Logistic混沌映射Logistic混沌映射是一个源于人口统

基于m序列变换和混沌映射的图像加密算法

基于m序列变换和混沌映射的图像加密算法是利用m序列发生器中移位寄存器状态的遍历性进行位置置换;同时,也利用了m序列的伪随机特性能很好地实现图像位置置乱。图像替代是改变图像每个像素点的值,使替代后的图像直方图近似于由随机序列组成的图像的直方图。这种方法可以有效地紊乱图像,使经替代处理后图像的相关性进一步降低,从而更好地保护图像数据。

一、Logistic混沌映射

Logistic混沌映射是一个源于人口统计的动力学系统,其系统方程为:

基于m序列变换和混沌映射的图像加密算法

其中Xk为映射变量,μ为系统参量,它们的取值范围分别为:-1<Xk<1,0<μ≤2。Logistic映射是一个非常简单,却又具有重要意义的非线性迭代方程,当1.401155≤μ≤2时,系统处于混沌状态,此时系统对初始值xo和参数μ具有敏感依赖性,可用来提供数量众多,非相关,类随机而又确定的可再生信号,便于图像文件加密和解密使用。

二、m序列变换

1、m序列原理

伪随机序列可以通过一个佗级线性反馈移位寄存器得到,如图1所示。

基于m序列变换和混沌映射的图像加密算法

其中an-1,an-2,a1,ao为寄存器的状态,反馈线的连接状态用ci表示,ci=1表示反馈线接通(参与反馈),ci=o表示反馈线断开,但是cn=c0=1。寄存器的每一级输出经反馈相加后作为最高位的输入an。n级线性反馈移位寄存器可能产生的最长周期为2n-1,称这种最长的序列为m序列。线性反馈移位寄存器能产生m序列的充要条件是反馈移位寄存器的特征多项式为本原多项式。

2、m序列变换

根据m序列的理论,本文设计了一种基于m序列的图像位置置乱方法,即称之为m序列变换,其变换原理如下:

设数字图像为f(x,y),x=0,1,…,m-1,y=0,1,…,n-1,若m和n满足2kx-1<m< 2kx和2ky-1<n< 2ky,取一个k=kx+ky级线性反馈移存器的本原多项式,f(x)作为其特征方程,且移位寄存器的初始状态为非零状态。则数字图像,f(x,y)的水平坐标xr和垂直坐标yr可分别用前kx个和后ky个移位寄存器的状态来表示,其对应关系如式(2):

基于m序列变换和混沌映射的图像加密算法

其中r表示m序列由第0时刻开始的移位次数,T∈{o,1,2,…,2k -2}。而akx +ky—i,r和aky一j,r表示前kx个和后ky个移位寄存器在r时刻的状态。根据m序列原理可知Xr∈{o,
1,…,2kx-1)和yr={o,1,…,2ky-1),但xr和yr不能同时为零。在图像位置置乱中,xr和yr可作为原图像经过m序列变换后的水平和垂直坐标。显然,m序列在移位时得到的xr,
和yr有些超出了图像的尺寸界限,在m序列变换中对这些点要作舍弃处理。

设f'(x',y')表示f(x,y)经m序列变换后图像,其中x'=0,1,2,...M -1; y'=0,1,2,…N-1,则m序列变换算法描述如下:

(1)设f(x,y)的第1个像素点(o,o)映射到,f'(x',y')的除(o,o)外的任意一点(x0',y0'),x0'和y0'分别对应前kx个和后ky个移位寄存器的状态,其对应关系参照式(2)。

(2)m序列移位一次,并由移位寄存器状态用式(2)计算x1和y1,检查x1和y1是否满足式(3):

基于m序列变换和混沌映射的图像加密算法

若不满足,m序列继续移位,并由移位寄存器状态用式(2)计算x2和y2,检查x2和y2是否满足式(3),直到寻找到满足式(3)的xr和yr为止,并把此时的xr和yr记为x1'和y1',将f(x,y)的第2个像素点(0,1)映射到f''(x',y')的点(X1',y1')。

(3)m序列继续移位,按照步骤(2)方法对f(x,y)其它像素点映射到f'(x',y')中,m序列经过一个周期后,正好将f(x,y)除(M-1,N-1)点外的其它所有像素点都映射到f'(x',y')的对应点,最后将,f(x,y)的(M-1,N-1)点映射到f'(x',y')的(0,0)点。

上述过程实现了图像的m序列变换。当f(x)为本原多项式时,k=kx+ky级线性反馈移位寄存器的周期为2kx+ky一1,舍弃不同时满足0≤xr≤M -1和0≤yr≤N-1的映射点,再把移位寄存器的全零状态补上,上述m序列变换显然是一一映射,用它可实现图像的位置置乱。其图像置乱的结果取决于任意选定的x0'和y0',因此x0'和y0'可作为图像加解密的密钥。其中x0'和y0'的密钥空间分别是x0'∈{o,1,…,M-1)和y0'={o,1,…,N-1),但是x0'和y0'不能同时为零。所以,x0'和y0'总的密钥空间大小为M×N-1。

m序列变换对图像位置置乱非常有效,它具有映射的随机性,且取决于x0'和y0'。采用m序列变换对尺寸大小为207×250灰度图像进行位置置乱加密处理的实验结果如图2所示,在本文实验中取x0'=1o和y0'=21。

基于m序列变换和混沌映射的图像加密算法

很遗憾,在仅用m序列变换进行图像位置置乱的图像加密中,如果公布图像位置置乱的加密算法,此时x0'和y0'失去密钥作用。图3是x0'和y0'取不同值得到的解密图,尽管与原图像不尽相同,但经过简单的裁剪和拼接,就可恢复出原图像。因此,这类算法是不能公开的,其秘密不是完全寓于密钥,这不符合现代密码体制的规范。这是m序列变换的一个缺点。

基于m序列变换和混沌映射的图像加密算法
为了使得m序列变换适用于现代密码体制,本文设计了一种基于m序列变换与Logistic混沌映射相结合的图像加密算法,该算法能很好地避免上述问题,其加解密算法步骤如下。

三、基于m序列变换与混沌映射相结合的图像加解密算法

加密算法描述如下:

步骤1输入待加密图像,用矩阵表示为fo(i,j),i=0,1,…,M -1;j=0,1,…,N-I。设定图像加密的迭代次数r。

步骤2输入Logistic混沌映射的初始值x0,1,yo,2和参数μ1、μ2,采用式(1)迭代M×N+k次生成不同矩阵g1(i,j)和g2(i,j),其中o<i< M-1,o≤j≤N-1(说明:其原因是保证Logistic映射的初值敏感性和参数敏感性,矩阵g1(i,j)和g2(i,j)应该舍弃Logistic映射开始迭代七次的数据)。由于处理的信号是数字图像,一般要求矩阵g1(i,j)和g2(i,j)的元素值为正整数(如g1,g2∈[o,255]),可采用式(4)进行取整操作:

基于m序列变换和混沌映射的图像加密算法

其中u表示系统迭代次数,这两个矩阵用于图像灰度值替代操作的随机参数。输入的初始值x01,xo2和参数μ1,μ2即为图像加密的密钥之一。

步骤3 图像灰度值替代:对图像fo(i,j)逐点按照式(5)进行图像灰度值的替代得到f1(i,j):

基于m序列变换和混沌映射的图像加密算法

其中L为图像的灰度级。

步骤4图像置换,随机选择参数x0'和y0',采用上述的m序列变换对图像f1(i,j)进行位置置换处理,得到f2(i,j)。

步骤5重复步骤3和步骤4,直至迭代达到r次为止。

图像解密是图像加密的逆过程。

四、实验结果及其分析

在Matlab 6.0编程环境下采用本文算法对大小为128x 256的灰度图像进行加解密处理,其中xo1=0.4509, x02=0.87807,μ1=1.989,μ2=2,x0'=1o,y0'=21和r=1,其实结果如图4所示。

基于m序列变换和混沌映射的图像加密算法

1、统计分析

(1)直方图

由图5所示实验结果,很清楚表明,与原始图像直方图比较,加密图像直方图有很大的不同,它非常均匀。因此,经本文算法加密后图像在传输中具有更好的隐蔽性。

基于m序列变换和混沌映射的图像加密算法

(2)相关性

原始图像中相邻像素的相关性是很大的,为了破坏统计攻击,必须降低相邻像素的相关性。本文采用式(6)-式(7)计算原始图像和加密图像的M×N/2对像素点测试其在水平和垂直方向的相关系数,其测试值如表1所示。

基于m序列变换和混沌映射的图像加密算法

其中x和y表示两个相邻的像素灰度值,且在实际数值计算时则采用如式(8)—式(10)的E(x),D(x)和cov(x,y)的离散形式:

基于m序列变换和混沌映射的图像加密算法

为了描述方便,用rf0,rfm和rfen分别表示原始图像,m序列变换置乱后图像和本文算法加密后图像的相关系数。其相关系数如表1所示。

基于m序列变换和混沌映射的图像加密算法

2、Logistic映射的敏感性测试

在图6实验中,在只改变混沌系统的一个初始值或一个参数而其它参数都相同情况下,均不能正确解密,说明Logistic映射对初始值和系统参数具有敏感依赖性。因此,在未知准确密钥时,即使初始值x01,xo2和参数μ1,μ2己知,是难以将加密图像正确解密的。

基于m序列变换和混沌映射的图像加密算法

3、x0'和y0'对图像解密的敏感性测试

在图7实验中,若只改变端和玑中一个值情况下,则图像不能正确解密。它说明xL和y可以作为一个图像加密的密钥。与仅用m序列变换时使图像位置置乱加密算法x0'和y0'密钥失效相比,其不同在于解密图像尽管几个分块的图像相对位置不变,但我们可以从中理解信息的含义,只是图像的绝对位置改变了。由于我们在像素值替代时,引入了由混沌系统产生的位置参数,使x0'和y0'参数也具有参数敏感性。

基于m序列变换和混沌映射的图像加密算法

4、算法安全性能分析

从上述实验结果及其分析可知,必须正确输入密钥,即初始值x01,xo2,参数μ1、μ2,x0',y0'和迭代次数'全部正确才能对加密图像正确解密。因此本算法对图像加密的密钥空间在Matlab 6.0试验平台上可达到1070,其中参数x01,xo2,μ1、μ2的空间数量级均为1015,迭代次数r空间数量级为105。x0'和y0'的密钥空间与图像尺寸大小有关,其总的密钥空间大小为M×N-1,详见m序列变换算法说明。对尺寸大小为128×256的图像而言,其空间数量级为105。非授权者若用穷举法进行破密是很难在有限的时间内破密成功。

根据Kerckhoffs准则,加密算法要与密钥完全分开是现代密码体制的要求。上述实验结果表明本文提出的算法可以公开,完全符合现代密码体制的要求。

小知识之加密算法

数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。 该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。

立即下载试用

基于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/16332.html