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

基于Logistic混沌序列的灰度图像加密算法

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


本文简介:随着Internet技术与多媒体技术的飞速发展,多媒体通信逐渐成为人们进行信息交流的重要手段。与此同时,图像数据的安全性变得越来越重要。在各种不同的图像加密技术中,基于混沌理论的加密技术,正成为图像加密研究的热点。那么我们以Logistic混沌系统为基础,提出了一种新的图像加密算法,通过实验分析表明,该算法具有良好的加密性能。一、Logistic混沌系统混沌是一种非线性动力学规律控制的行为,表现为

基于Logistic混沌序列的灰度图像加密算法

随着Internet技术与多媒体技术的飞速发展,多媒体通信逐渐成为人们进行信息交流的重要手段。与此同时,图像数据的安全性变得越来越重要。在各种不同的图像加密技术中,基于混沌理论的加密技术,正成为图像加密研究的热点。那么我们以Logistic混沌系统为基础,提出了一种新的图像加密算法,通过实验分析表明,该算法具有良好的加密性能。

一、Logistic混沌系统

混沌是一种非线性动力学规律控制的行为,表现为对初始值和系统参数的敏感性、白噪声的统计特性和区间遍历特性,具有很好的密码学特性。

一个一维离散时间非线性动力系统定义如下:

基于Logistic混沌序列的灰度图像加密算法

其中,xk∈V(k=0,1,2,…),称为状态;而τ:V→V是一个映射,将当前状态xk映射到下一个状态xk+1。如果从一个初始值x0开始,反复应用τ就得到一个序列{xk},k=0,1,2,…,这一序列称为该离散时间动力系统的一条轨迹。

一类非常简单却被广泛研究的动力系统是Logistic映射,其定义如下:

基于Logistic混沌序列的灰度图像加密算法

其中,0≤μ≤4称为分枝参数,xk∈(0,1),定义同上。混沌动力系统的研究工作指出,当3.5699456…<μ≤4时,Logistic映射工作于混沌态。也就是说,由初始条件x0在Logistic映射的作用下所产生的序列{xk},k=0,1,2,…是非周期的、不收敛的并对初始值非常敏感。对于一般的混沌映射xk+1=f(xk),概率密度ρ(x)可由Perron-Froenious方程得到,即:

基于Logistic混沌序列的灰度图像加密算法

当μ=4,则Logistic映射所生成的序列的概率分布函数为:

基于Logistic混沌序列的灰度图像加密算法

Logistic映射所产生的混沌序列轨迹点的均值是:

基于Logistic混沌序列的灰度图像加密算法

对于相关性,独立选取两个初始值x0和y0,则相应序列的互相关函数为:

基于Logistic混沌序列的灰度图像加密算法

而序列的自相关函数值趋向于0,类似于δ函数,接近白噪声的特征。

Logistic序列的以上特性表明,尽管混沌动力系统具有确定性,但其遍历统计特性接近于白噪声,并具有形式简单,对初始条件敏感等诸多特性。

二、基于混沌序列的异或矩阵

1、异或矩阵的构造

由于灰度图像一般为256级,其值在0~255之间,为此,要将混沌序列做一些适当的修正,把(0,1)区间上的值映射到集{0,1,2,…,255},这可由MATLAB7.0中的floor()函数来完成,即:

基于Logistic混沌序列的灰度图像加密算法

其中xi是由式(1)通过迭代所得到的混沌序列,floor()函数为向负方向舍入取整函数。这样,由混沌实数列和floor()函数可得到整数序列x′1,x′2,x′3…其中xi′∈{0,1,2,…,255},i=1,2,…。

对于给定异或矩阵的大小m1×n1(m1、n1为大于1的整数)和给定的正整数k,在所得的整数列x′1,x′2,x′3…中依次选取x′k+1,x′k+2,…,x′k+m1×n1,并将它们按长度n1逐段截取,排成加密矩阵Pkm1×n1,其中pi,j∈{0,1,2,…,255},i=1,2,…,m1;j=1,2,…,n1。

2、利用异或矩阵对图像加密/解密

异或加密算法可看作如下函数:

基于Logistic混沌序列的灰度图像加密算法

其中,Cm1×n1为待加密矩阵,Pkm1×n1为异或矩阵,“+”为两个矩阵中对应像素值的逐比特异或运算。异或解密算法可看作如下函数:

基于Logistic混沌序列的灰度图像加密算法

三、基于混沌序列的置换矩阵

1、置换矩阵的构造

对于给定置换矩阵的大小m2×n2(m2、n2为大于1的整数)和给定的正整数k,在整数列x′1,x′2,x′3…中依次选取x′k+1,x′k+2,…,x′k+m2×n2,组成一个长度为m2×n2的序列,对此序列按从小到大的顺序进行排序,由各个元素位置的变化可以得到一个排序置换,此置换可以在MATLAB7.0中利用排序函数“sort()”直接得到,其长度为m2×n2,将此置换序列按长度n2逐段截取,并排成置换矩阵Zkm2×n2,其中zi,j∈{1,2,3,…,m2×n2},i=1,2,…,m2;j=1,2,…,n2。

2、置换方法置换算法

可简单地看作如下函数:

基于Logistic混沌序列的灰度图像加密算法

其中,Am2×n2为待加密矩阵,Zkm2×n2为置换矩阵,在Zkm2×n2中,若zi,j=r,且r=p×n2+q,则将Ap,q的值赋给Bi,j,其中i=1,2,…,m2;j=1,2,…,n2;p∈{0,1,…,m2-1},q∈{1,2,…,n2},r∈{0,1,2,…,m2×n2}。

四、基于混沌序列的图像加密/解密算法

1、加密算法算法步骤如下

(1)选取密钥K=(x0,μ0,k1,k2,m1,n1,m2,n2),其中,x0∈(0,1),3.5699456…<μ0≤4;k1、k2、m1、n1、m2、n2均为正整数,且m1与m2不能互相整除,n1与n2不能互相整除,令k=k1;

(2)对于一个图像的像素矩阵F,令M=mul(m1,m2),N=mul(n1,n2)(其中mul(x,y)表示x与y的最小公倍数),在图像矩阵的边界填充像素值255(白色),增加F的行数和列数,使它们分别是M和N的整数倍,设生成的图像像素矩阵为F1;

(3)利用密钥和Logistic映射分别产生异或矩阵Pkm1×n1和置换矩阵Zkm2×n2;

(4)将像素矩阵F1按m1×n1的大小进行分块,并利用异或矩阵Pkm1×n1进行逐块加密,将得到的加密分块再组合成像素图像,设其为F2;

(5)将像素矩阵F2按m2×n2的大小进行分块,并利用置换矩阵Zkm2×n2进行逐块置换,将得到的加密分块再组合成加密图像,设其为G;

(6)令k=k2,重复步骤(3)~(5)。

2、解密算法

解密算法是加密算法的逆运算,在解密算法中,首先令k=k2,异或矩阵与加密中的异或矩阵相同,置换矩阵是加密算法中置换矩阵的逆置换,在解密图像的过程中,先进行置换运算,再进行异或运算。

五、仿真实验及算法分析

1、仿真实验

利用MATLAB7.0软件,结合上述算法,对“lena.jpg”图像进行了加/解密的仿真实验,密钥选取为:K=(0.78354,4,10000,20000,50,50,8,8),结果如图1所示。

基于Logistic混沌序列的灰度图像加密算法

图1中,图像“jiamihou.jpg”为图像“lena.jpg”的加密结果,显然已看不出图像“lena.jpg”的任何信息,加密取得了较好的效果;图像“jiemihou.jpg”为对图像“jiamihou.jpg”的解密结果,通过比较得知,两个图像的像素值完全相同,说明文中提出的加密算法没有任何信息丢失;图像“cuomiyao.jpg”为x0=0.78355时的解密结果,显然,对于x0仅仅相差0.00001时,由解密结果得不到图像“lena.jpg”的任何信息,说明该算法对x0具有高度的敏感性。

2、算法分析

(1)该算法的密钥为K=(x0,μ0,k1,k2,m1,n1,m2,n2),x0可以取值于(0,1)之间的任何值,其密钥空间无穷大,μ0、k1、k2、m1、n1、m2、n2的不确定,更极大地增加了密钥空间,从而,对密钥K的穷举攻击变得不可行。

(2)算法中异或矩阵的使用,较好地增强了图像加密效果,但是异或矩阵的安全性很低,经不起唯密文攻击,更经不起已知或选择明文攻击;然而,置换矩阵对攻击者来说是未知的,故它具有较强的抗差分攻击和抗线性攻击的能力,从而较好地增强了整个算法的安全性;异或矩阵和置换矩阵的先后使用,使得整个加密算法既有较好的加密效果,又有较强的安全性。

(3)k1、k2的不同,使得两个异或矩阵各不相同,进一步增强了对图像文件加密的效果;而它们的不同也使得两个置换矩阵各不相同,从而极大地提高了整个算法的安全性。

以混沌理论为基础,文章利用Logistic混沌映射给出了一种灰度图像加密算法,通过仿真实验和分析表明,该算法具有较好的加密效果和较强的安全性。

小知识之灰度图像

灰度图像通常是在单个电磁波频谱(如可见光)内测量每个像素的亮度得到的。用于显示的灰度图像通常用每个采样像素8位的非线性尺度来保存,这样可以有256级灰度。这种精度刚刚能够避免可见的条带失真,并且非常易于编程。

立即下载试用

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