Getting 680700 KKey/s now (though it threw me off for a second that you changed the units). I also compiled with -march=core2 -mtune=native, though I don't know if they really did anything.
I still think you should be able to get a lot better than 1Mkey/s out of that machine. If you have a few minutes, you might confirm that OpenSSL is up to snuff with:
openssl speed ecdsa ecdhYour Xeon should be faster than my C2D:
OpenSSL 1.0.0d 8 Feb 2011
built on: Sat Feb 19 14:49:38 PST 2011
options:bn(64,64) rc4(1x,char) des(idx,cisc,16,int) aes(partial) idea(int) blowfish(idx)
compiler: x86_64-pc-linux-gnu-gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -Wall -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DWHIRLPOOL_ASM -O2 -march=native -pipe -momit-leaf-frame-pointer -fno-strict-aliasing -Wa,--noexecstack
sign verify sign/s verify/s
160 bit ecdsa (secp160r1) 0.0001s 0.0004s 9278.2 2339.1
192 bit ecdsa (nistp192) 0.0002s 0.0007s 6080.6 1367.8
224 bit ecdsa (nistp224) 0.0002s 0.0009s 5158.6 1115.7
256 bit ecdsa (nistp256) 0.0003s 0.0013s 3729.3 799.5
384 bit ecdsa (nistp384) 0.0006s 0.0029s 1773.5 346.5
521 bit ecdsa (nistp521) 0.0007s 0.0038s 1389.8 262.9
163 bit ecdsa (nistk163) 0.0007s 0.0018s 1333.6 562.5
233 bit ecdsa (nistk233) 0.0015s 0.0027s 673.7 375.3
283 bit ecdsa (nistk283) 0.0025s 0.0052s 402.3 191.2
409 bit ecdsa (nistk409) 0.0059s 0.0119s 169.3 84.0
571 bit ecdsa (nistk571) 0.0127s 0.0254s 78.6 39.3
163 bit ecdsa (nistb163) 0.0008s 0.0018s 1332.7 551.1
233 bit ecdsa (nistb233) 0.0015s 0.0025s 662.0 395.0
283 bit ecdsa (nistb283) 0.0025s 0.0057s 404.0 176.1
409 bit ecdsa (nistb409) 0.0059s 0.0129s 170.2 77.4
571 bit ecdsa (nistb571) 0.0127s 0.0286s 78.8 35.0
op op/s
160 bit ecdh (secp160r1) 0.0004s 2820.3
192 bit ecdh (nistp192) 0.0006s 1688.7
224 bit ecdh (nistp224) 0.0007s 1364.3
256 bit ecdh (nistp256) 0.0010s 960.9
384 bit ecdh (nistp384) 0.0024s 408.9
521 bit ecdh (nistp521) 0.0032s 309.9
163 bit ecdh (nistk163) 0.0008s 1188.1
233 bit ecdh (nistk233) 0.0012s 855.0
283 bit ecdh (nistk283) 0.0026s 388.1
409 bit ecdh (nistk409) 0.0057s 176.0
571 bit ecdh (nistk571) 0.0125s 79.8
163 bit ecdh (nistb163) 0.0009s 1120.6
233 bit ecdh (nistb233) 0.0012s 811.3
283 bit ecdh (nistb283) 0.0028s 356.2
409 bit ecdh (nistb409) 0.0063s 157.8
571 bit ecdh (nistb571) 0.0142s 70.6