《电子技术应用》
您所在的位置:首页 > 可编程逻辑 > 设计应用 > 一种SM4算法的高效FPGA实现
一种SM4算法的高效FPGA实现
电子技术应用
竹显涛1,李玥2,赵雄伟1
1.佳缘科技股份有限公司;2.杭州电子科技大学
摘要: 随着信息安全和数据隐私需求的日益增长,国产SM4分组密码算法在政务、商业等信息传输领域具有重要应用价值。 针对SM4算法在FPGA实现中的性能瓶颈问题,提出一种高效的全流水线硬件架构。通过优化S盒的硬件实现,将每轮迭代中的S盒数量从4个减少至1个,并采用组合逻辑实现快速替换,显著降低资源消耗。同时,设计32级全流水线加解密模块,实现多数据块的并行处理,将加解密吞吐率压缩至一个时钟周期。实验基于Xilinx Zynq7045平台,结果表明,该设计在不使用额外存储器资源的情况下,工作频率达到412 MHz,吞吐率高达52.7 Gb/s,单位面积吞吐率性能较现有方案提升20%以上。
中图分类号:TP391.41 文献标志码:A DOI: 10.16157/j.issn.0258-7998.256868
中文引用格式: 竹显涛,李玥,赵雄伟. 一种SM4算法的高效FPGA实现[J]. 电子技术应用,2026,52(4):127-133.
英文引用格式: Zhu Xiantao,Li Yue,Zhao Xiongwei. Efficient FPGA implementation of SM4 algorithm[J]. Application of Electronic Technique,2026,52(4):127-133.
Efficient FPGA implementation of SM4 algorithm
Zhu Xiantao1,Li Yue2,Zhao Xiongwei1
1.Jiayuan Science and Technology Co.,Ltd.;2.Hangzhou Dianzi University
Abstract: With the increasing demand for information security and data privacy, the domestic SM4 block cipher algorithm has demonstrated significant application value in information transmission fields such as government affairs and commerce. To address the performance bottlenecks of the SM4 algorithm in FPGA implementations, this paper proposes an efficient fully pipelined hardware architecture. By optimizing the hardware implementation of the S-box, the number of S-boxes per round iteration is reduced from four to one, and fast substitution is achieved using combinational logic, significantly lowering resource consumption. Additionally, a 32-stage fully pipelined encryption or decryption module is designed to enable parallel processing of multiple data blocks, compressing the encryption or decryption throughput to a single clock cycle. Experimental results on the Xilinx Zynq7045 platform show that the proposed design achieves a working frequency of 412 MHz and a throughput of 52.7 Gb/s without relying on additional memory resources, with a 20% improvement in throughput per unit area compared to existing solutions.
Key words : SM4 algorithm;FPGA;pipelined design;S-box optimization

引言

随着全球数字化进程的加速推进,信息安全和数据隐私已成为数字经济的核心保障要素。在万物互联的新基建背景下,海量终端设备的接入和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)

2.jpg

此内容为AET网站原创,未经授权禁止转载。