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

基于双混沌系统的数字混沌加密算法

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


本文简介:混沌加密的思想自提出以后,混沌加密算法得到广泛的研究,但其中绝大多数是基于单一混沌映射系统的加密算法,如一维的Logistic映射,二维的Smale映射、Henon映射或三维的Lorenz系统等。本文在对双混沌系统应用于加密算法进行了有益的尝试和分析后,提出了基于双混沌动力系统的加密算法。该算法能够被应用于文件加密、实时数据流加密和商品的防伪等。一、两种离散混沌系统:Cat映射和Logistic映

基于双混沌系统的数字混沌加密算法

混沌加密的思想自提出以后,混沌加密算法得到广泛的研究,但其中绝大多数是基于单一混沌映射系统的加密算法,如一维的Logistic映射,二维的Smale映射、Henon映射或三维的Lorenz系统等。本文在对双混沌系统应用于加密算法进行了有益的尝试和分析后,提出了基于双混沌动力系统的加密算法。该算法能够被应用于文件加密、实时数据流加密和商品的防伪等。

一、两种离散混沌系统:Cat映射和Logistic映射

1、Cat映射

Cat映射具有较好的混沌特性,其几何学解释如图所示:

基于双混沌系统的数字混沌加密算法

从图中可以看出,Cat映射每次的运算,都经历了以下过程:正方形的点空间首先被线性拉伸,然后通过模运算分割折叠。

Cat映射是一个二维的可逆混沌映射,其动力学方程由下式表示:

基于双混沌系统的数字混沌加密算法

由于其线性转换矩阵行列式为1,所以Cat映射又被称为是区域保留的。其李雅普诺夫指数δ1,δ2为:基于双混沌系统的数字混沌加密算法基于双混沌系统的数字混沌加密算法当a,b均为1时,就是经典的ArnoldCat映射。

2、Logistic映射

Logistic映射为自治一维离散动态系统,用一维非线性迭代函数来表征混沌行为,通过这一混沌函数可以通过微小地改变调节参数的值来产生完全不同的伪随机序列。

Logistic映射动力学方程如下:

基于双混沌系统的数字混沌加密算法

其中μ为控制参量,μ值确定后,由任意初值X0∈(0,1),可迭代出一个确定的时间序列。对于不同的μ值,系统(2)将呈现不同的特性,随着参数μ的增加,系统(1)不断地经历倍周期分叉,最终达到混沌。称当μ=4时由系统(1)产生的序列具有随机性、规律性、遍历性、对初值的敏感性等典型的混沌特征。针对Logistic映射自身存在的问题,又出现了了一种改进的Logistic映射动力学方程如(3):

基于双混沌系统的数字混沌加密算法

其中μ为[1,4]之间的一个实数,X0∈(0,1)。

二、基于双混沌系统的数字混沌加密算法设计

基于单一混沌系统的数字混沌加密算法,其设计的关键是对混沌映射的选择,不同的混沌映射在算法实现复杂度,算法时间和空间复杂度以及安全性等方面都有较大差异。典型的一维混沌映射有Logistic映射,其算法实现简单,运算速度较快,但密钥空间较小,安全性差。而研究较多的三维混沌Lorenz系统,其算法实现复杂,运算速度较Logistic映射慢,但密钥空间很大,安全性较高。本文所提出双混沌加密算法就是从算法的实现、速度和安全性考虑,既能达到较小的时间和空间复杂度,又能有较大的密钥空间和较高的安全性,而且能避免单混沌系统可能出现的信息泄漏问题。

加密解密流程图如图:

基于双混沌系统的数字混沌加密算法

可以选定Cat映射和Logistic映射的初始值x0,y0,x 0和三个内部参数a,b, 作为密钥,算法中的xn,yn,x n为Cat映射和Logistic映射的中间迭代结果,具体加密算法如下:

1、针对式(1)和(3),先选定a,b,三个参数和x0,y0,x’0三个初始值作为密钥。

2、各迭代200次,得到xn,yn,x’n。

3、计算xn×yn×xn’×100,并取乘积的第2,4,6,8,10位组成一个五位十进制数与256取余,得到一个8位密钥流,与明文做异或运算,就形成一个密文字节。

4、迭代5次(从运算速度考虑),得到xn+1,yn+1,x’n+1,反复执行3、4直到所有明文字节都加密完毕。

在此,对算法作一些说明,步骤2迭代200次的目的是使Cat映射和Logistic映射都进入混沌迭代状态。从加密算法的安全性和运算速度考虑,经过测试,步骤4在每次生成一个8位密钥之后迭代5次是比较合理的。

算法流程图如图:

基于双混沌系统的数字混沌加密算法

三、基于双混沌系统的数字混沌加密算法分析

1、安全性分析

一个好的加密算法应该能够抵御已知的解密攻击,如选择(已知)明文攻击、唯密文攻击、统计分析攻击等。以下是我对该算法所做的一些安全性分析:

(1)密钥空间分析

加密算法选定三个内部控制参数和三个初始状态作为密钥,密钥空间是很大的。即使在已知加密算法使用Cat映射和Logistic映射的情况下,攻击绕过穷举密钥攻击转而通过穷举间接获得三个内部控制参数也是不可能实现的:因为a,b参数的选择并没有范围限制,而 是一个在[1,4]内的实数。

(2)密钥敏感性分析

对Cat映射和Logistic映射的迭代初始值x0,y0,x’0分别增加10-13,并观察其密钥序列,通过统计分析发现所得到的随机序列与原始随机序列平均有99.9999%不相同。通过Matlab绘制波形图,如下图所示。

基于双混沌系统的数字混沌加密算法

进行测试时,各内部参数设置如下:a=1;b=1;a=3.835

左图的迭代初始值为:

Cat映射:X0=0.123456123456;

Y0=0.654321654321Logistic

映射:X0=0.492673492673

右图的迭代初始值为:

Cat映射:X0=0.1234561234561(增加10-13);

Y0=0.654321654321

Logistic映射:X0=0.492673492673

(3)统计学分析

根据香农理论,任何的加密密码都可以通过基于统计分析的方法来解密。加密算法的统计学特性可以通过对比加密前后的柱形图进行分析。通过分析可得:加密文本的统计学特性发生了很大的改变。如图所示。

基于双混沌系统的数字混沌加密算法

左图原始文本如下:

基于双混沌系统的数字混沌加密算法

右图加密文本如下:

基于双混沌系统的数字混沌加密算法

由于字符在计算机中是以补码来表示,所以当计算的值大于01111111(127)时,就变为不可显示的字符。因此在进行统计学分析时,对应的负值要加256转换为实际值进行分析。

2、性能分析

通过对比基于Lorenz系统的三维连续混沌加密算法进行了以下性能分析:

(1)时间代价

基于Lorenz系统连续混沌加密算法由于其连续数值的量化过程是一种不可逆变换,因此具有较好的安全性。但是,其需要经过数值积分,量化处理,因此运算速度较慢,不适合应用于实时性较高的场合。基于双混沌系统的离散混沌加密算法,由于采用了Cat映射和Logistic映射,其动力学方程简单,计算机处理的都是简单的基本运算。其加密速度与单纯Logistic映射加密算法相当,而且加密强度很高。

(2)空间代价

空间代价分为算法实现的静止空间和运行态空间。静止空间指算法变成程序后本身所占用的空间,一般表现为执行代码的长度。混沌加密算法比一般对称或不对称加密算法占有更少的静止空间。而且,由于其主要运算过程是通过迭代完成的,因此实现运行态空间运行时占用的空间很少。在空间代价上,本算法也是比较优秀的。

本文提出了一种基于双混沌系统的数字混沌加密算法,并对算法的性能进行了分析。可以看出,数字混沌加密算法可以使用基于双混沌系统或多混沌系统的混合输出作为密钥生成器,尽可能不暴露混沌轨道的直观信息和统计信息,从而增强抵御选择(已知)明文攻击。从算法实现和运行速度考虑,混沌加密算法应该尽可能地使用简单的混沌系统。

小知识香浓定理

香农定理描述了有限带宽、有随机热噪声信道的最大传输速率与信道带宽、信号噪声功率比之间的关系。

立即下载试用

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