本章的设计采用Verilog-HDL编写,环境是Xilinx ISE 14.7 Design Suite,在Xilinx Virtex-6的XC6VLX75T-2ff784 FPGA上完成了验证。
表4-6为优化后的SHA-3模块与目前国内外公开文献中一些优秀的相关研究在最高频率(Fmax)、资源开销(Area)、吞吐量(Throughput)和效率(Efficiency)上的对比。为了方便比较,所有对比文献的SHA-3工作模式均为SHA3-512。吞吐量和效率的计算方式为
式中, r 为比特率(bitrate),在SHA3-512中 r 等于576位/轮; f 为最高频率; N 为同时处理的数量块数量,由于采用了两级展开、两级流水线和两级子流水线的结构,所以 N =4;Cycles为运算周期数,此结构中为48;Area为硬件资源开销。
从表4-6可以看出,本章设计的SHA-3模块在理论上可跑出最高459MHz的工作频率和22.03Gbps的吞吐量。在实现高性能的同时,资源开销仅为1498个Slice,由此实现了14.71Mbps/Slice的效率。
表4-6 SHA-3模块设计性能与资源开销对比
为了提高吞吐量和效率,研究人员在SHA-3的硬件实现工作中尝试过诸如新型的控制电路、展开和流水线等不同的优化策略。本章设计的SHA-3模块与部分文献中SHA-3模块优化策略的比较如图4-28所示,设计参数对应的坐标点越靠近左上角代表硬件效率越高。当采用四级展开和四级流水线结构时,文献[17]中的优化策略具有最高的吞吐量。当采用两级展开、两级流水线和两级子流水线的结构时,文献[27]中的优化策略曾实现了最高的效率。更高的展开级数和流水线级数可以实现更高的吞吐量,但是代价是资源开销的增加,文献[17]中的优化策略的高吞吐量是建立在巨额资源开销的基础上的,所以效率并不高。本章设计的SHA-3模块的目标是尽可能提高效率,所以并没有采用和文献[17]相同的策略。本章设计的SHA-3模块具有和文献[27]相似的结构,不同的是,由于采用了更加简化的轮常数和新型的流水线结构,相比于文献[27],本章设计的SHA-3模块在吞吐量和效率上分别有33.4%和28.2%的提升。
图4-28 本章设计的SHA-3模块与部分文献中SHA-3模块优化策略比较( U 为展开系数,IPR为子流水线寄存器数量,OPR为流水线寄存器数量)
综上所述,在与相关文献中的主要几个指标进行比较后可知,本章设计的SHA-3模块在频率和效率方面均具有明显优势。