Skip to content

Instantly share code, notes, and snippets.

@voluntas
Last active December 12, 2023 03:36
Show Gist options
  • Star 28 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save voluntas/fd279c7b4e71f9950cfd4a5ab90b722b to your computer and use it in GitHub Desktop.
Save voluntas/fd279c7b4e71f9950cfd4a5ab90b722b to your computer and use it in GitHub Desktop.
$ openssl speed -evp aes-gcm | chacha20-poly1305 の結果を集めるスレ

$ openssl speed -evp aes-128-gcm | chacha20-poly1305 の結果を集めるスレ

AES-CBC が早いけど、AES-GCM/AES-CTR が遅かったり、Ryzen が爆速だったり、 ChaCha20-Poly1305 が ARM で早かったりするという噂の真相が知りたいです。コメントに適当にべたべた結果を貼ってください。

ちなみに Apple M2 おかしいくらい早いです。

CPU 情報はできれば詳細なのがほしいです。

OpenSSL のバージョンは 3.1 系の最新版でお願いします。

  • Linux であれば $ cat /proc/cpuinfo で詳細な CPU 情報が出てきます
  • macOS であれば $ sysctl -n machdep.cpu.brand_string で詳細な CPU 情報が出てきます

簡単にまとめた記事を書きました

CPU の AES 高速化 – V – Medium

MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports)

openssl speed -evp aes-128-ctr
Doing aes-128-ctr for 3s on 16 size blocks: 138605189 aes-128-ctr's in 2.98s
Doing aes-128-ctr for 3s on 64 size blocks: 121534149 aes-128-ctr's in 2.99s
Doing aes-128-ctr for 3s on 256 size blocks: 71543386 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 1024 size blocks: 25015577 aes-128-ctr's in 2.93s
Doing aes-128-ctr for 3s on 8192 size blocks: 3711078 aes-128-ctr's in 2.94s
Doing aes-128-ctr for 3s on 16384 size blocks: 1868394 aes-128-ctr's in 2.94s
OpenSSL 1.1.1h  22 Sep 2020
built on: Tue Sep 22 14:03:48 2020 UTC
options:bn(64,64) rc4(16x,int) des(int) aes(partial) idea(int) blowfish(ptr)
compiler: cc -fPIC -arch x86_64 -O3 -Wall -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -D_REENTRANT -DNDEBUG
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-ctr     744188.93k  2601399.84k  6105035.61k  8742645.34k 10340527.54k 10412165.75k
$ openssl speed -evp aes-128-gcm
Doing aes-128-gcm for 3s on 16 size blocks: 134740951 aes-128-gcm's in 2.99s
Doing aes-128-gcm for 3s on 64 size blocks: 88455699 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 256 size blocks: 48511365 aes-128-gcm's in 2.99s
Doing aes-128-gcm for 3s on 1024 size blocks: 16543957 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 8192 size blocks: 2553018 aes-128-gcm's in 2.99s
Doing aes-128-gcm for 3s on 16384 size blocks: 1295618 aes-128-gcm's in 3.00s
OpenSSL 1.1.1h  22 Sep 2020
built on: Tue Sep 22 14:03:48 2020 UTC
options:bn(64,64) rc4(16x,int) des(int) aes(partial) idea(int) blowfish(ptr)
compiler: cc -fPIC -arch x86_64 -O3 -Wall -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -D_REENTRANT -DNDEBUG
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-gcm     721021.81k  1887054.91k  4153481.42k  5647003.99k  6994757.01k  7075801.77k
openssl speed -evp chacha20-poly1305
Doing chacha20-poly1305 for 3s on 16 size blocks: 60815104 chacha20-poly1305's in 2.99s
Doing chacha20-poly1305 for 3s on 64 size blocks: 26210097 chacha20-poly1305's in 3.00s
Doing chacha20-poly1305 for 3s on 256 size blocks: 14266814 chacha20-poly1305's in 3.00s
Doing chacha20-poly1305 for 3s on 1024 size blocks: 6339883 chacha20-poly1305's in 2.99s
Doing chacha20-poly1305 for 3s on 8192 size blocks: 833146 chacha20-poly1305's in 3.00s
Doing chacha20-poly1305 for 3s on 16384 size blocks: 419006 chacha20-poly1305's in 2.99s
OpenSSL 1.1.1h  22 Sep 2020
built on: Tue Sep 22 14:03:48 2020 UTC
options:bn(64,64) rc4(16x,int) des(int) aes(partial) idea(int) blowfish(ptr)
compiler: cc -fPIC -arch x86_64 -O3 -Wall -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -D_REENTRANT -DNDEBUG
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
chacha20-poly1305   325431.99k   559148.74k  1217434.79k  2171250.90k  2275044.01k  2295984.72k

MacBook Pro (15-inch, 2018)

Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz

$ openssl speed -evp aes-128-ctr
Doing aes-128-ctr for 3s on 16 size blocks: 136790532 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 64 size blocks: 106857847 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 256 size blocks: 55523262 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 1024 size blocks: 18108679 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 8192 size blocks: 2462486 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 16384 size blocks: 1264990 aes-128-ctr's in 3.00s
OpenSSL 1.1.1  11 Sep 2018
built on: Sun Sep 16 07:17:45 2018 UTC
options:bn(64,64) rc4(16x,int) des(int) aes(partial) idea(int) blowfish(ptr)
compiler: cc -fPIC -arch x86_64 -O3 -Wall -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPADLOCK_ASM -DPOLY1305_ASM -D_REENTRANT -DNDEBUG
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-ctr     729549.50k  2279634.07k  4737985.02k  6181095.77k  6724228.44k  6908532.05k
$ openssl speed -evp aes-128-gcm
Doing aes-128-gcm for 3s on 16 size blocks: 115693434 aes-128-gcm's in 2.99s
Doing aes-128-gcm for 3s on 64 size blocks: 74186923 aes-128-gcm's in 2.99s
Doing aes-128-gcm for 3s on 256 size blocks: 37880488 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 1024 size blocks: 15008740 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 8192 size blocks: 2403850 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 16384 size blocks: 1222033 aes-128-gcm's in 3.00s
OpenSSL 1.1.1  11 Sep 2018
built on: Sun Sep 16 07:17:45 2018 UTC
options:bn(64,64) rc4(16x,int) des(int) aes(partial) idea(int) blowfish(ptr)
compiler: cc -fPIC -arch x86_64 -O3 -Wall -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPADLOCK_ASM -DPOLY1305_ASM -D_REENTRANT -DNDEBUG
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-gcm     619095.30k  1587947.52k  3232468.31k  5122983.25k  6564113.07k  6673929.56k
$ openssl speed -evp chacha20-poly1305
Doing chacha20-poly1305 for 3s on 16 size blocks: 61414296 chacha20-poly1305's in 3.00s
Doing chacha20-poly1305 for 3s on 64 size blocks: 30732194 chacha20-poly1305's in 3.00s
Doing chacha20-poly1305 for 3s on 256 size blocks: 15535943 chacha20-poly1305's in 3.00s
Doing chacha20-poly1305 for 3s on 1024 size blocks: 7044133 chacha20-poly1305's in 3.00s
Doing chacha20-poly1305 for 3s on 8192 size blocks: 917119 chacha20-poly1305's in 3.00s
Doing chacha20-poly1305 for 3s on 16384 size blocks: 451816 chacha20-poly1305's in 2.99s
OpenSSL 1.1.1  11 Sep 2018
built on: Sun Sep 16 07:17:45 2018 UTC
options:bn(64,64) rc4(16x,int) des(int) aes(partial) idea(int) blowfish(ptr)
compiler: cc -fPIC -arch x86_64 -O3 -Wall -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPADLOCK_ASM -DPOLY1305_ASM -D_REENTRANT -DNDEBUG
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
chacha20-poly1305   327542.91k   655620.14k  1325733.80k  2404397.40k  2504346.28k  2475770.35k

MacBook Pro (13-inch, 2018, Four Thunderbolt 3 Ports)

Intel(R) Core(TM) i7-8559U CPU @ 2.70GHz

% /opt/openssl/1.1.0h/bin/openssl speed -evp aes-128-ctr
Doing aes-128-ctr for 3s on 16 size blocks: 139491791 aes-128-ctr's in 2.99s
Doing aes-128-ctr for 3s on 64 size blocks: 111067871 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 256 size blocks: 55221450 aes-128-ctr's in 3.01s
Doing aes-128-ctr for 3s on 1024 size blocks: 18060987 aes-128-ctr's in 2.99s
Doing aes-128-ctr for 3s on 8192 size blocks: 2527180 aes-128-ctr's in 3.01s
Doing aes-128-ctr for 3s on 16384 size blocks: 1277986 aes-128-ctr's in 3.00s
OpenSSL 1.1.0h  27 Mar 2018
built on: reproducible build, date unspecified
options:bn(64,64) rc4(16x,int) des(int) aes(partial) idea(int) blowfish(ptr)
compiler: cc -DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/opt/openssl/1.1.0h/ssl\"" -DENGINESDIR="\"/opt/openssl/1.1.0h/lib/engines-1.1\""
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-ctr     746444.37k  2369447.91k  4696575.15k  6185435.01k  6877959.65k  6979507.54k
% /opt/openssl/1.1.0h/bin/openssl speed -evp aes-128-gcm
Doing aes-128-gcm for 3s on 16 size blocks: 84752075 aes-128-gcm's in 2.98s
Doing aes-128-gcm for 3s on 64 size blocks: 75521695 aes-128-gcm's in 2.98s
Doing aes-128-gcm for 3s on 256 size blocks: 37770320 aes-128-gcm's in 2.99s
Doing aes-128-gcm for 3s on 1024 size blocks: 14785887 aes-128-gcm's in 2.99s
Doing aes-128-gcm for 3s on 8192 size blocks: 2311058 aes-128-gcm's in 2.98s
Doing aes-128-gcm for 3s on 16384 size blocks: 1244979 aes-128-gcm's in 3.00s
OpenSSL 1.1.0h  27 Mar 2018
built on: reproducible build, date unspecified
options:bn(64,64) rc4(16x,int) des(int) aes(partial) idea(int) blowfish(ptr)
compiler: cc -DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/opt/openssl/1.1.0h/ssl\"" -DENGINESDIR="\"/opt/openssl/1.1.0h/lib/engines-1.1\""
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-gcm     455044.70k  1621942.44k  3233846.80k  5063795.41k  6353082.93k  6799245.31k
$ /opt/openssl/1.1.1/bin/openssl speed -evp aes-128-ctr
Doing aes-128-ctr for 3s on 16 size blocks: 133702783 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 64 size blocks: 100514874 aes-128-ctr's in 2.99s
Doing aes-128-ctr for 3s on 256 size blocks: 51478616 aes-128-ctr's in 2.99s
Doing aes-128-ctr for 3s on 1024 size blocks: 17467114 aes-128-ctr's in 2.98s
Doing aes-128-ctr for 3s on 8192 size blocks: 2452573 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 16384 size blocks: 1251433 aes-128-ctr's in 3.00s
OpenSSL 1.1.1  11 Sep 2018
built on: Thu Sep 20 09:15:20 2018 UTC
options:bn(64,64) rc4(16x,int) des(int) aes(partial) idea(int) blowfish(ptr)
compiler: cc -fPIC -arch x86_64 -O3 -Wall -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPADLOCK_ASM -DPOLY1305_ASM -D_REENTRANT -DNDEBUG
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-ctr     713081.51k  2151488.94k  4407533.68k  6002122.39k  6697159.34k  6834492.76k
$ /opt/openssl/1.1.1/bin/openssl speed -evp aes-128-gcm
Doing aes-128-gcm for 3s on 16 size blocks: 115685657 aes-128-gcm's in 2.99s
Doing aes-128-gcm for 3s on 64 size blocks: 75101872 aes-128-gcm's in 2.99s
Doing aes-128-gcm for 3s on 256 size blocks: 38027665 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 1024 size blocks: 15034030 aes-128-gcm's in 2.99s
Doing aes-128-gcm for 3s on 8192 size blocks: 2376815 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 16384 size blocks: 1216629 aes-128-gcm's in 3.00s
OpenSSL 1.1.1  11 Sep 2018
built on: Thu Sep 20 09:15:20 2018 UTC
options:bn(64,64) rc4(16x,int) des(int) aes(partial) idea(int) blowfish(ptr)
compiler: cc -fPIC -arch x86_64 -O3 -Wall -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPADLOCK_ASM -DPOLY1305_ASM -D_REENTRANT -DNDEBUG
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-gcm     619053.68k  1607531.71k  3245027.41k  5148778.17k  6490289.49k  6644416.51k

MacBook Pro (Retina, 13-inch, Mid 2014)

Intel(R) Core(TM) i7-4578U CPU @ 3.00GHz

$ openssl speed -evp aes-128-ctr
Doing aes-128-ctr for 3s on 16 size blocks: 112211893 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 64 size blocks: 88506818 aes-128-ctr's in 2.98s
Doing aes-128-ctr for 3s on 256 size blocks: 42595428 aes-128-ctr's in 2.96s
Doing aes-128-ctr for 3s on 1024 size blocks: 13355708 aes-128-ctr's in 2.91s
Doing aes-128-ctr for 3s on 8192 size blocks: 1895115 aes-128-ctr's in 3.00s
OpenSSL 1.0.2l  25 May 2017
built on: reproducible build, date unspecified
options:bn(64,64) rc4(ptr,int) des(idx,cisc,16,int) aes(partial) idea(int) blowfish(idx)
compiler: /usr/bin/clang -I. -I.. -I../include  -fPIC -fno-common -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -arch x86_64 -O3 -DL_ENDIAN -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
aes-128-ctr     598463.43k  1900817.57k  3683928.91k  4699740.55k  5174927.36k
$ openssl speed -evp aes-128-gcm
Doing aes-128-gcm for 3s on 16 size blocks: 76458852 aes-128-gcm's in 2.99s
Doing aes-128-gcm for 3s on 64 size blocks: 42256456 aes-128-gcm's in 2.78s
Doing aes-128-gcm for 3s on 256 size blocks: 24036137 aes-128-gcm's in 2.94s
Doing aes-128-gcm for 3s on 1024 size blocks: 7144657 aes-128-gcm's in 2.91s
Doing aes-128-gcm for 3s on 8192 size blocks: 1100133 aes-128-gcm's in 2.93s
OpenSSL 1.0.2l  25 May 2017
built on: reproducible build, date unspecified
options:bn(64,64) rc4(ptr,int) des(idx,cisc,16,int) aes(partial) idea(int) blowfish(idx)
compiler: /usr/bin/clang -I. -I.. -I../include  -fPIC -fno-common -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -arch x86_64 -O3 -DL_ENDIAN -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
aes-128-gcm     409144.36k   972810.50k  2092942.54k  2514133.60k  3075866.74k

さくら VPS 4G プラン

Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz

$ openssl speed -evp aes-128-ctr
Doing aes-128-ctr for 3s on 16 size blocks: 59802606 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 64 size blocks: 54749396 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 256 size blocks: 24021185 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 1024 size blocks: 9760580 aes-128-ctr's in 2.99s
Doing aes-128-ctr for 3s on 8192 size blocks: 1339667 aes-128-ctr's in 2.99s
OpenSSL 1.0.2g  1 Mar 2016
built on: reproducible build, date unspecified
options:bn(64,64) rc4(16x,int) des(idx,cisc,16,int) aes(partial) blowfish(idx)
compiler: cc -I. -I.. -I../include  -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wa,--noexecstack -Wall -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
aes-128-ctr     318947.23k  1167987.11k  2049807.79k  3342753.82k  3670418.75k
$ openssl speed -evp aes-128-gcm
Doing aes-128-gcm for 3s on 16 size blocks: 44378842 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 64 size blocks: 28788048 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 256 size blocks: 9272965 aes-128-gcm's in 2.99s
Doing aes-128-gcm for 3s on 1024 size blocks: 2953378 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 8192 size blocks: 393397 aes-128-gcm's in 2.99s
OpenSSL 1.0.2g  1 Mar 2016
built on: reproducible build, date unspecified
options:bn(64,64) rc4(16x,int) des(idx,cisc,16,int) aes(partial) blowfish(idx)
compiler: cc -I. -I.. -I../include  -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wa,--noexecstack -Wall -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
aes-128-gcm     236687.16k   614145.02k   793939.48k  1008086.36k  1077828.84k

Vultr dedcated instance $60

Virtual CPU 714389bda930

$ openssl speed -evp aes-128-ctr
Doing aes-128-ctr for 3s on 16 size blocks: 99812164 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 64 size blocks: 72267113 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 256 size blocks: 45080115 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 1024 size blocks: 15288248 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 8192 size blocks: 2164504 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 16384 size blocks: 1103140 aes-128-ctr's in 3.00s
OpenSSL 1.1.0f  25 May 2017
built on: reproducible build, date unspecified
options:bn(64,64) rc4(16x,int) des(int) aes(partial) idea(int) blowfish(ptr)
compiler: gcc -DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/opt/openssl/1.1.0f/ssl\"" -DENGINESDIR="\"/opt/openssl/1.1.0f/lib/engines-1.1\""
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-ctr     532331.54k  1541698.41k  3846836.48k  5218388.65k  5910538.92k  6024615.25k
$ openssl speed -evp aes-128-gcm
Doing aes-128-gcm for 3s on 16 size blocks: 79661918 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 64 size blocks: 53470284 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 256 size blocks: 29359838 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 1024 size blocks: 9201140 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 8192 size blocks: 1298793 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 16384 size blocks: 682900 aes-128-gcm's in 3.00s
OpenSSL 1.1.0f  25 May 2017
built on: reproducible build, date unspecified
options:bn(64,64) rc4(16x,int) des(int) aes(partial) idea(int) blowfish(ptr)
compiler: gcc -DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/opt/openssl/1.1.0f/ssl\"" -DENGINESDIR="\"/opt/openssl/1.1.0f/lib/engines-1.1\""
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-gcm     424863.56k  1140699.39k  2505372.84k  3140655.79k  3546570.75k  3729544.53k
Doing aes-128-ctr for 3s on 16 size blocks: 106997340 aes-128-ctr's in 2.99s
Doing aes-128-ctr for 3s on 64 size blocks: 85885365 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 256 size blocks: 44025343 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 1024 size blocks: 15942624 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 8192 size blocks: 2210939 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 16384 size blocks: 1118052 aes-128-ctr's in 3.00s
OpenSSL 1.1.1-pre6 (beta) 1 May 2018
built on: Tue May  8 15:02:29 2018 UTC
options:bn(64,64) rc4(16x,int) des(int) aes(partial) idea(int) blowfish(ptr)
compiler: gcc -fPIC -pthread -m64  -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DNDEBUG
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-ctr     572561.02k  1832221.12k  3756829.27k  5441748.99k  6037337.43k  6106054.66k
Doing aes-128-gcm for 3s on 16 size blocks: 78172961 aes-128-gcm's in 2.99s
Doing aes-128-gcm for 3s on 64 size blocks: 55513677 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 256 size blocks: 27273464 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 1024 size blocks: 9318324 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 8192 size blocks: 1364860 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 16384 size blocks: 690585 aes-128-gcm's in 3.00s
OpenSSL 1.1.1-pre6 (beta) 1 May 2018
built on: Tue May  8 15:02:29 2018 UTC
options:bn(64,64) rc4(16x,int) des(int) aes(partial) idea(int) blowfish(ptr)
compiler: gcc -fPIC -pthread -m64  -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DNDEBUG
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-gcm     418316.85k  1184291.78k  2327335.59k  3180654.59k  3726977.71k  3771514.88k
$ /opt/libressl/2.6.0/bin/openssl speed -evp aes-128-ctr
Doing aes-128-ctr for 3s on 16 size blocks: 129660679 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 64 size blocks: 96063710 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 256 size blocks: 37787363 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 1024 size blocks: 11193934 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 8192 size blocks: 1485097 aes-128-ctr's in 3.00s
LibreSSL 2.6.0
built on: date not available
options:bn(64,64) rc4(16x,int) des(idx,cisc,16,int) aes(partial) idea(int) blowfish(idx)
compiler: information not available
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
aes-128-ctr     691523.62k  2049359.15k  3224521.64k  3820862.81k  4055304.87k
@itooon
Copy link

itooon commented Nov 21, 2020

AMD Ryzen 9 5950Xです

$ cat /proc/cpuinfo 
processor	: 0
vendor_id	: AuthenticAMD
cpu family	: 25
model		: 33
model name	: AMD Ryzen 9 5950X 16-Core Processor
stepping	: 0
microcode	: 0xa201009
cpu MHz		: 2154.552
cache size	: 512 KB
physical id	: 0
siblings	: 32
core id		: 0
cpu cores	: 16
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 16
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif umip pku ospke vaes vpclmulqdq rdpid overflow_recov succor smca
bugs		: sysret_ss_attrs spectre_v1 spectre_v2 spec_store_bypass
bogomips	: 6800.50
TLB size	: 2560 4K pages
clflush size	: 64
cache_alignment	: 64
address sizes	: 48 bits physical, 48 bits virtual
power management: ts ttp tm hwpstate cpb eff_freq_ro [13] [14]

中略

processor	: 31
vendor_id	: AuthenticAMD
cpu family	: 25
model		: 33
model name	: AMD Ryzen 9 5950X 16-Core Processor
stepping	: 0
microcode	: 0xa201009
cpu MHz		: 2190.949
cache size	: 512 KB
physical id	: 0
siblings	: 32
core id		: 15
cpu cores	: 16
apicid		: 31
initial apicid	: 31
fpu		: yes
fpu_exception	: yes
cpuid level	: 16
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif umip pku ospke vaes vpclmulqdq rdpid overflow_recov succor smca
bugs		: sysret_ss_attrs spectre_v1 spectre_v2 spec_store_bypass
bogomips	: 6800.50
TLB size	: 2560 4K pages
clflush size	: 64
cache_alignment	: 64
address sizes	: 48 bits physical, 48 bits virtual
power management: ts ttp tm hwpstate cpb eff_freq_ro [13] [14]
$ uname -s -r -v -p -i -o
Linux 4.15.0-118-generic #119-Ubuntu SMP Tue Sep 8 12:30:01 UTC 2020 x86_64 x86_64 GNU/Linux
$ ./openssl version
OpenSSL 1.1.1h  22 Sep 2020
$ ./openssl speed -evp aes-128-ctr
Doing aes-128-ctr for 3s on 16 size blocks: 160968790 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 64 size blocks: 151399440 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 256 size blocks: 87435179 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 1024 size blocks: 31029095 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 8192 size blocks: 4424778 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 16384 size blocks: 2229049 aes-128-ctr's in 3.00s
OpenSSL 1.1.1h  22 Sep 2020
built on: Sat Nov 21 19:31:44 2020 UTC
options:bn(64,64) rc4(8x,int) des(int) aes(partial) idea(int) blowfish(ptr) 
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DNDEBUG
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-ctr     858500.21k  3229854.72k  7461135.27k 10591264.43k 12082593.79k 12173579.61k
$ ./openssl speed -evp aes-128-gcm
Doing aes-128-gcm for 3s on 16 size blocks: 155075274 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 64 size blocks: 91955798 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 256 size blocks: 50450744 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 1024 size blocks: 16317128 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 8192 size blocks: 2285051 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 16384 size blocks: 1151243 aes-128-gcm's in 3.00s
OpenSSL 1.1.1h  22 Sep 2020
built on: Sat Nov 21 19:31:44 2020 UTC
options:bn(64,64) rc4(8x,int) des(int) aes(partial) idea(int) blowfish(ptr) 
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DNDEBUG
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-gcm     827068.13k  1961723.69k  4305130.15k  5569579.69k  6239712.60k  6287321.77k
$ ./openssl speed -evp chacha20-poly1305 
Doing chacha20-poly1305 for 3s on 16 size blocks: 74156132 chacha20-poly1305's in 3.00s
Doing chacha20-poly1305 for 3s on 64 size blocks: 32516647 chacha20-poly1305's in 3.00s
Doing chacha20-poly1305 for 3s on 256 size blocks: 19726999 chacha20-poly1305's in 3.00s
Doing chacha20-poly1305 for 3s on 1024 size blocks: 8850388 chacha20-poly1305's in 3.00s
Doing chacha20-poly1305 for 3s on 8192 size blocks: 1140724 chacha20-poly1305's in 3.00s
Doing chacha20-poly1305 for 3s on 16384 size blocks: 573805 chacha20-poly1305's in 3.00s
OpenSSL 1.1.1h  22 Sep 2020
built on: Sat Nov 21 19:31:44 2020 UTC
options:bn(64,64) rc4(8x,int) des(int) aes(partial) idea(int) blowfish(ptr) 
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DNDEBUG
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
chacha20-poly1305   395499.37k   693688.47k  1683370.58k  3020932.44k  3114937.00k  3133740.37k

@shibukawa
Copy link

Ubuntu on QEMU on Apple M1 MacBook Pro 13

$ openssl version
OpenSSL 1.1.1f  31 Mar 2020
/proc/cpuinfo
processor	: 0
BogoMIPS	: 48.00
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 asimddp sha512 asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp flagm2 frint
CPU implementer	: 0x00
CPU architecture: 8
CPU variant	: 0x0
CPU part	: 0x000
CPU revision	: 0

processor	: 1
BogoMIPS	: 48.00
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 asimddp sha512 asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp flagm2 frint
CPU implementer	: 0x00
CPU architecture: 8
CPU variant	: 0x0
CPU part	: 0x000
CPU revision	: 0

processor	: 2
BogoMIPS	: 48.00
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 asimddp sha512 asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp flagm2 frint
CPU implementer	: 0x00
CPU architecture: 8
CPU variant	: 0x0
CPU part	: 0x000
CPU revision	: 0

processor	: 3
BogoMIPS	: 48.00
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 asimddp sha512 asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp flagm2 frint
CPU implementer	: 0x00
CPU architecture: 8
CPU variant	: 0x0
CPU part	: 0x000
CPU revision	: 0
$ openssl speed -evp aes-128-ctr
Doing aes-128-ctr for 3s on 16 size blocks: 210512967 aes-128-ctr's in 2.99s
Doing aes-128-ctr for 3s on 64 size blocks: 163739218 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 256 size blocks: 88748864 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 1024 size blocks: 30997588 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 8192 size blocks: 4391412 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 16384 size blocks: 2204898 aes-128-ctr's in 3.00s
OpenSSL 1.1.1f  31 Mar 2020
built on: Mon Apr 20 11:53:50 2020 UTC
options:bn(64,64) rc4(char) des(int) aes(partial) blowfish(ptr) 
compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -fdebug-prefix-map=/build/openssl-9j6sUa/openssl-1.1.1f=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DVPAES_ASM -DECP_NISTZ256_ASM -DPOLY1305_ASM -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-ctr    1126490.79k  3493103.32k  7573236.39k 10580510.04k 11991482.37k 12041682.94k
$ openssl speed -evp aes-128-gcm
Doing aes-128-gcm for 3s on 16 size blocks: 192726537 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 64 size blocks: 136317918 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 256 size blocks: 54555879 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 1024 size blocks: 13098999 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 8192 size blocks: 1641117 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 16384 size blocks: 816232 aes-128-gcm's in 3.00s
OpenSSL 1.1.1f  31 Mar 2020
built on: Mon Apr 20 11:53:50 2020 UTC
options:bn(64,64) rc4(char) des(int) aes(partial) blowfish(ptr) 
compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -fdebug-prefix-map=/build/openssl-9j6sUa/openssl-1.1.1f=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DVPAES_ASM -DECP_NISTZ256_ASM -DPOLY1305_ASM -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-gcm    1027874.86k  2908115.58k  4655435.01k  4471124.99k  4481343.49k  4457715.03k
$ openssl speed -evp chacha20-poly1305
Doing chacha20-poly1305 for 3s on 16 size blocks: 70637089 chacha20-poly1305's in 3.00s
Doing chacha20-poly1305 for 3s on 64 size blocks: 26738049 chacha20-poly1305's in 3.00s
Doing chacha20-poly1305 for 3s on 256 size blocks: Segmentation fault (コアダンプ)

@shibukawa
Copy link

ubuntu:20.10 on Docker-AppleSilicon-Preview5 on MacBook Pro 13(M1)

apt install opensslで入ったバージョン

$ openssl version
OpenSSL 1.1.1f  31 Mar 2020

cpuinfoは↑のQEMUと同じなので省略

#  openssl speed -evp aes-128-ctr
Doing aes-128-ctr for 3s on 16 size blocks: 213599767 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 64 size blocks: 164087170 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 256 size blocks: 88491625 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 1024 size blocks: 31257763 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 8192 size blocks: 4402350 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 16384 size blocks: 2231471 aes-128-ctr's in 3.00s
OpenSSL 1.1.1f  31 Mar 2020
built on: Tue Sep 15 17:04:36 2020 UTC
options:bn(64,64) rc4(char) des(int) aes(partial) blowfish(ptr) 
compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -fdebug-prefix-map=/build/openssl-VowUVY/openssl-1.1.1f=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DVPAES_ASM -DECP_NISTZ256_ASM -DPOLY1305_ASM -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-ctr    1139198.76k  3500526.29k  7551285.33k 10669316.44k 12021350.40k 12186806.95k
# openssl speed -evp aes-128-gcm
Doing aes-128-gcm for 3s on 16 size blocks: 199316828 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 64 size blocks: 139738116 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 256 size blocks: 54632118 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 1024 size blocks: 13152713 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 8192 size blocks: 1677445 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 16384 size blocks: 823979 aes-128-gcm's in 3.00s
OpenSSL 1.1.1f  31 Mar 2020
built on: Tue Sep 15 17:04:36 2020 UTC
options:bn(64,64) rc4(char) des(int) aes(partial) blowfish(ptr) 
compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -fdebug-prefix-map=/build/openssl-VowUVY/openssl-1.1.1f=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DVPAES_ASM -DECP_NISTZ256_ASM -DPOLY1305_ASM -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-gcm    1063023.08k  2981079.81k  4661940.74k  4489459.37k  4580543.15k  4500023.98k
#  openssl speed -evp chacha20-poly1305
Doing chacha20-poly1305 for 3s on 16 size blocks: 69657056 chacha20-poly1305's in 3.00s
Doing chacha20-poly1305 for 3s on 64 size blocks: 27046254 chacha20-poly1305's in 3.00s
Doing chacha20-poly1305 for 3s on 256 size blocks: 12568361 chacha20-poly1305's in 3.00s
Doing chacha20-poly1305 for 3s on 1024 size blocks: 5054925 chacha20-poly1305's in 3.00s
Doing chacha20-poly1305 for 3s on 8192 size blocks: 632559 chacha20-poly1305's in 3.00s
Doing chacha20-poly1305 for 3s on 16384 size blocks: 317107 chacha20-poly1305's in 3.00s
OpenSSL 1.1.1f  31 Mar 2020
built on: Tue Sep 15 17:04:36 2020 UTC
options:bn(64,64) rc4(char) des(int) aes(partial) blowfish(ptr) 
compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -fdebug-prefix-map=/build/openssl-VowUVY/openssl-1.1.1f=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DVPAES_ASM -DECP_NISTZ256_ASM -DPOLY1305_ASM -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes

@voluntas
Copy link
Author

Mac mini (M1, 2020)

% ./openssl version
OpenSSL 3.0.0-beta1 17 Jun 2021 (Library: OpenSSL 3.0.0-beta1 17 Jun 2021)
% ./openssl speed -evp aes-128-ctr
Doing AES-128-CTR for 3s on 16 size blocks: 263047661 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 64 size blocks: 190934349 AES-128-CTR's in 2.99s
Doing AES-128-CTR for 3s on 256 size blocks: 97924394 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 1024 size blocks: 33355352 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 8192 size blocks: 4610909 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 16384 size blocks: 2326162 AES-128-CTR's in 3.00s
version: 3.0.0-beta1
built on: built on: Thu Jun 17 23:14:56 2021 UTC
options:bn(64,64)
compiler: cc -fPIC -arch arm64 -O3 -Wall -DL_ENDIAN -DOPENSSL_PIC -D_REENTRANT -DOPENSSL_BUILDING_OPENSSL -DNDEBUG
CPUINFO: OPENSSL_armcap=0x7f
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
AES-128-CTR    1402920.86k  4086889.08k  8356214.95k 11385293.48k 12590855.51k 12703946.07k
% ./openssl speed -evp aes-128-gcm
Doing AES-128-GCM for 3s on 16 size blocks: 198016652 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 64 size blocks: 140787796 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 256 size blocks: 56406277 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 1024 size blocks: 18631790 AES-128-GCM's in 2.99s
Doing AES-128-GCM for 3s on 8192 size blocks: 2459099 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 16384 size blocks: 1234272 AES-128-GCM's in 3.00s
version: 3.0.0-beta1
built on: built on: Thu Jun 17 23:14:56 2021 UTC
options:bn(64,64)
compiler: cc -fPIC -arch arm64 -O3 -Wall -DL_ENDIAN -DOPENSSL_PIC -D_REENTRANT -DOPENSSL_BUILDING_OPENSSL -DNDEBUG
CPUINFO: OPENSSL_armcap=0x7f
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
AES-128-GCM    1056088.81k  3003472.98k  4813335.64k  6380920.72k  6714979.67k  6740770.82k
% ./openssl speed -evp chacha20-poly1305
Doing ChaCha20-Poly1305 for 3s on 16 size blocks: 71127733 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 64 size blocks: 27573582 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 256 size blocks: 13735490 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 1024 size blocks: 5367895 ChaCha20-Poly1305's in 2.99s
Doing ChaCha20-Poly1305 for 3s on 8192 size blocks: 670445 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 16384 size blocks: 331303 ChaCha20-Poly1305's in 3.00s
version: 3.0.0-beta1
built on: built on: Thu Jun 17 23:14:56 2021 UTC
options:bn(64,64)
compiler: cc -fPIC -arch arm64 -O3 -Wall -DL_ENDIAN -DOPENSSL_PIC -D_REENTRANT -DOPENSSL_BUILDING_OPENSSL -DNDEBUG
CPUINFO: OPENSSL_armcap=0x7f
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
ChaCha20-Poly1305   379347.91k   588236.42k  1172095.15k  1838369.39k  1830761.81k  1809356.12k

@voluntas
Copy link
Author

Oracle Cloud

  • Ampere Altra
  • 2C / 12G
$ cat /proc/cpuinfo
processor	: 0
BogoMIPS	: 50.00
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp ssbs
CPU implementer	: 0x41
CPU architecture: 8
CPU variant	: 0x3
CPU part	: 0xd0c
CPU revision	: 1

processor	: 1
BogoMIPS	: 50.00
Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp ssbs
CPU implementer	: 0x41
CPU architecture: 8
CPU variant	: 0x3
CPU part	: 0xd0c
CPU revision	: 1
$ openssl speed -evp aes-128-ctr
Doing aes-128-ctr for 3s on 16 size blocks: 105984145 aes-128-ctr's in 2.99s
Doing aes-128-ctr for 3s on 64 size blocks: 76441544 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 256 size blocks: 35716532 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 1024 size blocks: 11346159 aes-128-ctr's in 2.99s
Doing aes-128-ctr for 3s on 8192 size blocks: 1545882 aes-128-ctr's in 2.99s
Doing aes-128-ctr for 3s on 16384 size blocks: 777966 aes-128-ctr's in 3.00s
OpenSSL 1.1.1l  24 Aug 2021
built on: Thu Aug 26 13:59:39 2021 UTC
options:bn(64,64) rc4(char) des(int) aes(partial) blowfish(ptr)
compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DVPAES_ASM -DECP_NISTZ256_ASM -DPOLY1305_ASM -DNDEBUG
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-ctr     567139.24k  1630752.94k  3047810.73k  3885774.85k  4235406.47k  4248731.65k
$ openssl speed -evp aes-128-gcm
Doing aes-128-gcm for 3s on 16 size blocks: 90616624 aes-128-gcm's in 2.99s
Doing aes-128-gcm for 3s on 64 size blocks: 61740338 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 256 size blocks: 24248543 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 1024 size blocks: 7059369 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 8192 size blocks: 921092 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 16384 size blocks: 463808 aes-128-gcm's in 3.00s
OpenSSL 1.1.1l  24 Aug 2021
built on: Thu Aug 26 13:59:39 2021 UTC
options:bn(64,64) rc4(char) des(int) aes(partial) blowfish(ptr)
compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DVPAES_ASM -DECP_NISTZ256_ASM -DPOLY1305_ASM -DNDEBUG
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-gcm     484905.01k  1317127.21k  2069209.00k  2409597.95k  2515195.22k  2533010.09k
$ openssl speed -evp chacha20-poly1305
Doing chacha20-poly1305 for 3s on 16 size blocks: 38759465 chacha20-poly1305's in 2.99s
Doing chacha20-poly1305 for 3s on 64 size blocks: 15736222 chacha20-poly1305's in 3.00s
Doing chacha20-poly1305 for 3s on 256 size blocks: 7642042 chacha20-poly1305's in 3.00s
Doing chacha20-poly1305 for 3s on 1024 size blocks: 2344355 chacha20-poly1305's in 3.00s
Doing chacha20-poly1305 for 3s on 8192 size blocks: 301804 chacha20-poly1305's in 3.00s
Doing chacha20-poly1305 for 3s on 16384 size blocks: 151304 chacha20-poly1305's in 3.00s
OpenSSL 1.1.1l  24 Aug 2021
built on: Thu Aug 26 13:59:39 2021 UTC
options:bn(64,64) rc4(char) des(int) aes(partial) blowfish(ptr)
compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DVPAES_ASM -DECP_NISTZ256_ASM -DPOLY1305_ASM -DNDEBUG
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
chacha20-poly1305   207408.51k   335706.07k   652120.92k   800206.51k   824126.12k   826321.58k

@voluntas
Copy link
Author

voluntas commented Nov 2, 2021

MacBook Pro 16 M1 Max 10C/64G

openssl speed -evp aes-128-ctr
Doing aes-128-ctr for 3s on 16 size blocks: 216456176 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 64 size blocks: 165427993 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 256 size blocks: 89741704 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 1024 size blocks: 29642896 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 8192 size blocks: 4048117 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 16384 size blocks: 2047197 aes-128-ctr's in 3.00s
OpenSSL 1.1.1l  24 Aug 2021
built on: Wed Aug 25 08:26:56 2021 UTC
options:bn(64,64) rc4(int) des(int) aes(partial) idea(int) blowfish(ptr)
compiler: cc -fPIC -arch arm64 -O3 -Wall -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DVPAES_ASM -DECP_NISTZ256_ASM -DPOLY1305_ASM -D_REENTRANT -DNDEBUG
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-ctr    1154432.94k  3529130.52k  7657958.74k 10118108.50k 11054058.15k 11180425.22k
openssl speed -evp aes-128-gcm
Doing aes-128-gcm for 3s on 16 size blocks: 213655402 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 64 size blocks: 144511486 aes-128-gcm's in 2.99s
Doing aes-128-gcm for 3s on 256 size blocks: 55693445 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 1024 size blocks: 13560599 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 8192 size blocks: 1655633 aes-128-gcm's in 2.99s
Doing aes-128-gcm for 3s on 16384 size blocks: 831018 aes-128-gcm's in 3.00s
OpenSSL 1.1.1l  24 Aug 2021
built on: Wed Aug 25 08:26:56 2021 UTC
options:bn(64,64) rc4(int) des(int) aes(partial) idea(int) blowfish(ptr)
compiler: cc -fPIC -arch arm64 -O3 -Wall -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DVPAES_ASM -DECP_NISTZ256_ASM -DPOLY1305_ASM -D_REENTRANT -DNDEBUG
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-gcm    1139495.48k  3093222.44k  4752507.31k  4628684.46k  4536102.19k  4538466.30k
openssl speed -evp chacha20-poly1305
Doing chacha20-poly1305 for 3s on 16 size blocks: 70680561 chacha20-poly1305's in 3.00s
Doing chacha20-poly1305 for 3s on 64 size blocks: 27245387 chacha20-poly1305's in 3.00s
Doing chacha20-poly1305 for 3s on 256 size blocks: 12688205 chacha20-poly1305's in 3.00s
Doing chacha20-poly1305 for 3s on 1024 size blocks: 5076630 chacha20-poly1305's in 2.99s
Doing chacha20-poly1305 for 3s on 8192 size blocks: 631797 chacha20-poly1305's in 3.00s
Doing chacha20-poly1305 for 3s on 16384 size blocks: 318473 chacha20-poly1305's in 3.00s
OpenSSL 1.1.1l  24 Aug 2021
built on: Wed Aug 25 08:26:56 2021 UTC
options:bn(64,64) rc4(int) des(int) aes(partial) idea(int) blowfish(ptr)
compiler: cc -fPIC -arch arm64 -O3 -Wall -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DVPAES_ASM -DECP_NISTZ256_ASM -DPOLY1305_ASM -D_REENTRANT -DNDEBUG
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
chacha20-poly1305   376962.99k   581234.92k  1082726.83k  1738618.43k  1725227.01k  1739287.21k
openssl speed -evp aes-128-gcm
Doing AES-128-GCM for 3s on 16 size blocks: 199145085 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 64 size blocks: 141535574 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 256 size blocks: 55675446 AES-128-GCM's in 3.01s
Doing AES-128-GCM for 3s on 1024 size blocks: 18726506 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 8192 size blocks: 2470932 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 16384 size blocks: 1241734 AES-128-GCM's in 3.00s
version: 3.0.0
built on: built on: Mon Oct 18 08:30:57 2021 UTC
options:bn(64,64)
compiler: cc -fPIC -arch arm64 -O3 -Wall -DL_ENDIAN -DOPENSSL_PIC -D_REENTRANT -DOPENSSL_BUILDING_OPENSSL -DNDEBUG
CPUINFO: OPENSSL_armcap=0x7f
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
AES-128-GCM    1062107.12k  3019425.58k  4735187.43k  6391980.71k  6747291.65k  6781523.29k
openssl speed -evp aes-128-gcm
Doing AES-128-GCM ops for 3s on 16 size blocks: 212014558 AES-128-GCM ops in 2.99s
Doing AES-128-GCM ops for 3s on 64 size blocks: 144764512 AES-128-GCM ops in 3.00s
Doing AES-128-GCM ops for 3s on 256 size blocks: 53842499 AES-128-GCM ops in 2.99s
Doing AES-128-GCM ops for 3s on 1024 size blocks: 22182939 AES-128-GCM ops in 2.99s
Doing AES-128-GCM ops for 3s on 8192 size blocks: 3116348 AES-128-GCM ops in 2.98s
Doing AES-128-GCM ops for 3s on 16384 size blocks: 1584296 AES-128-GCM ops in 3.00s
version: 3.2.0
built on: Sat Nov 25 07:11:26 2023 UTC
options: bn(64,64)
compiler: cc -fPIC -arch arm64 -O3 -Wall -DL_ENDIAN -DOPENSSL_PIC -D_REENTRANT -DOPENSSL_BUILDING_OPENSSL -DNDEBUG
CPUINFO: OPENSSL_armcap=0x987d
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
AES-128-GCM    1134526.06k  3088309.59k  4609926.34k  7597100.18k  8566819.74k  8652368.55k

@thorgeo
Copy link

thorgeo commented May 24, 2022

c7g.medium

openssl speed -evp aes-128-ctr
Doing AES-128-CTR for 3s on 16 size blocks: 180830348 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 64 size blocks: 124779370 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 256 size blocks: 61025806 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 1024 size blocks: 18730736 AES-128-CTR's in 2.98s
Doing AES-128-CTR for 3s on 8192 size blocks: 2510330 AES-128-CTR's in 2.96s
Doing AES-128-CTR for 3s on 16384 size blocks: 1287692 AES-128-CTR's in 3.00s
version: 3.0.2
built on: Wed Mar 16 08:35:51 2022 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/openssl-bOWniJ/openssl-3.0.2=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
CPUINFO: OPENSSL_armcap=0xff
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
AES-128-CTR     964428.52k  2661959.89k  5207535.45k  6436333.44k  6947507.89k  7032515.24k
openssl speed -evp aes-128-gcm
Doing AES-128-GCM for 3s on 16 size blocks: 119139097 AES-128-GCM's in 2.99s
Doing AES-128-GCM for 3s on 64 size blocks: 82881589 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 256 size blocks: 33646615 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 1024 size blocks: 12024154 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 8192 size blocks: 1654676 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 16384 size blocks: 833006 AES-128-GCM's in 3.00s
version: 3.0.2
built on: Wed Mar 16 08:35:51 2022 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/openssl-bOWniJ/openssl-3.0.2=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
CPUINFO: OPENSSL_armcap=0xff
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
AES-128-GCM     637533.63k  1768140.57k  2871177.81k  4104244.57k  4518368.60k  4549323.43k
openssl speed -evp chacha20-poly1305
Doing ChaCha20-Poly1305 for 3s on 16 size blocks: 49922137 ChaCha20-Poly1305's in 2.99s
Doing ChaCha20-Poly1305 for 3s on 64 size blocks: 20760735 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 256 size blocks: 9314451 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 1024 size blocks: 3129378 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 8192 size blocks: 399624 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 16384 size blocks: 200204 ChaCha20-Poly1305's in 3.00s
version: 3.0.2
built on: Wed Mar 16 08:35:51 2022 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/openssl-bOWniJ/openssl-3.0.2=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
CPUINFO: OPENSSL_armcap=0xff
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
ChaCha20-Poly1305   267141.87k   442895.68k   794833.15k  1068161.02k  1091239.94k  1093380.78k
openssl speed -evp aes-128-gcm
Doing AES-128-GCM for 3s on 16 size blocks: 119343962 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 64 size blocks: 82857291 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 256 size blocks: 33644669 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 1024 size blocks: 12015629 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 8192 size blocks: 1654447 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 16384 size blocks: 833152 AES-128-GCM's in 3.00s
version: 3.0.2
built on: Wed Mar 16 08:35:51 2022 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/openssl-bOWniJ/openssl-3.0.2=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
CPUINFO: OPENSSL_armcap=0xff
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
AES-128-GCM     636501.13k  1767622.21k  2871011.75k  4101334.70k  4517743.27k  4550120.79k

@voluntas
Copy link
Author

voluntas commented Jun 5, 2022

Intel(R) Xeon(R) Silver 4210 CPU @ 2.20GHz

$ openssl speed -evp aes-128-ctr
Doing aes-128-ctr for 3s on 16 size blocks: 86907960 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 64 size blocks: 69629031 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 256 size blocks: 36108227 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 1024 size blocks: 12434480 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 8192 size blocks: 1772179 aes-128-ctr's in 3.00s
Doing aes-128-ctr for 3s on 16384 size blocks: 893401 aes-128-ctr's in 3.00s
OpenSSL 1.1.1f  31 Mar 2020
built on: Tue May  3 17:49:36 2022 UTC
options:bn(64,64) rc4(16x,int) des(int) aes(partial) blowfish(ptr)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -fdebug-prefix-map=/build/openssl-7zx7z2/openssl-1.1.1f=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-ctr     463509.12k  1485419.33k  3081235.37k  4244302.51k  4839230.12k  4879160.66k
$ openssl speed -evp aes-128-gcm
Doing aes-128-gcm for 3s on 16 size blocks: 71974789 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 64 size blocks: 48304425 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 256 size blocks: 24868289 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 1024 size blocks: 10572036 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 8192 size blocks: 1709488 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 16384 size blocks: 874154 aes-128-gcm's in 3.00s
OpenSSL 1.1.1f  31 Mar 2020
built on: Tue May  3 17:49:36 2022 UTC
options:bn(64,64) rc4(16x,int) des(int) aes(partial) blowfish(ptr)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -fdebug-prefix-map=/build/openssl-7zx7z2/openssl-1.1.1f=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-gcm     383865.54k  1030494.40k  2122093.99k  3608588.29k  4668041.90k  4774046.38k

@voluntas
Copy link
Author

voluntas commented Jun 5, 2022

AMD EPYC 7443P

Ubuntu 22.04

$ openssl speed -evp aes-128-ctr
Doing AES-128-CTR for 3s on 16 size blocks: 177714481 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 64 size blocks: 153085323 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 256 size blocks: 76838482 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 1024 size blocks: 26542398 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 8192 size blocks: 3718162 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 16384 size blocks: 1875945 AES-128-CTR's in 3.00s
version: 3.0.2
built on: Thu May  5 08:04:52 2022 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/openssl-Ke3YUO/openssl-3.0.2=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
CPUINFO: OPENSSL_ia32cap=0x7efa320b078bffff:0x40069c219c95a9
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
AES-128-CTR     947810.57k  3265820.22k  6556883.80k  9059805.18k 10153061.03k 10245160.96k
$ openssl speed -evp aes-128-gcm
Doing AES-128-GCM for 3s on 16 size blocks: 121319971 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 64 size blocks: 80266306 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 256 size blocks: 40578185 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 1024 size blocks: 13466334 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 8192 size blocks: 1871394 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 16384 size blocks: 946399 AES-128-GCM's in 3.00s
version: 3.0.2
built on: Thu May  5 08:04:52 2022 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/openssl-Ke3YUO/openssl-3.0.2=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
CPUINFO: OPENSSL_ia32cap=0x7efa320b078bffff:0x40069c219c95a9
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
AES-128-GCM     647039.85k  1712347.86k  3462671.79k  4596508.67k  5110153.22k  5168600.41kopenssl speed -evp aes-128-gcm

@shibukawa
Copy link

MacBook Air 2022 M2

macOS 12.5。OpenSSLはMacPorts。

% sysctl -n machdep.cpu.brand_string
Apple M2
 % openssl speed -evp aes-128-ctr
Doing AES-128-CTR for 3s on 16 size blocks: 266378225 AES-128-CTR's in 2.99s
Doing AES-128-CTR for 3s on 64 size blocks: 199071108 AES-128-CTR's in 2.99s
Doing AES-128-CTR for 3s on 256 size blocks: 102641563 AES-128-CTR's in 2.98s
Doing AES-128-CTR for 3s on 1024 size blocks: 35420355 AES-128-CTR's in 2.99s
Doing AES-128-CTR for 3s on 8192 size blocks: 4972471 AES-128-CTR's in 2.98s
Doing AES-128-CTR for 3s on 16384 size blocks: 2507713 AES-128-CTR's in 2.98s
version: 3.0.5
built on: Tue Jul  5 17:18:40 2022 UTC
options: bn(64,64)
compiler: /usr/bin/clang -fPIC -arch arm64 -pipe -Os -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk -DL_ENDIAN -DOPENSSL_PIC -D_REENTRANT -DOPENSSL_BUILDING_OPENSSL -DZLIB -DNDEBUG -I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk
CPUINFO: OPENSSL_armcap=0x7f
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
AES-128-CTR    1425435.32k  4261053.82k  8817530.24k 12130583.12k 13669289.41k 13787372.41k
% openssl speed -evp aes-128-gcm
Doing AES-128-GCM for 3s on 16 size blocks: 201217144 AES-128-GCM's in 2.99s
Doing AES-128-GCM for 3s on 64 size blocks: 143249362 AES-128-GCM's in 2.99s
Doing AES-128-GCM for 3s on 256 size blocks: 63072427 AES-128-GCM's in 2.99s
Doing AES-128-GCM for 3s on 1024 size blocks: 16591221 AES-128-GCM's in 2.99s
Doing AES-128-GCM for 3s on 8192 size blocks: 2542971 AES-128-GCM's in 2.98s
Doing AES-128-GCM for 3s on 16384 size blocks: 1293961 AES-128-GCM's in 2.98s
version: 3.0.5
built on: Tue Jul  5 17:18:40 2022 UTC
options: bn(64,64)
compiler: /usr/bin/clang -fPIC -arch arm64 -pipe -Os -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk -DL_ENDIAN -DOPENSSL_PIC -D_REENTRANT -DOPENSSL_BUILDING_OPENSSL -DZLIB -DNDEBUG -I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk
CPUINFO: OPENSSL_armcap=0x7f
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
AES-128-GCM    1076747.26k  3066207.08k  5400181.04k  5682077.02k  6990610.21k  7114180.21k
% openssl speed -evp chacha20-poly1305
Doing ChaCha20-Poly1305 for 3s on 16 size blocks: 66894789 ChaCha20-Poly1305's in 2.99s
Doing ChaCha20-Poly1305 for 3s on 64 size blocks: 29754665 ChaCha20-Poly1305's in 2.99s
Doing ChaCha20-Poly1305 for 3s on 256 size blocks: 14610317 ChaCha20-Poly1305's in 2.98s
Doing ChaCha20-Poly1305 for 3s on 1024 size blocks: 5706749 ChaCha20-Poly1305's in 2.99s
Doing ChaCha20-Poly1305 for 3s on 8192 size blocks: 709131 ChaCha20-Poly1305's in 2.98s
Doing ChaCha20-Poly1305 for 3s on 16384 size blocks: 354823 ChaCha20-Poly1305's in 2.99s
version: 3.0.5
built on: Tue Jul  5 17:18:40 2022 UTC
options: bn(64,64)
compiler: /usr/bin/clang -fPIC -arch arm64 -pipe -Os -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk -DL_ENDIAN -DOPENSSL_PIC -D_REENTRANT -DOPENSSL_BUILDING_OPENSSL -DZLIB -DNDEBUG -I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk
CPUINFO: OPENSSL_armcap=0x7f
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
ChaCha20-Poly1305   357965.43k   636889.15k  1255114.48k  1954418.39k  1949396.36k  1944287.64k

@cactusman
Copy link

AMD Ryzen 9 7950X

Ubuntu 22.04

$ openssl version
OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)
$ openssl speed -evp aes-128-ctr
Doing AES-128-CTR for 3s on 16 size blocks: 255384091 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 64 size blocks: 226112189 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 256 size blocks: 110480439 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 1024 size blocks: 37225102 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 8192 size blocks: 5183209 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 16384 size blocks: 2613718 AES-128-CTR's in 3.00s
version: 3.0.2
built on: Mon Jul  4 11:20:23 2022 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/openssl-Q8dQt3/openssl-3.0.2=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
CPUINFO: OPENSSL_ia32cap=0x7ef8320b078bffff:0x405fdef1bf97a9
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
AES-128-CTR    1362048.49k  4823726.70k  9427664.13k 12706168.15k 14153616.04k 14274385.24k
$ openssl speed -evp aes-128-gcm
Doing AES-128-GCM for 3s on 16 size blocks: 208749840 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 64 size blocks: 123251088 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 256 size blocks: 59714303 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 1024 size blocks: 19470857 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 8192 size blocks: 2650165 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 16384 size blocks: 1335928 AES-128-GCM's in 3.00s
version: 3.0.2
built on: Mon Jul  4 11:20:23 2022 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/openssl-Q8dQt3/openssl-3.0.2=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
CPUINFO: OPENSSL_ia32cap=0x7ef8320b078bffff:0x405fdef1bf97a9
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
AES-128-GCM    1113332.48k  2629356.54k  5095620.52k  6646052.52k  7236717.23k  7295948.12k
$ openssl speed -evp chacha20-poly1305
Doing ChaCha20-Poly1305 for 3s on 16 size blocks: 81882553 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 64 size blocks: 38852929 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 256 size blocks: 32111505 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 1024 size blocks: 15946079 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 8192 size blocks: 2125751 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 16384 size blocks: 1068498 ChaCha20-Poly1305's in 3.00s
version: 3.0.2
built on: Mon Jul  4 11:20:23 2022 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/openssl-Q8dQt3/openssl-3.0.2=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
CPUINFO: OPENSSL_ia32cap=0x7ef8320b078bffff:0x405fdef1bf97a9
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
ChaCha20-Poly1305   436706.95k   828862.49k  2740181.76k  5442928.30k  5804717.40k  5835423.74k

@voluntas
Copy link
Author

voluntas commented Feb 13, 2023

AMD EPYC 7443P 24-Core Processor

  • Ubuntu 22.04
$ openssl speed -evp aes-128-gcm
Doing AES-128-GCM for 3s on 16 size blocks: 125333512 AES-128-GCM's in 2.99s
Doing AES-128-GCM for 3s on 64 size blocks: 83097078 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 256 size blocks: 41481403 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 1024 size blocks: 13944443 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 8192 size blocks: 1932655 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 16384 size blocks: 977551 AES-128-GCM's in 3.00s
version: 3.0.2
built on: Mon Feb  6 17:57:17 2023 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/openssl-hnAO60/openssl-3.0.2=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
CPUINFO: OPENSSL_ia32cap=0x7eda320b078bffff:0x40069c219c95a9
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
AES-128-GCM     670681.00k  1772737.66k  3539746.39k  4759703.21k  5277436.59k  5338731.86k

@voluntas
Copy link
Author

voluntas commented Mar 3, 2023

Mac mini M2 Pro

$ sysctl -n machdep.cpu.brand_string
Apple M2 Pro
$ openssl speed -evp aes-128-gcm
Doing AES-128-GCM for 3s on 16 size blocks: 224854800 AES-128-GCM's in 2.98s
Doing AES-128-GCM for 3s on 64 size blocks: 155701328 AES-128-GCM's in 2.99s
Doing AES-128-GCM for 3s on 256 size blocks: 63589013 AES-128-GCM's in 2.99s
Doing AES-128-GCM for 3s on 1024 size blocks: 20552100 AES-128-GCM's in 2.99s
Doing AES-128-GCM for 3s on 8192 size blocks: 2690065 AES-128-GCM's in 2.99s
Doing AES-128-GCM for 3s on 16384 size blocks: 1290038 AES-128-GCM's in 2.92s
version: 3.1.0-beta1
built on: Thu Feb 16 02:55:44 2023 UTC
options: bn(64,64)
compiler: cc -fPIC -arch arm64 -O3 -Wall -DL_ENDIAN -DOPENSSL_PIC -D_REENTRANT -DOPENSSL_BUILDING_OPENSSL -DNDEBUG
CPUINFO: OPENSSL_armcap=0x87d
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
AES-128-GCM    1207274.09k  3332737.46k  5444410.48k  7038578.73k  7370238.29k  7238350.20k

@marinecat
Copy link

Mac mini M2

吊るしの最小構成モデル

$ sysctl -n machdep.cpu.brand_string
Apple M2
$ /opt/homebrew/opt/openssl/bin/openssl speed -evp aes-128-gcm
Doing AES-128-GCM for 3s on 16 size blocks: 208976887 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 64 size blocks: 148147185 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 256 size blocks: 63519574 AES-128-GCM's in 3.01s
Doing AES-128-GCM for 3s on 1024 size blocks: 17147210 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 8192 size blocks: 2634558 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 16384 size blocks: 1340191 AES-128-GCM's in 3.00s
version: 3.0.8
built on: Tue Feb  7 13:43:33 2023 UTC
options: bn(64,64)
compiler: clang -fPIC -arch arm64 -O3 -Wall -DL_ENDIAN -DOPENSSL_PIC -D_REENTRANT -DOPENSSL_BUILDING_OPENSSL -DNDEBUG
CPUINFO: OPENSSL_armcap=0x7d
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
AES-128-GCM    1114543.40k  3160473.28k  5402329.22k  5852914.35k  7194099.71k  7319229.78k
$ /usr/bin/openssl speed -evp aes-128-gcm
Doing aes-128-gcm for 3s on 16 size blocks: 77936535 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 64 size blocks: 78590315 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 256 size blocks: 78642233 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 1024 size blocks: 78824039 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 8192 size blocks: 78790907 aes-128-gcm's in 3.00s
LibreSSL 3.3.6
built on: date not available
options:bn(64,64) rc4(ptr,int) des(idx,cisc,16,int) aes(partial) blowfish(idx) 
compiler: information not available
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
aes-128-gcm     415374.91k  1675532.77k  6708552.05k 26896136.26k 215018821.75k

@rampageX
Copy link

rampageX commented Mar 5, 2023

Intel 13600K

# openssl speed -evp aes-128-gcm
Doing aes-128-gcm for 3s on 16 size blocks: 196523386 aes-128-gcm's in 2.98s
Doing aes-128-gcm for 3s on 64 size blocks: 129070802 aes-128-gcm's in 2.78s
Doing aes-128-gcm for 3s on 256 size blocks: 69491809 aes-128-gcm's in 2.97s
Doing aes-128-gcm for 3s on 1024 size blocks: 25059193 aes-128-gcm's in 2.97s
Doing aes-128-gcm for 3s on 8192 size blocks: 3517587 aes-128-gcm's in 3.00s
Doing aes-128-gcm for 3s on 16384 size blocks: 1777463 aes-128-gcm's in 3.17s
OpenSSL 1.1.1f  31 Mar 2020
built on: Wed Apr  8 10:59:14 2020 UTC
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-gcm    1053744.70k  2970345.68k  5991883.83k  8642847.30k  9605357.57k  9180943.82k
# openssl speed -evp chacha20-poly1305
Doing chacha20-poly1305 for 3s on 16 size blocks: 97167721 chacha20-poly1305's in 2.94s
Doing chacha20-poly1305 for 3s on 64 size blocks: 38750488 chacha20-poly1305's in 2.97s
Doing chacha20-poly1305 for 3s on 256 size blocks: 19753497 chacha20-poly1305's in 2.81s
Doing chacha20-poly1305 for 3s on 1024 size blocks: 8696392 chacha20-poly1305's in 2.95s
Doing chacha20-poly1305 for 3s on 8192 size blocks: 1108281 chacha20-poly1305's in 3.08s
Doing chacha20-poly1305 for 3s on 16384 size blocks: 550980 chacha20-poly1305's in 2.88s
OpenSSL 1.1.1f  31 Mar 2020
built on: Wed Apr  8 10:59:14 2020 UTC
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
chacha20-poly1305   529344.07k   835308.60k  1798326.90k  3015613.07k  2948696.96k  3139915.24k

@voluntas
Copy link
Author

voluntas commented Mar 5, 2023

Intel Xeon E-2388G

model name      : Intel(R) Xeon(R) E-2388G CPU @ 3.20GHz
$ openssl speed -evp aes-128-gcm
Doing AES-128-GCM for 3s on 16 size blocks: 133833928 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 64 size blocks: 104438742 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 256 size blocks: 57568800 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 1024 size blocks: 19383623 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 8192 size blocks: 4378701 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 16384 size blocks: 2313492 AES-128-GCM's in 3.00s
version: 3.1.0-beta1
built on: Sun Mar  5 05:07:26 2023 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG
CPUINFO: OPENSSL_ia32cap=0x7ffaf3ffffebffff:0x40405f5ef2bf67ef
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
AES-128-GCM     713780.95k  2228026.50k  4912537.60k  6616276.65k 11956772.86k 12634750.98k

@so298
Copy link

so298 commented Mar 10, 2023

GCP n2-standard-8 (Ice Lake)

Intel® QuickAssist Technology(QAT) OpenSSL* Engineを適用した場合とそうでない場合について試した

$ openssl version
OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)
$ openssl engine -v qatengine
(qatengine) Reference implementation of QAT crypto engine(qat_sw) v0.6.19
     ENABLE_EXTERNAL_POLLING, POLL, ENABLE_HEURISTIC_POLLING, 
     GET_NUM_REQUESTS_IN_FLIGHT, INIT_ENGINE, SW_ALGO_BITMAP
809B1728167F0000:error:1280006A:DSO support routines:dlfcn_bind_func:could not bind to the requested symbol name:../crypto/dso/dso_dlfcn.c:188:symname(EVP_PKEY_base_id): /usr/lib/x86_64-linux-gnu/engines-3/qatengine.so: undefined symbol: EVP_PKEY_base_id
809B1728167F0000:error:1280006A:DSO support routines:DSO_bind_func:could not bind to the requested symbol name:../crypto/dso/dso_lib.c:176:

なんかエラー出てるけどよくわからん

aes-128-gcm

QAT Engine なし

$ openssl speed -evp aes-128-gcm
Doing AES-128-GCM for 3s on 16 size blocks: 127992858 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 64 size blocks: 76284376 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 256 size blocks: 42488086 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 1024 size blocks: 15397757 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 8192 size blocks: 2273200 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 16384 size blocks: 1150996 AES-128-GCM's in 3.00s
version: 3.0.2
built on: Mon Feb  6 17:57:17 2023 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/openssl-hnAO60/openssl-3.0.2=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
CPUINFO: OPENSSL_ia32cap=0xfefa32035f8bffff:0x405f46f1bf2ffb
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
AES-128-GCM     682628.58k  1627400.02k  3625650.01k  5255767.72k  6207351.47k  6285972.82k

QAT Engine あり

$ openssl speed -engine qatengine -evp aes-128-gcm
Engine "qatengine" set.
Doing AES-128-GCM for 3s on 16 size blocks: 109974541 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 64 size blocks: 89364103 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 256 size blocks: 50045002 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 1024 size blocks: 29516005 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 8192 size blocks: 4564498 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 16384 size blocks: 2353982 AES-128-GCM's in 3.00s
version: 3.0.2
built on: Mon Feb  6 17:57:17 2023 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/openssl-hnAO60/openssl-3.0.2=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
CPUINFO: OPENSSL_ia32cap=0xfefa32035f8bffff:0x405f46f1bf2ffb
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
AES-128-GCM     586530.89k  1906434.20k  4270506.84k 10074796.37k 12464122.54k 12855880.36k

1024 bytes 以降は大体2倍くらい速い

aes-128-ctr

QAT Engine なし

$ openssl speed -evp aes-128-ctr
Doing AES-128-CTR for 3s on 16 size blocks: 177189451 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 64 size blocks: 129222686 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 256 size blocks: 71686196 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 1024 size blocks: 25626352 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 8192 size blocks: 3662314 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 16384 size blocks: 1840201 AES-128-CTR's in 3.00s
version: 3.0.2
built on: Mon Feb  6 17:57:17 2023 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/openssl-hnAO60/openssl-3.0.2=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
CPUINFO: OPENSSL_ia32cap=0xfefa32035f8bffff:0x405f46f1bf2ffb
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
AES-128-CTR     945010.41k  2756750.63k  6117222.06k  8747128.15k 10000558.76k 10049951.06k

QAT Engine あり

$ openssl speed -engine qatengine -evp aes-128-ctr
Engine "qatengine" set.
Doing AES-128-CTR for 3s on 16 size blocks: 177708180 AES-128-CTR's in 2.99s
Doing AES-128-CTR for 3s on 64 size blocks: 129253145 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 256 size blocks: 71697346 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 1024 size blocks: 25668842 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 8192 size blocks: 3655854 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 16384 size blocks: 1843037 AES-128-CTR's in 3.00s
version: 3.0.2
built on: Mon Feb  6 17:57:17 2023 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/openssl-hnAO60/openssl-3.0.2=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
CPUINFO: OPENSSL_ia32cap=0xfefa32035f8bffff:0x405f46f1bf2ffb
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
AES-128-CTR     950946.78k  2757400.43k  6118173.53k  8761631.40k  9982918.66k 10065439.40k

変化なし

chacha20-poly1305

QAT Engine なし

$ openssl speed -evp chacha20-poly1305
Doing ChaCha20-Poly1305 for 3s on 16 size blocks: 51876085 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 64 size blocks: 25916354 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 256 size blocks: 21052322 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 1024 size blocks: 9419079 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 8192 size blocks: 1337422 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 16384 size blocks: 672829 ChaCha20-Poly1305's in 3.00s
version: 3.0.2
built on: Mon Feb  6 17:57:17 2023 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/openssl-hnAO60/openssl-3.0.2=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
CPUINFO: OPENSSL_ia32cap=0xfefa32035f8bffff:0x405f46f1bf2ffb
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
ChaCha20-Poly1305   276672.45k   552882.22k  1796464.81k  3215045.63k  3652053.67k  3674543.45k

QAT Engine あり

$ openssl speed -engine qatengine -evp chacha20-poly1305
Engine "qatengine" set.
Doing ChaCha20-Poly1305 for 3s on 16 size blocks: 51898009 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 64 size blocks: 26196760 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 256 size blocks: 21134291 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 1024 size blocks: 9479344 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 8192 size blocks: 1336801 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 16384 size blocks: 672172 ChaCha20-Poly1305's in 3.00s
version: 3.0.2
built on: Mon Feb  6 17:57:17 2023 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/openssl-hnAO60/openssl-3.0.2=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
CPUINFO: OPENSSL_ia32cap=0xfefa32035f8bffff:0x405f46f1bf2ffb
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
ChaCha20-Poly1305   276789.38k   558864.21k  1803459.50k  3235616.09k  3650357.93k  3670955.35k

変化なし

追記(OpenSSL 3.1.0-beta1 での検証)

$ ./openssl speed -evp aes-128-gcm
Doing AES-128-GCM for 3s on 16 size blocks: 136722134 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 64 size blocks: 127713350 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 256 size blocks: 62024856 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 1024 size blocks: 20155531 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 8192 size blocks: 4373650 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 16384 size blocks: 2313676 AES-128-GCM's in 3.00s
version: 3.1.0-beta1
built on: Fri Mar 10 10:35:57 2023 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG
CPUINFO: OPENSSL_ia32cap=0xfefa32035f8bffff:0x405f46f1bf2ffb
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
AES-128-GCM     729184.71k  2724551.47k  5292787.71k  6879754.58k 11942980.27k 12635755.86k

3.1.0-beta1ではQAT Engineなしで同じ速度が出る

@ekusiadadus
Copy link

AMD Ryzen 9 3900X 12-Core Processor

cpuinfo

[ekusiadadus@DESKTOP-0TU9KB3:~/dev]
$ cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 23
model           : 113
model name      : AMD Ryzen 9 3900X 12-Core Processor
stepping        : 0
microcode       : 0xffffffff
cpu MHz         : 3800.021
cache size      : 512 KB
physical id     : 0
siblings        : 24
core id         : 0
cpu cores       : 12
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
$ openssl speed -evp aes-128-ctr
Doing AES-128-CTR for 3s on 16 size blocks: 181990760 AES-128-CTR's in 2.99s
Doing AES-128-CTR for 3s on 64 size blocks: 138104743 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 256 size blocks: 74688999 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 1024 size blocks: 28015586 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 8192 size blocks: 4137256 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 16384 size blocks: 2211740 AES-128-CTR's in 3.00s
version: 3.0.2
built on: Mon Feb  6 17:57:17 2023 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/openssl-hnAO60/openssl-3.0.2=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
CPUINFO: OPENSSL_ia32cap=0xfed83203078bffff:0x400004219c01a9
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
AES-128-CTR     973863.60k  2946234.52k  6373461.25k  9562653.35k 11297467.05k 12079049.39k
$ openssl speed -evp aes-128-gcm
Doing AES-128-GCM for 3s on 16 size blocks: 110592034 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 64 size blocks: 72234040 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 256 size blocks: 35198875 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 1024 size blocks: 12169855 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 8192 size blocks: 1668632 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 16384 size blocks: 845703 AES-128-GCM's in 3.00s
version: 3.0.2
built on: Mon Feb  6 17:57:17 2023 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/openssl-hnAO60/openssl-3.0.2=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
CPUINFO: OPENSSL_ia32cap=0xfed83203078bffff:0x400004219c01a9
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
AES-128-GCM     589824.18k  1540992.85k  3003637.33k  4153977.17k  4556477.78k  4618665.98k
$ openssl speed -evp chacha20-poly1305
Doing ChaCha20-Poly1305 for 3s on 16 size blocks: 60392349 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 64 size blocks: 25831286 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 256 size blocks: 13914260 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 1024 size blocks: 5848523 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 8192 size blocks: 766069 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 16384 size blocks: 393284 ChaCha20-Poly1305's in 3.00s
version: 3.0.2
built on: Mon Feb  6 17:57:17 2023 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/openssl-hnAO60/openssl-3.0.2=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
CPUINFO: OPENSSL_ia32cap=0xfed83203078bffff:0x400004219c01a9
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
ChaCha20-Poly1305   322092.53k   551067.43k  1187350.19k  1996295.85k  2091879.08k  2147855.02k

@OperKH
Copy link

OperKH commented Apr 18, 2023

Dell Latitude 5530

12th Gen Intel® Core™ i7-1255U - 2P + 8E cores

$ openssl speed -evp aes-128-ctr
Doing AES-128-CTR for 3s on 16 size blocks: 260572485 AES-128-CTR's in 2.99s
Doing AES-128-CTR for 3s on 64 size blocks: 201980228 AES-128-CTR's in 2.99s
Doing AES-128-CTR for 3s on 256 size blocks: 100304029 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 1024 size blocks: 34294543 AES-128-CTR's in 2.99s
Doing AES-128-CTR for 3s on 8192 size blocks: 4721791 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 16384 size blocks: 2376185 AES-128-CTR's in 3.00s
version: 3.0.8
built on: Tue Mar 21 00:00:00 2023 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer  -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wa,--noexecstack -Wa,--generate-missing-build-notes=yes -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -specs=/usr/lib/rpm/redhat/redhat-package-notes -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DZLIB -DNDEBUG -DPURIFY -DDEVRANDOM="\"/dev/urandom\"" -DREDHAT_FIPS_VERSION="\"3.0.8-5ac54a139c73ec4a\"" -DSYSTEM_CIPHERS_FILE="/etc/crypto-policies/back-ends/openssl.config"
CPUINFO: OPENSSL_ia32cap=0x7ffaf3ffffebffff:0x984007bc239c27eb
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
AES-128-CTR    1394367.81k  4323322.61k  8559277.14k 11745020.75k 12893637.29k 12977138.35k
$ openssl speed -evp aes-128-gcm
Doing AES-128-GCM for 3s on 16 size blocks: 208158451 AES-128-GCM's in 2.99s
Doing AES-128-GCM for 3s on 64 size blocks: 123913586 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 256 size blocks: 64930695 AES-128-GCM's in 2.99s
Doing AES-128-GCM for 3s on 1024 size blocks: 22511928 AES-128-GCM's in 2.99s
Doing AES-128-GCM for 3s on 8192 size blocks: 3124302 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 16384 size blocks: 1575009 AES-128-GCM's in 2.99s
version: 3.0.8
built on: Tue Mar 21 00:00:00 2023 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer  -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wa,--noexecstack -Wa,--generate-missing-build-notes=yes -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -specs=/usr/lib/rpm/redhat/redhat-package-notes -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DZLIB -DNDEBUG -DPURIFY -DDEVRANDOM="\"/dev/urandom\"" -DREDHAT_FIPS_VERSION="\"3.0.8-5ac54a139c73ec4a\"" -DSYSTEM_CIPHERS_FILE="/etc/crypto-policies/back-ends/openssl.config"
CPUINFO: OPENSSL_ia32cap=0x7ffaf3ffffebffff:0x984007bc239c27eb
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
AES-128-GCM    1113891.38k  2643489.83k  5559283.59k  7709770.66k  8531427.33k  8630417.21k
$ openssl speed -evp chacha20-poly1305
Doing ChaCha20-Poly1305 for 3s on 16 size blocks: 92021725 ChaCha20-Poly1305's in 2.99s
Doing ChaCha20-Poly1305 for 3s on 64 size blocks: 35325598 ChaCha20-Poly1305's in 2.99s
Doing ChaCha20-Poly1305 for 3s on 256 size blocks: 17892559 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 1024 size blocks: 7755183 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 8192 size blocks: 986185 ChaCha20-Poly1305's in 2.99s
Doing ChaCha20-Poly1305 for 3s on 16384 size blocks: 492198 ChaCha20-Poly1305's in 3.00s
version: 3.0.8
built on: Tue Mar 21 00:00:00 2023 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer  -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wa,--noexecstack -Wa,--generate-missing-build-notes=yes -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -specs=/usr/lib/rpm/redhat/redhat-package-notes -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DZLIB -DNDEBUG -DPURIFY -DDEVRANDOM="\"/dev/urandom\"" -DREDHAT_FIPS_VERSION="\"3.0.8-5ac54a139c73ec4a\"" -DSYSTEM_CIPHERS_FILE="/etc/crypto-policies/back-ends/openssl.config"
CPUINFO: OPENSSL_ia32cap=0x7ffaf3ffffebffff:0x984007bc239c27eb
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
ChaCha20-Poly1305   492423.95k   756133.20k  1526831.70k  2647102.46k  2701949.00k  2688057.34k

@OperKH
Copy link

OperKH commented Apr 18, 2023

Oracle Ampere A1 Compute

Oracle Cloud Infrastructure offers Ampere Altra processors with an industry-leading 80 cores per CPU, with all cores capable of running at the maximum frequency of 3.0 Ghz consistently. Each core comes with its own 64 KB L1 I-cache, 64 KB L1 D-cache, and a huge 1 MB L2 D-cache, and delivers predictable performance.

$ openssl speed -evp aes-128-ctr
Doing AES-128-CTR for 3s on 16 size blocks: 117095768 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 64 size blocks: 81628527 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 256 size blocks: 34891687 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 1024 size blocks: 10893002 AES-128-CTR's in 2.99s
Doing AES-128-CTR for 3s on 8192 size blocks: 1467189 AES-128-CTR's in 3.00s
Doing AES-128-CTR for 3s on 16384 size blocks: 737655 AES-128-CTR's in 3.00s
version: 3.0.2
built on: Mon Feb  6 17:57:17 2023 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/openssl-oZetzz/openssl-3.0.2=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
CPUINFO: OPENSSL_armcap=0xbf
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
AES-128-CTR     624510.76k  1741408.58k  2977423.96k  3730579.95k  4006404.10k  4028579.84k
$ openssl speed -evp aes-128-gcm
Doing AES-128-GCM for 3s on 16 size blocks: 83293358 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 64 size blocks: 58197951 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 256 size blocks: 22911051 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 1024 size blocks: 7726077 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 8192 size blocks: 1080744 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 16384 size blocks: 545087 AES-128-GCM's in 3.00s
version: 3.0.2
built on: Mon Feb  6 17:57:17 2023 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/openssl-oZetzz/openssl-3.0.2=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
CPUINFO: OPENSSL_armcap=0xbf
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
AES-128-GCM     444231.24k  1241556.29k  1955076.35k  2637167.62k  2951151.62k  2976901.80k
$ openssl speed -evp chacha20-poly1305
Doing ChaCha20-Poly1305 for 3s on 16 size blocks: 38937534 ChaCha20-Poly1305's in 2.99s
Doing ChaCha20-Poly1305 for 3s on 64 size blocks: 15568801 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 256 size blocks: 6999447 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 1024 size blocks: 2486131 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 8192 size blocks: 320694 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 16384 size blocks: 160791 ChaCha20-Poly1305's in 3.00s
version: 3.0.2
built on: Mon Feb  6 17:57:17 2023 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/openssl-oZetzz/openssl-3.0.2=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
CPUINFO: OPENSSL_armcap=0xbf
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
ChaCha20-Poly1305   208361.39k   332134.42k   597286.14k   848599.38k   875708.42k   878133.25k

@voluntas
Copy link
Author

voluntas commented Sep 20, 2023

AWS m7g.metal

OpenSSL 3.1.2

$ openssl speed -evp aes-128-gcm
Doing AES-128-GCM for 3s on 16 size blocks: 124184538 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 64 size blocks: 87322461 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 256 size blocks: 33349494 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 1024 size blocks: 15575534 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 8192 size blocks: 2356660 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 16384 size blocks: 1196780 AES-128-GCM's in 3.00s
version: 3.1.3
built on: Wed Sep 20 03:33:34 2023 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG
CPUINFO: OPENSSL_armcap=0x3ffd
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
AES-128-GCM     662317.54k  1862879.17k  2845823.49k  5316448.94k  6435252.91k  6536014.51k
$ openssl speed -evp chacha20-poly1305
Doing ChaCha20-Poly1305 for 3s on 16 size blocks: 50664277 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 64 size blocks: 20709233 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 256 size blocks: 9196311 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 1024 size blocks: 2704696 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 8192 size blocks: 458845 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 16384 size blocks: 233833 ChaCha20-Poly1305's in 3.00s
version: 3.1.3
built on: Wed Sep 20 03:33:34 2023 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG
CPUINFO: OPENSSL_armcap=0x3ffd
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
ChaCha20-Poly1305   270209.48k   441796.97k   784751.87k   923202.90k  1252952.75k  1277039.96k

OpenSSL 3.2.0-alpha1

$ openssl speed -evp aes-128-gcm
Doing AES-128-GCM ops for 3s on 16 size blocks: 123675390 AES-128-GCM ops in 3.00s
Doing AES-128-GCM ops for 3s on 64 size blocks: 87008858 AES-128-GCM ops in 3.00s
Doing AES-128-GCM ops for 3s on 256 size blocks: 33353957 AES-128-GCM ops in 3.00s
Doing AES-128-GCM ops for 3s on 1024 size blocks: 15578523 AES-128-GCM ops in 3.00s
Doing AES-128-GCM ops for 3s on 8192 size blocks: 2354509 AES-128-GCM ops in 3.00s
Doing AES-128-GCM ops for 3s on 16384 size blocks: 1195147 AES-128-GCM ops in 3.00s
version: 3.2.0-alpha1
built on: Wed Sep 20 03:37:44 2023 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG
CPUINFO: OPENSSL_armcap=0x3ffd
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
AES-128-GCM     659602.08k  1856188.97k  2846204.33k  5317469.18k  6429379.24k  6527096.15k
$ openssl speed -evp chacha20-poly1305
Doing ChaCha20-Poly1305 ops for 3s on 16 size blocks: 50485929 ChaCha20-Poly1305 ops in 3.00s
Doing ChaCha20-Poly1305 ops for 3s on 64 size blocks: 20581479 ChaCha20-Poly1305 ops in 3.00s
Doing ChaCha20-Poly1305 ops for 3s on 256 size blocks: 9212650 ChaCha20-Poly1305 ops in 3.00s
Doing ChaCha20-Poly1305 ops for 3s on 1024 size blocks: 2707622 ChaCha20-Poly1305 ops in 3.00s
Doing ChaCha20-Poly1305 ops for 3s on 8192 size blocks: 459597 ChaCha20-Poly1305 ops in 3.00s
Doing ChaCha20-Poly1305 ops for 3s on 16384 size blocks: 233765 ChaCha20-Poly1305 ops in 3.00s
version: 3.2.0-alpha1
built on: Wed Sep 20 03:37:44 2023 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG
CPUINFO: OPENSSL_armcap=0x3ffd
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
ChaCha20-Poly1305   269258.29k   439071.55k   786146.13k   924201.64k  1255006.21k  1276668.59k

@jj1bdx
Copy link

jj1bdx commented Sep 20, 2023

Mac mini 2023 (M2 Pro) 32GB unified memory 4 USB-C/Thunderbolt 4 ports

macOS 13.5.2

% sysctl -n machdep.cpu.brand_string
Apple M2 Pro
% openssl speed -evp aes-128-gcm
Doing AES-128-GCM for 3s on 16 size blocks: 211251475 AES-128-GCM's in 2.98s
Doing AES-128-GCM for 3s on 64 size blocks: 149394932 AES-128-GCM's in 2.99s
Doing AES-128-GCM for 3s on 256 size blocks: 63490958 AES-128-GCM's in 2.99s
Doing AES-128-GCM for 3s on 1024 size blocks: 20628256 AES-128-GCM's in 2.99s
Doing AES-128-GCM for 3s on 8192 size blocks: 2691295 AES-128-GCM's in 2.99s
Doing AES-128-GCM for 3s on 16384 size blocks: 1330913 AES-128-GCM's in 2.99s
version: 3.1.2
built on: Tue Aug  1 13:36:55 2023 UTC
options: bn(64,64)
compiler: clang -fPIC -arch arm64 -O3 -Wall -DL_ENDIAN -DOPENSSL_PIC -D_REENTRANT -DOPENSSL_BUILDING_OPENSSL -DNDEBUG
CPUINFO: OPENSSL_armcap=0x87d
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
AES-128-GCM    1134236.11k  3197751.05k  5436015.13k  7064660.25k  7373608.24k  7292869.09k

@voluntas
Copy link
Author

AWS m7a.metal-48xl

processor	: 191
vendor_id	: AuthenticAMD
cpu family	: 25
model		: 17
model name	: AMD EPYC 9R14 96-Core Processor
stepping	: 1
microcode	: 0xa10113e
cpu MHz		: 2600.000
cache size	: 1024 KB
physical id	: 1
siblings	: 96
core id		: 183
cpu cores	: 96
apicid		: 439
initial apicid	: 439
fpu		: yes
fpu_exception	: yes
cpuid level	: 16
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 invpcid_single hw_pstate ssbd mba perfmon_v2 ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local avx512_bf16 clzero irperf xsaveerptr rdpru wbnoinvd amd_ppin cppc arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif v_spec_ctrl avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq la57 rdpid overflow_recov succor smca fsrm flush_l1d sev sev_es
bugs		: sysret_ss_attrs spectre_v1 spectre_v2 spec_store_bypass
bogomips	: 5197.82
TLB size	: 3584 4K pages
clflush size	: 64
cache_alignment	: 64
address sizes	: 46 bits physical, 57 bits virtual
power management: ts ttp tm hwpstate cpb eff_freq_ro [13] [14]

OpenSSL 3.1.3

$ openssl speed -evp aes-128-gcm
Doing AES-128-GCM for 3s on 16 size blocks: 151215912 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 64 size blocks: 137411955 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 256 size blocks: 73322561 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 1024 size blocks: 21906527 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 8192 size blocks: 4309490 AES-128-GCM's in 3.00s
Doing AES-128-GCM for 3s on 16384 size blocks: 2229325 AES-128-GCM's in 3.00s
version: 3.1.3
built on: Wed Sep 20 03:56:27 2023 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG
CPUINFO: OPENSSL_ia32cap=0x7efa320b078bffff:0x415fdef1bf97a9
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
AES-128-GCM     806484.86k  2931455.04k  6256858.54k  7477427.88k 11767780.69k 12175086.93k
$ openssl speed -evp chacha20-poly1305
Doing ChaCha20-Poly1305 for 3s on 16 size blocks: 54734285 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 64 size blocks: 25362300 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 256 size blocks: 20783465 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 1024 size blocks: 10543214 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 8192 size blocks: 1398852 ChaCha20-Poly1305's in 3.00s
Doing ChaCha20-Poly1305 for 3s on 16384 size blocks: 697240 ChaCha20-Poly1305's in 3.00s
version: 3.1.3
built on: Wed Sep 20 03:56:27 2023 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG
CPUINFO: OPENSSL_ia32cap=0x7efa320b078bffff:0x415fdef1bf97a9
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
ChaCha20-Poly1305   291916.19k   541062.40k  1773522.35k  3598750.38k  3819798.53k  3807860.05k

OpenSSL 3.2.0-alpha1

$ openssl speed -evp aes-128-gcm
Doing AES-128-GCM ops for 3s on 16 size blocks: 152214648 AES-128-GCM ops in 3.00s
Doing AES-128-GCM ops for 3s on 64 size blocks: 138571352 AES-128-GCM ops in 3.00s
Doing AES-128-GCM ops for 3s on 256 size blocks: 73839210 AES-128-GCM ops in 3.00s
Doing AES-128-GCM ops for 3s on 1024 size blocks: 22187989 AES-128-GCM ops in 3.00s
Doing AES-128-GCM ops for 3s on 8192 size blocks: 4317718 AES-128-GCM ops in 3.00s
Doing AES-128-GCM ops for 3s on 16384 size blocks: 2242863 AES-128-GCM ops in 3.00s
version: 3.2.0-alpha1
built on: Wed Sep 20 03:57:05 2023 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG
CPUINFO: OPENSSL_ia32cap=0x7efa320b078bffff:0x415fdef1bf97a9
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
AES-128-GCM     811811.46k  2956188.84k  6300945.92k  7573500.25k 11790248.62k 12249022.46k
$ openssl speed -evp chacha20-poly1305
Doing ChaCha20-Poly1305 ops for 3s on 16 size blocks: 55039665 ChaCha20-Poly1305 ops in 3.00s
Doing ChaCha20-Poly1305 ops for 3s on 64 size blocks: 25250008 ChaCha20-Poly1305 ops in 3.00s
Doing ChaCha20-Poly1305 ops for 3s on 256 size blocks: 20756065 ChaCha20-Poly1305 ops in 3.00s
Doing ChaCha20-Poly1305 ops for 3s on 1024 size blocks: 10440946 ChaCha20-Poly1305 ops in 3.00s
Doing ChaCha20-Poly1305 ops for 3s on 8192 size blocks: 1379873 ChaCha20-Poly1305 ops in 3.00s
Doing ChaCha20-Poly1305 ops for 3s on 16384 size blocks: 694907 ChaCha20-Poly1305 ops in 3.00s
version: 3.2.0-alpha1
built on: Wed Sep 20 03:57:05 2023 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG
CPUINFO: OPENSSL_ia32cap=0x7efa320b078bffff:0x415fdef1bf97a9
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
ChaCha20-Poly1305   293544.88k   538666.84k  1771184.21k  3563842.90k  3767973.21k  3795118.76k

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment