[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Some timings



Here are some timings on various routines, machines, compilers.  All
tests unless otherwise noted were run with 10000 byte block inputs,
10000 times.  Varying the block size upward caused no timing changes.
The machines were all running one flavor or another of Unix.

The sparc10 is a sparc 20/612, the mips is a decstation 3000/200,
the alpha is a 3000/600 175 Hz machine.

MD5
=======================
486 66MHz gcc  -O2  	      	1.37 Mbyte/sec
sparc ipc gcc2 -O2	      	 .99 Mbyte/sec
mips 25MHz gcc -O	        1.31 Mbyte/sec
hp 735			      	5.26 Mbyte/sec
sparc10 gcc2 -O2	      	5.88 Mbyte/sec
dec alpha 600 cc -O2	      	7.8  Mbyte/sec
			      
MD4			      
=======================
dec alpha 600 cc -O	        6.25 Mbyte/sec
			      
SHA
=======================
486 66MHz  gcc  -O4	        1.16 Mbyte/sec
sparc10    gcc2 -O2	        3.1  Mbyte/sec
dec alpha 600 gcc2 -O2	        5.0  Mbyte/sec

HAVAL
=======================
486 66MHz  gcc -O 		 .42 MByte/sec
sparc ipc  gcc2 -O2     	 .60 MByte/sec	
mips 25MHz R3000  gcc -O	 .74 MByte/sec
sparc10    cc -O2		3.17 MByte/sec
dec alpha  gcc -O2		2.33 MByte/sec*
*wrong answer; source code not converted to 64-bit ints.

DES ("random" data)
=======================
486 66MHz  gcc  -O2	      	 .43 Mbyte/sec
sparc ipc gcc2 -O2	      	 .31 Mbyte/sec
mips	25MHz   	      	 .25 Mbyte/sec
sparc10 gcc2 -O2                1.04 Mbyte/sec
dec alpha 600 gcc2 -O2	        1.87 Mbyte/sec

DES keysetup only
=======================
486 66MHz gcc  -O2	      115 usec/key
sparc10 cc -O2                 40 usec/key
dec alpha 600 gcc2 -O2	       23 used/key

RSA (512 bit modulus), GNU MP package, nothing fancy
63 byte input chunk
=======================
66MHz 486			95 bytes/sec
sparcIPC			84 bytes/sec
sparc10			       350 bytes/sec
DEC alpha 600		      1250 bytes/sec

In the following two timings, the two Diffie-Hellman methods offer the same
resistance to a discrete log attack, but one uses smaller numbers.  The
elliptic curve method has an optimization that is applicable to the mod p
method and yields a speedup by a factor of 2.5.  

DH key exchange (512 bit, mod p)
=======================
Total = 2*Offer + Reply:
Sparc IPC (25MHz)          2670   msec
Dec Alpha 600 (175 MHz)     185   msec

DH key exchange (155 bit, elliptic curve, GF[2^155]
(with table of powers of g)
=======================
Total = 2*Offer + Reply:
sparc ipc                   136.9  msec
dec alpha                    11.62 msec

Phil Karn points out that the mod p case can be considerably faster if
we use 128 exponents.  Applying that optimization, and the
optimization of the table of powers of g, we estimate

DH key exchange (512 bit, mod p)
(128 bits of exponent, table of powers of g)
=======================
Total = 2*Offer + Reply:
Sparc IPC (25MHz)            380   msec  estimated
Dec Alpha 600 (175 MHz)       26.2 msec  estimated

The elliptic curve method would speed up slightly with 128 bit exponents

DH key exchange (elliptic curve, GF[2^155]
(128 bits of exponent, table of powers of g)
=======================
Total = 2*Offer + Reply:
Sparc IPC (25MHz)            114   msec  estimated
Dec Alpha 600 (175 MHz)       21.8 msec  estimated