Skip to main content.
Google custom search

暗号ライブラリーの速度改善: 新旧比較

暗号ライブラリーの速度改善 (2000 年 8 月 4 日)

変更前後の比較

以下に示すのは、最近の 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