Page 444 - 《软件学报》2025年第10期
P. 444
龚子睿 等: FBS-uBlock: 灵活的 uBlock 算法比特切片优化方法 4841
5.3 性能对比分析
根据第 4.1 节中表 10 和表 11 的性能测试数据, 无论是 uBlock-128/128、uBlock-128/256 还是 uBlock-256/256,
都是当寄存器个数为 16 或 8 个时性能最优, 采用 16 个寄存器的优化方法要略优于 8 个寄存器的优化方法. 这说
明在 x86 平台使用 AVX2 指令集对 uBlock 算法加速优化时, 选择 16 个寄存器的方案最优.
根据第 5.2 节的访存指令的统计数据和第 4.2 节的运算指令的统计数据可知, 如果需要的寄存器数量多, 会导
致较多的访存开销 (如表 12 所示); 如果方法需要的寄存器数量少, 会导致较多的计算开销 (如表 6–表 8 所示). 实
验结果说明, 采用 16 个寄存器的方法在访存消耗和计算消耗上达到平衡, 具有最优的性能, 这恰好是 AVX2 指令
集提供的 YMM 寄存器个数. 如果需要将优化方法迁移到 ARM 平台, 本文的实验结果仍然具备一定的参考价值.
表 15 和表 16 是本文的优化方法与其他算法的对比. 为了减弱测试平台的差异所带来的影响, 本文使用 cpB
(cycles per byte, 每字节需要的处理器时钟周期数) 指标与 Mbps (megabits per second, 每秒传输的兆比特数) 指标
进行对比. 可以看出, 本文提出的 uBlock 优化方法在不同分组长度和工作模式下均表现出性能优势. 本文优化后
的 uBlock 算法优于现有的 uBlock 官方实现 [1] 和公开优化方法 [44] . 在 CBC 模式下 (表 15), 优化实现的解密速率比
文献 [1] 的 uBlock 官方实现提升了约 3–4 倍; 在 ECB 模式下 (表 16), 优化实现的加密速率比文献 [44] 的 uBlock
优化实现提升约 1–2 倍. 与其他密码算法相比, 性能显著优于 ANT [48] 、FESH [37] 、TANGRAM [38] 算法, 略优于
Ballet [49] 、AES [30] 和 SM4 [32] 算法, 在不同分组长度和工作模式下均具备优异的处理速度和较低的计算开销.
表 15 不同算法的 CBC 解密性能对比
128/128 * 128/256 * 256/256 *
算法 优化方法 平台
Mbps cpB Mbps cpB Mbps cpB
uBlock 本文 12 276 2.35 8 715 3.32 8 643 3.34 i9-10900X @ 3.70 GHz
uBlock 文献[1] 1869 11.29 1 289 16.36 1 571 13.43 i7-3740QM @ 2.70 GHz
Ballet 文献[49] 7 899 2.77 7 080 3.09 4 425 4.94 i7-6700T @ 2.80 GHz
ANT 文献[48] 6 065 4.38 6 137 4.33 2 635 10.08 i7-6700 @ 3.40 GHz
FESH 文献[37] 4 418 6.37 3 664 7.68 3 191 8.81 i7-4790QM @ 3.60 GHz
注: *为分组长度/密钥长度; uBlock算法的测试数据是文献[1]中对1 MB长消息加密的速度检测结果
表 16 不同算法的 ECB 加密性能对比
* * *
128/128 128/256 256/256
算法 优化方法 平台
Mbps cpB Mbps cpB Mbps cpB
uBlock 本文 12 758 2.26 8 944 3.23 8 984 3.21 i9-10900X @ 3.70 GHz
uBlock 文献[44] 7 205 4.01 4 099 7.05 3 182 9.08 AMD Ryzen 9 5900X @ 3.70 GHz
AES 文献[30] 9 799 2.55 - - - - i7-8700H @ 3.20 GHz
SM4 文献[32] 7 813 3.20 - - - - i7-8700 @ 3.20 GHz
TANGRAM 文献[38] 5 461 4.86 4 802 5.53 2 963 8.96 i7-6700 @ 3.40 GHz
注: *为分组长度/密钥长度; AES算法的测试数据是文献[30]中采用AVX2指令集实现的版本
6 总 结
本文从数据的访存开销入手, 通过仔细分析 uBlock 算法结构, 给出了 uBlock 算法降低在比特切片下寄存器
数量的理论依据, 为 uBlock 算法设计了一种灵活的比特切片优化方法 FBS-uBlock, 包括 uBlock 算法多种不同的
比特切片表示法, 降低算法在比特切片下占用的寄存器数量, 进而降低访存开销. 实验结果表明, 优化后的 uBlock
算法比特切片实现的加密速率可达到 12 758 Mb/s、8 944 Mb/s、8 984 Mb/s, 比设计文档提升了 3.9、4.2、3.4 倍.
此外, 根据实验分析, 通过增加少许额外的计算开销, 优化的 uBlock 算法的访存指令的条数明显降低, 最多能够分
别降低 71%、71% 和 72%, 有效地减少了访存开销. 在工程实现上, 本文提出的 uBlock 算法优化方法还有进一步

