文献标识码:A
文章编号: 0258-7998(2014)07-0054-04
中文引用格式:刘卫玲,常晓明,王云才.基于FPGA和PSoC的混沌音频加解密系统[J].电子技术应用,2014,40(07):54-57.
随着信息技术和计算机网络技术的高速发展,人们对通信安全的要求越来越高,信息加解密技术也因此越来越重要。混沌加密技术是近几年发展很快的一种非线性加密技术[1],该技术依托于混沌系统对初始条件极端敏感[2]和高度随机性[3]的特点,具有类噪声、连续宽频带和长期不可预测等优点,因此,特别适用于保密通信等领域。
目前国外在混沌保密通信方面的研究较为成熟,而国内在该领域虽做了大量的研究工作,但大多数停留在软件层面上,存在着信息易被攻击和窃取等问题。而基于硬件层的加解密在专用硬件中进行,加解密信息存储在专用设备中[4]。因此,相比于软件加解密技术,硬件加解密更加安全可靠。
本文提出了一种基于FPGA和PSoC的混沌音频加解密系统硬件实现方案。FPGA采用流水线技术和并行运算[3],在数据处理速度上比单片机和DSP更具优势。可编程片上系统PSoC(Programmable System-on-Chip)是一种可编程的混合信号阵列构架,采用图形化编程方式,接口资源丰富,方便用户开发。因此,本文采用FPGA和PSoC开发板构建混沌音频加解密系统。
本文首先介绍了系统工作原理,然后给出硬件及软件实现方案,并从时域和频域的角度对系统进行了测试和分析。
1 混沌加解密原理
1.1 混沌伪随机序列
系统采用线性反馈移位寄存器(LFSR)[5]产生混沌序列Qm-1…Q1Q0,m级LFSR电路由m个D触发器和若干个异或门构成,在脉冲CP的上升沿到来时,输出m bit混沌序列Qm-1…Q1Q0,因LFSR的输出序列具有周期性,故被称作混沌伪随机序列。LFSR电路结构如图1所示,其中gi表示反馈系数,若反馈支路存在,则gi取值为1,否则gi为0。
混沌伪随机序列Qm-1…Q1Q0的产生从种子(以Dm-1…D1D0表示)开始。当种子Dm-1…D1D0=0…00时,输出序列Qm-1…Q1Q0将保持全零状态;当种子Dm-1…D1D0≠0…00,且反馈系数gm…g1g0满足一定条件[5]时,输出序列周期T取最大值2m-1。本系统处理的数字音频信号为8 bit,故设计的混沌伪随机序列为8级LFSR,反馈系数g0g1…g8取值为100011101。经实测,输出序列周期T=28-1=255。
1.2 加解密原理
异或是一种简单的逻辑运算,如果变量A与变量B连续进行2次异或运算,则输出F等于A本身,其数学原理[6]如式(2)所示:
依据式(2)可知,异或是一种初级的加解密方案,因其实现速度快,已成为目前较流行的加解密方法之一。本系统加解密逻辑框图如图2所示。
在生成混沌序列DCHAOS后,系统开始加密,将数字音频信号DADC与其做异或运算(Xor_1),便生成被打乱的序列即密文DXOR1;解密只需将密文DXOR1再次与混沌序列DCHAOS进行异或(Xor_2),从而可得明文DXOR2,理论上明文DXOR2与音频信号DADC一致。
2 系统方案设计
混沌音频加解密系统由同步控制模块、ADC模块、DAC模块、混沌序列发生模块、信号加密与解密模块及输出切换模块等组成。其中同步控制模块是系统加解密的关键,该模块产生3个分频脉冲fS、PEDC及PXOR,fS控制混沌序列的产生和音频信号的ADC转换,PEDC、PXOR分别触发加密和解密的启动。系统逻辑框图如图3所示。
在同步脉冲的控制下,音频信号Vin经ADC模块转换为数字信号DADC,与混沌序列DCHAOS依次进行加密和解密,生成的密文DXOR1和明文DXOR2可通过输出切换模块选择输出,然后DAC模块将输出结果DXOR1或DXOR2转化为模拟信号Vo。混沌加解密系统的具体过程可用图4中的时序图来描述。
混沌音频加解密系统的工作过程具有周期性,其一周期内的工作原理如下:
(1)在t1时刻,时钟源CLK的上升沿到来,产生脉冲fS,紧接着在fS的作用下,混沌序列DCHAOS开始产生,同时音频信号ADC转换启动;
(2)混沌序列DCHAOS和音频信号DADC均稳定后,在t2时刻时钟源CLK的上升沿到来时,数据加密启动脉冲PEDC产生,密文DXOR1开始生成;
(3)密文DXOR1处于稳定状态期间,分频脉冲PXOR在t3时刻CLK上升沿的触发下产生,解密过程启动,即可得明文DXOR2;
(4)明文DXOR2稳定后,在t4时刻开始进行DAC转换,最终输出模拟信号Vo。
3 系统实现
3.1 硬件平台构建
本系统采用的FPGA开发板是Altera公司的DE2-115。开发板采用Cyclone IV EP4CE115芯片,芯片含有114 480 个逻辑单元、3.9 Mbit随机存储器、266个乘法器。开发板的外围接口资源丰富,满足用户对视频、音频、高品质图像等多类型的开发需求。
本系统采用的PSoC开发板是CYPRESS公司的CY8CKIT-050。开发板采用基于ARM Cortex-M3内核的芯片CY8C5868AXI-LP035,该芯片整合可组态的模拟和数字电路阵列,模拟电路包括ADC、DAC、放大器等,数字电路包括PWM、定时器、计时器、UART等。
系统硬件模块间的连接关系如图5所示。
因音乐播放器输出的音频信号约为-0.5~0.5 V,而PSoC的ADC模块仅支持0~2.048 V电压输入,故需对音乐播放器输出的信号进行调理。系统中采用串联一节1.5 V干电池的方法提高输入信号偏移量,可达到ADC模块电压输入标准。
3.2 软件设计
FPGA端的软件流程如图6所示。
FPGA端负责混沌序列的产生、同步控制及数据加解密,其开发环境是Altera公司QUARTUSⅡ。软件采用自顶向下的设计方法及模块化的编程思想,开发方式采用Verilog HDL硬件描述语言和模块/原理图(Block Diagram/Schematic)两种方式,各模块采用Verilog HDL进行设计,模块间集成运用模块/原理图方式。经仿真验证后将程序下载到开发板中。
PSoC端完成音频信号的ADC和DAC转换,其开发环境是CYPRESS公司PSoC Creator 2.2,软件采用图形化编程方式,即从元件库中选择相应的模数器件进行配置,然后调用相关API函数。与传统的编程模式相比,该开发环境简化了大量底层代码的编写,缩短了项目开发周期。PSoC端软件流程如图7所示。
4 系统测试与结果分析
4.1 数字域测试
由于PSoC的ADC模块转换时间最快为10 μs,为使混沌序列DCHAOS与音频信号DADC保持同步,分频脉冲fS的周期应大于10 μs。本系统中FPGA时钟CLK周期设置为1 μs,分频脉冲fs、PEDC及PXOR的周期均为13 μs。对数字域内的加解密数据进行实测,其结果如图8所示。
由图8可得出如下结论:
(1)混沌序列DCHAOS与音频信号DADC基本保持同步。
(2)信号加密运算正确,由图8(a)可知,混沌序列DCHAOS与音频信号DADC进行异或运算,可得密文DXOR1。
(3)信号解密运算正确,由图8(b)可知,数字域内解密输出的明文DXOR2与输入的音频信号DADC延时2~3 μs,数值上则完全一致。
(4)经实测,混沌序列DCHAOS、音频信号DADC、密文DXOR1与明文DXOR2等信号与分频脉冲fS、PEDC及PXOR的周期均为13 μs,频率均为77 kHz左右。
4.2 模拟域测试
实际测试发现,加密后的声音发出刺耳的“滴”声,解密后声音的听觉效果良好。对录制的音频信号波形进行测试与频谱分析,其波形及频谱如图9所示。
由图9可知,加密信号的频谱在各个频段的分布均匀,类似噪声;解密信号与原始信号的频谱分布规律基本一致,因DAC转换输出的电压是原始信号的2倍,故二者的幅度略有差异。
本文介绍了一种基于FPGA和PSoC的混沌音频加解密硬件实现方案。该方案采用LFSR的方法产生混沌伪随机序列,并结合FPGA和PSoC开发板实现了音频信号的加解密。
参考文献
[1] 袁小于.数字图像非线性加密算法研究[D].重庆:重庆师范大学,2001.
[2] 赵耿,方锦清.现代信息安全与混沌保密通信应用研究的进展[J].物理学进展,2003,23(2):212-214,232-233.
[3] 刘景亚,季晓勇.基于FPGA的CPRS混沌加解密算法高效实现[J].电子测量技术,2008,31(11):175-176.
[4] 贾立恺,黄国庆,赵敬,等.基于FPGA的PCI硬件加解密卡设计[J].电子设计工程,2010,18(5):142-145.
[5] 束礼宝,宋克柱,王砚方.伪随机数发生器的FPGA实现与研究[J].电路与系统学报,2003,8(3):121-122.
[6] 王毓银.数字电路逻辑设计[M].北京:高等教育出版社,1999.