混沌加密的思想自提出以后,混沌加密算法得到广泛的研究,但其中绝大多数是基于单一混沌映射系统的加密算法,如一维的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)空间代价

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

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

小知识香浓定理

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