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

龚子睿 等: FBS-uBlock: 灵活的  uBlock  算法比特切片优化方法                                      4839



                                    表 9 PL/PR  模块相对于整个加密过程的运算指令条数占比 (%)

                                   算法         r=1     r=2     r=4     r=8    r=16     r=32
                               uBlock-128/128  0      24.8    23.8    9.2     7.9     -
                               uBlock-128/256  0      26.9    25.4    9.7     8.2     -
                               uBlock-256/256  0      26.1    53.9   25.4     9.7     8.2

                  5   测试和分析

                    为了探究本文提出的        FBS-uBlock  优化方法在速率、访存上的效果, 本文在           x86  平台基于  AVX2  指令集使用
                 FBS-uBlock  优化方法分别实现了     uBlock-128/128、uBlock-128/256  和  uBlock-256/256, 并完成了性能测试和访存
                 指令条数的统计分析. 测试使用的处理器平台是               Intel(R) Core(TM) i9-10900X, 基准频率  3.70 GHz, 最大睿频频率
                 4.50 GHz. 操作系统是  Ubuntu-20.04.2, 编译器选择  gcc 9.4.0, 开启编译器的  O3  优化.
                  5.1   性能测试
                    首先, 本文测试了      uBlock  算法在不同比特切片表示法下加密相同长度数据的速率, 数据大小是                     16 384  字节,
                 使用相同的密钥循环加密         10  万次, 测试结果如表     10  所示, 对应的折线图如图      9  所示. 算法的参数   r 越大, 寄存器
                 的数量越少. 从表     10  中可以看出, uBlock  算法的加密性能随寄存器数量的减少遵循先降低后增高的趋势. 对于
                 uBlock-128/128  和  uBlock-128/256  算法, 在  r=8 (或  r=16) 时的速率较高; 对于  uBlock-256/256  算法, 在  r=16 (或
                 r=32) 的速率较高. 此时需要的寄存器个数恰好都是             n/r=16  个  (或  8  个).


                                      表 10 uBlock  算法不同切片表示下的加密性能测试 (Mb/s)

                               算法          r=1      r=2      r=4       r=8      r=16     r=32
                           uBlock-128/128  6 855    6 189    9 282    12 612   12 758     -
                           uBlock-128/256  5 059    4 475    6 583    8 944     8 834     -
                           uBlock-256/256  4 468    3 952    3 571    6 437     8 984    8 811


                                            14 000
                                            12 000
                                           加速速率 (Mb/s)  8 000
                                            10 000


                                            6 000
                                            4 000
                                            2 000
                                               0
                                                  r=1  r=2  r=4   r=8  r=16  r=32
                                                             切片表示
                                            uBlock-128/128  uBlock-128/256  uBlock-256/256
                                           图 9 uBlock  算法不同切片表示下的加密性能

                    接着, 本文测试了     uBlock  算法在不同切片表示法下不同工作模式的速率, 分别测试了                  ECB、CTR  和  CBC  工
                 作模式, 加密的数据大小是        16 384  字节, 使用相同的密钥循环加密/解密        10  万次. 测试结果如表    11  所示.
                    对于  uBlock-128/128  算法和  uBlock-128/256  算法, 选择表  10  中性能表现较好的  r=8  和  r=16  的切片表示法进
                 行测试; 对于   uBlock-256/256  算法, 选择表  10  中性能表现较好的   r=16  和  r=32  的切片表示法进行测试. 由表    11  可
                 知, 本文的比特切片优化方法和设计文档中的实现相比有明显优势, ECB                     和  CBC (解密) 模式下提升    4  倍, CTR  模
                 式因为存在计数器自增模块所以提升幅度只有                2–3  倍.
   437   438   439   440   441   442   443   444   445   446   447