Performance

 

The following examples are chosen to show typical performances for systems built using the CPKtec Toolkit, and have no additional optimisation. Timings for the first five examples are given for a 700 MHz Pentium III. Timings for Example 6 are given for a 80 MHz ARM7TDMI.

Examples 1, 2 and 3 include exactly the same functionality. Example 1 is a small system optimised primarily for code size, Example 3 is optimised for performance, and Example 2 is a compromise between the two.

These systems are T3, T4 and T5 systems, using the T-number notation of the Design Philosophy page.

Example 4 is a T4 system including more functionality. Example 5 gives ECC timings on a Pentium III for a variety of Elliptic Curves. Example 6 gives timings on an ARM7TDMI for systems performing RSA in a number of different performance/memory trade-offs.

Example 1

Size-optimised system including RSA key generation, RSA, Diffie-Hellman key exchange, DSA, AES, SHA-1, and random number generator (RNG).

Sizes:  Code size: 28.6 Kb,   Maximum stack usage: < 700 bytes,   Maximum heap usage: < 1800 bytes

Timings:
More details
 
RSA-1024 key gen 430 ms
RSA-1024 encrypt 0.35 ms
RSA-1024 decrypt 16.8 ms
DH-512 key exchange  5.1 ms
DSA-512 sign 3.0 ms
DSA-512 verify 3.9 ms
AES-128 encrypt 5.0 Mbyte/sec
AES-128 decrypt 3.4 Mbyte/sec

Example 2

Medium-sized system including RSA key generation, RSA, Diffie-Hellman key exchange, DSA, AES, SHA-1, and RNG.

Sizes:  Code size: 31.7 Kb,   Maximum stack usage: < 700 bytes,   Maximum heap usage: < 1800 bytes

Timings:
More details
 
RSA-1024 key gen 380 ms
RSA-1024 encrypt 0.32 ms
RSA-1024 decrypt 12.2 ms
DH-512 key exchange 3.2 ms
DSA-512 sign 1.6 ms
DSA-512 verify 3.6 ms
AES-128 encrypt 6.5 Mbyte/sec
AES-128 decrypt 4.5 Mbyte/sec

Example 3

Performance-optimised system including RSA key generation, RSA, Diffie-Hellman key exchange, DSA, AES, SHA-1, and RNG.

Sizes:  Code size: 47.6 Kb,   Maximum stack usage: < 700 bytes,   Maximum heap usage: < 2400 bytes

Timings:
More details
 
RSA-1024 key gen 255 ms
RSA-1024 encrypt 0.12 ms
RSA-1024 decrypt 6.8 ms
DH-512 key exchange 1.6 ms
DSA-512 sign 0.94 ms
DSA-512 verify 1.9 ms
AES-128 encrypt 9.1 Mbyte/sec
AES-128 decrypt 7.5 Mbyte/sec

A 2048-bit RSA decryption takes 40.6 ms on this system, with the maximum heap usage increased to 6536 bytes.

Example 4

Medium-sized system including RSA key generation, RSA, Diffie-Hellman key exchange, DSA, ECDSA, ECDH, AES, DES, 3DES, SHA-1, and RNG.

Sizes:  Code size: 48.1 Kb,   Maximum stack usage: < 700 bytes,   Maximum heap usage: < 1800 bytes

Timings:
More details
 
ECDSA-192 sign 3.1 ms
ECDSA-192 verify 8.6 ms
ECDSA-163 sign 3.1 ms
ECDSA-163 verify 7.0 ms
ECDH-192 key exchange 3.8 ms
ECDH-163 key exchange 6.0 ms
3DES encrypt 3.1 Mbyte/sec
3DES decrypt 2.9 Mbyte/sec

Example 5

Timings for a speed-optimised system to perform ECC operations. Timings are given for one private key operation (an ECDSA verification) and for a range of Elliptic Curves.

Timings:
More details
 
192-bit char p 4.9 ms
224-bit char p 6.2 ms
256-bit char p 9.5 ms
384-bit char p 19.0 ms
521-bit char p 27.1 ms
163-bit char 2 5.9 ms
233-bit char 2 11.6 ms
283-bit char 2 18.7 ms
409-bit char 2 41.0 ms
571-bit char 2 96.1 ms

Example 6

Examples of times for systems performing RSA on an 80MHz ARM7TDMI for a variety of different trade-offs between performance and memory usage. Timngs are for one 1024-bit RSA private key operation (RSA decryption).

Timings:
More details
 
ROM usage
9.2k
7.5k
6.5k
RAM usage
1.9k
1.8k
1.7k
timing
 106 ms 
 164 ms 
 254 ms 

Return to Technology page
 


Copyright © Cambridge Public Key Technology Ltd 2002-2006 CPKtec logo