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  算法优化方法还有进一步
   439   440   441   442   443   444   445   446   447   448   449