S盒设计
S盒设计本设计采用试验开发板EITS2003上Xilinx公司SPARTANIIE结构的XC2S100e作为算法载体,通过UART串口进行实验板和PC的通信,将所需加(解)密的文件通过串口下载到FPGA的BLOCKRAM中,在FPGA中实现控制器和DES模块以及密钥的生成,通过控制器实现加、解密功能,最后将加(解)密完成的数据再次通过串口传回PC,可以通过现成的DES算法程序检验正确性。从前面的介绍可以看到,DES算法没有大量的复杂数学计算(如乘、带进位的加、模等),在加/解密过程和密钥生成过程中仅有逻辑运算和查表运算。这些特点为采用FPGA进行硬件实现提供了可能性和可行性
通过分析发现,S盒在整个设计中占了很大的比重。S盒性能的提高对于整个设计性能会有很大的改善,因此S盒是整个设计优化的重点。
DES的8个S盒分别是一个满足特殊性能的6~4位的变换。在VHDL或Verilog语言中,可以直接用CASE语句来实现。这是最简单的实现方法,但是HDL语言都属于高级语言,它们强烈依赖于编译器的优化能力,往往对设计者来说,涉及得越少、编程越简单,代码效率越不高,这对于性能考虑的实现来说是不可取的。在实现过程中通过分析工具也发现,依赖于编译器的实现不但复杂,而且占用大量的空间。这样,S盒成了速度的瓶颈,为此,采用ROM来实现。XC2S100的LUT可以配置为16X 1位的ROM,把输入的6位作为地址,对应的地址空间里存放的就是输出的4位,从而实现了6"4位的查找表LUT,所需时间只是FPGA中CLB的传输时间加上传输线上的延时,如图8。
图4S盒在XC2S100e的实现
谢谢楼主分享 zhangyukun 发表于 2017-8-27 08:30
谢谢楼主分享
:lol :lol :lol :lol :lol
页:
[1]