Print This Page

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


Designed by OnTheWeb  Maintained by www.WebDesignGalway.ie