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を使用してApacheSSL処理をしても、
ほとんどの場合はボトルネックになることはないでしょう。
RC4-128だともっと速いわけですから。