文献标识码:A
DOI:10.16157/j.issn.0258-7998.2016.06.015
中文引用格式:潘必韬,聂小龙,王祖强. 基于FPGA的LFSR异步加解密系统[J].电子技术应用,2016,42(6):56-58.
英文引用格式:Pan Bitao,Nie Xiaolong,Wang Zuqiang. Asynchronous LFSR encryption system based on FPGA[J].Application of Electronic Technique,2016,42(6):56-58.
0 引言
随着信息技术的不断发展,信息安全已成为全世界的热门研究课题,而数据的有效加解密则显得尤为重要。虽然国内外研究者在软件加密层面上做了大量的工作,但仍存在着信息易被窃取等问题。相对而言,硬件加密因为其加解密过程在硬件中执行,加解密信息均存储于专用硬件之中[1],使得其更具安全性。因此,研究加解密系统的硬件实现更具有现实意义。
LFSR伪随机序列作为一种成熟流密码,其优点突出,且非常适合于硬件高速实现[2]。FPGA采用流水线和并行运算,在数据处理中具有灵活高效的特点,很适合于硬件加解密系统的设计与实现[3]。
虽然利用LFSR序列进行加解密的硬件实现已有大量实例,但其均为同步加解密,具有很大的局限性。本文所提出的异步LFSR加解密系统即是针对这一问题而作出的改进。首先对LFSR伪随机序列产生的基本原理进行了阐述;然后分析了一种基于LFSR伪随机序列的同步加解密系统;在此基础之上,提出了可配置的LFSR异步加解密系统的设计及其利用FPGA的实现,最后对全文进行了总结。
1 LFSR原理简介
一个m位的线性移位寄存器(LFSR)可以由m个寄存器以及决定序列状态转换的反馈结构组成。用于硬件实现的LFSR的拓扑结构如图1所示。
该拓扑结构中gm代表反馈系数,其值为1表示连接,0表示未连接。每一时刻的各位寄存器的输出则为当前的序列输出值,下一时刻的输出由当前状态和反馈支路决定。其数学抽象形式可以表示为GF(2m)上的一个多项式,反馈系数则抽象成为其多项式的系数。如果反馈系数选取得当,使得其抽象多项式为GF(2m)上的本原多项式时,由m个寄存器组成的序列发生器可以有2m-1个不同状态[4]。所以,当m的值增大时,该伪随机序列发生器的周期增长是非常可观的,在一个周期之内,其序列输出值不可预测,保证了其安全性,从而确保了加密效果。
2 现有的同步LFSR加解密系统
现有的这方面的一个典型系统工作原理[5]如图2所示。该系统设计用LFSR伪随机序列来加解密输入模拟信号。其基本原理是将输入待加密的明文信号与LFSR序列进行两次异或来加解密,用m、k、c分别来表示明文、密钥、密文,则由于:
所以第一次异或将明文信息加密,而第二次异或则将密文解密,得出明文信号。整个过程的关键在于时序的控制使其达到严格同步。该系统结构清晰,原理明确。但有几点缺陷:
(1)系统只在同步时可以进行工作,然而大多数情况之下这种即时加解密的方法不能满足需求。而需要先加密,传输,之后再解密。
(2)由于系统的加解密结构,使得一帧数据加解密工作要在一个LFSR序列信号周期内完成,将限制时钟频率、降低效率。
(3)由于该系统需要加解密序列严格同步,所以容错率低,且只要出现一位的偏移将影响整个系统。
对于以上问题,本文提出了一种可配置LFSR序列异步加解密系统,将在下文讨论。
3 可配置的LFSR序列加解密系统
针对现有LFSR同步加解密系统所存在的问题,设计了一种异步加解密系统。该系统将在加密之前对LFSR进行配置,设置其初值和反馈结构。传输数据时将初值信号与反馈的配置信息封装于密文之前,解密时再根据其接收到的密文中的配置信息进行解密端配置,然后进行解密。整个过程将实现异步加解密,其结构如图3所示。
其中最关键的部分为可配置LFSR序列发生器,其总体结构如图4所示。
对于m位的LFSR序列产生器,其整体的配置模块为m个单个配置结构的并联。单个寄存器的配置器如图5所示。其中初值赋值部分为寄存器赋初值,而反馈系数赋值部分则用来配置反馈网络。
其中初值配置模块如图6所示。它接收初值信号,当初值为1,即input为1时,prn输出0,clrn输出1,完成寄存器的置1设置。反之,当初值为0时,clrn输出0,prn输出1,完成寄存器的置0设置。
其中反馈结构配置模块如图7所示。其接收到的输入信号为Qm与gi,且当gi为1时,表示连接,output输出Qm的值,当gi为0时,表示未连接,则output输出为0,因为x0=x,与无连接的效果一样。
4 加解密系统控制流程
基于前文所述的硬件结构,设计了整个加解密系统的工作流程,其加密与解密流程相对称,分别如图8和图9所示。
5 系统仿真及测试结果
5.1 系统仿真时序图
图10为可配置LFSR加解密装置的加密过程仿真时序图。仿真所用的LFSR生成器为8位,其最大周期为255。选用的反馈系数为g(8)=01110001(由于g0默认为1,故从g1开始配置)。
Reset信号触发之后,EN为初始配置信号变为有效,其占用2个时钟周期,完成的工作为将初始的配置信息中的Q0=10011100(156)与g(8)=01110001(q的ASCII码)存入输出信号cout,并配置LFSR生成器。当配置结束后,加密工作开始进行。输出密文c为明文m与LFSR输出密钥k的异或,最终输出cout为加入配置信息的密文。相应地,其解密过程的仿真时序图如图11所示。
Reset信号触发之后,初始配置信号EN变为有效,其占用2个时钟周期,完成的工作为将接收到密文c中的前两帧数据读出,并配置LFSR生成器。当配置结束后,解密工作开始进行,解密输出的明文从EN无效后开始。由图10、图11所示,其加解密过程都可以完美运行。
5.2 实际加解密测试结果
用上述加解密装置对一幅512×512的灰度图像进行加密、解密可得其结果分别如图12、图13所示。可见加解密效果完美,可以实际使用。
6 结语
本文设计了一种可配置的LFSR序列生成器以及其所应用的异步加解密装置。在对原始LFSR加解密系统进行了阐述与分析后,提出了一种可配置的LFSR异步加解密系统,并对其进行了基于FPGA的硬件实现。观察实验结果可知,其不仅具有异步加解密的实用性,又具有LFSR序列的可靠性。
参考文献
[1] 贾立恺,黄国庆,赵敬,等.基于FPGA的PCI硬件加解密卡设计[J].电子设计工程,2010,18(5):142-145.
[2] 胡向东.应用密码学[M].北京:电子工业出版社,2011.
[3] 刘景亚,季晓勇.基于FPGA的CPRS混沌加解密算法高效实现[J].电子测量技术,2008,31(11):175-177.
[4] WADE TRAPPE(美).密码学与编码理论(第2版)[M].北京:人民邮电出版社,2008.
[5] 刘卫玲,常晓明,王云才.基于FPGA和PSoC的混沌音频加解密系统[J].电子技术应用,2014,40(7):54-57.