I was doing some testing last night between an Sun UltraEnterprise 10000
server with 16 400Mhz CPUs and 8GB ram and an AMD Athlon 500 with 128MB
RAM. Mainly because there was a bunch of info from ApacheCon about SSL.
One table in particular caught my eye. It was a comparison of several
platforms and their respective SSL performance. Basically I was just
reproducing the same test, but on a 10K rather than an Sun Ultra5 400Mhz.
Either way, the same processors. I garnered very similar results to this
test that was done for documentation use at ApacheCon. Ralf S.
Engelschall can concurr I believe. What I found is that 1024bit key signs
on the Sun was 30/s and the Athlon was 95/s. This holds true with most of
my testing to date.
That brings me to the next thought I had. The first time SSL was
compiled and used, what was it compiled on/into? (I ask this because it
would make some sense if it was first compiled on some kind of x86
architecture, the FPU's are very different from that of a Sun or IBM
chips.) Any thoughts on this?
I've attatched the athlon results and the E10K results. The athlon is
using RH and an RPM'd version of openssl0.9.6 and the E10K was compiled
on, so it had more algorythms to do. The most important thing to look at
in these results however, is the Sign/s and Vrfy/S at the bottom. The
1024 and 2048 bits in particular.
- GrandMasterLee -
[EMAIL PROTECTED]
Tue Oct 31 17:49:37 CST 2000
Doing md5 for 3s on 8 size blocks: 2287550 md5's in 3.00s
Doing md5 for 3s on 64 size blocks: 1508759 md5's in 3.00s
Doing md5 for 3s on 256 size blocks: 742601 md5's in 3.00s
Doing md5 for 3s on 1024 size blocks: 244206 md5's in 3.00s
Doing md5 for 3s on 8192 size blocks: 33679 md5's in 3.00s
Doing hmac(md5) for 3s on 8 size blocks: 983674 hmac(md5)'s in 3.00s
Doing hmac(md5) for 3s on 64 size blocks: 804500 hmac(md5)'s in 3.00s
Doing hmac(md5) for 3s on 256 size blocks: 515322 hmac(md5)'s in 2.99s
Doing hmac(md5) for 3s on 1024 size blocks: 213772 hmac(md5)'s in 3.00s
Doing hmac(md5) for 3s on 8192 size blocks: 33043 hmac(md5)'s in 3.00s
Doing sha1 for 3s on 8 size blocks: 1503871 sha1's in 3.00s
Doing sha1 for 3s on 64 size blocks: 909971 sha1's in 3.00s
Doing sha1 for 3s on 256 size blocks: 414957 sha1's in 3.00s
Doing sha1 for 3s on 1024 size blocks: 130529 sha1's in 3.00s
Doing sha1 for 3s on 8192 size blocks: 17674 sha1's in 3.00s
Doing rmd160 for 3s on 8 size blocks: 1148990 rmd160's in 3.00s
Doing rmd160 for 3s on 64 size blocks: 658897 rmd160's in 3.00s
Doing rmd160 for 3s on 256 size blocks: 286929 rmd160's in 3.00s
Doing rmd160 for 3s on 1024 size blocks: 87975 rmd160's in 3.00s
Doing rmd160 for 3s on 8192 size blocks: 11787 rmd160's in 3.00s
Doing rc4 for 3s on 8 size blocks: 12498376 rc4's in 3.00s
Doing rc4 for 3s on 64 size blocks: 2085709 rc4's in 3.00s
Doing rc4 for 3s on 256 size blocks: 538203 rc4's in 3.00s
Doing rc4 for 3s on 1024 size blocks: 136161 rc4's in 3.00s
Doing rc4 for 3s on 8192 size blocks: 17089 rc4's in 3.00s
Doing des cbc for 3s on 8 size blocks: 4262797 des cbc's in 3.00s
Doing des cbc for 3s on 64 size blocks: 587605 des cbc's in 3.00s
Doing des cbc for 3s on 256 size blocks: 148339 des cbc's in 3.00s
Doing des cbc for 3s on 1024 size blocks: 37225 des cbc's in 3.00s
Doing des cbc for 3s on 8192 size blocks: 4658 des cbc's in 3.00s
Doing des ede3 for 3s on 8 size blocks: 1616924 des ede3's in 3.00s
Doing des ede3 for 3s on 64 size blocks: 210433 des ede3's in 3.00s
Doing des ede3 for 3s on 256 size blocks: 52923 des ede3's in 3.00s
Doing des ede3 for 3s on 1024 size blocks: 13247 des ede3's in 3.00s
Doing des ede3 for 3s on 8192 size blocks: 1657 des ede3's in 3.00s
Doing rc2 cbc for 3s on 8 size blocks: 1606729 rc2 cbc's in 3.00s
Doing rc2 cbc for 3s on 64 size blocks: 216198 rc2 cbc's in 3.00s
Doing rc2 cbc for 3s on 256 size blocks: 54638 rc2 cbc's in 2.99s
Doing rc2 cbc for 3s on 1024 size blocks: 13717 rc2 cbc's in 3.00s
Doing rc2 cbc for 3s on 8192 size blocks: 1717 rc2 cbc's in 2.99s
Doing blowfish cbc for 3s on 8 size blocks: 6720599 blowfish cbc's in 3.00s
Doing blowfish cbc for 3s on 64 size blocks: 979453 blowfish cbc's in 3.00s
Doing blowfish cbc for 3s on 256 size blocks: 248871 blowfish cbc's in 3.00s
Doing blowfish cbc for 3s on 1024 size blocks: 62630 blowfish cbc's in 3.00s
Doing blowfish cbc for 3s on 8192 size blocks: 7842 blowfish cbc's in 3.00s
Doing cast cbc for 3s on 8 size blocks: 6270969 cast cbc's in 3.00s
Doing cast cbc for 3s on 64 size blocks: 903465 cast cbc's in 3.00s
Doing cast cbc for 3s on 256 size blocks: 229157 cast cbc's in 3.00s
Doing cast cbc for 3s on 1024 size blocks: 57609 cast cbc's in 3.00s
Doing cast cbc for 3s on 8192 size blocks: 7214 cast cbc's in 3.00s
Doing 512 bit private rsa's for 10s: 4810 512 bit private RSA's in 10.00s
Doing 512 bit public rsa's for 10s: 50050 512 bit public RSA's in 9.99s
Doing 1024 bit private rsa's for 10s: 950 1024 bit private RSA's in 10.00s
Doing 1024 bit public rsa's for 10s: 17252 1024 bit public RSA's in 10.00s
Doing 2048 bit private rsa's for 10s: 159 2048 bit private RSA's in 10.40s
Doing 2048 bit public rsa's for 10s: 5178 2048 bit public RSA's in 10.00s
Doing 4096 bit private rsa's for 10s: 24 4096 bit private RSA's in 10.23s
Doing 4096 bit public rsa's for 10s: 1470 4096 bit public RSA's in 10.00s
Doing 512 bit sign dsa's for 10s: 4962 512 bit DSA signs in 9.98s
Doing 512 bit verify dsa's for 10s: 4198 512 bit DSA verify in 10.00s
Doing 1024 bit sign dsa's for 10s: 1811 1024 bit DSA signs in 10.00s
Doing 1024 bit verify dsa's for 10s: 1495 1024 bit DSA verify in 10.00s
Doing 2048 bit sign dsa's for 10s: 557 2048 bit DSA signs in 10.00s
Doing 2048 bit verify dsa's for 10s: 465 2048 bit DSA verify in 10.00s
OpenSSL 0.9.5a 1 Apr 2000
built on: Wed Aug 30 14:46:28 EDT 2000
options:bn(32,32) rc4(ptr,int) des(ptr,risc1,16,long) blowfish(idx)
compiler: gcc -DTHREADS -D_REENTRANT -fPIC -ggdb -DNO_IDEA -DNO_MDC2 -DNO_RC5 -DNO_MD2
-DL_ENDIAN -DTERMIO -O2 -march=i386 -mcpu=i686 -Wall -DSHA1_ASM -DMD5_ASM -DRMD160_ASM
The 'numbers' are in 1000s of bytes per second processed.
type 8 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
md2 0.00 0.00 0.00 0.00 0.00
mdc2 0.00 0.00 0.00 0.00 0.00
md5 6100.13k 32186.86k 63368.62k 83355.65k 91966.12k
hmac(md5) 2623.13k 17162.67k 44121.21k 72967.51k 90229.42k
sha1 4010.32k 19412.71k 35409.66k 44553.90k 48261.80k
rmd160 3063.97k 14056.47k 24484.61k 30028.80k 32186.37k
rc4 33329.00k 44495.13k 45926.66k 46476.29k 46664.36k
des cbc 11367.46k 12535.57k 12658.26k 12706.13k 12719.45k
des ede3 4311.80k 4489.24k 4516.10k 4521.64k 4524.71k
idea cbc 0.00 0.00 0.00 0.00 0.00
rc2 cbc 4284.61k 4612.22k 4678.04k 4682.07k 4704.24k
rc5-32/12 cbc 0.00 0.00 0.00 0.00 0.00
blowfish cbc 17921.60k 20895.00k 21236.99k 21377.71k 21413.89k
cast cbc 16722.58k 19273.92k 19554.73k 19663.87k 19699.03k
sign verify sign/s verify/s
rsa 512 bits 0.0021s 0.0002s 481.0 5010.0
rsa 1024 bits 0.0105s 0.0006s 95.0 1725.2
rsa 2048 bits 0.0631s 0.0019s 15.8 517.8
rsa 4096 bits 0.4263s 0.0068s 2.3 147.0
sign verify sign/s verify/s
dsa 512 bits 0.0020s 0.0024s 497.2 419.8
dsa 1024 bits 0.0055s 0.0067s 181.1 149.5
dsa 2048 bits 0.0180s 0.0215s 55.7 46.5
Tue Oct 31 17:54:28 CST 2000
Tue Oct 31 16:40:08 CST 2000
Doing md2 for 3s on 8 size blocks: 124150 md2's in 3.00s
Doing md2 for 3s on 64 size blocks: 42973 md2's in 3.00s
Doing md2 for 3s on 256 size blocks: 14515 md2's in 3.00s
Doing md2 for 3s on 1024 size blocks: 3987 md2's in 3.00s
Doing md2 for 3s on 8192 size blocks: 512 md2's in 3.00s
Doing mdc2 for 3s on 8 size blocks: 304167 mdc2's in 3.00s
Doing mdc2 for 3s on 64 size blocks: 38394 mdc2's in 3.00s
Doing mdc2 for 3s on 256 size blocks: ^[[15~9648 mdc2's in 3.00s
Doing mdc2 for 3s on 1024 size blocks: 2405 mdc2's in 3.00s
Doing mdc2 for 3s on 8192 size blocks: 302 mdc2's in 3.00s
Doing md4 for 3s on 8 size blocks: 1952656 md4's in 3.00s
Doing md4 for 3s on 64 size blocks: 1076545 md4's in 3.00s
Doing md4 for 3s on 256 size blocks: 450943 md4's in 3.00s
Doing md4 for 3s on 1024 size blocks: 136335 md4's in 3.00s
Doing md4 for 3s on 8192 size blocks: 18083 md4's in 3.00s
Doing md5 for 3s on 8 size blocks: 1398884 md5's in 3.00s
Doing md5 for 3s on 64 size blocks: 808209 md5's in 3.00s
Doing md5 for 3s on 256 size blocks: 365932 md5's in 3.00s
Doing md5 for 3s on 1024 size blocks: 114821 md5's in 3.00s
Doing md5 for 3s on 8192 size blocks: 15500 md5's in 3.00s
Doing hmac(md5) for 3s on 8 size blocks: 498835 hmac(md5)'s in 3.00s
Doing hmac(md5) for 3s on 64 size blocks: 381998 hmac(md5)'s in 3.00s
Doing hmac(md5) for 3s on 256 size blocks: 242092 hmac(md5)'s in 3.00s
Doing hmac(md5) for 3s on 1024 size blocks: 99054 hmac(md5)'s in 3.00s
Doing hmac(md5) for 3s on 8192 size blocks: 15140 hmac(md5)'s in 3.00s
Doing sha1 for 3s on 8 size blocks: 911176 sha1's in 3.00s
Doing sha1 for 3s on 64 size blocks: 511465 sha1's in 3.00s
Doing sha1 for 3s on 256 size blocks: 215542 sha1's in 3.00s
Doing sha1 for 3s on 1024 size blocks: 64268 sha1's in 3.00s
Doing sha1 for 3s on 8192 size blocks: 8700 sha1's in 3.00s
Doing rmd160 for 3s on 8 size blocks: 609831 rmd160's in 3.00s
Doing rmd160 for 3s on 64 size blocks: 187616 rmd160's in 3.00s
Doing rmd160 for 3s on 256 size blocks: 107183 rmd160's in 3.00s
Doing rmd160 for 3s on 1024 size blocks: 39404 rmd160's in 3.00s
Doing rmd160 for 3s on 8192 size blocks: 5703 rmd160's in 3.00s
Doing rc4 for 3s on 8 size blocks: 10754191 rc4's in 3.00s
Doing rc4 for 3s on 64 size blocks: 1772741 rc4's in 3.00s
Doing rc4 for 3s on 256 size blocks: 457953 rc4's in 3.00s
Doing rc4 for 3s on 1024 size blocks: 115474 rc4's in 3.00s
Doing rc4 for 3s on 8192 size blocks: 14469 rc4's in 3.00s
Doing des cbc for 3s on 8 size blocks: 1427845 des cbc's in 3.00s
Doing des cbc for 3s on 64 size blocks: 193274 des cbc's in 3.00s
Doing des cbc for 3s on 256 size blocks: 49049 des cbc's in 3.00s
Doing des cbc for 3s on 1024 size blocks: 12302 des cbc's in 3.00s
Doing des cbc for 3s on 8192 size blocks: 1503 des cbc's in 3.00s
Doing des ede3 for 3s on 8 size blocks: 523259 des ede3's in 2.99s
Doing des ede3 for 3s on 64 size blocks: 67236 des ede3's in 3.00s
Doing des ede3 for 3s on 256 size blocks: 16882 des ede3's in 3.00s
Doing des ede3 for 3s on 1024 size blocks: 4218 des ede3's in 3.00s
Doing des ede3 for 3s on 8192 size blocks: 524 des ede3's in 3.00s
Doing idea cbc for 3s on 8 size blocks: 1515910 idea cbc's in 3.00s
Doing idea cbc for 3s on 64 size blocks: 196796 idea cbc's in 3.00s
Doing idea cbc for 3s on 256 size blocks: 49535 idea cbc's in 3.00s
Doing idea cbc for 3s on 1024 size blocks: 12408 idea cbc's in 3.00s
Doing idea cbc for 3s on 8192 size blocks: 1551 idea cbc's in 3.00s
Doing rc2 cbc for 3s on 8 size blocks: 1731541 rc2 cbc's in 3.00s
Doing rc2 cbc for 3s on 64 size blocks: 232089 rc2 cbc's in 3.00s
Doing rc2 cbc for 3s on 256 size blocks: 58383 rc2 cbc's in 3.00s
Doing rc2 cbc for 3s on 1024 size blocks: 14672 rc2 cbc's in 3.00s
Doing rc2 cbc for 3s on 8192 size blocks: 1829 rc2 cbc's in 3.00s
Doing rc5-32/12 cbc for 3s on 8 size blocks: 5188738 rc5-32/12 cbc's in 3.00s
Doing rc5-32/12 cbc for 3s on 64 size blocks: 789010 rc5-32/12 cbc's in 3.00s
Doing rc5-32/12 cbc for 3s on 256 size blocks: 203203 rc5-32/12 cbc's in 3.00s
Doing rc5-32/12 cbc for 3s on 1024 size blocks: 51155 rc5-32/12 cbc's in 3.00s
Doing rc5-32/12 cbc for 3s on 8192 size blocks: 6392 rc5-32/12 cbc's in 3.00s
Doing blowfish cbc for 3s on 8 size blocks: 3773417 blowfish cbc's in 3.00s
Doing blowfish cbc for 3s on 64 size blocks: 555043 blowfish cbc's in 3.00s
Doing blowfish cbc for 3s on 256 size blocks: 141853 blowfish cbc's in 3.00s
Doing blowfish cbc for 3s on 1024 size blocks: 35663 blowfish cbc's in 3.00s
Doing blowfish cbc for 3s on 8192 size blocks: 2968 blowfish cbc's in 3.00s
Doing cast cbc for 3s on 8 size blocks: 2360971 cast cbc's in 3.00s
Doing cast cbc for 3s on 64 size blocks: 326473 cast cbc's in 3.00s
Doing cast cbc for 3s on 256 size blocks: 82823 cast cbc's in 3.00s
Doing cast cbc for 3s on 1024 size blocks: 20779 cast cbc's in 3.00s
Doing cast cbc for 3s on 8192 size blocks: 2539 cast cbc's in 3.00s
Doing 512 bit private rsa's for 10s: 1784 512 bit private RSA's in 10.00s
Doing 512 bit public rsa's for 10s: 17026 512 bit public RSA's in 10.00s
Doing 1024 bit private rsa's for 10s: 301 1024 bit private RSA's in 10.20s
Doing 1024 bit public rsa's for 10s: 5202 1024 bit public RSA's in 10.00s
Doing 2048 bit private rsa's for 10s: 46 2048 bit private RSA's in 10.17s
Doing 2048 bit public rsa's for 10s: 1462 2048 bit public RSA's in 10.00s
Doing 4096 bit private rsa's for 10s: 7 4096 bit private RSA's in 10.96s
Doing 4096 bit public rsa's for 10s: 396 4096 bit public RSA's in 10.20s
Doing 512 bit sign dsa's for 10s: 1711 512 bit DSA signs in 10.00s
Doing 512 bit verify dsa's for 10s: 1389 512 bit DSA verify in 10.00s
Doing 1024 bit sign dsa's for 10s: 529 1024 bit DSA signs in 10.10s
Doing 1024 bit verify dsa's for 10s: 426 1024 bit DSA verify in 10.00s
Doing 2048 bit sign dsa's for 10s: 151 2048 bit DSA signs in 10.50s
Doing 2048 bit verify dsa's for 10s: 124 2048 bit DSA verify in 10.10s
OpenSSL 0.9.6 24 Sep 2000
built on: Tue Oct 31 16:22:39 CST 2000
options:bn(64,32) md2(int) rc4(ptr,char) des(idx,cisc,16,long) idea(int) blowfish(ptr)
compiler: gcc -fPIC -DTHREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -mcpu=ultrasparc
-O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W -DULTRASPARC -DMD5_ASM
The 'numbers' are in 1000s of bytes per second processed.
type 8 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
md2 331.07k 916.76k 1238.61k 1360.90k 1398.10k
mdc2 811.11k 819.07k 823.30k 820.91k 824.66k
md4 5207.08k 22966.29k 38480.47k 46535.68k 49378.65k
md5 3730.36k 17241.79k 31226.20k 39192.23k 42325.33k
hmac(md5) 1330.23k 8149.29k 20658.52k 33810.43k 41342.29k
sha1 2429.80k 10911.25k 18392.92k 21936.81k 23756.80k
rmd160 1626.22k 4002.47k 9146.28k 13449.90k 15572.99k
rc4 28677.84k 37818.47k 39078.66k 39415.13k 39510.02k
des cbc 3807.59k 4123.18k 4185.51k 4199.08k 4104.19k
des ede3 1400.02k 1434.37k 1440.60k 1439.74k 1430.87k
idea cbc 4042.43k 4198.31k 4226.99k 4235.26k 4235.26k
rc2 cbc 4617.44k 4951.23k 4982.02k 5008.04k 4994.39k
rc5-32/12 cbc 13836.63k 16832.21k 17339.99k 17460.91k 17454.42k
blowfish cbc 10062.45k 11840.92k 12104.79k 12172.97k 8104.62k
cast cbc 6295.92k 6964.76k 7067.56k 7092.57k 6933.16k
sign verify sign/s verify/s
rsa 512 bits 0.0056s 0.0006s 178.4 1702.6
rsa 1024 bits 0.0333s 0.0019s 30.0 520.2
rsa 2048 bits 0.2211s 0.0068s 4.5 146.2
rsa 4096 bits 1.5657s 0.0253s 0.6 39.5
sign verify sign/s verify/s
dsa 512 bits 0.0058s 0.0072s 171.1 138.9
dsa 1024 bits 0.0189s 0.0235s 52.8 42.6
dsa 2048 bits 0.0666s 0.0807s 15.0 12.4
Tue Oct 31 16:46:16 CST 2000