# $ 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](https://medium.com/@voluntas/cpu-%E3%81%AE-aes-%E9%AB%98%E9%80%9F%E5%8C%96-21459540ed8) ## Mac mini M4 Pro (2024) ``` openssl speed -evp aes-128-gcm Doing AES-128-GCM ops for 3s on 16 size blocks: 30962356 AES-128-GCM ops in 2.98s Doing AES-128-GCM ops for 3s on 64 size blocks: 31834473 AES-128-GCM ops in 2.99s Doing AES-128-GCM ops for 3s on 256 size blocks: 29720410 AES-128-GCM ops in 2.97s Doing AES-128-GCM ops for 3s on 1024 size blocks: 17365835 AES-128-GCM ops in 2.99s Doing AES-128-GCM ops for 3s on 8192 size blocks: 3783485 AES-128-GCM ops in 3.00s Doing AES-128-GCM ops for 3s on 16384 size blocks: 1997573 AES-128-GCM ops in 3.00s version: 3.6.0-beta1 built on: Wed Sep 17 23:55:49 2025 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 166240.84k 681406.78k 2561759.25k 5947362.89k 10331436.37k 10909412.01k ``` ## 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 ```