Page 81 - 《软件学报》2025年第10期
P. 81
4478 软件学报 2025 年第 36 卷第 10 期
加运算这 3 个部分, 并以向量组为基本单元统一参与运算, 能够最大程度地发挥脉动阵列运算单元的高吞吐率优
势, 从而提升硬件架构的运行效率. 从整体上看, 文献 [26] 提出的设计方案消耗的硬件资源为 29 998 LUTs、10 366
FFs、11 BRAMs 和 10 DSPs, 在面积资源方面有一定的优势, 但时钟周期消耗远高于本文的设计方案. 此外, 本文
的最高时钟频率也优于文献 [26], 其主要原因在于采样模块的设计. 如上文所述, 虽然基于级联式设计思想的单核
硬件架构同样可以提升采样运算的效率, 但需要设计较为复杂的组合逻辑电路, 并且在单时钟周期内连续完成两
次轮函数迭代运算, 这意味着时钟的建立时间 T su 和保持时间 T h 将被极大地延长, 从而限制了时钟频率的提升. 而
本文采取双核模式的设计思路, 并根据不同类型的采样运算的特点针对性地优化 Keccak 核, 在满足并行采样需求
的前提下实现了更高的时钟频率. 与文献 [26] 相比, 在 3 种安全等级下, 本文的设计方案的整体运算效率分别提
升了 1.4/7.4/0.9 倍、1.1/8.3/0.7 倍、0.8/5.6/0.6 倍. 进一步分析性能对比结果, 可以看出签名运算过程的效率提升
最为明显, 其次是密钥生成运算, 而签名验证过程的性能提升效果最低, 主要原因与运算类型和向量维度相关: 参
与签名运算过程的多项式数量最多, 基于细粒度优化思想的分段式时序状态控制逻辑、结合高并行度的脉动阵列
单元可有效提升整体的运算效率, 因此相比于另外两个部分, 签名运算获得了更高的性能提升表现. 此外, 相比于
(
(
H µ ∥ w ′ ) H µ ∥ w ′ )
密钥生成运算, 签名验证过程需要多进行一次 1 运算. 由于本文的双核架构的哈希模块无法加速 1
运算过程, 而级联式 Keccak 核在此种情况下依然可以实现并行运算, 因此在哈希运算密度较高的签名验证运算过
程中, 性能提升效果低于另外两个运算部分.
文献[26] 文献[27] 文献[24] 文献[25] 本文
450 1 000 140
400 900
120
350 800
700 100
300 600
时间 (μs) 250 时间 (μs) 500 时间 (μs) 80
200
60
150 400
300 40
100
200
20
50 100
0 0 0
等级 2 等级 3 等级 5 等级 2 等级 3 等级 5 等级 2 等级 3 等级 5
νಆ֩ࠩ νಆ֩ࠩ νಆ֩ࠩ
(a) KeyGen 运算性能对比 (b) Sign 运算性能对比 (c) Verify 运算性能对比
图 9 设计方案性能对比
文献 [27] 实现了 2×2 架构的多项式运算单元设计方案, 利用 FIFO 的数据缓存功能实现操作数的匹配, 同
时基于迭代型访存架构实现 NTT 运算, 每个时钟周期可同时输入 4 个多项式系数, 每个蝴蝶单元对应数论变换的
相邻两级运算, 完成一次正向或者逆向 NTT 运算共消耗 64×4 个时钟周期. 与本文的脉动阵列运算单元相比在硬
件资源占用方面有一定的优势, 但运行效率方面有较大的差距, 对于核心的签名运算所消耗的时钟周期数是本
文的 2 倍以上. 考虑到文献 [27] 基于高性能的 Virtex UltraScale+平台进行方案的部署与测试, 因此具有更高的时
钟频率, 但综合来看, 本文的设计方案在运行效率方面依然有一定的优势, 时间消耗分别为文献 [27] 的 92%/
80%/91.5%、90.6%/78.1%/92%、87.5%/83%/98.5%. 由于文献 [27] 使用 3 个 Keccak 核实现不同类型的运算功能,
并且没有提出类似于本文的模块优化技巧, 因此消耗了较多的硬件资源. 根据表 4 中给出的数据对比可知, LUT
资源和 BRAM 资源的消耗量分别是本文的 1.4 和 1.5 倍.
文献 [24] 同样提出了支持第 3 轮 Dilithium 算法的硬件设计方案, 区别在于 3 组参数集对应 3 个不同的电路
结构, 与本文工作和文献 [26] 相比, 硬件资源的兼容性和复用率较低. 虽然文献 [24] 专门设计了 NTT 模块和
MACC 模块分别用于多项式的数论变换和乘法运算, 但不同的功能模块之间存在一定的时序差异, 完成一次正向

