小樱 发表于 2020/6/27 00:37

linux下测试不同openssl版本的加密方式aes速度,多线程核心指定硬件指令集解密

单线程
openssl speed aes-256-cbc
Doing aes-256 cbc for 3s on 16 size blocks: 11935570 aes-256 cbc's in 2.96s
Doing aes-256 cbc for 3s on 64 size blocks: 3186742 aes-256 cbc's in 2.96s
Doing aes-256 cbc for 3s on 256 size blocks: 809119 aes-256 cbc's in 2.98s
Doing aes-256 cbc for 3s on 1024 size blocks: 484507 aes-256 cbc's in 2.98s
Doing aes-256 cbc for 3s on 8192 size blocks: 60305 aes-256 cbc's in 2.95s
OpenSSL 1.0.1e-fips 11 Feb 2013
built on: Wed Aug 14 16:32:19 UTC 2019
options:bn(64,64) md2(int) rc4(16x,int) des(idx,cisc,16,int) aes(partial) idea(int) blowfish(idx)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DKRB5_MIT -m64 -DL_ENDIAN -DTERMIO -Wall -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -Wa,--noexecstack -DPURIFY -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
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes   64 bytes    256 bytes   1024 bytes   8192 bytes
aes-256 cbc      64516.59k    68902.53k    69508.21k   166488.31k   167463.92k
4线程
openssl speed aes-256-cbc -multi 4

使用cpu硬件aes指令集
openssl speed -evp aes-256-cbc
Doing aes-256-cbc for 3s on 16 size blocks: 64623281 aes-256-cbc's in 2.98s
Doing aes-256-cbc for 3s on 64 size blocks: 17231488 aes-256-cbc's in 2.94s
Doing aes-256-cbc for 3s on 256 size blocks: 4414000 aes-256-cbc's in 2.97s
Doing aes-256-cbc for 3s on 1024 size blocks: 1104748 aes-256-cbc's in 2.94s
Doing aes-256-cbc for 3s on 8192 size blocks: 137164 aes-256-cbc's in 2.92s
OpenSSL 1.0.1e-fips 11 Feb 2013
built on: Wed Aug 14 16:32:19 UTC 2019
options:bn(64,64) md2(int) rc4(16x,int) des(idx,cisc,16,int) aes(partial) idea(int) blowfish(idx)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DKRB5_MIT -m64 -DL_ENDIAN -DTERMIO -Wall -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -Wa,--noexecstack -DPURIFY -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
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes   64 bytes    256 bytes   1024 bytes   8192 bytes
aes-256-cbc   346970.64k   375107.22k   380465.99k   384782.98k   384810.78k

当前主流的TLS_AES_256_GCM_SHA384,如果cpu没有aes指令集,速率可能只有193360.67k
openssl speed -evp aes-256-gcm
Doing aes-256-gcm for 3s on 16 size blocks: 54963724 aes-256-gcm's in 2.98s
Doing aes-256-gcm for 3s on 64 size blocks: 38559247 aes-256-gcm's in 2.95s
Doing aes-256-gcm for 3s on 256 size blocks: 22290451 aes-256-gcm's in 3.00s
Doing aes-256-gcm for 3s on 1024 size blocks: 7034762 aes-256-gcm's in 2.96s
Doing aes-256-gcm for 3s on 8192 size blocks: 932055 aes-256-gcm's in 2.92s
Doing aes-256-gcm for 3s on 16384 size blocks: 472064 aes-256-gcm's in 2.99s
OpenSSL 1.1.1k25 Mar 2021
built on: Fri Apr9 00:34:13 2021 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 -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DZLIB -DNDEBUG
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes   64 bytes    256 bytes   1024 bytes   8192 bytes16384 bytes
aes-256-gcm   295107.24k   836539.60k1902118.49k2433647.39k2614861.15k2586721.26k

cpu如果没有aes指令集导致aes性能很低,可以考虑TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
openssl speed -evp chacha20-poly1305
Doing chacha20-poly1305 for 3s on 16 size blocks: 40552725 chacha20-poly1305's in 2.95s
Doing chacha20-poly1305 for 3s on 64 size blocks: 20223493 chacha20-poly1305's in 2.97s
Doing chacha20-poly1305 for 3s on 256 size blocks: 8834053 chacha20-poly1305's in 2.97s
Doing chacha20-poly1305 for 3s on 1024 size blocks: 2462978 chacha20-poly1305's in 3.00s
Doing chacha20-poly1305 for 3s on 8192 size blocks: 317997 chacha20-poly1305's in 2.99s
Doing chacha20-poly1305 for 3s on 16384 size blocks: 159528 chacha20-poly1305's in 2.99s
OpenSSL 1.1.1k25 Mar 2021
built on: Fri Apr9 00:34:13 2021 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 -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DZLIB -DNDEBUG
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes   64 bytes    256 bytes   1024 bytes   8192 bytes16384 bytes
chacha20-poly1305   219946.98k   435792.44k   761453.73k   840696.49k   871247.97k   874149.42k

同时测试多个算法比对,主流证书算法的sign速度,ecc证书加密速度是rsa的30倍
openssl speed rsa2048 ecdsap256
Doing 2048 bits private rsa's for 10s: 17557 2048 bits private RSA's in 7.96s
Doing 2048 bits public rsa's for 10s: 416682 2048 bits public RSA's in 8.44s
Doing 256 bits sign ecdsa's for 10s: 438985 256 bits ECDSA signs in 8.21s
Doing 256 bits verify ecdsa's for 10s: 138183 256 bits ECDSA verify in 8.17s
OpenSSL 1.1.1k25 Mar 2021
built on: Mon May3 14:08:40 2021 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 -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DZLIB -DNDEBUG
                  sign    verify    sign/s verify/s
rsa 2048 bits 0.000453s 0.000020s   2205.749369.9
                              sign    verify    sign/s verify/s
256 bits ecdsa (nistp256)   0.0000s   0.0001s53469.516913.5

不可名 发表于 2020/6/27 01:16

{:3045:}
页: [1]
查看完整版本: linux下测试不同openssl版本的加密方式aes速度,多线程核心指定硬件指令集解密