Statistical data about the performance of various encryption algorithms

How can I find statistical data about the performance of various encryption systems, such as RSA, DSA, ECC etc?

-
ECC is not an algorithm; it is a generic name for various kinds of asymmetric algorithms which internally use elliptic curves, e.g. ECDSA and ECDH. Speaking of which, DSA is not an "encryption" algorithm but a signature algorithm. Quite a different beast altogether. – Thomas Pornin Nov 26 '11 at 14:12
Excellent explanation Thomas, thank you! – Hooijdonk Nov 26 '11 at 20:01

You will find a lot of data on the eBACS site (in particular in the "eBATS" section for asymmetric cryptography). Note, though, that:

• This site aggregates many measures, so the whole thing is quite overwhelming.
• Performance depends not only on the algorithm, but also on the optimization efforts invested by whoever wrote the code.
• Low-level optimization depends quite a lot on details of the target system, so you can observe semi-dramatic variations when using the same code over similar but not identical systems (especially if the code size is close to the L1 cache size).
• About all eBACS measures are on rather "big" machines, which can run the framework. So these are PC, desktop systems and servers. eBACS singularly lacks measures on smaller systems such as ARM9 or small Mips processors, as are found in home routers, cheap mobile phones and similar appliances. And no figures on even smaller things (smartcards) either.
• If you have a server which uses a private key for signature generation or asymmetric decryption, and if you are serious about security, then you will store the private key in an Hardware Security Module, which is a kind of inflated smartcard. The private key operation then takes place in the HSM, and the performance of the host system (a PC) is totally irrelevant. The HSM will use a specifically designed circuit to optimize the operation, and that circuit does not react like a generic CPU, performance-wise.

(For the last point, an example is speed of elliptic curve operations on various fields. CPU-based implementation, i.e. software, will be much faster with curves on prime fields GF(p) than for curves over binary fields GF(2m); but dedicated FPGA/ASIC the converse is true.)

So while you can have hoards of figures, be aware that the problem of defining a general one-size-fits-all performance measure for an asymmetric cryptographic algorithm, is hard.

-

If you are asking about the performance of various encryption algorithms, a good starting point can be obtained by running `openssl speed`. For instance, here is sample output from OpenSSL:

``````                  sign    verify    sign/s verify/s
rsa 1024 bits 0.000489s 0.000025s   2046.5  39673.9
rsa 2048 bits 0.003075s 0.000089s    325.3  11241.0
sign    verify    sign/s verify/s
dsa 1024 bits 0.000256s 0.000291s   3899.0   3435.1
dsa 2048 bits 0.000880s 0.001048s   1136.3    954.2
``````

You can see that RSA signature verification and RSA encryption operations are extremely fast (10K-40K operations/second, depending upon security level). RSA signature generation and RSA decryption are slower (300-2K ops/sec). DSA signature generation and signature verification both run at about the same speed (1K-3K ops/sec).

This benchmark doesn't show ECC cryptography, but generally speaking, you should expect ECC cryptography to be faster and yield shorter signatures/ciphertexts than DSA, for a given security level.

-
Yes, I need data about the performance of RSA, DSA, ECC. These data will be used as reference in a thesis. So, I need for example a web link or a PDF, to be able use as reference. – Hooijdonk Nov 26 '11 at 13:45
I encourage you to go measure it yourself. It is not hard to do the experiment. – D.W. Nov 26 '11 at 23:06