Page 82 - 《软件学报》2025年第10期
P. 82

胡跃 等: 基于  FPGA  的格基数字签名算法硬件优化                                                   4479


                 NTT  运算、逆向   NTT  运算、点乘运算和模加运算所需的时钟周期数分别为                  533、536、85、75. 本文基于高性能
                 的脉动阵列单元统一实现所有的运算过程, 在提升运算效率的同时将不同运算类型的时钟周期数进行了规整化操
                 作, 从而为顶层的时序控制状态机的设计和优化提供了可行性. 综合来看, 对于                       Dilithium  的  3  组参数集, 在采用同
                 样的硬件测试平台的前提下, 本文提出的硬件设计方案在密钥生成、签名运算和验证运算这                               3  个过程中分别提升
                 了  6.6/12.9/1.6  倍、7.0/14.0/1.3  倍、7.3/10.6/1.3  倍的运行效率.
                    文献  [25,28,29,32,33] 针对  Dilithium  算法提出了多种软硬结合的设计方案, 核心思想是统一硬件设计的高效
                 性和软件实现的灵活性, 针对多项式乘法等复杂的运算过程设计专用的硬件加速器, 同时在软件层面调用硬件功
                 能模块并完成算法逻辑. 文献         [28] 使用  RISC-V  指令集进行方案设计, 可支持      NIST  第  2  轮的  Dilithium  算法的参
                 数集运算. 由于该方案仅实现了          NTT  和  Keccak  两个专用的功能模块, 因此整体的硬件资源占用量较少. 使用指令
                 集语言调用硬件功能模块可有效加速部分运算过程的效率, 但与纯硬件设计相比整体的并行程度较低, 无法进一
                 步提升算法的整体性能. 文献         [29] 基于  Zynq-7020  平台设计了专用的多项式运算模块, 完成一次数论变换需要
                 1 170  个时钟周期, 相比于本文的脉动阵列运算单元性能提升效果较低.
                    文献  [25,32] 是相同的团队设计的两种不同的软硬结合方案, 文献               [25,33] 都基于  Zynq-7000  平台实现了完整
                 的  Dilithium  算法, 但采用了不同的设计思路. 3     篇文献的设计方案具有一定程度的关联性, 因此统一进行对比分
                 析. 首先, 文献  [25] 采用了全硬件开发的思路, 所有的签名运算功能均在硬件层面进行实现, 软件部分仅负责基本
                 的使能信号和控制逻辑, 这样的设计模式能够有效降低软件平台和硬件平台之间的交互频率, 进而提升算法的整
                 体运行效率. 此外, 该文献设计了专用化的基四多项式乘法运算模块, 每次数论变换过程固定消耗                               264  个时钟周
                 期, 而本文设计的脉动阵列单元在流水线运行的条件下, 随着参与运算的数据量加大, 单次运算的延迟时间将逐步
                 减小, 更加符合    Dilithium  算法的数据集特点. 从整体上看本文的设计方案依然具有较大的性能优势, 在                     3  组参数
                 集下的运算效率分别提升了          1.7/8.5/1.0  倍、1.8/10.4/0.9  倍、1.6/6.75/0.7  倍. 相比之下, 文献  [32] 的软硬件的解耦
                 程度更高, 其中硬件端主要负责加速多项式运算, 考虑到通信开销和整体的可扩展性, 将较为耗时的                              SHA3  函数以
                 及对应的采样运算在软件端实现, 并使用指令集语言进行性能优化, 最终完成了对于                          Kyber 和  Dilithium  两个算法
                 的设计与实现. 此外, 该文献进行了         3  种类型的性能测试, 第     1  种为纯软件单核运行, 第      2  种为软硬结合单核运行,
                 第  3  种为软硬结合多核运行, 多核意味着采样运算速率倍增, 表               4  中给出的是性能最高的多核条件下测试数据. 与
                 文献  [25] 的对比可知, 尽管软硬结合多核方案能够支持多算法的运行, 但整体性能存在大幅度的下降. 最后, 文
                 献  [33] 同样采取了解耦合的思想设计软硬结合方案, 在             Zynq-7000  平台的  PL  端设计多项式运算模块和       SHAKE
                 模块, PS  端负责功能调用和算法逻辑. 如第         4.2  节所述, 文献  [33] 设计了  3  个硬件模块分别用于     NTT/INTT  运算、
                 PWM  运算和   PWA  运算, 没有采用文献     [38] 中提到的硬件分时复用的思想, 因此与文献             [32] 相比消耗了更多的
                 硬件资源. 将上述     3  个设计方案与本文进行综合对比分析可知, 随着硬件化程度的提高, 算法的整体运行效率也随
                 之提升, 其核心原因有两点: 1) 纯硬件设计的并行运算同时体现在功能模块和整体架构两个维度上, 相较于其他设
                 计方式并行化程度更高; 2) 如文献         [32,33] 所述, 软硬件之间的数据交互过程本身同样需要消耗大量的时钟周期,
                 进而将影响最高频率. 因此基于软硬结合方式的设计方案在整体性能上要低于纯硬件的设计方案.
                  5   总 结

                    本文针对    NIST  第  3  轮的格基数字签名算法     Dilithium  提出了一种全新的纯硬件实现方案, 基于可重构的思想
                 设计并实现同时满足       3  组参数集条件下密钥生成运算、数字签名运算和签名验证运算的统一型电路结构. 本文提
                 出的细粒度并行分段式时序控制逻辑有效匹配了脉动阵列单元的高吞吐率优势, 同时根据采样运算的特点给出全
                 新的双   Keccak  核优化设计方案, 使得最终的硬件设计架构同时具备了高性能和高资源复用率两方面的优势. 对于
                 推进格密码方案的工程化和实用化进程有较好的借鉴意义和参考价值.


                 References:
                  [1]   Diffie W, Hellman M. New directions in cryptography. IEEE Trans. on Information Theory, 1976, 22(6): 644–654. [doi: 10.1109/TIT.
   77   78   79   80   81   82   83   84   85   86   87