OpenSSL Benchmarks

These benchmarks provide a rough estimate of how OpenSSL performance varies on various hardware and software configurations.

Procedure

  1. Install openssl-utils (with its depencies this will require about 790KiB of storage)
    opkg install openssl-util
  2. Simply drop the following line into the shell:
    openssl speed md5 sha1 sha256 sha512 des des-ede3 aes-128-cbc aes-192-cbc aes-256-cbc rsa2048 dsa2048 | tee /tmp/sslspeed | awk -v ORS="" '$1 ~ /OpenSSL/ {print "| " $2 " |"} $1 ~ /(md5|sha)/ {print "  " $5 " |"} $1 ~ /(des|aes)/ {b = b "  " $6 " |"} $1 ~ /(rsa|dsa)/ {print b "  " $6 " |  " $7 " |";b=""} END { print "\n" }' | sed 's/\.\(..\)k/\10/g'
  3. copy-paste the result into this wiki-page
  4. Afterwards you can remove the package and it's dependencies (if not needed by other packages) again with:
    opkg remove openssl-util libopenssl zlib

New Benchmark Table

OS SoC Device CPU BogoMIPS OpenSSL Version MD5 SHA-1 SHA-256 SHA-512 DES 3DES AES-128 AES-192 AES-256 RSA Sign RSA Verify DSA Sign DSA Verify
trunk r36211 Atheros AR7161 rev 2 Netgear WNDR3700v2 MIPS 24Kc V7.4 452.19 1.0.1e 35389740 23983300 10766940 4929350 4899090 1697560 8727710 7525860 6629860 8.0 281.8 28.1 22.9
trunk r36102 Freescale P1014 TP-Link TL-WDR4900 v1 PowerPC e500v2 99.99 1.0.1e 78254570 20711270 17345730 7272490 9575090 3354900 17875420 15547790 13725050 13.3 477.7 48.1 39.7
trunk r32510 Atheros AR9344 rev 2 TP-LINK TL-WDR4300 MIPS 74Kc V4.12 278.93 1.0.1c 36544160 12057270 7958320 4476150 5037210 1841890 9245010 8053560 7086260 8.0 277.1 27.8 23.0
trunk r30830 Ralink RT3052 id:1 rev:3 Aztech HW550-3G MIPS 24KEc V4.12 255.59 1.0.0g 23318870 6779780 4492590 2746530 2800300 992390 4740100 4123060 3625920 3.4 116.8 11.7 9.6
trunk r30624 Lantiq AR9 rev 1.2 Buffalo WBMR-HP-G300H MIPS 34Kc V4.12 221.18 1.0.0g 17321240 5692940 3833600 2371060 2384510 858720 4028600 3525280 3116620 2.9 100.1 10.3 8.3
trunk r34089 (gcc 4.7.3 linaro; eglibc 2.15; mtune=24kec -mdsp) Lantiq Danube rev 1.5 ARV7518PW MIPS 24KEc V4.1 221.18 1.0.1c 15807060 10546180 5159860 2402300 2779920 1001810 4310420 3714730 3255500 3.9 133.3 13.5 11.0
trunk r30310 Atheros AR7241 rev 1 TP-LINK TL-WR841ND MIPS 24Kc V7.2 265.42 1.0.0g 21948430 6993710 4697510 2891400 2951430 1031560 5012670 4303920 3804770 3.6 123.1 12.2 9.9
trunk r25513 Atheros AR9132 rev 2 TP-LINK TL-WR1043ND MIPS 24Kc V7.4 266.24 1.0.0d 21389570 6779290 5000360 2556530 3268580 1166810 4763150 4130930 3665850 3.3 113.0 11.3 9.0
Debian Squeeze Marvell Kirkwood Seagate Dockstar ARM926EJ-S 1192.75 0.9.8o 64436310 35282110 13595910 2452450 8938700 3158300 10294290 8814670 7662930 14.5 564.8 56.9 47.6
PlugApps 2011.01 Marvell Kirkwood Seagate FreeAgent DockStar Feroceon
88FR131 rev 1 (v5l)
1192.75 1.0.0d 66374010 34723630 25502810 10917150 9368560 3349230 17767610 15220020 13334410 26.2 861.5 89.0 73.8
trunk r26232 Atheros AR7161 Netgear WNDR3700v1 MIPS 24Kc V7.4 452.19 1.0.0d 37445910 11610610 7947790 4891150 4916260 1774700 8031440 7067370 6395730 5.7 192.1 19.2 15.5
trunk r34054 (gcc 4.7.3 linaro; mtune=24kc) Atheros AR7161 Netgear WNDR3700v1 MIPS 24Kc V7.4 452.19 1.0.1c 36851370 23923030 11097900 4999850 5333390 1905530 8781480 7592330 6651560 8.1 281.7 28.3 23.1
trunk r27984 Atheros AR7161 rev 2 Netgear WNDR3700v2 MIPS 24Kc V7.4 452.19 1.0.0d 36540250 11552240 7955350 4922860 4921730 1760040 8275440 7196270 6291260 5.6 191.5 19.2 15.9
Backfire 10.03.1 Atheros AR7161 rev 2 Netgear WNDR3800 MIPS 24Kc V7.4 452.19 0.9.8r 36774910 11649040 8470140 4236330 5319320 1893720 8255440 7222310 6330590 6.7 243.9 24.6 20.6
Backfire 10.03.1-rc6 Atheros AR7161 DIR-825 MIPS 24Kc V7.4 452.19 0.9.8p + patch 36995460 11623780 8425420 4241990 5350830 1916890 8915670 7623830 6704630 6.7 244.4 24.8 20.9
Backfire 10.03.1 Atheros AR7161 DIR-825 MIPS 24Kc V7.4 452.19 0.9.8r 37355180 11622740 8443560 4243180 5339820 1911130 8249000 7174490 6351530 6.7 244.8 24.8 21.0
trunk r26588 Marvell Orion-1 Netgear WNR854T ARMv5-TE 332.59 1.0.0d 22291590 7915040 5486650 2371980 3312760 1188050 5568640 4895610 4337100 5.8 205.6 20.7 16.5
Backfire 10.03.1 Broadcom BCM47XX Asus 500G Premium v2 BCM3302 V2.9 239.10 0.9.8t 10680320 3528210 2177780 1442780 1559990 555080 2796550 2420400 2058910 2.7 101.8 10.3 8.7
Backfire 10.03.1 Atheros AR9132 rev 2 Buffalo WZR-HP-G300NH MIPS 24Kc V7.4 266.24 0.9.8t 22143570 6842030 4978220 2494240 3157330 1122950 4812800 4190100 3769420 3.9 143.6 14.5 12.0
trunk r31678 Atheros AR7242 rev 1 Buffalo WZR-HP-G300NH2 MIPS 24Kc 265.42 1.0.1b 21572950 6916970 4674900 2868220 2932270 1040040 4962460 4321420 3795290 3.6 122.3 12.3 9.8
trunk r31753 Atheros AR7161 rev 2 Buffalo WZR-HP-AG300H MIPS 24Kc 452.19 1.0.1b 36650330 11757230 7950340 4878340 4969810 1769130 8440980 7304870 6453590 6.1 207.9 20.8 16.8
trunk r32520 Atheros AR7242 TP-Link TL-WR2543N/ND v1 MIPS 1.0.1c 21521180 6878670 4687300 2853110 2899630 1040890 4938650 4277780 3799140 3.6 121.3 12.1 9.7
trunk r32680 Marvell Orion Linksys WRT350N v2.0 ARMv5-TE 331.77 1.0.1c (OpenWRT trunk package) 26015820 8024510 6201460 2270210 2271760 900950 5267640 4623970 4144510 6.3 230.6 22.9 18.6
trunk r32680 Marvell Orion Linksys WRT350N v2.0 ARMv5-TE 331.77 1.0.1c (local compile w/ hardware support) 25814360 8053760 3082580 2300930 3373740 1189550 5343980 4691290 4187480 6.4 229.1 21.3 19.3
trunk r36529 bcm6368 Comtrend WAP-5813n Broadcom BMIPS4350 V3.1 397.82 + 400.38 (SMP Dual Core) 1.0.1e 38863190 28821500 12872700 5159940 4926810 1774590 9000960 7752020 6839300 10.2 356.8 37.0 30.4
trunk r36529 bcm6368 Comtrend WAP-5813n Broadcom BMIPS4350 V3.1 397.82 1.0.1e 19735800 14578010 6461440 2623150 2514260 907900 5058560 4366680 3847510 5.5 193.1 19.1 15.3
trunk r33275 bcm6328 Comtrend AR-5381u Broadcom BMIPS4350 V7.5 318.46 1.0.1c 15655520 11652370 5168810 2093060 2034350 724650 4094630 3531260 3105790 4.4 153.9 15.5 12.8
trunk r33275 bcm6358 HG553 Broadcom BMIPS4350 V1.0 299.26 1.0.1c 12010940 10096500 4787200 1949010 1903330 676520 3818940 3283970 2894600 4.1 142.2 14.2 11.6
Backfire 10.03.1 bcm6348 96348GW-11 Broadcom BCM6348 V0.7 254.97 0.9.8x 10117600 3764570 2343520 1240750 1959050 706900 2814790 2455550 2124200 2.2 84.6 8.6 7.2
Attitude Adjustment 12.09-b2 AMD Geode GX 466 Wyse Winterm S10 X86 666.57 1.0.1c 15593020 4234460 2605210 1649970 1897310 673110 2748020 2392960 2125740 2.1 71.6 7.1 5.8
Attitude Adjustment 12.09-rc1 Via Eden 600Mhz Igel -3/4 mikro PC X86 1197 1.0.1c 31060990 10968060 5960020 2595500 3868860 1346560 5465770 4723370 4157780 3.2 110.0 10.9 9.0
trunk r33883 AR9331 TP-Link TL-MR3020 MIPS 24Kc V7.4 265.42 1.0.1c 21573970 14029820 6491480 2862760 2916690 1038340 5173430 4444840 3905190 4.8 165.2 16.6 13.5
Debian Squeeze OMAP3430 Palm Pre Plus ARMv7 Processor rev 3 (v7l) 498.07 0.9.8o 47695960 26683350 10204780 1866110 6693560 2465400 6971450 6008960 5374010 6.9 262.3 26.4 22.2
Backfire (10.03, r20728) TI AR7 (TNETD7300) Netgear DG834GB MIPS 4KEc V4.8 149.50 0.9.8m 6937260 2350080 1468070 941400 1016150 358740 1792000 1556140 1374550 2.0 72.8 7.4 6.0
ATTITUDE ADJUSTMENT (12.09-beta, r33312) Atheros AR7240 rev 2 TP-LINK TL-WR741ND MIPS 24Kc V7.4 232.24 1.0.1c 18559320 5891940 3999080 2459320 2495610 885980 4255630 3708960 3264730 3.1 104.7 10.5 8.5
ATTITUDE ADJUSTMENT (12.09, r36088) Danube rev 1.3 Speedport W502V MIPS 24KEc V4.1 221.18 1.0.1e 17339040 10788990 5233020 2353830 2376090 855160 4263340 3656950 3219610 3.9 134.8 13.6 11.1
ATTITUDE ADJUSTMENT (12.09, r36088) XScale-IXP420 rev 1 (266MHz) LINKSYS NSLU2 ARMv5TE 265.42 1.0.1e 16627370 4577280 3554300 1427110 2004990 702810 3233990 2818390 2503340 3.8 140.2 14.0 11.7

Comparison to other common Systems

just one Core is used

CPU Frq OpenSSL Version MD5 SHA-1 SHA-256 SHA-512 DES 3DES AES-128 AES-192 AES-256 RSA Sign RSA Verify DSA Sign DSA Verify
AMD E-350 1.6GHz 1.0.1 214850330 103554830 65162020 95568150 31645350 12288340 90075140 76489390 66681580 226.0 7499.6 755.4 632.0
AMD FX-6100 (no-aes-ni) 3.3GHz 1.0.0e 308474690 160753320 81856170 120036010 33686530 13283330 53698220 44554580 37129220 211.3 7908.7 820.7 714.5
AMD FX-6100 (aes-ni) 3.3GHz 1.0.1 434154500 545881770 153739260 226136530 61332140 23838380 227130370 194936490 158338730 555.6 17506.6 1787.8 1532.5
AMD FX-6100 (aes-ni+mt) 3.3GHz 1.1.0-dev 2932684460 2178283860 779844600 1503571290 329867490 127427240 930302630 817427110 613974020 2901.7 93797.3 9460.6 7341.3
AMD Sempron mobile 3300+ LV (K8NF3-VSTA) 2GHz 0.9.8o 287077130 208404620 60258790 70649830 52067690 17907740 108538950 94007900 81876880 64.5 2532.6 259.9 215.7
Intel Core2Duo 2.1GHz 1.0.1 256146770 194247280 83254970 80870950 32603610 15082900 100415570 80765470 66734360 78.6 2796.3 290.4 244.3
Intel Xeon E31230 3.2GHz 1.0.0-fips 517524140 542249100 166468950 245192360 62701910 23737000 256884390 217357310 188289020 552.6 18584.0 1829.5 1588.8
Via Eden 600Mhz 1.0.1c 31060990 10968060 5960020 2595500 3868860 1346560 5465770 4723370 4157780 3.2 110.0 10.9 9.0
Atom 230 1.6GHz D945GCLF Trunk r31073 1.0.1 106859330 33679390 19225000 10126710 11673600 4063000 19162750 16731680 14840860 13.0 454.9 45.5 36.6

Old Benchmark Table

Router Make and Model bogomips OpenWRT Version CPU Model OpenSSL Version MD5 SHA-1 SHA-256 SHA-512 DES 3DES AES-128 AES-192 AES-256 RSA Sign RSA Verify DSA Sign DSA Verify
Linksys WAG354G v2 211.35 7.09 MIPS 4KEc V4.8 0.9.8e 7082610 3202770 2173660 1135430 1750870 635230 2369780 2109580 1851160 2.2 80.0 8.3 7.0
LaFonera FON2100A/B/G 183.50 7.09 MIPS 4KEc V6.4 0.9.8e 23 Feb 2007 8072310 2888560 1812340 934820 1539730 554050 2279590 1941870 1699770 1.9 69.5 7.2 5.9
Linksys WRT-54G V. 3 215.44 0.9 BCM3302 V0.7 0.9.8d 28 Sep 2006 4890970 3312300 2037420 918530 1682090 423250 1529860 1297750 1090900 1.7 67.2 7.1 5.8
Linksys WRTSL54GS 262.14 Kamikaze r9504/2.6 Broadcom BCM3302 V0.6 0.9.8e 23 Feb 2007 10388570 4002310 2042120 741790 3138870 2719140 2278220 2440360 1307270 2.3 90.6 9.3 7.8
Asus 500G Premium 262.96 Kamikaze 7.09 2.4 Broadcom BCM3302 V0.6 0.9.8e 23 Feb 2007 10649260 4264960 2501970 1203810 2112170 768000 2762220 2402800 2105000 2.5 91.9 9.4 8.0
Asus 500G Premium v1 263.16 Kamikaze r11349/2.6 Broadcom BCM3302 V0.6 0.9.8h-1 11612780 4072630 2081680 750590 3121660 2706380 2405020 2524830 1296380 2.4 91.8 9.2 7.9
Buffalo WLA2-G54L 199.47 0.9 / FFF Broadcom BCM3302 V0.7 0.9.8d 28 Sep 2006 3871000 2865000 1791000 812000 1393000 357000 1258000 1025000 903000 1.4 59.5 6.1 5.1
Buffalo WHR-G54S 199.47 0.9 / FFF Broadcom BCM3302 V0.8 0.9.8d 28 Sep 2006 7685000 3075000 1831000 822000 1520000 556000 1914000 1653000 1439000 1.7 63 6.5 5.5
RouterBoard 532a 398.95 Kamikazi r9763/2.6 MIPS 4Kc V0.10 0.9.8e 23 Feb 2007 10037570 5904280 3796600 1021290 3029950 1035870 4622580 4039710 3525680 3.2 131.7 13.8 11.2
Atmel NGW100 400.30 Kamikaze 7.09 AVR32B AP7000 0.9.8e 23 Feb2007 9653500 3460170 1768020 1008690 2169790 771230 2120800 1819730 1593830 1.9 67.1 6.8 5.4
PC Engines Alix 2c2 997.36 Kamikaze r11534/2.6 AMD Geode LX 0.9.8h-1 25760230 7595970 3089350 1106330 4515500 3915090 3457450 3929300 2379010 2.5 87.9 8.9 7.4
D945GCLF2 3192.22 Intel Atom 330 0.9.8g-13 182998700 83235840 31920810 45277180 17599150 6398630 24503300 21340160 18899970 50.7 1876.5 193.0 161.9
SE505 v2 @ 264MHz/16MB 262.96 Kamikaze r13624/2.6 Broadcom BCM3302 V0.7 0.9.8i 6832970 3887050 2607000 1175000 1841000 428000 1743000 1439000 1186000 1.8 79 7.7 6.8
Netgear WNR854T 332.59 Attitude r25661 Marvell Orion 1.0.0d 8 Feb 2011 26144300 7654230 5116210 1558070 4094630 1445240 2511210 2128140 1873440 5.1 191.7 19.3 15.9
Netgear WNR854T 332.59 Attitude r26358 Marvell Orion/CESA 1.0.0d 8 Feb 2011 21206450 7789990 5474620 1647680 3339680 1182570 4511460 4581880 4087070 5.8 204.8 20.4 16.7
Seagate Dockstar 1192.75 Debian Squeeze Feroceon 88FR131 rev 1 (v5l)(Kirkwood) 0.9.8o 01 Jun 2010 64419190 35285530 8908460 3155560 10294640 8814300 7705770 13608240 2454520 14.4 565.8 57.0 48.3
TL-WR1043ND 266.24 trunk r25513 MIPS 24Kc V7.4 1.0.0d 8 Feb 2011 20962650 6852760 3280970 1161910 4694250 4105340 3696880 4971940 2499810 3.3 112.8 11.2 9.1
TP-LINK TL-MR3420 266.24 Kamikaze r25302 Atheros AR7241 rev 1 0.9.8p 21704980 6848650 4955600 2481390 3140960 1107750 4877870 4184980 3679010 3.9 143.8 14.6 12.2

Enable hardware acceleration

You have to compile libopenssl with hardware acceleration if your hardware support it to get better score:

make menuconfig
Libraries -> 
SSL -> 
libopenssl: m
Configuration ->
Crypto acceleration support: y

Also you can read more about cryptographic hardware accelerators.

manual labor

Instead of copying the output by hand you can drop this sausage into the CLI:

cat /etc/banner | awk '/\(/ {print $2 " " $3 " " $4}'
cat /proc/cpuinfo | awk '/system type/ {FS = ":" ; print "|" $2}; /machine/ {FS = ":" ; print $2}; /cpu model/ {FS = ":" ; print $2}; /BogoMIPS/ {FS = ":" ; print $2 " |"}' | sed ':M;N;$!bM;s#\n# |#g'
openssl speed md5 sha1 sha256 sha512 des des-ede3 aes-128-cbc aes-192-cbc aes-256-cbc rsa2048 dsa2048 | tee /tmp/sslspeed | awk -v ORS="" '$1 ~ /OpenSSL/ {print "| " $2 " |"} $1 ~ /(md5|sha)/ {print "  " $5 " |"} $1 ~ /(des|aes)/ {b = b "  " $6 " |"} $1 ~ /(rsa|dsa)/ {print b "  " $6 " |  " $7 " |";b=""} END { print "\n" }' | sed 's/\.\(..\)k/\10/g'

The following code saves /tmp/sslspeed while showing progress, then output a table to check if the sort is correct, then use last command line output to copy & paste.

openssl speed md5 sha1 sha256 sha512 des des-ede3 aes-128-cbc aes-192-cbc aes-256-cbc rsa2048 dsa2048 | tee /tmp/sslspeed
awk '$1 ~ /(md5|sha)/ {print $1 "\t\t|  " $5 " |"} $1 ~ /(des|aes)/ {b = b $1 " " $2 " \t|  " $6 " |\n"} $1 ~ /(rsa|dsa)/ {print b $1 "\t\t|  " $6 " |  " $7 " |";b=""}' /tmp/sslspeed
awk -v ORS="" '$1 ~ /OpenSSL/ {print "| " $2 " |"} $1 ~ /(md5|sha)/ {print "  " $5 " |"} $1 ~ /(des|aes)/ {b = b "  " $6 " |"} $1 ~ /(rsa|dsa)/ {print b "  " $6 " |  " $7 " |";b=""} END { print "\n" }' /tmp/sslspeed | sed 's/\.\(..\)k/\10/g'
Output example
# awk '$1 ~ /(md5|sha)/ {print $1 "\t\t|  " $5 " |"} $1 ~ /(des|
aes)/ {b = b $1 " " $2 " \t|  " $6 " |\n"} $1 ~ /(rsa|dsa)/ {print b $1 "\t\t|  
" $6 " |  " $7 " |";b=""}' /tmp/sslspeed
md5             |  26144.30k |
sha1            |  7654.23k |
sha256          |  5116.21k |
sha512          |  1558.07k |
des cbc         |  4094.63k |
des ede3        |  1445.24k |
aes-128 cbc     |  2511.21k |
aes-192 cbc     |  2128.14k |
aes-256 cbc     |  1873.44k |
rsa             |  5.1 |  191.7 |
dsa             |  19.3 |  15.9 |
 
# awk -v ORS="" '$1 ~ /OpenSSL/ {print "| " $2 " |"} $1 ~ /(md5|sha)/ {print "  " $5 " |"}
 $1 ~ /(des|aes)/ {b = b "  " $6 " |"} $1 ~ /(rsa|dsa)/ {print b "  " $6 " |  " $7 " |";b=""}
 END { print "\n" }' /tmp/sslspeed | sed 's/\.\(..\)k/\10/g'
| 1.0.0d |  26144300 |  7654230 |  5116210 |  1558070 |  4094630 |  1445240 |  2511210
 |  2128140 |  1873440 |  5.1 |  191.7 |  19.3 |  15.9 |

  • Benchmarks are based on running:

cat /proc/cpuinfo
cat /proc/crypto
openssl speed md5 sha1 sha256 sha512 des des-ede3 aes-128-cbc aes-192-cbc aes-256-cbc rsa2048 dsa2048

  • Please include the output for 1024 byte blocks only!
  • Hash and block ciphers use 1024 byte blocks; "k" refers to 1000 bytes per second, so the "k" is removed and result multiplied x1000.
  • Certificate verification and signing are based on 2048 bit keys; the values are the number of signings/verifications per second.

Script debug

FIXME

opkg list-installed base-files | awk -v FS="-" {'print $4'}
r25094
awk 'match($0,/r[0-9]+/) {print substr($0,RSTART,RLENGTH)}' /etc/banner
r25094
awk '/r[0-9]+/ { print gensub(/([^0-9]*)(r[0-9]+)(.*)/, "\\2", "1") }' /etc/banner
r25094
awk -v FS="(" 'match($0,/r[0-9]+/) {print substr($1,2) substr($0,RSTART,RLENGTH)}' /etc/banner
ATTITUDE ADJUSTMENT r25661
awk -v FS=": " -v ORS="" '/(Processor|BogoMIPS|Hardware|machine|cpu model|system type)/ { print "| " $2 " " } END { print "|\n" }' /proc/cpuinfo
| Atheros AR7241 rev 1 | TP-LINK TL-MR3420 | MIPS 24Kc V7.4 | 266.24 |
awk -v FS=": " -v ORS="" '/(Processor|BogoMIPS|Hardware|machine|cpu model|system type)/ { print "| " $2 " " } END { print "|\n" }' /proc/cpuinfo
| Feroceon rev0 (v5l) | 332.59 | Netgear WNR854T |

openssl-util 1.0.0d-1 libopenssl 167.442 The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, full-featured, and Open Source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a full-strength general purpose cryptography library. This package contains the OpenSSL command-line utility.
libopenssl 1.0.0d-1 zlib 582.261 The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, full-featured, and Open Source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a full-strength general purpose cryptography library. This package contains the OpenSSL shared libraries, needed by other programs.
zlib 1.2.5-1 39.403 Library implementing the deflate compression method

Tags

Notes

Back to top

inbox/benchmark.openssl.txt · Last modified: 2013/05/13 21:45 by aziro