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

