How can I find statistical data about the performance of various encryption systems, such as RSA, DSA, ECC etc?
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.