首页 > 范文大全 > 正文

一种双混沌系统加密算法的设计与实现

开篇:润墨网以专业的文秘视角,为您筛选了一篇一种双混沌系统加密算法的设计与实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:为了使混沌加密算法具有较高安全性的同时又具有较好的运算效率,提出了基于Logistic映射、帐篷映射产生两个混沌密码序列,然后对读取的明文串进行加密的算法。采用Logistic映射和帐篷映射的复合混沌系统,其迭代过程不仅具有对初始条件的敏感性,而且具有依照复合序列选择迭代函数的灵活性,因此迭代过程还具有一定的随机性,是构造密码体系的理想工具。结果表明,该算法所产生的序列具有非常大的密钥空间,具有很好的加密强度和运算效率。

关键词:混沌;明文;密文;Logistic映射;帐篷映射;混沌加密

中图分类号:TN918文献标识码:B文章编号:1004373X(2008)1908803

Design and Implementation of Encryption Algorithm Based on Double Chaotic System

ZI Hong,ZHAO Yan

(Heilongjiang Institute of Science and Technology,Harbin,150027,China)

Abstract:In order to increase the security of chaos-based encryption algorithm while not affecting the performance,two chaotic secret-key sequences are generated based on the Logistic map and the tent map,which is used to encrypt text sequences.Using the compound chaos system that makes up of Logistic mapping and tent,its iterative process not only possesses sensitivity to the initial condition,but also possesses the flexibility of selection iterate function according to the multiplexed sequence,and is the ideal tool constituting the password system.The result shows that the algorithm has numerous key space,good security features and better performance.

Keywords:chaos;plaintext;ciphertext;Logistic map;tent map;chaotic encryption

由于混沌系统对初始条件和混沌参数非常敏感以及生成的混沌序列具有非周期性和伪随机性的特性,近年来在信息加密领域得到了较多的应用。但是大多数混沌序列发生器都是采用单混沌系统。一维线性映射具有良好的速度和密钥空间,但它又相对较简单,很容易破译;而采用高维的超混沌系统构成的密码序列,又因为其构造复杂而不利于实际应用。因此,要达到密码学上所要求的密码强度,作为密钥的混沌流发生器需要仔细设计来抵抗这些攻击。针对以上情况,本文以Logistic混沌映射和平面方体上的帐篷映射在特定初值和参数下的混沌特性来设计一种混沌序列密码算法。

1 Logistic映射和帐篷映射

为增强算法的保密性和安全性,利用Logistic映射和帐篷映射来作为两个混沌发生器,产生混沌序列对明文进行交替加密。

(1) Logistic映射是一个一维映射,其动力学方程为:

xn+1=μxn(1-xn)

(1)

式中,0≤xn≤1,且当3.569 945 6

(2) 帐篷映射是一个二维映射,其定义为:

f(x)=x/α, x∈[0,α)

(1-x)/(1-α),x∈[α,1]

(2)

式中,0

该映射是混沌的,并具有均匀的分布函数[1],文献[2]提出了一种二维混沌映射――平面方体上的帐篷映射,并证明了该映射产生的序列是混沌的,具有均匀的分布函数和良好的相关性。

设I0=[0,1]×[0,1]为平面上的单位方体,定义平面上方体I0上的帐篷映射:

fα,β:I0I0为:

fα,β(x,y)=xα,yβ x∈[0,α],y∈[0,β]

1-x1-α,yβx∈(α,1],y∈[0,β]

xα,1-y1-βx∈[0,α],y∈(β,1]

1-x1-α,1-y1-βx∈(α,1],y∈(β,1]

(3)

其中,0

2 算法的设计

在本算法中采用参数μ=3.876 2,α=0.4,β=0.6,初始密钥变为(x0,x′0,y′0)。为实现用Logistic映射和帐篷映射产生混沌序列对明文进行加密,本文选取的是迭代值小数点后第4,5,6位有效数字组成的整数N(0

算法步骤如下:

(1) 输入初始值x0,x′0,y′0。

(2) 把x0,x′0,y′0用Logistic系统迭代1 000次,得到xi,x′i,y′i。

(3) 读取明/密文。

(4) 若N

(5) 将混沌密钥字节与明/密文字节进行异或运算,得到密/明文字节。

(6) 判断加/解密完毕否。若加/解密完,则退出;否则转(3)。

算法的流程图如图1所示。

图1 算法流程图

3 算法的软件实现

软件的设计基于Windows XP平台,Visual C++6.0开发环境,具体的加密和解密过程为:选择需要加密或解密的文件后,在口令对话框中输入9个字符的加密或解密口令,软件根据字符串自动生成密码序列,执行加密或解密操作,并可以保存加/解密后的文件。

在软件实现时,其中一个很关键的技术是如何将用户输入的口令(或称为密码)转换成加密系统的密钥并且转换是惟一的。本软件中,加密口令由9个字符构成,下面介绍如何将加密口令映射成初始密钥(x0,x′0,y′0),其中x0,x′0,y′0的精度取为double型。

设有一为9个字符的口令字符串s=p1p2p3p4p5p6p7p8p9,将该字符分成s1=p1p2p3,s2=p4p5p6,s3=p7p8p9。将s1,s2,s3中的每个字符转换成ACSII值,考虑到计算机中可打印的字符的ACSII码值是[32,126],因此将字符串的字符看作是[32,126]上的整数。其中每个整数占3位,不足3位的在前面补0,然后连接起来拼成(0,1)上的实数(精度为10-9),就可以作为初始密钥(x0,x′0,y′0)。

例如:口令字符串为s=2#desk+!-,分解字符串s1=2#d,s2=esk,s3=+!-,则按照上面的转换规则得,

x0=0.050 035 100,x′0=0.101 115 107,y′0=0.043 033 045。即字符串s1对应Logistic映射的迭代初始值x0,而s2和s3分别对应帐篷映射的迭代初始值x′0和y′0。

图2就是本程序的界面。

图2 双混沌序列加/解密程序界面

该程序不仅仅可以对文本进行加/解密操作,也适用于其他所有类型的计算机文件,我们还特别针对BMP图像文件的加/解密做了专门处理。

BMP图像由位图文件头、位图信息头、调色板(若是真彩色则没有调色板)和图像数据4个部分组成。程序只对BMP图像中图像数据这一部分进行处理,这样不仅可以起到加密作用,也可以直接浏览加密后的图像效果。

实际上,对其他格式的图形文件,甚至声音、视频等类似结构的文件,也可以如此处理。而对于其他类型的文件(文本文件除外),是把整个文件进行加密处理,从而改变了文件结构。实际上对一些类型的文件也没有必要保持文件结构,因为数据在加密处理后改变了,即使保留了文件结构,最终运行时也只会得到错误的提示。

4 算法的仿真结果

以BMP图像为例,对像素值为512×384的图像进行加密和解密实验,得到的加密图和解密图如图3所示。

图3 图像加密图及解密图

5 算法的性能分析

5.1 密钥敏感性分析

一个好的图像加密方案应该具有大的密钥,这样攻击者将不能通过穷举攻击来解密图像。同时,加密图像又必须对密钥敏感,以抵抗差分攻击。从上面对BMP图像进行加密和解密的效果可以得知,即使初始密钥中的一个变量有10-9的微小差异,也根本得不到原始明文的任何有关信息。此外,如果使用不同的初始密钥对同样的明文进行加密,那么得到的密文也应是完全不同的。图4(b)就是密文对密钥的敏感性测试。测试结果为图3(b)和图4(a)约有99.536%的不同。这就达到了所谓“雪崩效应”的效果。

图4 密钥敏感性测试

5.2 初始密钥强度分析

初始密钥为(x0,x′0,y′0),其密钥空间最大为1045,而现有的56位DES加密算法,具有的密码组合为256。对它们取以10为底的对数可得,45>56log 217。同样道理,只要保证帐篷映射是混沌的,帐篷映射的参数μ,α,β也可算作初始密钥,即初始密钥为(x0,u,x′0,y′0,α,β),这样,密钥空间最大为1090。由此可见,此算法的密钥空间是很大的。另外,我们规定的密码串的位数为9个字符,由于可供使用的ASCII字符集最多有95个,则口令密钥空间为959。假如密码分析人员采用穷举方法以1 000 000次/s的速度强制攻击加密文件,需要大约19 985年,这实际上是很难破译的。

5.3 加/解密速度分析

理论上,由于本算法采用了Logistic映射和帐篷映射,其动力学方程简单,计算机处理的都是简单的基本运算,其加密速度与单纯Logistic映射加密算法的加密速度相当。

实际测试得,加/解密一个大小为142 MB的影视文件,Logistic映射加密算法需要24 s,而交替混沌序列加密算法需要56 s。可见,其加密速度与单纯Logistic映射加密算法的加密速度在一个数量级上。

6 结 语

通过以上对该算法的仿真分析可知,此算法取得了很好的加密和解密效果,所产生的序列具有非常大的密钥空间,具有很好的加密强度和运算效率。由此得出的结论是,采用Logistic映射和帐篷映射的复合混沌系统,其迭代过程不仅具有对初始条件的敏感性,而且具有依照复合序列选择迭代函数的灵活性,因此迭代过程还具有一定的随机性,是构造密码体系的理想工具。

参考文献

[1]饶妮妮.一类混合混沌序列及其性能分析[J].电子科技大学学报,2001,20(2): 115-119.

[2]李一兵,楼品,李彬.一种新的复合混沌扩频序列[J].哈尔滨工业大学学报,2001,22(3):75-79.

[3]袁赣南,秦红磊,来德胜.基于平面方体上帐篷映射流密码的构造[J].计算机工程与应用,2002,38(13): 124-126

[4]Mao Y B,Chen G.Chaos-based Image Encryption.Handbook of Computational Geometry for Pattern puter Vision,Neurocomputing and Robotics,Springer-Verlag New York,2003

[5]Kristina Kelber.General Design Rules for Chaos-based Encryption Systems[J].International Symposium on Nonlinear Theory and its Applications,2005(1):465-468

[6]高飞,李兴华.基于混沌序列的位图像加密研究[J].北京理工大学学报,2005,25(5):447-450

[7]郭建胜,金晨辉.对基于广义猫映射的一个图像加密系统的已知图像攻击[J].通信学报,2005,26(2) :131-135

[8]孙百瑜,高俊山,吴宏伟.基于置换乱序的混沌加密算法[J].自动化技术与应用,2005,24(2):7-9

[9]高昊江,张宜生,梁书云,等.一种新的混沌加密算法及其应用[J].小型微型计算机系统,2006,27(4): 655-657

[10]Tao Chaohai,Yang Chunde.Three Control Strategies for the Lorenz Chaotic System[R].Chaos,Solitons & Fractals,Inpress,Corrected Proof,2006.

作者简介 訾 鸿 女,1978年出生,助教。主要研究方向为混沌及其应用,网络信息安全。

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文