APP下载

混沌在序列密码系统中的应用

2013-01-15杨晓云徐强庄燕滨

常州工学院学报 2013年3期
关键词:蔡氏密钥加密

杨晓云,徐强,庄燕滨

(常州工学院计算机信息工程学院,江苏 常州 213002)

0 引言

人类社会已进入信息时代,人们在享受网络及信息技术带来的许多便利和愉快的同时,也面临着信息泄漏,信息篡改和信息伪造等麻烦。为了保证信息在网络上传输的保密性、真实性、完整性,必须对所传递的信息进行加密。序列密码是密码学中一个重要的信息加密系统。序列密码的加密过程首先是将原始明文变换数据序列,然后与密钥序列进行逐位加密生成密文序列,再通过信道传送到接收端。接收端用相同的密钥序列对接收到的密文序列进行逐位解密,恢复出明文序列,如图1所示。序列密码不存在数据扩展,实时性好,加密与解密器硬件容易实现。

图1 序列密码系统原理图

序列密码的安全保密性主要依赖于密钥序列,因此序列密码研究的核心是密钥序列的产生。目前常用伪随机序列(如m序列)作为密钥序列,其优点是理论研究比较成熟,硬件实现比较方便,但其缺点是序列长度有限,故密钥数目有限,容易被破译。

混沌是指确定性系统中产生貌似随机的不规则运动。混沌信号具有非周期、宽频带功率谱、类随机噪声等特性,窃听者无法利用频谱信息来对混沌信号进行跟踪分析。由于混沌信号具有对初始条件极其敏感的特性,因此决定了混沌信号的长期行为不可预测。另外根据混沌信号的遍历性,可以遍历有界混沌区域内每一个状态不重复,所以决定了其产生的混沌序列具有无限长度,这个特点就克服了上述伪随机序列长度有限的局限性。混沌信号是由确定的非线性系统产生的,其种类繁多,数目巨大,因此混沌信号序列十分适合作为序列密码中的密钥序列。

1 混沌信号

混沌信号是由非线性系统产生的,其电路实现方法如下:

1)由模拟电路(如运算放大器,模拟乘积等)来实现。这种产生方法比较简单,但是由于分立器件的离散性大,故精确度差,设计与调试不方便。近来,由于现场可编程模拟阵列FPAA(Field Programmable Analog Array)的发展,克服分立器件的缺点,因此情况会有较大变化。

2)采用数字电路来实现。该方法可使输出信号的混沌特征对电路参数变化具有鲁棒性,同时输出信号具有可再生性,即在产生系统参数已知时,可由相同的系统产生同样的输出信号。这点在生成密钥序列时十分重要。用FPGA、CPLD、DSP等数字处理芯片进行数字电路实现时,需要消耗大量的硬件逻辑资源,这是目前的一个困难。

2 序列密码实验系统的硬件实现

2.1 混沌信号序列的产生

系统选用微控制器(MCU),STM32F103RBT6的芯片数字电路来产生混沌信号序列,具体步骤如下:

选用经典的蔡氏混沌电路,它是一个三维连续自混沌系统,经过无量纲归一化处理后,其状态方程可以用一个常微分方程组来描述:

其中,g(x)= αx+0.5(b-a)(|x+1|-|x-1|)。

式(1)为蔡氏电路方程,它只有一个分段线性的非线性项,当无量纲参数α=10,β=14,a=-1/7和b=2/7时,式(1)可以产生一个典型的双涡卷蔡氏混沌吸引子。

为了便于硬件实现,采用较为简单的欧拉算法,将其离散化处理,得到相应的离散迭代模型为:

其中,g(xn)= αxn+0.5(b-a)(|xn+1|-|xn-1|)。

根据上述典型的无量纲参数α=10,β=14,a=-1/7和b=2/7,并选择迭代步长 h=0.002和初始条件(x0,y0,z0)=(0.1,0.1,0.001),用 C语言设计基于芯片STM32F103RBT6的运行程序,其程序流程如图2所示。离散迭代模型产生一个双涡卷蔡氏混沌吸引子。选取x维前10个数据作为实验的密钥源,其十进制序列为:

(0.100 000,0.102 286,0.104 578,0.106 877,0.109 182,0.111 494,0.113 813,0.116 138,0.118 470,0.120 808),将其转换成双精度浮点数。

浮点数运算模块的设计,所依据的标准为IEEE-754浮点数标准格式,它是国际电工电子学会在1985年制定的浮点标准格式,其中的双精度格式由1位符号位、11位阶码、52位尾位组成,共64 bit。因此密钥源为:

3FB999999999999A

3FBA2F6A50D6229

3FBAC59FB1E18EFC

3FBB5C4A83B1D0C8

3FBBF359FF4FD6D8

3FBC8ADEEBB341E1

3FBD22D948DC11E4

3FBDBB384FD2A63B

3FBE540CC78E9F6B

3FBEED45E9185CEE

密钥源长度为640 bit,密钥比特流之间没有任何相关性,并且可以根据需要将密钥长度进一步加长,不受任何限制。

图2 混沌信号序列程序流程

2.2 序列密码实验系统

本序列密码实验系统如图3所示。其中混沌序列源及定时电路,用芯片ARM,STM32F103RBT6实现。其余电路有Altera公司的CPLD,EPM1270T144C5来完成。对应上述密钥序列,由计算机产生一个测试文本:

0123456789ABCDEF

0011223344556677

8899AABBCCDDEEFF

0000111122223333

4444555566667777

88889999AAAABBBB

CCCCDDDDEEEEFFFF

1032547698BADCFE

FEDCBA9876543210

0123456789ABCDEF

试验时,将测试文本输入到本实验系统发送端,经并/串变换,与混沌密钥序列进行模2相加,形成加密信号,而后经信道送到接收端。接收端首先从发送端送来的加密信号中提取位同步信息,形成本端时钟CP',并将发端送来的混沌密钥序列与加密信号调整到同相位置,而后将二者进行模2加,得到解密信号,再经串/并变换恢复出测试文本。

由上述试验可见,只要简单改变产生混沌序列信号产生的初始条件(x0,y0,z0)与步长h值,就可形成大量不同的混沌密钥序列,进行不同的试验。

图3 混沌序列密码实验系统

3 结语

本实验系统是对蔡氏电路方程式(1)采用了较为简单的欧拉算法进行离散化处理,在已知3个变量初始值(x0,y0,z0),经不断迭加得到的式(2)的近似解,并用硬件实现。试验证明了混沌信号对初始条件高度敏感的特点,使其具有长期不可预测性和良好的抗破译能力,比许多伪随机序列有较大的优越性。基于混沌序列信号的独特优点,将其作为密钥序列,具有较大的应用前景。

[1]杨明,胥光辉,齐望东,等.密码编码学与网络安全[M].北京:电子工业出版社,2001.

[2]肖国镇,梁川甲,王育民.伪随机序列及其应用[M].北京:国防工业出版社,1985.

[3]李辉.混沌数字通信[M].北京:清华大学出版社,2006.

[4]关新平,范正平,陈彩莲,等.混沌控制机器在保密通信中的应用[M].北京:国防工业出版社,2002.

[5]方锦清.混沌通信及其相关网路信息安全研究的若干进展[J].系统工程学报,2010,25(6):725-741.

[6]徐强,包博成,胡文,等.数字实现混沌系统的建模、仿真与实验[J].计算机工程与设计,2010,31(15):3404-3407.

[7]徐强,包博成,杨晓云.蔡氏电路方程的离散化与数字电路实现[J].计算机应用研究,2011,28(6):2158-2160.

猜你喜欢

蔡氏密钥加密
三次型蔡氏电路的设计及应用*
七绝•四弄
幻中邂逅之金色密钥
密码系统中密钥的状态与保护*
一种基于熵的混沌加密小波变换水印算法
基于三次多项式的蔡氏电路设计与硬件实现
TPM 2.0密钥迁移协议研究
关于主-从混沌蔡氏电路系统滞后同步的若干新判据*
一种对称密钥的密钥管理方法及系统
认证加密的研究进展