基于ARM的混沌帧同步系统设计与实现
2018-06-22杨晓云徐强庄燕滨
杨晓云,徐强,庄燕滨
(常州工学院计算机信息工程学院,江苏 常州 213032)
0 引言
序列密码系统的特点是加密与解密使用同样的密钥,图1为以混沌信号为密钥的序列密码系统原理图。该系统发端,将欲发送的明文序列与混沌序列密钥经模2加形成密文序列,通过信道将其传送到收端。收端用与发端完全相同的混沌序列密钥和发端传送来的密文序列进行模2加,即可得到与发端相同的明文序列信号。
根据混沌信号产生原理,收发双方采用相同的产生电路、相同的初始值和步长,便能得到相同的混沌序列密钥。关键是收端的序列密钥起始点,一定要对准发端密文序列的起始点,即二者要完全同步,才能通过模2加解密出正确的明文序列[1-4]。混沌信号同步包括位同步与帧同步两部分。位同步即定时同步、码元同步,通常采用数字锁相环法来完成,其硬件实现亦比较容易[5-7]。本文主要讨论混沌信号的帧同步系统的实现,它是在位同步建立后进行,即系统的收端时钟与发端时钟已经同步。图2为本文提出的混沌信号帧同步方法的混沌序列密码实验系统原理图。
图1 以混沌信号为密钥的序列密码系统原理图
图2 混沌序列密码实验系统原理图
1 混沌信号同步发端实验系统
本实验系统的混沌序列密钥采用文献[8]中的混沌信号产生方法组成,即选用Lorenz系统的混沌电路,取迭代步长h=0.001和初始值(x0,y0,z0)=(1,1,1),用C语言设计基于芯片STM32F103VET6的运行程序进行运算,图3为其程序流程图。
图3 混沌序列密钥程序流程图
取产生的混沌序列的前256 bit(3FF0000000000000,3FF000B242070B8D,3FF00213A0C6B485,3FF004230FCF80DC)作为发端混沌序列密钥。
帧同步码型应选择具有尖锐单峰特性的局部自相关函数的特殊码组[9]。巴克码是一种非周期序列,一个n位的巴克码组为{x1,x2,x3,…,xn},其中xi取值为+1或-1,其局部自相关函数为
(1)
本方案采用7位的巴克码(1110010),为了构成一个字节(8位码),再加一位监督码“0”,便组成了帧同步码(11100100)。为方便收端检测与观察,本方案的测试序列(即明文序列),采用转义字符组成与密钥序列长度相等的一组序列(0708090A0B0C0D0E,22273E3F004A5B5C,000708090A0B0C0D,0E22273E4A5B5C3F)作为明文序列帧(由32个字节组成),将其反复向收端传送。
图4为本方案的混沌信号同步发端实验系统原理图。具体工作过程:发端实验系统在控制电路统一控制下进行工作,首先将明文序列与混沌序列密钥进行模2加,形成一个密文序列帧,而后将帧同步码加到此帧密文序列的开头,构成数据信号序列,通过信道传送到收端。图5为发端数据信号时序示意图。
图4 混沌信号同步发端实验系统
图5 发端数据信号时序示意图
2 混沌信号同步收端实验系统
收端为了从发端送来的数据信号中正确恢复出明文序列,收端的时钟必须与所收到的发送时钟信号同步,这由位同步系统实现。
位同步建立后,收端在控制电路统一管理下工作。帧同步系统立即从发端送来的数据信号中识别帧同步码,即帧同步码提取。为了防止数据信号序列中有可能存在与帧同步码相同的码,出现假同步,帧同步系统捕捉到第一个帧同步码后,必须进行校验,如果在下一周期同一位置上又提取到一个帧同步码,这时才可以认为这个码可能是帧同步码。若设校验次数n=1,便可认为此码是帧同步码,让系统进入帧同步状态。当然,为了减小假同步的概率,校验次数可以增加,但同步建立时间就要加长。
收端根据发端规定的产生混沌序列密钥的电路、初始值和步长,可以产生与发端完全一样的混沌序列密钥,存放在缓存器中,等待使用。当帧同步建立后,在控制电路管理下,准确地将数据缓存器中的数据信号序列与另一缓存器中的混沌密钥序列同时取出,进行模2加,便可得到正确的明文序列。图6为本方案的混沌信号同步收端实验系统原理图。
图6 混沌信号同步收端实验系统原理图
本实验系统亦采用STM32F103VET6芯片,主要包括混沌序列密钥产生、控制电路及帧同步系统等模块。
本实验系统工作过程为,先将发端送来的数据信号经串/并变换后存贮在缓存器中,由帧同步比较器对送来的数据信息序列进行帧码识别,当捕捉到一个帧码(11100100)后,便进行校验工作。本方案中校验次数n=1,即如果捕捉到2个帧码信号后,就确定系统进入同步状态,便可识别出密文序列帧的起始点位置。通过控制电路从缓存器中将相应的密文序列送到解密器,此时将等待在那里的混沌密钥序列亦送到解密器,让二者对应进行模2加,便可得到正确的明文信号。
利用C语言将上述运算及各种处理对芯片STM32F103VET6进行编程,图7为收端实验系统的程序流程图。
图7 收端实验系统程序流程图
3 帧同步系统建立时间
从图5数据时序图可见,混沌数据信号序列与一般数据信号形式上是一样的。位同步采用数字锁相环方式,建立时间是很快的,因此整个系统建立时间主要取决于帧同步建立时间。帧同步系统从捕捉到同步建立需两个阶段:帧码码型信号识别和校验阶段。
明文序列每帧含m个字节,每个字节所占时间为TB。由于帧同步系统开始捕捉时可能在任何一个字节位置上,因此最慢识别到帧码时间为mTB,最快为TB。故识别帧同步码的平均时间TD为
TD=(m+1)TB/2
(2)
系统进入校验阶段后,有两种情况。
第一种情况,设校验次数为n,如果系统连续n次在同一位置上捕捉到帧同步码,便可确定此码组是真正的帧同步码,让系统进入同步状态。
设位同步建立时间为TC,则系统总的建立时间TA为
TA=TC+TD+n(mTB)
(3)
第二种情况,为方便试验,本文的测试信号序列采用由转义字符组成的特殊序列作为明文序列。在实际应用中明文序列是随机的,有可能存在与帧同步码型一样的码组。若在接收到的数码信息中存在与帧同步码型一样的码组,系统捕捉到的可能是假帧同步码,经校验发现后,系统应立即重新捕捉,再校验,直到捕捉到真正的帧同步码,系统才可进入同步状态。这时系统总的建立时间TA应该用下式来估算:
TA=TC+TD+n(mTB)+i(TD+mTB)
(4)
式中,i表示假同步次数。由于假同步最早可能出现在捕捉的第一次,最晚可能在校验的第n次,故式(4)中i取平均值(i=n/2)。
由式(3)、(4)可见,帧同步系统建立时间长短与校验次数n有很大关系,一般希望校验次数n尽量选小一点。
4 结语
经测试,基于ARM的混沌信号同步实验系统方案是可行的。由于混沌信号具有非周期性和类随机噪声等特性,很难对其进行跟踪、分析和破解,其信息传输保密性是非常好的。但是混沌信号帧同步亦比较困难,尤其是硬件实现。本文提出这种混沌信号帧同步方法,硬件实现比较容易,性能也比较好,在使用混沌信号序列为密钥的数字信封等技术中应用是很合适的。
[参考文献]
[1]MAHERI Mahmoud,ARIFIN Norihan Md.Application adaptive exponential synchronization of chaotic dynamical systems in secure communications[J].Advances in Difference Equations,2017,96(1):1-21.
[2]李震波,唐驾时. 参数扰动下的混沌同步控制及其保密通信方案[J].控制理论与应用,2014,31(5):592-600.
[3]李国华. 基于混沌导频信号同步控制的混沌保密通信[J]. 计算机应用研究, 2014,31(9):2788-2790.
[4] 梅蓉,吴庆宪,陈谋,等. 时滞Lorenz混沌系统的同步电路实现及在保密通信中的应用[J]. 应用基础与工程科学学报,2011,
19(5):830-841.
[5]徐强,杨晓云,庄燕滨. 基于FPGA的高速光幕同步系统设计与实现[J].计算机测量与控制,2016,24(8):294-297.
[6]杜勇,刘帝英,罗宇智.基于FPGA的改进积分型位同步环设计[J].信息技术,2013,37(5):129-132.
[7]王永庆,乔媛,吴嗣亮. 基于早迟门位同步环的FPGA实现[J].微计算机信息,2009,25(8):178-179.
[8]杨晓云,徐强,庄燕滨. 基于混沌信号序列的数字信封[J].常州工学院学报,2016,29(2):47-50.
[9]樊昌信,曹丽娜,等.通信原理[M].7版.北京:国防工业出版社,2013.