暗号ライブラリーの速度改善: 新旧比較
以下に示すのは、最近の Jason Thorpe の commit による性能の差異で、 非常に顕著なものとなっています。
Blowfish
変更前:
サイズ 8 のブロックで blowfish cbc を 3 秒間実行: 2.97 秒で blowfish cbc を 2891026 回
サイズ 64 のブロックで blowfish cbc を 3 秒間実行: 3.10 秒で blowfish cbc を 411766 回
サイズ 256 のブロックで blowfish cbc を 3 秒間実行: 3.00 秒で blowfish cbc を 104721 回
サイズ 1024 のブロックで blowfish cbc を 3 秒間実行: 2.98 秒で blowfish cbc を 26291 回
サイズ 8192 のブロックで blowfish cbc を 3 秒間実行: 3.10 秒で blowfish cbc を 3290 回
種類 8 バイト 64 バイト 256 バイト 1024 バイト 8192 バイト
blowfish cbc 7787.28k 8755.16k 8936.19k 9034.22k 8954.05k
変更後:
サイズ 8 のブロックで blowfish cbc を 3 秒間実行: 3.10 秒で blowfish cbc を 4573792 回
サイズ 64 のブロックで blowfish cbc を 3 秒間実行: 2.99 秒で blowfish cbc を 713440 回
サイズ 256 のブロックで blowfish cbc を 3 秒間実行: 3.00 秒で blowfish cbc を 183125 回
サイズ 1024 のブロックで blowfish cbc を 3 秒間実行: 3.00 秒で blowfish cbc を 46221 回
サイズ 8192 のブロックで blowfish cbc を 3 秒間実行: 3.00 秒で blowfish cbc を 5787 回
種類 8 バイト 64 バイト 256 バイト 1024 バイト 8192 バイト
blowfish cbc 12156.26k 15270.96k 15626.67k 15776.77k 15802.37k
MD5
変更前:
サイズ 8 のブロックで md5 を 3 秒間実行: 3.00 秒で md5 を 1490796 回
サイズ 64 のブロックで md5 を 3 秒間実行: 3.00 秒で md5 を 895849 回
サイズ 256 のブロックで md5 を 3 秒間実行: 3.00 秒で md5 を 410807 回
サイズ 1024 のブロックで md5 を 3 秒間実行: 3.00 秒で md5 を 129416 回
サイズ 8192 のブロックで md5 を 3 秒間実行: 3.00 秒で md5 を 17527 回
種類 8 バイト 64 バイト 256 バイト 1024 バイト 8192 バイト
md5 3975.46k 19111.45k 35055.53k 44173.99k 47860.39k
変更後:
サイズ 8 のブロックで md5 を 3 秒間実行: 3.00 秒で md5 を 2041410 回
サイズ 64 のブロックで md5 を 3 秒間実行: 3.00 秒で md5 を 1345402 回
サイズ 256 のブロックで md5 を 3 秒間実行: 3.10 秒で md5 を 669827 回
サイズ 1024 のブロックで md5 を 3 秒間実行: 2.96 秒で md5 を 221744 回
サイズ 8192 のブロックで md5 を 3 秒間実行: 3.00 秒で md5 を 30685 回
種類 8 バイト 64 バイト 256 バイト 1024 バイト 8192 バイト
md5 5443.76k 28701.91k 56968.68k 76711.44k 83790.51k
RMD160
変更前:
サイズ 8 のブロックで rmd160 を 3 秒間実行: 3.00 秒で rmd160 を 778828 回
サイズ 64 のブロックで rmd160 を 3 秒間実行: 3.00 秒で rmd160 を 430214 回
サイズ 256 のブロックで rmd160 を 3 秒間実行: 3.00 秒で rmd160 を 182108 回
サイズ 1024 のブロックで rmd160 を 3 秒間実行: 3.00 秒で rmd160 を 55050 回
サイズ 8192 のブロックで rmd160 を 3 秒間実行: 3.00 秒で rmd160 を 7339 回
種類 8 バイト 64 バイト 256 バイト 1024 バイト 8192 バイト
rmd160 2076.87k 9177.90k 15539.88k 18790.40k 20040.36k
変更後:
サイズ 8 のブロックで rmd160 を 3 秒間実行: 3.00 秒で rmd160 を 1084941 回
サイズ 64 のブロックで rmd160 を 3 秒間実行: 3.00 秒で rmd160 を 617966 回
サイズ 256 のブロックで rmd160 を 3 秒間実行: 2.99 秒で rmd160 を 267381 回
サイズ 1024 のブロックで rmd160 を 3 秒間実行: 3.00 秒で rmd160 を 82001 回
サイズ 8192 のブロックで rmd160 を 3 秒間実行: 3.00 秒で rmd160 を 10974 回
種類 8 バイト 64 バイト 256 バイト 1024 バイト 8192 バイト
rmd160 2893.18k 13183.27k 22892.82k 27989.67k 29966.34k
BIGNUM ルーチン
変更前:
512 ビットの dsa の署名を 10 秒間実行: 9.97 秒で 512 ビットの DSA の署名を 965 回
512 ビットの dsa の検証を 10 秒間実行: 9.93 秒で 512 ビットの DSA の検証を 766 回
1024 ビットの dsa の署名を 10 秒間実行: 9.99 秒で 1024 ビットの DSA の署名を 276 回
1024 ビットの dsa の検証を 10 秒間実行: 9.93 秒で 1024 ビットの DSA の検証を 217 回
署名 検証 署名/秒 検証/秒
dsa 512 ビット 0.0103 秒 0.0130 秒 96.8 77.1
dsa 1024 ビット 0.0362 秒 0.0458 秒 27.6 21.9
変更後:
512 ビットの dsa の署名を 10 秒間実行: 9.88 秒で 512 ビットの DSA の署名を 3742 回
512 ビットの dsa の検証を 10 秒間実行: 9.92 秒で 512 ビットの DSA の検証を 3065 回
1024 ビットの dsa の署名を 10 秒間実行: 9.99 秒で 1024 ビットの DSA の署名を 1357 回
1024 ビットの dsa の検証を 10 秒間実行: 9.83 秒で 1024 ビットの DSA の検証を 1094 回
署名 検証 署名/秒 検証/秒
dsa 512 ビット 0.0026 秒 0.0032 秒 378.7 309.0
dsa 1024 ビット 0.0074 秒 0.0090 秒 135.8 111.3