DESとRC4のベンチマーク(PycryptoとM2Crypto)
散々苦労した?挙句、ようやくPyCryptoを使えるようになりました。
RC4(pycryptoなど)の続き - skobayasの日記
となると、気になるのはその速度。
まずはDESから
64bitのランダムキーで48MByteのファイルを暗号化/復号化します。
m2crypt encrypt needs 1.219000 second
m2crypt decrypt needs 1.141000 second
pycrypt encrypt needs 1.563000 second
pycrypt decrypt needs 1.625000 second
続いてRC4
128bitのランダムキーで48MByteのファイルを暗号化/復号化します。
m2crypt encrypt needs 0.469000 second
m2crypt decrypt needs 0.437000 second
pycrypt encrypt needs 0.437000 second
pycrypt decrypt needs 0.437000 second
最後にAES(128)
128bitのランダムキーで48MByteのファイルを暗号化/復号化します。
m2crypt encrypt needs 1.015000 second
m2crypt decrypt needs 0.969000 second
pycrypt encrypt needs 0.828000 second
pycrypt decrypt needs 0.828000 second
実装も違うのでなんともいえませんが、確かにAESはDESに比べて速い結果になってますね。
(速度は同程度でも暗号鍵長がAESの方が長い。
単純にDESで同じ強度を出そうとすると3DES(128bit)を使用することになり、この場合、
所要時間は概ねDESの3倍とされる)
でも、最速はやはりRC4ですか。
ちなみに、PyDesですが、PurePythonだけあって、速度的にはかなり不利です。
64Kbyteの暗号化/復号化で12.76秒くらいかかります。
概ね5KByte/Sec
m2Crypto(opensslライブラリを呼び出す)で同条件だと上記のとおりですので、
概ね40.68Mbyte/Sec
このくらいの速度が出るのであれば、opensslを使用してApacheがSSL処理をしても、
ほとんどの場合はボトルネックになることはないでしょう。
RC4-128だともっと速いわけですから。