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

4840                                                      软件学报  2025  年第  36  卷第  10  期



                                           表 11 uBlock  算法不同工作模式测试 (Mb/s)

                                    uBlock-128/128            uBlock-128/256           uBlock-256/256
                   工作模式
                              设计文档       r=8     r=16    设计文档      r=8    r=16    设计文档      r=16   r=32
                   ECB (加密)     2 573   12 612  12 758    1 704    8 944  8 834    2 037    8 984  8 811
                   ECB (解密)     2 571   12 627  12 739    1 717    8 937  8 937    2 032    9 266  8 812
                   CTR (加密)     2 242    8 164   8 176    1 545    6 453  6 404    1 969    6 887  6 733
                   CTR (解密)     2 411    8 149   8 172    1 638    6 421  6 315    1 983    6 927  6 726
                   CBC (解密)     2 510   12 276  12 378    1 678    8 715  8 576    2 033    8 643  8 669

                  5.2   访存测试

                    本文统计了     uBlock  算法在不同比特切片表示法下加密数据时平均每分组需要的访存指令的条数, 将涉及内
                 存的指令都视作访存指令, 通过“单次加密需要的访存指令条数/单次加密处理的分组”计算, 统计结果如表                                 12  所
                 示. 由表  12  可知, 在  r 相同的情况下, uBlock-128/128、uBlock-128/256  和  uBlock-256/256  每分组平均需要的访存
                 指令条数依次增加; 对于同一种          uBlock  算法, 随着  r 的增加, 访存指令条数在     r=2  时会增高, 在  r>2  后才会呈现下
                 降的趋势.

                               表 12 uBlock  算法不同比特切片表示下平均每分组需要的访存指令的条数

                               算法          r=1       r=2      r=4      r=8      r=16     r=32
                           uBlock-128/128  114.6    123.8     99.8     55.0     32.8      -
                           uBlock-128/256  161.3    177.2    134.9     78.5     47.3      -
                           uBlock-256/256  340.1    394.4    389.2     292.6    153.8     94.3

                    本文计算了     uBlock  算法在不同比特切片表示法下加密数据时平均访存指令条数同基准的比值, 基准是
                 Biham  的比特切片表示法     (r=1), 统计结果如表   13  所示. 由表  13  可知, 随着寄存器数量的减少, 3     种版本的    uBlock
                 算法的平均访存指令都遵循先增高后降低的趋势, 最多能够分别降低                       71%、71%  和  72%. 相比于  r=1  时的比特切
                 片表示法, uBlock-128/128  和  uBlock-128/256  算法在  r≥4  时才会有访存的降低, uBlock-256/256  算法在  r≥8  时才
                 会有访存的降低, 产生这种现象的原因有两个: (1) r>1            时的比特切片表示法比        r=1  时的表示法需要更多运算指令,
                 间接使得读取运算操作数和存储运算结果的访存指令条数增加; (2) 当                    r 没有达到一个临界值时, 算法需要的寄存
                 器数量仍远大于处理器拥有的寄存器数量, 大部分的运算结果仍然无法驻留在寄存器中, 下一次用到这些数据时
                 又需要耗费访存指令.

                           表 13 uBlock  算法不同比特切片表示法下加密数据时平均访存指令条数同基准的比值

                               算法          r=1      r=2      r=4       r=8      r=16     r=32
                            uBlock-128/128  1      1.080     0.870    0.479     0.285     -
                            uBlock-128/256  1      1.098     0.892    0.486     0.292     -
                            uBlock-256/256  1      1.159     1.144    0.860     0.452    0.277

                    本文计算了     uBlock  算法在不同比特切片表示法下访存指令占比, 运算指令使用第                   4.2  节中表  6–表  8  的计算
                 结果, 统计结果如表      14  所示. 根据表  14  的测试数据可知, 随着寄存器个数的减少, 访存指令占全部指令的比例也
                 在减少, 从最初的     60%  左右降低到    25%  左右. uBlock-256/256  算法的访存指令占比随寄存器减少并不是单调递
                 减, 因为当  r=4  至  r=8  时  PL/PR  的计算开销大幅降低, 反过来使得访存指令的占比增加.

                                     表 14 uBlock  算法不同比特切片表示法下访存指令占比 (%)

                                   算法         r=1     r=2     r=4     r=8    r=16     r=32
                               uBlock-128/128  60.0   56.2    49.8    38.9    24.6    -
                               uBlock-128/256  61.4   57.0    48.8    39.1    24.5    -
                               uBlock-256/256  61.7   58.9    47.9    50.8    38.6    24.5
   438   439   440   441   442   443   444   445   446   447   448