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

基于高维混沌图像加密算法的安全性和效率的改善

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


本文简介:随着网络和计算机技术的发展,多媒体安全的研究成为了人们的热点,特别是利用混沌的优点来保护数字图像被认为是图像加密中很有希望的研究领域之一。有专家提出了一种基于高维混沌的图像加密算法,其过程包括两个阶段:首先是利用Arnold猫映射对原图像像素的位置进行置乱,其次是利用Lorenz混沌系统产生的值来加密置乱后的像素值,最后,通过以上两个部分可以得到密文图像。但是这种图像加密算法在图像安全性上有许多优

基于高维混沌图像加密算法的安全性和效率的改善

随着网络和计算机技术的发展,多媒体安全的研究成为了人们的热点,特别是利用混沌的优点来保护数字图像被认为是图像加密中很有希望的研究领域之一。有专家提出了一种基于高维混沌的图像加密算法,其过程包括两个阶段:首先是利用Arnold猫映射对原图像像素的位置进行置乱,其次是利用Lorenz混沌系统产生的值来加密置乱后的像素值,最后,通过以上两个部分可以得到密文图像。

但是这种图像加密算法在图像安全性上有许多优点包括密钥敏感性和大密钥空间等,同时也存在着一些能够被攻击者利用的缺陷,那么我们今天就针对这种高维混沌图像加密算法做一些列改进,让它更有利于图像文件加密。

一、基于高维混沌图像加密算法所隐含的缺点

基于高维混沌图像加密算法存在两个缺陷:

1)(0,0)像素位置没能被改变同时位置的置乱和灰度值的替换之间缺少联系。

由于Arnold猫映射固有的缺点,所以原算法无论经过多少轮的迭代,原图像(0,0)像素位置始终没有被改变,即如果(x0,y0)=(0,0),经过n轮迭代,(xn0,yn0)=(0,0)。同时,位置的置乱和像素的替换是逐个像素单独进行,而在两个像素之间却缺少关联。因此,由于该加密算法对加密图像缺少必要的扩散效果,这样对于选择明文攻击来说是可行的,攻击者可以利用一些特殊的图像(例如两幅只有一个像素不同的图像)来进行算法的分析,从而找出该图像加密算法中像素置乱的规则。图1说明了当两幅明文图像中有一个像素点有变化时,用原算法进行加密得到的密文图像也只有一个像素有变化。其中明文图像为标准Girl灰度图像,系统参数和初始条件如下:对于Arnold猫映射:p=25,q=5,迭代次数M=7,对于Lorenz混沌系统:x0=1.8552,y0=1.2254,z0=1.2545。

基于高维混沌图像加密算法的安全性和效率的改善

2)所产生的加密数据流仅依赖于Lorenz混沌系统的初始条件而与明文没有关联。

原算法所产生的加密数据流{bx,by,bz}仅依赖于Lorenz混沌系统的初始条件x0,y0,z0,而与图像明文没有任何关联。这样,当混沌系统的初始条件没有改变,所对应的加密数据流{bx,by,bz}也不会发生变化。这对于抵抗已知明文攻击来说非常脆弱。例如,一个攻击者可以利用大量已知的明文和密文对(di,ci)(注:这些明文和密文对分别来自于d={d1,d2,......,dN×N}和c={c1,c2,......,cN×N},其中d是图像像素经过置乱后由图像像素值所排列成的二进制序列流,c是密文序列流)来产生加密所需要的数据流,从而可以解密用此密钥加密的密文图像。其数据流恢复的过程如下:

首先,把原加密算法中图像像素值替换公式进行等价变换。

基于高维混沌图像加密算法的安全性和效率的改善

可以注意到,经过上面的变换,等式左边的运算结果是一致的。

第二,把式(1)中的结果再进行以下等价变换,就可以得到解密用的密钥数据流(其中i=1,2,......代表对Lorenz混沌系统进行第i次迭代):

基于高维混沌图像加密算法的安全性和效率的改善

如果利用选择明文攻击的特点来考虑这个缺陷,当两幅图像用相同的密钥进行加密(其置乱规则已知),我们就可以充分利用其中一幅图像的明文和密文对异或后产生的数据流by⊕bx,bz⊕by,bx⊕bz来恢复另一幅明文图像。其原因在于当攻击者得到数据流by⊕bx,bz⊕by,bx⊕bz之后,就等于得到了原算法的密钥。图2给出了利用选择明文攻击的例子(加密密钥同上对第一个缺陷的分析),可以得出,当用相同的密钥加密两幅不同的图像时(标准Lena和Girl灰度图像),如果从一幅图像中得到了数据流by⊕bx,bz⊕by,bx⊕bz,则另一幅图像就可以完全恢复出来。

基于高维混沌图像加密算法的安全性和效率的改善

二、对原算法的安全性和效率的改进

1、安全性改进设计

根据前面我们介绍的内容,为了解决原算法在安全性上的缺陷,我们提出了以下4点改进方法:

1)由于Arnold猫映射在进行图像置乱中对于(0,0)位置上的像素不起任何作用,因此,可把(0,0)位置上的像素和一个固定位置(i,j)(0<i≤N,0<j≤N)的像素在每轮迭代过程后进行交换。这样,前一轮(0,0)位置的像素就可以在下一轮迭代中被置乱。其中(i,j)可以被看作密钥进行控制。

2)针对原算法中像素位置置乱和像素值替换之间缺少关联的缺点,对原算法中两个加密步骤统一进行多轮迭代,即每一轮迭代都会进行位置置乱和像素值的替代。

3)由于原算法中加密数据流{bx,by,bz}的产生只是简单地依赖于Lorenz混沌系统的初始条件,这样很有可能被攻击者所利用,因此,应使数据流不但依赖于Lorenz混沌系统,同时也与明文相关。

4)对于加密数据流{bx,by,bz},在改进设计中,它的产生应该以一个链式结构递推进行,即在任意两个像素之间都应该有关联。这样,经过多轮迭代之后,就能取得较好的置乱和扩散效果。

2、加密速度改进设计

对于原算法,如果只进行以上的改进,则安全性将得到很大程度的提高。但是,要想取得较为满意的置乱和扩散效果,则需要进行多轮(轮数n>42)加密,这显然不符合实际应用中图像加密的需要,其原因就在于此算法的置乱效果只依赖于置乱阶段,而扩散效果也只依赖于扩散阶段。

为了在较少的加密轮数就能取得令人满意的加密效果,我们可以通过在算法框架结构中添加一些简单的运算操作(如查表操作,异或操作)来实现。在本加密算法的改进中,两个简单的异或操作(XOR)被分别引入到了置乱阶段的前面和后面,而其他的操作步骤没有发生变化。这样,在第一个阶段,像素位置的置乱和像素值的替换是同时进行的,而第二个阶段的像素变换也增加了扩散的效果。这样改进的结果是扩散效果不单是依赖于扩散阶段,而且还与置乱阶段有联系。因此,在较少的加密轮数下就能取得同样的加密效果,而加密速度却得到了很大的提高。对于这两个异或操作来说,第一个异或操作是把前一个被处理后的像素值和当前的明文像素值进行运算(顺序是按行从上到下,从左到右进行),其中第一个像素要和一个固定的密钥值进行异或,而最后一个处理后的像素要和(2,2)像素进行异或运算。对于第二个异或操作,运算步骤基本相同,只是像素值是按列从左到右,从上到下逐像素进行。式(3)给出了两个异或运算的基本结构:

基于高维混沌图像加密算法的安全性和效率的改善

其中pri,j是当前明文像素,vri,j是经过第一次XOR处理后的像素值,vci,j是经过置乱和第二次XOR处理后的像素值,S和S*是两个用户控制的密钥固定值,Per[x]是在第二次XOR处理前的置乱操作,v*2,2是(2,2)点经过处理后的最终像素值(其中0<i≤N,0<j≤N)。以上的简单XOR操作能有效的改变图像中每个像素加密后的像素值,达到很好的扩散效果。因此,这样的结构非常有利于实现图像的加密。

三、改进后的加密和解密算法

根据前面对原算法在安全性和速度上进行的有效改进设计,本节列出了改进算法中每一轮的加解密具体步骤,其中密钥包括Arnold猫映射的系统参数p,q,两次异或操作的初始值S,S*,Lorenz混沌系统的系统初始值x0,y0,z0,(0,0)像素交换位置(i,j)以及迭代轮数M。关于改进加密算法,其基本的加密结构如图3。

基于高维混沌图像加密算法的安全性和效率的改善

1、加密算法

步骤1、输入原始明文图像K(大小N×N)和密钥,并进行第一个XOR运算,得到变换后的图像。接着把变换图像运用Arnold猫映射进行一次置乱,并交换(0,0)位置和(i,j)位置的像素。然后完成第二个XOR运算,得到图像D。

步骤2、把图像D排列成一维向量Z={Z1,Z2,Z3,......,ZN×N},其中每个元素是十进制的像素值。

步骤3、连续迭代Lorenz混沌系统(首先进行初始迭代,迭代次数大于某个正整数),得到三个运算值xi,yi,zi,i=1,2,......,然后把其运用于式(4),并结合向量Z来求得加密数据流{bx,by,bz},则所得加密数据流不仅依赖于Lorenz混沌系统,而且还与图像D有关联,其中前两个值Z-1和Z0可设置为Z-1=127,Z0=255,n=4,abs(*)代表取绝对值,round(*)代表四舍五入进行取整,mod(*)为取模运算。

基于高维混沌图像加密算法的安全性和效率的改善

步骤4、图像D与加密数据流{bx,by,bz}按式(5)进行异或运算,其中i=1,2,......代表对Lorenz混沌系统进行第i次迭代,bitxor(*)返回两数异或后得到的结果。Lorenz混沌系统对向量Z中每个元素都产生对应的运算值xi,yi,zi,i=1,2,......。经过以上操作从而可以得到对应的密文向量c={c1,c2,c3,......,cN×N}。

基于高维混沌图像加密算法的安全性和效率的改善

步骤5、重复以上步骤,直到加密迭代轮数到M为止,此时所输出的图像就是密文图像。

2、解密算法

本图像改进加密算法的解密过程即为加密过程的逆过程,其中首先需要将密文图像转变为一维向量,然后利用连续迭代Lorenz混沌系统所产生的值来恢复向量Z={Z1,Z2,Z3,......,ZN×N}。其过程可以用式(6)表示:

基于高维混沌图像加密算法的安全性和效率的改善

最后再进行反向的两个XOR运算和置乱运算,这样如此多轮迭代,便可得到最终的明文图像。

本文提出了不同情形下的基于双线性映射的身份认证方案,实现用户与用户之间的身份认证,在用户认证过程中并不需要KGC的介入,而且第二种情形可以用于在不同KGC注册的用户之间进行身份认证识别,使得该方案非常适合于现代战机敌我识别等需要在个体间进行认证的应用领域。与已有方案相比,本文的方案需要更少计算量和通信次数,具有更好的效率。所提出的认证方案在椭圆曲线离散对数问题不可解的假设下,能有效抵抗假冒用户攻击,冒充攻击和重放攻击,具有很好的安全性能。

小知识之线性映射

在数学中,线性映射(也叫做线性变换或线性算子)是在两个向量空间之间的函数,它保持向量加法和标量乘法的运算。术语“线性变换”特别常用,尤其是对从向量空间到自身的线性映射(自同态)。

立即下载试用

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