设计应用

一种SM4算法的高效FPGA实现

作者:竹显涛1,李玥2,赵雄伟1
发布日期:2026-04-15
来源:电子技术应用

引言

随着全球数字化进程的加速推进,信息安全和数据隐私已成为数字经济的核心保障要素。在万物互联的新基建背景下,海量终端设备的接入和5G通信、云计算等技术的普及,使得密码算法作为信息安全体系的基石,其高效性与安全性直接关系到国家关键基础设施和公民隐私数据的防护能力。国产SM4分组密码算法作为国家密码管理局正式发布的标准算法,在国防、政务、商业等信息传输领域具有重要应用价值。而现场可编程门阵列(FPGA)凭借其硬件并行加速特性和可重构优势,能够突破传统软件实现的性能瓶颈,尤其在物联网边缘计算等实时性要求严苛的场景中,为SM4算法提供低时延、高吞吐量的硬件实现方案,能够满足新型基础设施的安全需求。

提升加解密算法FPGA实现的运行效率一般需要对其关键计算环节进行优化,或者缩短FPGA实现的关键路径。对于分组密码算法,通常会使用S盒来进行置换和替代操作。文献[1]推导S盒使用有限域求解实现的过程,但其在域上的逆元求解计算过程非常复杂,不适合在硬件上进行设计。文献[2]、文献[3]在复合域提出一种易于硬件实现且资源开销低的S盒实现方法,在复合域运算,复杂的求逆运算可用与或门实现,显著降低实现S盒所需的资源。经过改进后,文献[3]实现的S盒比使用查找表(LUT)实现的方式面积减少27%。文献[4]推导出SM4算法S盒在复合域下的8个基,为后续研究实现S盒提供更多的思路。文献[5]~文献[7]则是利用复合域进行计算,通过增加少许计算量,提高S盒的计算速度。

除了对算法的关键部分进行改进,研究者们也会调整和优化算法的整体结构。文献[8]提出包括速度优先、资源优先以及平衡型的4级流水线、8级流水线、16级流水线共5种方案,并对不同实现方案分别进行优化以研究算法资源和性能的上下限。文献[9]通过软硬件结合的方式优化SM4算法,在上位机中进行轮密钥的生成,在FPGA上进行加解密计算,利用FPGA的特性加速算法关键的加解密步骤。在FPGA的加解密模块中设计双层级联架构将加解密的需消耗的32个时钟周期降低到16个时钟,在相同频率下取得了更高的吞吐量。文献[10]则通过使用LUT、BRAM(Block RAM)、BRAM结合寄存器三种不同的方式实现S盒,使SM4算法的吞吐率达到42.10 Gb/s,此外还设计低资源循环型架构以应对不同的使用场景。

综上,国内外学者围绕SM4算法的FPGA硬件实现已开展多项研究,这些研究主要通过优化S盒查找表结构、改进密钥扩展路径以及采用并行计算策略等达到资源优化、低功耗设计及吞吐率提升等目标。然而,在面向5G通信或数据中心等高性能应用场景时,现有实现仍面临并行度不足、关键路径延迟偏高、资源利用率与吞吐率难以同步优化等问题,尤其是当算法需要适配多种工作场景时,其综合性能表现仍有显著提升空间。本文基于对SM4算法计算特征和FPGA架构特性的协同分析,提出一种流水线处理与S盒硬件优化实现的架构,通过优化关键路径,平衡逻辑资源与时序性能,在有限硬件开销下实现算法吞吐率的提升。


本文详细内容请下载:

https://www.chinaaet.com/resource/share/2000007050


作者信息:

竹显涛1,李玥2,赵雄伟1

(1.佳缘科技股份有限公司,四川 成都610097;

2.杭州电子科技大学, 浙江 杭州310018)

此内容为AET网站原创,未经授权禁止转载。
SM4算法 FPGA 流水线设计 S盒优化