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

基于混沌数列变换的图像加密算法

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


本文简介:针对现有的数字图像加密算法存在算法复杂、运算成本大以及安全性不高等问题,提出了一种基于混沌数列变换的数字图像加密算法。该算法通过对Logistic和Hybrid两种不同的混沌序列进行变换,从像素灰度值以及像素位置两方面对图像进行加密。一、序列及变换1、两种混沌序列混沌序列作为一种伪随机序列由于具有遍历性高、对初值敏感等特性被广泛应用于数字信息的加密中,本文通过对两种混沌序列的不同变换达到图像像素点

基于混沌数列变换的图像加密算法

针对现有的数字图像加密算法存在算法复杂、运算成本大以及安全性不高等问题,提出了一种基于混沌数列变换的数字图像加密算法。该算法通过对Logistic和Hybrid两种不同的混沌序列进行变换,从像素灰度值以及像素位置两方面对图像进行加密。

一、序列及变换

1、两种混沌序列

混沌序列作为一种伪随机序列由于具有遍历性高、对初值敏感等特性被广泛应用于数字信息的加密中,本文通过对两种混沌序列的不同变换达到图像像素点位置变换和灰度值变换两方面的目的从而实现对数字图像的加密操作。这两种混沌序列分别是Logistic混沌序列和Hybrid混沌序列。首先,Logistic序列是混沌系统中很有代表性的混沌映射,它被广泛应用于混沌应用中,其定义如式(1)所示,其中初值和参数的设置为O<μ0≤4,0<x0<1,k∈N,由此数列所得的混沌序列xk在[0,1]之间无规律地震荡变化:

基于混沌数列变换的图像加密算法

第二,Hybrid序列是一种新构造的序列,该序列利用构造的Hybrid混沌映射,通过周期性改变混沌迭代初值来产生混沌伪随机序列。该映射定义如式(2)所示:

基于混沌数列变换的图像加密算法

此映射不但继承了Logistic映射产生方式简单易行和混沌效果理想等特点而且还能增加了混沌系统的安全性。该映射的参数取值为0<xo<1,O<u1<4,0<u2<4,O<b<l,k∈N时产生序列的混沌效果最好,与Logistic序列不同的是,此数列的产生值在[-1,1]间以x轴为对称轴震荡变换。两种混沌系统的相同点是,在初值相差甚微的情况下,当k大于一定值时,所得zt均会出现很大的差别,这个特点充分体现了混沌系统对初值敏感的特性,使安全性得到了提高。

2、序列变换

由于数字图像可以看作是由每一个像素点所组成的一个二维矩阵,能够实现对二维矩阵的变换即可达到对图像的加密目的,因此,本文旨在将上文所得的混沌数列进行矩阵变换来实现对于数字图像每一个像素点的灰度值置换加密和整体图像像素的位置混乱。首先,针对图像具体像素点的灰度值变换(图像灰度值在0-255之间)问题中,采用第一个Logistic数列变换实现。本文所提出的加密方法需要一个与待加密图像等大的二位矩阵来进行与原图像的异或处理。由于Logistic混沌系统产生的数列值在O到1之间,为了达到数值的范围要求,该变换的方法为将所得的每一个数列值扩大然后对256取模,这样可以保证所得随机整数数列在0至255之间变换,根据图像的尺寸将所得随机数列转换成为同等大小的二维整数序列,计算方法如式(3)所示:

基于混沌数列变换的图像加密算法

式中:xk-Logistic变换所得序列,yk-所需的异或矩阵元素值,由于本文所做实验针对的图像像素灰度值为O-255所以对256取模,对于其他种类图像的加密可以根据具体图像的灰度信息改变取模值。通过式(3)的变换即可保证每个异或值在0至255之间,然后将所得到的新数列构造成适应图像大小的二维矩阵。

第二种针对Hybrid序列的变化是用来实现像素位置的混乱处理,该加密方法所要达到的目的及根据矩阵乘法,达到对行列两方面的变化。在这个过程中需要构造这样的置换矩阵,所以对单位矩阵的置换规则通过Hybrid混沌映射实现。因此根据Hybrid的伪随机特性可以构造一个置换群对单位矩阵进行变换进而实现对二维图像的加密操作。

定义1 设数列∞是由Hybrid混沌系统产生的一维随机序列,则Hybrid随机置换群GH为:

基于混沌数列变换的图像加密算法

且k∈N,其中nk为将xk,升序排列后所对应的序列号。

此定义的应用在于通过Hybrid混沌映射产生的置换群可以对单位矩阵的行顺序进行置换,这样就能够构造出所需要的置换二维矩阵。例如取xo=0.76,u1=1.7,u2=2.2,b=0.79的Hybrid映射时,所得的6元置换群为:

基于混沌数列变换的图像加密算法

如图1所示,通过这个置换群就可以把单位矩阵(a)转化成置换矩阵(b)。

基于混沌数列变换的图像加密算法

这两种对于混沌序列的变换方法在加密方法中起到了重要的作用。

二、加密算法

1、加密过程

本文提出的数字图像的加密算法分为两个步骤:第一步;灰度值加密,具体步骤为将原始图像的每个像素点的值同上述所得取模后的矩阵进行按位异或处理。设待加密数字图像A大小为m*n,异或矩阵W由式(3)的yk构成,t(m,n)代表异或后的图像像素值,则异或过程如式(4)所示:

基于混沌数列变换的图像加密算法

该步骤中异或处理是将十进制整数变换成二进制数进行对应像素点的按位异或。异或后将结果转换成十进制数构成加密图像。

第二步,像素位置置乱变换。该变换具体实现是对于异或后图像进行一次位置置乱变换。利用混沌序列构成需要的置换群,通过置换群将符合图像大小的单位矩阵的行顺序进行置乱变化,设图像A尺寸为m*n,根据定义1选择不同的初值和参数构成大小为m元和n元的置换群,分别用这两个置换群将大小为m*m和nxn的单位矩阵E1和E2进行行置换处理从而得到所需要的置乱行列矩阵Em和En,该步骤的加密过程如式(5)所示,E代表此步骤加密后的图像.Ef代表通过式(4)的运算所得t(m,n)构成的矩阵,则位置变换加密过程为:

基于混沌数列变换的图像加密算法

综合以上两步骤,所得的图像E就是最终的加密图像。

2、解密过程

由于按位异或和矩阵乘法均具有可逆性,所以此算法的解密算法也分为两步,是上述方法的逆运算,首先将加密后的图像E进行位置还原,设矩阵Et'为位置还原后的图像矩阵,根据行列式的性质特征以及矩阵乘法之间存在可逆变换关系,所以该步骤如式(6)所示:

基于混沌数列变换的图像加密算法

此时,图像Et'像素位置已经恢复到原始图像的位置,再对图像进行灰度值的异或处理即可完成图像重建,u(m,n)为还原后图像的像素点灰度值,如式(7)所示:

基于混沌数列变换的图像加密算法

从上述公式可以看出,图像加密和解密是一个对称的逆过程,整个加解密过程可以归纳成一个图像处理系统如图2所示。整个算法的加密解密均分为两步且对称,其中在像素点的异或处理中使用的异或矩阵为同一个矩阵。

基于混沌数列变换的图像加密算法

三、仿真实验结果

该部分将算法进行了仿真模拟实验,应用matlab软件作为开发工具编程实现了所设计的基于Logistic和Hybrid映射数列变换的数字图像加密算法从而充分验证了算法的可行性。本实验分别针对不同尺寸、形状的图像以及彩色图像进行实验,如图3、图4、图5分别列出对256* 256的lenna图像、533*400大小的风景图和RGB彩色图像进行的加密算法和解密算法的实验结果。三幅图中图(a)表示原始图像、图(b)表示加密后的图像、图(c)为解密图像,从所给实验结果图可以看出,此算法使用范围广泛,对于不同尺寸的图像均可达到加密和解密目的,而且该方法不仅适用于灰度图像。RGB的彩色图像同样可以用该方法进行加密并且加密效果良好。从图(b)加密图像看不能从加密图像中辨识出原始图像信息,而图(c)证明该算法的解密部分能够将原始图像成功还原出来,解密图像效果良好。

基于混沌数列变换的图像加密算法

 

基于混沌数列变换的图像加密算法

四、攻击操作

1、统计攻击分析

从图像统计分析角度分析,图像的统计信息在一定程度上可以曝露出原始图像的灰度值分布规律,所以能否改变原始图像的统计分布也是图像加密至关重要的指标。该算法的第一个步骤提到的对于图像灰度值的异或目的即是为了抵御攻击方进行灰度统计攻击。如图6所示,从实验结果可以得出,由于进行了异或处理的步骤,使所得加密图像灰度分布非常均匀,使攻击者不能够分析出原始灰度值分布范围,进而增加了算法的安全性。

基于混沌数列变换的图像加密算法

2、切割攻击

切割攻击是图像信息传递过程中常遇到的攻击操作,收到此类攻击后图像部分信息缺失,使得图像恢复过程受到阻碍,本实验旨在对加密图像进行了切割操作的基础上仍然能够将图像恢复出来。如图7所示,根据控制变量思想,图7 (a)、图7(b)的为对加密所得图像进行不同位置的切割,图7 (c)、图7(d)是对其他尺寸图像和彩色图像进行的变换。第一行显示的是加密图像切割的位置以及切割之后的效果图。第二行显示的是恢复图像的效果,从中可以看出,切割操作对于图像恢复并没有造成很大的影响,原始图像主要信息可以被恢复,辨识度很高而且效果良好。

基于混沌数列变换的图像加密算法

3、噪声攻击

信息的传递过程中,被加入噪声也是一种普遍现象,而对于图像传递而言常见的噪声有椒盐噪声和高斯噪声等。

该算法针对这两种噪声攻击进行仿真实验,证明了算法可以抵御噪声攻击,实验结果如图8、图9所示,两幅图的第一行显示的是分别对加密图像加入椒盐噪声和高斯噪声的图像,第二行是从干扰后的图像载体中恢复出来的图像,重建图像虽然能够看出噪声干扰但是仍然能够识别出原始图像主要信息,恢复结果比较理想。

基于混沌数列变换的图像加密算法

 

基于混沌数列变换的图像加密算法

4、滤波攻击

滤波处理常作为用于信号平滑处理,在图像信息的传递中也成为普遍的干扰攻击。该实验以常见的高斯低通滤波为例,利用大小为3*3模板的高斯低通滤波对加密图像进行攻击操作。实验结果如图10所示,第一行是经过高斯低通滤波的加密图像,第二行为通过解密算法后相应的重建图像,从恢复图像的效果上可见,重建图像受到了部分干扰,但原始图像的主要信息仍可辨认,恢复效果很好,说明该算法可以抵御此种攻击。

基于混沌数列变换的图像加密算法

五、安全性及时间分析

1、密钥空间分析

本文所提出的加密算法中,密钥有两部分构成,一部分是对于Logistic数列形成的初值ro和参数阳的选取,另一部分密钥则是混沌序列Hybrid的初值及其它参数的选取。取值符合范围即可,由此可见两种密钥的组合数量能够抗击穷举攻击,因此,该算法在应用领域具有很高的安全性。

2、时间分析

算法的运行时间是运行成本的重要指标,该加密算法运行时间短,能够达到应用要求。如表1所示,是在如下配置的机器所完成的时间计算:windows 7,Intel (R) core(TM)2 Duo CPU T5750@2.OOGHz,内存2GB。该表反应了对于不同图像的加密解密时间,从表中可以看出该算法运行效率很高,极大的减低了运行成本,更能适应正常应用对算法时间的要求。

基于混沌数列变换的图像加密算法

小知识之椒盐噪声

椒盐噪声也称为脉冲噪声,是图像中经常见到的一种噪声,它是一种随机出现的白点或者黑点,可能是亮的区域有黑色像素或是在暗的区域有白色像素(或是两者皆有)。盐和胡椒噪声的成因可能是影像讯号受到突如其来的强烈干扰而产生、类比数位转换器或位元传输错误等。例如失效的感应器导致像素值为最小值,饱和的感应器导致像素值为最大值。

立即下载试用

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