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

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



                 70%, 可以看出向量组运算的有效时间利用率明显高于单个向量的对应数据. 最后重点分析                       (y+cs 1 ,w−cs 2 ,w−cs 2 +ct 0 )
                 这  3  个核心的运算过程, 其特点是均由乘法累加、逆向数论变换和模加运算这                      3  部分组成, 基于细粒度的分解重
                 组设计思想可获得       3  个类型统一的运算组      (cs 1 ,cs 2 ,ct 0 )、INTT(∼)  和  (+,−,−,+). 使用脉动阵列单元分别进行点乘
                 运算、逆向数论变换和模加运算, 分别对应              8、96、8  个时钟周期的延迟时间. 可以看出, 这样的时序设计最大化
                 地减少了核心运算单元的启动次数及其附带的固定延迟时间, 并且有效分解了单一系数尺度上的无效等待时间,
                 在确保流水线运算正确性的前提下极大地提升了整体的签名运算效率.

                  4   性能对比

                    本文使用    Verilog  硬件描述语言设计并实现统一型电路架构, 可同时支持               Dilithium  算法  3  种安全等级下的数
                 字签名运算, 通过调整输入端口的片选信号值选择算法实现的参数集. 基于                       Xilinx Vivado 2017.4  开发套件对编写
                 的  Verilog  代码进行仿真、综合和布局布线, 并选择         Xilinx Artix-7 FPGA  平台进行实际的部署和测试, 芯片具体型
                 号为 xc7a200tfbg484-2, 最终得到完整的性能测试报告, 包括时钟周期数据、最高时钟频率和硬件资源消耗这                         3  个
                 方面. 其中, 时钟周期数对应硬件电路生成正确签名结果情况下的时间, 也就是最高速率. 硬件资源主要关注                                4  个
                 通用的数据, 分别是: 用于实现基础逻辑功能的查找表资源                   (LUT)、与数据存储和信号延迟相关的触发器资源
                 (FF)、用于大量数据存储与缓存相关           BRAM  资源以及用于乘法运算的         DSP  资源.
                  4.1   硬件资源消耗数据分析
                    表  2  给出了各子功能模块的硬件资源占用情况.

                                                表 2 功能模块硬件资源占用量

                                 模块             LUT            FF          BRAM         DSP
                               Keccak_v1        6 569         4 414          0           0
                               Keccak_v2        5 502         3 308          0           0
                              ExpandS ×2        113/45        46/46          0           0
                              ExpandA ×2       179/116       367/367         0           0
                             ExpandMask ×2     336/366       264/265         0           0
                               Encode ×2        47/22         38/38          0           0
                              SampleInBall       40            62            0           0
                             RAM_C_TAU           0             0            0.5          0
                               NTT_core         19 664       16 588         18           64
                                FIFO 0           478          203            0           0
                                FIFO 1           478          203            0           0
                                FIFO 2          1 647         154            0           0
                               Combine          37 943       30 268         18.5         64

                    在表  2  中, 以脉动阵列为核心的多项式运算模块占用了               51%  的  LUT  资源和  54%  的  FF  资源. 由于乘法器单
                 元以  18  比特为基准, 在签名算法中      23  比特的多项式系数点乘对应两个          DSP  单元, 因此图   1  所示的整个脉动阵列
                 模块共消耗    64  个  DSP  单元. 基于面积节约优先的     IP  核设置方式能够节约      50%  的  DSP  单元, 但同时会消耗更多
                 的  LUT  资源, 在实际的应用环境中可根据具体的需求选择更为合适的设计方式. 基于本文使用的测试平台分析,
                 Atrix-7  系列  FPGA  芯片包含的  DSP  单元数量可以满足脉动阵列的乘法器资源的消耗. 并行采样单元在硬件层面
                 共占用了   32%  的  LUT  资源和  26%  的  FF  资源. 对比两个模块可知, 采样型    Keccak  核占用的硬件资源数据明显小
                 于通用型   Keccak  核, 共节约了  16%  的  LUT  资源和  25%  的  FF  资源. 文献  [26] 提出了一种单核级联式架构的哈希
                 模块设计方案, 同样可以实现采样过程速率加倍, 共消耗                 4 577  个  FF  资源, 与通用型  Keccak  核的对应数据处于同
                 一数量级, 而经过优化设计的采样型           Keccak  核仅消耗  3 308  个  FF  资源, 与之相比节约了  28%  左右的寄存器资源.
                 为了实现单时钟周期内遍历两次轮函数运算, 级联式的设计架构需要实例化更多的组合逻辑电路. 从整体上看, 文
                 献  [26] 设计的  Keccak  核共消耗  15 784  个  LUT  资源, 与之相比, 本文提出的双核结构节约了       23%  左右的硬件资
   73   74   75   76   77   78   79   80   81   82   83