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

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


                 乘运算和模加运算. 这样的设计方式不仅极大地提高了关键过程的运算效率, 并且将不同类型运算之间的时序差
                 异进行规整化, 有利于整体的流水线运算架构的设计与优化.
                    (2) 研究并分析签名运算中的多项式系数特点和采样运算类型, 并针对性地优化                         Keccak  核内部的寄存器结
                 构, 进而提出了通用型和采样型两种哈希运算模块, 在提高采样运算并行度的前提下有效节约了硬件资源消耗, 同
                 时可获得更高的时钟频率.
                    (3) 针对  3  种安全等级下的签名算法参数集, 研究并分析其中的多项式系数类型和向量存储深度的变化规律,
                 基于最高安全等级对应的参数内容进行存储阵列的设计与实现, 并根据顶层的片选信号实现存储单元的重构, 在
                 满足多维度存储需求的条件下最大化地提升了硬件资源的利用率.
                    (4) 深入分析核心运算步骤对应的时钟周期消耗数量, 同时充分考虑脉动阵列运算单元的高吞吐率的运行特
                 点, 在此基础上对签名算法的关键运算步骤进行细粒度的分解和重组, 以向量为尺度实现核心运算功能, 进而提出
                 了全新的分段式时序状态控制逻辑设计方案, 进一步提高了算法的整体运行效率.

                  1   签名算法软硬件实现相关工作

                    基于各种软硬件平台进行算法的优化实现是密码工程领域的一个重要研究方向, 这对于推动后量子密码算法
                 的工程化应用和实例化部署具有重要的现实意义. 软件优化实现一般通过                        SIMD  指令集对格密码系统中的复杂且
                 耗时的运算过程进行并行加速, 主要包括基于              Intel 处理器的  AVX2/AVX 512 指令集和基于    ARM  处理器的   NEON
                 指令集两大类. 由于在后量子密码标准征集过程中, AVX2                 是各提交方案的必要参考实现之一, 同时              NIST  也将
                 ARMv7  架构下的   ARM Cortex-M4  处理器选定为了后量子密码标准化竞赛的性能评估设备之一                   [19] , 因此, 目前已
                 有较多关于    Dilithium  签名算法的纯软件优化方案       [20,21] . 考虑到指令集仅可以实现寄存器层面的加速运算, 这阻碍
                 了软件实现方案在算法整体性能上的进一步提升. 基于可编程的基础逻辑资源设计的纯硬件方案能够实现更高的
                 运算性能, 对于推动      Dilithium  签名算法的实用化进程具有重要作用, 同样是后量子密码工程领域的重要研究方向
                 之一  [22−27] . 此外, 软硬件结合方案的核心思路是将签名算法中较为耗时的运算过程以硬件加速器的形式实现, 软件
                 部分主要负责数据调度和逻辑处理, 综合考虑了软件实现的灵活性和硬件实现的高效性, 因此也得到了较多的研
                 究和关注   [28−33] . 其中, Banerjee 等人  [28] 基于  RSIC-V  处理器首次实现了包括  Dilithium  在内的第  2  轮评选的所有候
                 选算法, 是一种较为通用的设计方案, 与基于            ARM  平台实现的签名算法相比在性能上有较大的提升. Zhao 等人                [30]
                 同样基于   RSIC-V  处理器提出了一种新的面向         MLWE-LBC  的高性能设计方案, 综合考虑了          RLWE  结构中数据层
                 面的并行化和     MLWE  结构中指令层面的并行化, 以         Xin  等人  [31] 提出的向量化处理器的思路为基础设计高并行的
                 NTT  处理器架构, 进一步提升了签名运算的实现效率. Wang              等人  [25,32] 首先基于  Zynq-7000  平台提出了一种针对
                 Dilithium  算法的纯硬件设计方案, 并以此为基础提出了基于 PolarFir 平台的可同时支持                 Dilithium  和  Kyber 两种
                 算法的设计方案. 根据文献给出的测试结果, 随着硬件化程度的提高, 整体的实现性能也随之提升.
                    相比于纯软件和软硬结合两种实现方式, Dilithium             算法的纯硬件实现的研究相对较少. Ricci 等人            [23] 基于
                 VHDL  语言首次完整地实现了第         2  轮的  Dilithium  签名算法, 利用并行化的设计思想有效提升了算法的运行效率.
                 Land  等人  [24] 基于  Xilinx Artix-7  平台提出了一种高效而紧凑的第  3  轮  Dilithium  算法的纯硬件设计方案, 可同时支
                 持  3  组参数集. 上文介绍软硬结合设计时提到, Wang          等人  [25] 提出了一种基于   Zynq-7000  平台的专用型   Dilithium
                 算法的实现方案, 考虑到其设计思路中, 签名算法的所有核心运算过程均以硬件模块方式实现, 软件部分仅负责
                 packing/unpacking  操作及输入输出端的使能信号, 因此也可视为一种纯硬件实现方案. 由于硬件实现涵盖了签名
                 算法的所有流程, 因此与软硬结合类的设计方案相比, 最终的实现性能也得到了较大的提升. Zhao                            等人  [26] 提出了
                 一种针对第    3  轮  Dilithium  算法的紧凑、高性能的硬件架构, 针对性地设计了多个功能模块, 并且提出了一种高效
                 的流水线运算模式, 与已有的纯硬件设计方案相比, 在运算效率和资源消耗两个方面均获得了最优的结果.
                    此外, 考虑到在格基密码方案中多项式乘法运算过程较为复杂且耗时, 基于                        FPGA  平台设计专用的多项式运
                 算加速引擎同样是硬件实现的重要研究方向之一. Mert 团队                [34–36] 提出了一系列的专用    NTT  运算模块的设计方案,
                 其核心思想是通过设计无数据冲突的访存逻辑确保运算的正确性, 进而提升                        NTT  运算的并行化程度. Zhao 等人     [37]
   61   62   63   64   65   66   67   68   69   70   71