基于
复合
SM4
算法
FPGA
设计
实现
李俊榜
第4 3卷 第1期桂 林 电 子 科 技 大 学 学 报V o l.4 3,N o.1 2 0 2 3年2月J o u r n a l o f G u i l i n U n i v e r s i t y o f E l e c t r o n i c T e c h n o l o g yF e b.2 0 2 3收稿日期:2 0 2 1-0 4-2 8基金项目:广西青年创新人才科研专项(桂科A D 2 0 2 3 8 0 8 2);广西大学生创新训练计划(2 0 2 0 1 0 5 9 5 1 9 5,2 0 2 0 1 0 5 9 5 1 3 8).通信作者:张润莲(1 9 7 4-),女,副教授,博士,研究方向为信息安全和分布式计算.E-m a i l:z h a n g r l g u e t.e d u.c n引文格式:李俊榜,李金林,潘晟,等.基于复合域的S M 4算法F P G A设计与实现J.桂林电子科技大学学报,2 0 2 3,4 3(1):4 9-5 5.基于复合域的S M 4算法F P GA设计与实现李俊榜,李金林,潘 晟,梁家任,钟雪绮,张润莲(桂林电子科技大学 广西密码学与信息安全重点实验室,广西 桂林 5 4 1 0 0 4)摘 要:推广和应用国密算法是加强我国信息安全的重要举措。提高密码算法的实现速度,降低其硬件实现成本,已成为实际应用中的迫切需求。该问题的解决方案之一是基于复合域的S M 4算法F P G A硬件设计与实现。基于对S盒的复合域分解和电路优化,该方案降低了硬件逻辑门数;同时重构基于复合域的S M 4算法硬件电路,并改进了轮常量和轮密钥的生成和存储方式,以降低硬件面积;设计了数据通信模式,以实现上位机和F P G A之间的通信,并通过数据加解密为应用提供安全支持。仿真测试和软硬件实现证实了基于复合域的S M 4算法F P G A硬件实现的正确性,同时提高了算法的吞吐量。综合评测结果表明,该方案具有更小的实现面积。关键词:S M 4;S盒;复合域;仿射变换;F P G A中图分类号:T P 3 9 3 文献标志码:A 文章编号:1 6 7 3-8 0 8 X(2 0 2 3)0 1-0 0 4 9-0 7T h e F P G A d e s i g n a n d i m p l e m e n t a t i o n o f S M 4 b a s e d o n c o m p o s i t e f i e l dL I J u n b a n g,L I J i n l i n,P A N S h e n g,L I A N G J i a r e n,Z HO N G X u e q i,Z HA N G R u n l i a n(G u a n g x i K e y L a b o r a t o r y o f C r y p t o g r a p h y a n d I n f o r m a t i o n S e c u r i t y,G u i l i n U n i v e r s i t y o f E l e c t r o n i c T e c h n o l o g y,G u i l i n 5 4 1 0 0 4,C h i n a)A b s t r a c t:T h e p r o m o t i o n a n d a p p l i c a t i o n o f t h e S M(C o mm e r c i a l C r y p t o g r a p h y)a l g o r i t h m i s a n i m p o r t a n t m e a s u r e f o r s t r e n g t h e n i n g i n f o r m a t i o n s e c u r i t y i n C h i n a.I n c r e a s i n g t h e s p e e d o f i m p l e m e n t i n g e n c r y p t i o n a l g o r i t h m s a n d r e d u c i n g t h e h a r d w a r e i m p l e m e n t a t i o n c o s t s h a v e b e c o m e u r g e n t n e e d s i n p r a c t i c a l a p p l i c a t i o n s.O n e s o l u t i o n t o t h i s p r o b l e m i s t h e F P G A h a r d w a r e d e s i g n a n d i m p l e m e n t a t i o n o f t h e S M 4 a l g o r i t h m b a s e d o n c o m p o s i t e f i e l d s.T h e s o l u t i o n r e d u c e s t h e n u m b e r o f h a r d w a r e l o g i c g a t e s b y u s i n g t h e c o m p o s i t e f i e l d d e c o m p o s i t i o n o f t h e S-b o x a n d c i r c u i t o p t i m i z a t i o n.I n a d d i t i o n,t h e h a r d-w a r e c i r c u i t o f t h e S M 4 a l g o r i t h m b a s e d o n c o m p o s i t e f i e l d s i s r e s t r u c t u r e d,a n d t h e g e n e r a t i o n a n d s t o r a g e m e t h o d o f r o u n d c o n s t a n t s a n d r o u n d k e y s a r e i m p r o v e d t o r e d u c e h a r d w a r e a r e a.F u r t h e r m o r e,a d a t a c o mm u n i c a t i o n m o d e i s d e s i g n e d t o e n a b l e c o mm u n i c a t i o n b e t w e e n t h e h o s t c o m p u t e r a n d t h e F P G A,p r o v i d i n g s e c u r e s u p p o r t f o r t h e a p p l i c a t i o n t h r o u g h d a t a e n c r y p t i o n a n d d e c r y p t i o n.T h e c o r r e c t n e s s o f t h e S M 4 a l g o r i t h m b a s e d o n c o m p o s i t e f i e l d s i m p l e m e n t e d o n F P G A h a r d w a r e i s v e r i f i e d t h r o u g h s i m u l a t i o n t e s t i n g a n d s o f t w a r e a n d h a r d w a r e i m p l e m e n t a t i o n,a n d t h e t h r o u g h p u t o f t h e a l g o r i t h m i s i m-p r o v e d.T h e c o m p r e h e n s i v e e v a l u a t i o n r e s u l t s s h o w t h a t t h e s o l u t i o n h a s a l o w e r i m p l e m e n t a t i o n a r e a.K e y w o r d s:S M 4;S-b o x;c o m p o s i t e f i e l d;a f f i n e t r a n s f o r m a t i o n;f i e l d p r o g r a mm a b l e g a t e a r r a y(F P G A)自2 0 2 0年1月1日起,中国人民共和国密码法 正式施行1,这将有利于促进我国密码技术及其应用的快速发展。S M 4算法是中国无线标准中使用的分组密码算法,于2 0 1 2年被国家商用密码管理局确定为国家密码行业标准,是我国第一个官方公布的商业密码算法2。2 0 2 1年6月,S M 4算法正式被选为国际标准算法3。S M 4算法已被推广应用于无线通信4、车联网5、文件系统加解密6及安全通信协议等方面。随着物联网技术的快速发展及广泛应用,如何在资源受限环境下提供S M 4算法的安全支持,降低实现成本,提高算法的实现效率,成为推动国密算法应用新的需求。F P G A具有布线资源丰富、可重复编程、集成度高和并行处理等特点,广泛应用于嵌入式设备的开DOI:10.16725/45-1351/tn.2023.01.013桂林电子科技大学学报2 0 2 3年2月发7。基于F P G A,文献8 给出了1种循环型、3种流水线型S M 4硬件架构,用于应对不同的使用场景;文献9 提出一种剪裁式实现方案,以求达到面积和速度的平衡;文献1 0 给出了一种适用于A E S和S M 4的新型实现方式,在S M I C 0.1 8 m 1.8 V工艺下,S盒的实现面积比查表实现方式减小2 4.7 6%;文献1 1 表明,采用基于复合域实现S M 4的S盒方式比使用查表方式更能抵抗机器学习攻击;文献1 2 给出了S M 4算法在F P G A上实现的1种迭代型和1种流水线型设计,此外还给出了3种处于2者之间的综合考虑速度和面积平衡的设计。文献1 3 使用复合加/解密算法与密钥扩展算法的S盒的方式来减少资源消耗;文献1 4 对S M 4算法的硬件进行了设计并完成了软件仿真;文献1 5 采用循环结构完成了S M 4算法密钥扩展及加/解密算法的F P G A硬件实现。为减小硬件实现面积,文献1 6 针对S M 4算法构造了一种基于复合域的S盒实现方式,通过同构映射矩阵来简化有限域求逆运算。相对于查找表方式,其硬件实现面积减小了约2 7%;文献1 7 采用复合域计算、优化运算顺序和复用公因子等手段来减小S盒硬件实现的电路面积。为减小S M 4算法的硬件实现面积,对文献1 7中的方法进行优化,提出一种基于复合域的S M 4算法F P G A硬件设计和实现方法,该方法采用循环迭代方式设计S M 4算法的F P G A实现框架和S M 4算法加/解密核的电路结构。设计上位机与F P G A的数据通信协议,并仿真验证其正确性;在加/解密核电路中,基于复合域分解完成非线性变换部件S盒的分解,以减小硬件实现面积,并基于设计和实现的串口通信进行实际测试和验证。1 S M 4算法在复合域下的S盒实现方法S M 4算法2的分组长度和密钥长度均为1 2 8 b i t,加/解密算法和密钥扩展算法都采用3 2轮非线性迭代结构,每轮迭代完成3 2 b i t的加/解密运算。每轮的轮操作包括轮密钥加、S盒替换和线性操作,每轮输入4个3 2