基于FPGA的DES、3DES硬件加密技术
传统的加密工作是通过在主机上运行加密软件实现的。这种方法除占用主机资源外,运算速度较慢,安全性也较差。而硬件加密是通过专用加密芯片、FPGA芯片或独立的处理芯片等实现密码运算。相对于软件加密,硬件加密具有加密速度快、占用计算机资源少、安全性高等优点。
设计思路
本设计首先用硬件描述语言(VHDL)进行DES(数据加密标准)、3DES(三重DES)算法编码和系统设计,然后采用FPGA来具体实现。采用FPGA设计灵活,可对芯片内部单元进行配置,可以缩短设计周期和开发时间,同时经过优化可以达到较高的性能。另外有多种EDA开发软件支持FPGA的设计,在本设计中采用了EDA综合工具Synplify和Altera公司的Quartus II 7.2开发软件。
系统的硬件结构
整个系统由FPGA、DSP、时钟电路、电源电路等部分组成,如图1所示。FPGA是系统的核心器件。DSP作为控制单元,控制数据的传输。系统的工作过程是这样的:在DSP的控制下,主机中待加密的明文数据通过PCI总线传送到FPGA的RAM区,然后启动控制模块的状态机,把明文送入DES模块或3DES模块进行相应的加密运算。运算的结果(密文)再返回到主机中。FPGA自带的JTAG接口用来连接下载电缆到主机的并口,便于用逻辑分析议对系统调试。EPCS4是FPGA的配置芯片,用来存储程序。由于系统掉电后FPGA内的程序将丢失,所以每次上电后FPGA首先从EPCS4里读取相应的配置信息。
图1 系统结构框图
考虑到本设计中FPGA的RAM容量不能太小,以便存储较多的数据;另外用户I/O引脚数量应有一定的富裕。最终选择了Altera公司Cyclone III系列的EP3C25F256C8。其I/O引脚数是156个,RAM总量为608Kb。
3DES模块的设计
采用VHDL编程实现DES算法后,通过Synplify生成一个基本的模块——DES核(如图2所示)。
图2 DES核
DES核的引脚功能如下。
clk:时钟输入端,本设计时钟源为50MHz晶振;
reset:复位端,低电平有效;
encrypt:加密、解密选择端,高电平进行加密操作,低电平进行解密操作;
din[63..0]:数据输入端;
din_valid:数据输入有效端;
key_in[55..0]:密钥输入端;
dout[63..0]:数据输出端:
dout_valid:数据输出有效端;
busy:忙信号标志端,当busy为高时说明正在进行算法转换,为低时可以输入数据。
用DES核构成的3DES模块,将其移植到Quartus II 7.2里,通过编程实现对此模块的控制,设计中用到了状态机。状态机是组合逻辑和寄存器逻辑的特殊组合,尤其适合于数字系统的控制设计,系统的状态在一定的条件下相互转移。状态机的转移图如图3所示,下面以加密过程为例,说明具体的实现过程。
相关文章
- 2023-12-26VPN在PDM中的应用
- 2024-04-07基于信息融合技术的呼气丙酮分析
- 2023-01-18基于全站仪测距的超声波液位计检校方法的提出和研究
- 2022-06-06基于单片机和TEA5767HN的FM收音机系统的设计
- 2023-04-27平展流冷态湍流场的PIV测量
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。