Benchmarks
Performance is the biggest single issue for implementors, and MIRACL allows a variety of techniques (algorithmic tricks and/or assembly language) to be used to squeeze maximum performance from a particular environment. So use MIRACL in your cryptographic API for a performance boost - you may not need that expensive Cryptographic accelerator!
This diagram below shows timings for modular exponentiation, that is the calculation of xy mod n, for x, y and n all the same size in bits - the size shown along the horizontal axis. The exponent y is chosen at random. This is the bottleneck calculation in many cryptographic protocols. Five different methods are implemented for the Intel 80x86/Pentium family. Timings on the horizontal axes are correct in seconds for 8192 bit exponentiation. For 4096 bits divide by 8, for 2048 bits divide by 8 again, etc. For a paper describing the methods in more details see timings.doc
The following timings were obtained using the Borland C/C++ Compiler/assembler, for modular exponentiation.
Times in milliseconds for optimal technique
| 512 bits | 1024 bits | 2048 bits | 4096 bits | |
| 33MHz 80486DX | 370 | 2833 | 17833 | 111000 |
| 60MHz Pentium | 48 | 353 | 2452 | 18500 |
| 180MHz Pentium Pro | 12 | 90 | 564 | 3551 |
| 233MHz Pentium II | 10 | 80 | 510 | 3250 |
On a 233 Mhz Pentium II - Best times (without precomputation).
A 1024-bit RSA decryption/signature takes 20ms. *
A 2048-bit RSA decryption takes 160 ms. +
A 1024 bit (160 bit exponent) DSS verification takes 16ms. +
A 2048 bit (256 bit exponent) DSS verification takes 79ms +
A 160-bit Elliptic Curve ECS verification takes 11 ms. *
A 256-bit Elliptic Curve ECS verification takes 26ms.*
A 192-bit Elliptic Curve ECS verification takes 9ms (NIST Standard Curve - Special Modulus) *
A 224-bit Elliptic Curve ECS verification takes 13ms (NIST Standard Curve - Special Modulus) *
On 80MHz ARM7TDMI - Best times (without precomputation)
A 1024-bit RSA decryption/signature takes 120ms *
A 192-bit Elliptic Curve point multiplication takes 38ms (NIST Standard Curve - Special Modulus) *
A 224-bit Elliptic Curve point multiplication takes 53ms (NIST Standard Curve - Special Modulus) *
MIRACL contains fast experimental implementations of Identity-Based Encryption.
Timings include all number theoretic components of encrypt/decrypt processing. The most time-consuming component is the calculation of the Tate Pairing. The discrete logarithm bit-length security of a pairing-based system is a function of the product of the security multiplier k and the bit length of the base field. In these cases k=2 and the base field is 512-bits, for 1024-bit security.
On a 1GHz Pentium III
A 1024-bit IBE encrypt takes 35ms *
A 1024-bit IBE decrypt takes 27ms *
A 1024-bit IBE encrypt takes 22ms (with precomputation) *
A 1024-bit IBE decrypt takes 17ms (with precomputation) *
A 1024-bit Tate pairing takes 20ms *
A 1024-bit Tate pairing takes 8.6ms (with precomputation) *
* - Using Comba Method for modular multiplication
+ - Using KCM Method for modular multiplication
Previous page: Home
Next page: Output of the BMARK program
