Thursday, April 12, 2007

1024 vs 2048 RSA encryption/decryption fun in Ruby

Using Tobias's handy openssl wrapper I decided to run a couple timing tests to see how well Ruby's openssl implementation performed in encrypting/decrypting a set of 1000 identical messages, with 1024 bit and 2048 bit keys. Nothing scientific about this, just three runs of the script on my MacBook Pro (2.33 GHZ, 1G RAM).

Encrypted text: "This is a much longer message since than what I intend to encrypt"

Encryption results, avg time
1024: 0.000300691s
2048: 0.001010027s

Decryption results, avg time
1024: 0.005472064s
2048: 0.035524023s

Pick your poison.

2 comments:

Mike Heath said...

Very cool. I would expect it to go quite fast if the Ruby library is just wrapping OpenSSL. If this were a reimplementation of OpenSSL in Ruby, this would be incredible.

RR said...

That appears to be the case as the first line of code in openssl.rb is:
require 'openssl.so'