OpenSSL Speed
The cryptographic library OpenSSL provides a tool that provides a means to assess and compare cryptographic method performance.
Real Hardware
Running the test on real hardware systems to provide a set of references:
System | Operating System | OpenSSL Version | MD5 8,192 bytes | RSA 4,096 bytes sign/s | RSA 4,096 bytes verify/s |
---|---|---|---|---|---|
crataegus - IDT WinChip C6 @ 200 MHz | BeOS 5 Professional x86 | 0.9.7jc 04 May 2006 | 18.52k | 0.0 | 0.0 |
tilia - Intel Pentium @ 75 MHz | Linux 2.4.18 RedHat Linux 7.3 x86 | 0.9.6b [engine]a,d 9 Jul 2001 | 6,075.73k | 0.1 | 4.5 |
crataegus - IDT WinChip C6 @ 200 MHz | QNX RTOS 6.1.0 x86 | 0.9.6c [engine]a 21 dec 2001 | 8,320.34k | 0.0 | 2.4 |
tilia - Intel Pentium @ 75 MHz | Linux 2.0.36 RedHat Linux 5.2 x86 | 0.9.2bb 22 Mar 1999 | 12,391.77k | 0.2 | 11.2 |
tilia - Intel Pentium @ 75 MHz | Linux 2.2.14 RedHat Linux 6.2 x86 | 0.9.5ab 1 Apr 2000 | 12,454.57k | 0.2 | 11.1 |
crataegus - IDT WinChip C6 @ 200 MHz | Linux 2.4.18 RedHat Linux 7.3 x86 | 0.9.6b [engine]a,d 9 Jul 2001 | 14,240.43k | 0.1 | 8.6 |
crataegus - IDT WinChip C6 @ 200 MHz | Linux 2.6.24 Ubuntu 8.04 LTS x86 | 0.9.8ga 19 Oct 2007 | 18,417.03k | 0.3 | 20.4 |
crataegus - IDT WinChip C6 @ 200 MHz | Linux 2.0.36 RedHat Linux 5.2 x86 | 0.9.2bb 22 Mar 1999 | 19,510.61k | 0.3 | 20.2 |
crataegus - IDT WinChip C6 @ 200 MHz | Linux 2.2.14 RedHat Linux 6.2 x86 | 0.9.5ab 1 Apr 2000 | 19,535.19k | 0.3 | 20.1 |
buxus - MIPS R5900 @ 294 MHz | Linux 2.2.1 PS2 Linux | 0.9.6b [engine]a 9 Jul 2001 | 27,044.52k | 0.6 | 35.0 |
pyrus - PowerPC 750 (G3) @ 600 MHz | MacOS X 10.3 | 0.9.7la 28 Sep 2006 | 60,733.13k | 1.0 | 71.6 |
raspberrypi - ARM1173 @ 700 MHz | Linux 5.10.17 Raspberry Pi OS | 1.1.1da 10 Sep 2019 | 69,209.90k | 1.7 | 118.2 |
larix - VIA C3 Nehemiah @ 1.33 GHz | NetBSD 9.2 x86 | 1.1.1ka,d 25 Mar 2021 | 85,262.12k | 2.5 | 186.5 |
rosa - VIA C3 Nehemiah @ 1.0 GHz | Linux 4.9.0 Bodhi Linux 5 x86 | 1.1.0ga 2 Nov 2017 | 106,606.70k | 1.5 | 99.6 |
rosa - VIA C3 Nehemiah @ 1.0 GHz | Linux 5.10.0 Debian Linux 11 (bullseye) x86 | 1.1.1na 15 Mar 2022 | 106,760.79k | 1.5 | 100.2 |
larix - VIA C3 Nehemiah @ 1.33 GHz | Linux 2.6.24 Ubuntu 8.04 LTS (Hardy Heron) x86 | 0.9.8ga 19 Oct 2007 | 123,998.10k | 2.4 | 166.0 |
larix - VIA C3 Nehemiah @ 1.33 GHz | Linux 2.4.18 RedHat Linux 7.3 x86 | 0.9.6b [engine]a 9 Jul 2001 | 129,376.26k | 2.4 | 148.1 |
corylus - Intel Pentium III @ 866 MHz | Linux 2.6.24 Ubuntu 8.04 LTS x86 | 0.9.8ga 19 Oct 2007 | 136,798.21k | 2.9 | 203.8 |
corylus - Intel Pentium III @ 866 MHz | Linux 2.4.18 RedHat Linux 7.3 x86 | 0.9.6b [engine]a 9 Jul 2001 | 139,766.44k | 2.9 | 183.3 |
larix - VIA C3 Nehemiah @ 1.33 GHz | Linux 4.9.0 Bodhi Linux 5.0 Legacy x86 | 1.1.0ga 2 Nov 2017 | 139,839.26k | 1.9 | 131.8 |
ReadyNAS - Marvell ARMADA 370 @ 1.2 GHz | Linux 4.4 ReadyNAS OS 6 ARM (armv7l) | 1.0.1ta 3 May 2016 | 140,389.03k | 3.1 | 195.0 |
larix - VIA C3 Nehemiah @ 1.33 GHz | NetBSD 9.2 x86 | 1.1.1kb 25 Mar 2021 | 140,913.29k | 1.9 | 132.8 |
larix - VIA C3 Nehemiah @ 1.33 GHz | Linux 5.10.0 Debian Linux 11 (bullseye) x86 | 1.1.1na 15 Mar 2022 | 141,496.18k | 1.9 | 133.0 |
corylus - Intel Pentium III @ 866 MHz | Linux 5.10.0 Debian Linux 11 (bullseye) x86 | 1.1.1na 15 Mar 2022 | 143,425.06k | 2.5 | 171.0 |
acer - AMD Athlon XP 2100+ @ 1.733 GHz | Linux 5.10.0 Debian Linux 11 (bullseye) x86 | 1.1.1ka 25 Mar 2021 | 255,826.02k | 5.1 | 351.8 |
ilex - Intel Atom N270 @ 1.6 GHz | Linux 4.9.0 Bodhi Linux 5.0 Legacy x86 | 1.1.1a 11 Sep 2018 | 301,377.93k | 2.7 | 180.6 |
sorbus - Intel Pentium Dual E2180 @ 2.0 GHz | Linux 2.6.24 Ubuntu 8.04 LTS x86 | 0.9.8ga 19 Oct 2007 | 352,692.91k | 11.9 | 881.7 |
sorbus - Intel Pentium Dual E2180 @ 2.0 GHz | Linux 4.15.0 Ubuntu 18.04 LTS x86_64 | 1.1.1a 11 Sep 2018 | 371,314.04k | 41.6 | 2,632.1 |
sorbus - Intel Pentium Dual E2180 @ 2.0 GHz | Linux 5.10.0 Debian Linux 11 (bullseye) x86_64 | 1.1.1na 15 Mar 2022 | 371,494.87k | 42.0 | 2,753.9 |
salix - AMD Athlon XP 3000+ @ 2.167 GHz | Linux 2.6.24 Ubuntu 8.04 LTS (Hardy Heron) x86 | 0.9.8ga 19 Oct 2007 | 383,286.30k | 9.4 | 663.7 |
salix - AMD Athlon XP 3000+ @ 2.167 GHz | Linux 3.19.0 Ubuntu 14.04 LTS (Trusty Tahr) x86 | 1.0.1fa 6 Jan 2014 | 392,239.58k | 8.4 | 532.1 |
salix - AMD Athlon XP 3000+ @ 2.167 GHz | Linux 5.10.0 Debian Linux 11 (bullseye) x86 | 1.1.1na 15 Mar 2022 | 395,004.59k | 7.9 | 543.8 |
salix - AMD Athlon XP 3000+ @ 2.167 GHz | Linux 2.4.18 RedHat Linux 7.3 x86 | 0.9.6b [engine]a 9 Jul 2001 | 399,329.96k | 9.0 | 572.5 |
drosera - Intel i7-860 @ 2.80 GHz | Linux 5.10.0 Debian Linux 11 (bullseye) x86_64 | 1.1.1na 15 Mar 2022 | 699,282.77k | 78.8 | 5,177.1 |
helix - AMD Ryzen 5 3600 @ 3.60 GHz | Linux 5.10.0 Debian Linux 11 (bullseye) x86_64 | 1.1.1na 15 Mar 2022 | 816,425.64k | 286.7 | 18,787.4 |
As with all benchmarks, comparisons should be done with caution... comparing "like with like" should work fine, but variations in versions, architectures and operating systems can have additional effects that distort the performance, so only larger differences will have much meaning.
- Operating system supplied OpenSSL binaries used.
- Local compile from downloaded OpenSSL source distribution. Version chosen to be contemporary with the operating system release.
- Third-party sourced software package for OpenSSL
- Version of OpenSSL compiled to use only C methods, the default assembler (asm) method implementations were disabled at compile time.
Emulated Hardware
We expect quite a bit of variation when running on emulated hardware, but this should give some clues to the efficiency of the emulation:
System | Operating System | OpenSSL Version | MD5 8,192 bytes | RSA 4,096 bytes sign/s | RSA 4,096 bytes verify/s |
---|---|---|---|---|---|
AlphaVM-Freeb Alpha 21264 (EV6); details | Linux 2.6.26 Debian Linux 5 (lenny) alpha | 0.9.8g 19 Oct 2007 | 3,470.64k | 0.5 | 34.8 |
AlphaVM-Freeb Alpha 21264A (EV67); details | Tru64 UNIX 5.1B | 0.9.6g [engine] 9 Aug 2002 | 4,328.83k | 0.4 | 22.7 |
FreeAXPa Alpha 21064 (EV4); details | Tru64 UNIX 5.1B | 0.9.6g [engine] 9 Aug 2002 | 4,576.60k | 0.3 | 21.7 |
QEMUc Motorola 68040; details | Linux 5.17.0 Debian Linux (bookworm/sid) m68k | 1.1.1n 15 Mar 2022 | 4,790.42k | 0.3 | 50.7 |
PCeme Intel Pentium 75 (i586); details | Linux 2.4.18 RedHat Linux 7.3 (Valhalla) x86 | 0.9.6b [engine]f 9 Jul 2001 | 6,075.73k | 0.1 | 4.5 |
QEMUc PA7300LC (PA-RISC 1.1); details | Linux 2.6.26 Debian Linux 5 (lenny) hppa | 0.9.8g 19 Oct 2007 | 9,794.54k | 0.4 | 31.2 |
PCeme Intel Pentium 75 (i586); details | Linux 2.2.17 Mandrake Linux 7.2 (Odyssey) x86 | 0.9.5a 1 Apr 2000 | 13,494.95k | 0.2 | 10.6 |
PCeme Intel Pentium 75 (i586); details | Linux 2.0.36 RedHat Linux 5.2 (Apollo) x86 | 0.9.2b 22 Mar 1999 | 13,514.07k | 0.2 | 10.6 |
PCeme Intel Pentium 75 (i586); details | Linux 2.2.14 RedHat Linux 6.2 (Zoot) x86 | 0.9.5a 1 Apr 2000 | 13,516.80k | 0.2 | 10.5 |
QEMUc PA7300LC (PA-RISC 1.1); details | HP-UX 11i v1 | 0.9.7e 25 Oct 2004 | 39,654.12k | 0.0 | 1.0 |
QEMUc PA7300LC (PA-RISC 1.1); details | NetBSD 9.2 hppa | 1.1.1kg 25 Mar 2021 | 51,716.92k | invalid | invalid |
QEMUc microSPARC II (SPARC V8); details | NetBSD 9.2 sparc | 1.1.1kg 25 Mar 2021 | 65,130.51k | 1.8 | 136.5 |
QEMUc UltraSPARC IIi (SPARC V9); details | NetBSD 9.2 sparc64 | 1.1.1kg 25 Mar 2021 | 67,259.05k | 0.6 | 42.2 |
QEMUc microSPARC II (SPARC V8); details | Linux 2.6.18 Debian Linux 4 (etch) sparc | 0.9.8c 05 Sep 2006 | 93,445.95k | 1.3 | 86.3 |
QEMUc PowerPC 750 (G3); details | Linux 3.16.0 Debian Linux 8 (jessie) powerpc | 1.0.1t 3 May 2016 | 108,467.54k | 2.2 | 157.5 |
QEMUc Alpha 21264A (EV67); details | Linux 2.6.26 Debian Linux 5 (lenny) alpha | 0.9.8g 19 Oct 2007 | 112,009.95k | 6.2 | 489.9 |
QEMUc PowerPC 7400 (G4); details | Linux 3.16.0 Debian Linux 8 (jessie) powerpc | 1.0.1t 3 May 2016 | 113,646.13k | 2.2 | 149.2 |
QEMUc ARM Cortex-A7 (ARMv7); details | Linux 5.10.17 Raspberry Pi OS | 1.1.1d 10 Sep 2019 | 142,737.41k | 4.3 | 342.8 |
QEMUc ARMv7 virt; details TBC | Linux 4.19.0 Debian Linux 10 (buster) armhf | 1.1.1d 10 Sep 2019 | 161,215.83k | 4.9 | 323.5 |
QEMUc UltraSPARC IIi (SPARC V9); details | Linux 5.10.0 Debian Linux 11 (bullseye) sparc64 | 1.1.1k 25 Mar 2021 | 242,488.68k | 2.7 | 176.0 |
Again compare with caution, small variations could be down to variations in host system load or other factors, but larger variations will likely point to differences in efficiency.
Notes:
- FreeAXP test run under MS Windows 10 on a Intel i7-860 system.
- AlphaVM-Free tests were run on Debian Linux 10 (buster+backports) virtual machine in VirtualBox under MS Windows 10 on a Intel i7-860 system.
- QEMU tests were run on Debian Linux 10 (buster+backports) virtual machine in VirtualBox under MS Windows 10 on a Intel i7-860 system.
- QEMU runs x86 and x86_64 processors nativly when running on a compatible host, so these platforms appear much faster than the processor would suggest
- PCem tests were run under MS Windows 10 on an Intel i7-860 system.
- OpenSSL build uses C-only methods, with the assembler based implementations having been disabled at compile time (no-asm). As of OpenSSL 1.1.1n the source distribution contains assembler implementations for MD5 on SPARC, x86 & x86_64, for RSA a portable C implementation is used on all platforms.
- The base installation of NetBSD includes a customized version of OpenSSL, which can differ in performance from a regular OpenSSL build.
Virtual Machine
Unlike emulation, hypervisor style virtualization only needs to emulate some devices, with other interactions being passed through to the underlying host hardware. In this case comparing benchmark results can detect cases where the emulated components of the VM cause performance issues:
System | Operating System | OpenSSL Version | MD5 8,192 bytes | RSA 4,096 bytes sign/s | RSA 4,096 bytes verify/s |
---|---|---|---|---|---|
VirtualBox Intel i7 860 @ 2.80 GHz; 1 core details | BeOS 5 Professional x86 (i586) | 0.9.7j 04 May 2006 | 623.77k | 0.0 | 1.0 |
VirtualBox Intel i7 860 @ 2.80 GHz; 2 cores | Linux 4.19.0 Debian Linux 10 (buster) amd64 (x86_64) | 1.1.1d 10 Sep 2019 | 665,464.38k | 75.0 | 4,881.4 |
VirtualBox Intel i7 860 @ 2.80 GHz; 2 cores | NetBSD 9.2 amd64 (x86_64) | 1.1.1k 25 Mar 2021 | 669,940.13k | 73.0 | 4,942.8 |
As always compare with caution...
Further Sources
- [OpenWrt Wiki] OpenSSL benchmarks
- OpenSSL Speed Test Results
- openssl speed measurements – Georgs Blog
- Gentoo Forums :: View topic - Who can post the best performance per MHz in OpenSSL?
- RAILhead Design: News Icons Desktops Fonts More [Internet Archive] a comparison of OpenSSL results. The numbers used appear to be for RSA 2048 bits verify/s.
- Hidden bundled UNIX benchmarking software - Mac OS X Hints
No comments:
Post a Comment