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

基于混沌迭代映射的加密算法

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


本文简介:用混沌迭代映射进行加密的算法,就是将一个一维迭代序列的混沌吸引子区间分成若干个等长的小区域,每一个区域对应于一个不同的字符。对明文字符进行加密的时候,首先进行迭代,直到迭代后所得的值处于该字符所对应的区域时,记录下迭代次数作为密文。由于其实现简单而且密文为整数,非常适于计算机通讯和网络传输,从而受到了众多研究者的关注。一、基于混沌迭代映射的加密算法介绍由于文件都是以二进制的比特流的方式存储,不失一

基于混沌迭代映射的加密算法

用混沌迭代映射进行加密的算法,就是将一个一维迭代序列的混沌吸引子区间分成若干个等长的小区域,每一个区域对应于一个不同的字符。对明文字符进行加密的时候,首先进行迭代,直到迭代后所得的值处于该字符所对应的区域时,记录下迭代次数作为密文。由于其实现简单而且密文为整数,非常适于计算机通讯和网络传输,从而受到了众多研究者的关注。

一、基于混沌迭代映射的加密算法介绍

由于文件都是以二进制的比特流的方式存储,不失一般性,假定文件都是以ASCII编码的方式保存,考虑简单帐篷映射(Tent map)所描述的动力系统为:

基于混沌迭代映射的加密算法

控制参数r确定后,帐篷映射混沌吸引子的上界为r/2,下界为r(1-r/2)。在混沌吸引子区域[r(1-r/2),r/2]中选定一个区域[Xmin,Xmax](该区域也可包含整个吸引子),将其等分为N等分,得到N个等长的子区域S(i)=(Xmin+iε,Xmin+(i+1)ε)(0≤i≤N-1),子区域的长度为ε=(Xmax-Xmin)/N。引入一条与各子区域对应的序列P(i)(1≤i≤N-1),序列P(i)是由元素0和1组成的随机序列且0元素和1元素的个数相等,子区域S(i)和序列P(i)之间的元素一一对应。

以方程(1)的参数r以及子区域S(i)和序列P(i)之间的映射关系作为密钥。方程(1)的初始值X0为一随机数,用于代表当前的加密进程,X0对密码分析者是完全公开的。以要加密的明文为“HUST……”为例,其ASCII码为“01001000010101010101001101010100…”。在每一次加密进程中,我们采取如下加密方式:

(1)首先产生一随机数X0∈(0,1),用以代表当前的加密进程。

(2)在方程(1)中根据初始值X0和密钥r,开始迭代。

(3)去掉最初的N0次过渡态。对于明文的第一个比特“0”,方程(1)继续迭代,当迭代结果进入到子区域S(i),且该子区域所对应的序列P(i)=0,记录下当前的迭代次数C1作为密文,总的迭代次数为N0+C1。对于明文的第一个比特“1”,方程(1)继续迭代,当迭代结果进入到其中某一子区域S(i),该子区域所对应的序列P(i)=1,记录下当前的迭代次数C2作为密文,总的迭代次数为N0+C1+C2。同上,对所有的明文消息进行加密,得到密文序列C1,C2,…,CN。

解密过程与加密过程类似,接收方通过随机数X0以及密钥r,利用方程(1)进行迭代,即可得到相应的明文。

二、仿真结果与分析

假定要加密的明文为“HUST”,仿真结果如图1所示。

基于混沌迭代映射的加密算法横坐标表示要加密的明文,纵坐标表示加密的密文。混沌吸引子区域[r(1-r/2),r/2]中选定的区域[Xmin,Xmax]为[0.2,0.8]。图1为我们对密钥r作微小改变后的加密结果(10-14),随机数X0=0.20070918091856,密钥r的取值见图1右上角。

由仿真结果可见,密文对密钥非常敏感(10-14),这对算法的安全性是至关重要的一个方面。同时,由于在我们的算法中采取动态加密的技术,即使是同一明文在不同的加密进程中,得到的是完全不同的密文,密文对代表加密进程的随机数x0的变化同样非常敏感,从而有效地防止了采用的通过已知明文攻击方式。在加密效率方面,由于我们采取了直接对明文的ASCII码进行加密,从而使加密速度大为提高。

事实上,由混沌序列的遍历性可知,对每一个明文字符,在我们所采取的算法中混沌序列的迭代次数是(2/256)×8。

文中以一维Tent映射为例进行了仿真,该算法同样适用于高维的混沌系统,利用高维混沌吸引子所具有的丰富的密钥空间将更进一步增强加密算法的安全性,具有很强的一般性。

小知识之ASCII

ASCII是基于拉丁字母的一套电脑编码系统。它主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。

立即下载试用

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