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

基于双混沌互扰系统的图像加密算法

更新时间:2022-10-28 15:45:26


本文简介:针对低维混沌系统有可能退化为周期问题,以及高维混沌系统计算量大的缺陷,提出基于双混沌互扰系统的图像加密算法。通过两个简单的Logistic映射间的互扰,构造一个双混沌互扰系统。双混沌互扰系统的最大特点是扰动项同时包括常数扰动项和随机扰动项,不仅保证了系统必要的复杂性,而且增大了系统参数的取值范围。一、双混沌系统互扰方案及混沌实值序列生成在生态学中一些非常简单的确定性的数学模型却能产生看似随机的行为

基于双混沌互扰系统的图像加密算法

针对低维混沌系统有可能退化为周期问题,以及高维混沌系统计算量大的缺陷,提出基于双混沌互扰系统的图像加密算法。通过两个简单的Logistic映射间的互扰,构造一个双混沌互扰系统。双混沌互扰系统的最大特点是扰动项同时包括常数扰动项和随机扰动项,不仅保证了系统必要的复杂性,而且增大了系统参数的取值范围。

一、双混沌系统互扰方案及混沌实值序列生成

在生态学中一些非常简单的确定性的数学模型却能产生看似随机的行为。如:

基于双混沌互扰系统的图像加密算法

称之为人口方程,即著名的Logistic模型。其中xn∈(0,1),当控制参数3 569946--≤μ≤4时,Logistic映射表现出混沌的特性。

1、双混沌系统互扰方案

从两个简单的Logistic映射混沌系统模型出发,设计混沌系统互扰方案,迭代映射如下:

基于双混沌互扰系统的图像加密算法

其中:mod为求余运算;x0、y0为混沌的初始值;cr1、cr2为常数,称之为常数扰动项;sr1(n+1)、sr2(n+1)为随机扰动项;μ1、μ2是混沌系统的控制参数。

基于双混沌互扰系统的图像加密算法

其中:floor是向下取整运算:mean是序列平均值:m1、n1、m2、n2为随机扰动项的控制参数。随机扰动项的随机性由混沌序列本身决定,即将混沌序列值与混沌序列的平均值相比较。

当系统参数cr1=e0.3,cr2=e0.4,m1=m2=2,n1=n2=8时,初值x0=0.1,y0=0.2。Logistic映射是在初始值x0∈(0,1),控制参数3,569946--≤μ≤4条件下才出现混沌现象,但在本文的双混沌互扰方案中,对初始值的取值范围没有任何限制,混沌系统互扰映射在控制参数μ1;1,μ2;2时各自都出现混沌现象,x,y∈(0,2),如图1的分岔图所示。

基于双混沌互扰系统的图像加密算法

通过混沌系统间的扰动后,双混沌互扰系统变得更复杂,更加不可预测。与常用的超混沌系统和高维混沌系统相比较,本文构造的双混沌互扰系统具有以下优势:

1)构造混沌互扰系统时,可以任意选择相同或不同的多个混沌系统(不只限于两个混沌系统),构造方法灵活,且易于实现;

2)随机扰动项的随机性可以人为地控制,在不知道随机扰动项的随机性如何决定的情况下,对破译者来说亦增加了难度;

3)增加了系统参数的个数,扩展了初始条件的取值范围,进一步增大了密钥空间,安全性得到提高。

2、混沌实值序列的产生

由两个简单的Logistic映射混沌系统经过常数扰动和随机扰动后,得到两个混沌序列分别为:{x:x1,x2,x3,…,xn},{y:y1,y2,y3,…,yn},其中n为序列的长度。 定义1,用于产生二值序列的混沌序列z为:

基于双混沌互扰系统的图像加密算法

式中j=1,2 3,…。

最终混沌序列提由Logistic映射互扰后得到的混度序{x:x1,x2,x3,…,xn},{y:y1,y2,y3,…,yn}交叉组合而成,为了消除初始值对混沌序列过渡部分的影响,选取迭代1000次后的序列值构成最终混沌序列z。

当参数为μ1=60,μ2=70,cr1=e0.3,cr2=e0.4,m1=m2=2,n1=n2=8时,初值x0=0.1,y0=0.2,系统参数不变,只是初始值x0或y0发生0.000001的微小变化,得到的混沌序列的差异相当明显。实验中选取了混沌序列的前40个序列值对比,如图2所示。

基于双混沌互扰系统的图像加密算法

图2中,实线表示的是初始值未发生变化的混沌序列值,虚线表示的是初始值发生0.000001微小变化后的混沌序列值,实验结果也表明了由双混沌互扰系统产生的混沌序列对初始值具有十分的敏感性。

二、混沌二值序列的产生

由混沌实值序列转换为二进制序列的方法有多种。有将混沌序列值与混沌序列平均值进行大小比较,然后量化成0,1二值序列。有用混沌系统生成两个混沌序列,比较两个序列对应项的大小,然后量化成0,1二值序列。有基于一个四维混沌系统生成四个混沌序列,将混沌序列划分小区间,接着在小区间内取平均值后与0比较大小,然后量化成二值序列。 本文采取的二值量化算法如下:

1)设定双混沌互扰系统的初始值小粥,经过系统迭代映射产生混沌序列z;

2)提取混沌序列神每个混沌实值小数部分的2、4、6,组成一个新的3位整数,比如:0.372 685189—765,由这些整数组成新的整数序列I;

3)将整数序列对256求余预算,即I'= mod(I,256),比如765—253,这样就得到一个新的整数序列I',且序列I'每个值都在区间[0,255];

4)将得到的整数序列I'换成二进制序列{I':253→11111101},这样就完成了由混沌序列考z值序列s的转换; 所得到的整数序列,I'的直方图如图3所示。

基于双混沌互扰系统的图像加密算法

可以看出,整数序列I'分布不够均匀,区间[225,255]的数明显偏少,这将影响图像加密效果。因此对量化算法进行改进,改进的量化算法如下:

1)设定双混沌互扰系统的初始值孙J6,经过系统迭代映射产生混沌序列z;

2)提取混沌序列神每个混沌实值小数部分的2、4、6位,组成一个新的3位整数,比如:0.372685189—765,由这些整数组成新的整数序列I1;提取混沌序列神每个混沌实值小数部分的3、5、7位,组成一个新的3整数,比如:0.372685189—281,由这些整数组成新的整数序列I2;

3)将整数序列I1、I2分别对256求余预算,即I1'=mod(I',256),比如765—253;,I'=mod(I2,256),比如281—25。这样就得到两个新的整数序列I1,I2且序列I1,I2的每 个值都在区间[0,255]内;

4)将得到的整数序列I1'、I2'的每个整数都转换成二进制,例如{I1':253—11111101},{I2':25—00011001}。分别提取二进制序列后面4位交叉排列,组成新的二进制序列S那么就有{S:1101 8 1001—11100011},以及与二值序列对应的整数序列I; 改进后得到的二值序列转换成整数序列I的直方图如图4所示。

基于双混沌互扰系统的图像加密算法

可以看出,改进后得到的整数序列I更加均匀。

三、加密流程及仿真试验

1、加密流程

1)设定双混沌互扰系统的参数及初始值x0,y0,经过系统迭代映射产生混沌序列z。

2)置换:由前面的方法对混沌序列量化得到混沌二值序列S同时将明文图像转换成二进制,然后从混沌序列S中每次取8个数与明文图像像素二进制值“异或”运算,最后转
换成十进制整数,这样就得到置换后的密文图像。

3)置乱混沌序列从小到大排列成Z',z'与z'排列前后之间的位置就形成了一组对应关系。将置换后的密文图像按照z'与z'的位置对应关系重排,得到最终密文图像。

解密就是加密的逆运算,只有正确的密钥才能得到正确的恢复图像。

2、仿真实验

根据上节的加密流程用Matlab进行图像加解密实验仿真。试验中选取标准的Lena图像作为待加密的明文图像,如图6(a)所示,其灰度直方图如图6(e)所示。

基于双混沌互扰系统的图像加密算法

设定参数μ1=60,μ2=70,cr1=e0.3,cr2=e0.4,m1=m2=2,n1=n2=8时初始值x=0.1,y=0.2。按照的加密流程对明文图像加密,得到最终的密文图像如图6(b)所示,图6(f)是密文图像灰度直方图。通过原始图像与加密图像的灰度直方图对比可以看出,加密图像的像素灰度直方图非常均匀,说明二值序列能有效地掩盖明文信息。

小知识之MATLAB

MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

立即下载试用

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