Table des matières

Crypto pour les briques

Pour rappel nous utilisons les modèles suivants,

Notamment pour la philosophie Open Source Hardware de leur gamme OLinuXino.

Les tests à faire

Les commandes utilisées depuis le matériel testé sont

openssl speed -evp aes-128-gcm
openssl speed -evp aes-256-gcm
openssl speed -evp chacha20-poly1305

Résultats pour aes-128-gcm

Lime 1

Debian GNU/Linux 9.11 (stretch)

$ openssl speed -evp aes-128-gcm
Doing aes-128-gcm for 3s on 16 size blocks: 2290306 aes-128-gcm's in 2.98s
Doing aes-128-gcm for 3s on 64 size blocks: 712597 aes-128-gcm's in 2.93s
Doing aes-128-gcm for 3s on 256 size blocks: 184705 aes-128-gcm's in 2.83s
Doing aes-128-gcm for 3s on 1024 size blocks: 51728 aes-128-gcm's in 2.97s
Doing aes-128-gcm for 3s on 8192 size blocks: 6590 aes-128-gcm's in 2.98s
Doing aes-128-gcm for 3s on 16384 size blocks: 3296 aes-128-gcm's in 2.98s
OpenSSL 1.1.0l  10 Sep 2019
built on: reproducible build, date unspecified
options:bn(64,32) rc4(char) des(long) aes(partial) blowfish(ptr) 
compiler: gcc -DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/usr/lib/ssl\"" -DENGINESDIR="\"/usr/lib/arm-linux-gnueabihf/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      12296.94k    15565.26k    16708.30k    17834.84k    18115.87k    18121.36k

Lime 2

Debian GNU/Linux 10 (buster)

$ openssl speed -evp aes-128-gcm
Doing aes-128-gcm for 3s on 16 size blocks: 2279808 aes-128-gcm's in 2.95s
Doing aes-128-gcm for 3s on 64 size blocks: 726370 aes-128-gcm's in 2.98s
Doing aes-128-gcm for 3s on 256 size blocks: 193865 aes-128-gcm's in 2.98s
Doing aes-128-gcm for 3s on 1024 size blocks: 51858 aes-128-gcm's in 2.99s
Doing aes-128-gcm for 3s on 8192 size blocks: 6558 aes-128-gcm's in 2.98s
Doing aes-128-gcm for 3s on 16384 size blocks: 3283 aes-128-gcm's in 2.98s
OpenSSL 1.1.1d  10 Sep 2019
built on: Mon Apr 20 20:23:01 2020 UTC
options:bn(64,32) rc4(char) des(long) aes(partial) blowfish(ptr) 
compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -fdebug-prefix-map=/build/openssl-8NbErV/openssl-1.1.1d=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DAES_ASM -DBSAES_ASM -DGHASH_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      12365.06k    15599.89k    16654.17k    17760.06k    18027.90k    18049.89k

Résultats pour aes-256-gcm

Lime 1

Debian GNU/Linux 9.11 (stretch)

$ openssl speed -evp aes-256-gcm
Doing aes-256-gcm for 3s on 16 size blocks: 1928944 aes-256-gcm's in 2.94s
Doing aes-256-gcm for 3s on 64 size blocks: 596794 aes-256-gcm's in 2.98s
Doing aes-256-gcm for 3s on 256 size blocks: 156223 aes-256-gcm's in 2.97s
Doing aes-256-gcm for 3s on 1024 size blocks: 41680 aes-256-gcm's in 2.98s
Doing aes-256-gcm for 3s on 8192 size blocks: 5270 aes-256-gcm's in 2.97s
Doing aes-256-gcm for 3s on 16384 size blocks: 2635 aes-256-gcm's in 2.97s
OpenSSL 1.1.0l  10 Sep 2019
built on: reproducible build, date unspecified
options:bn(64,32) rc4(char) des(long) aes(partial) blowfish(ptr) 
compiler: gcc -DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/usr/lib/ssl\"" -DENGINESDIR="\"/usr/lib/arm-linux-gnueabihf/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-256-gcm      10497.65k    12817.05k    13465.69k    14322.26k    14535.97k    14535.97k

Lime 2

Debian GNU/Linux 10 (buster)

$ openssl speed -evp aes-256-gcm
Doing aes-256-gcm for 3s on 16 size blocks: 1941040 aes-256-gcm's in 2.95s
Doing aes-256-gcm for 3s on 64 size blocks: 599486 aes-256-gcm's in 2.98s
Doing aes-256-gcm for 3s on 256 size blocks: 153929 aes-256-gcm's in 2.96s
Doing aes-256-gcm for 3s on 1024 size blocks: 41294 aes-256-gcm's in 2.96s
Doing aes-256-gcm for 3s on 8192 size blocks: 5292 aes-256-gcm's in 2.98s
Doing aes-256-gcm for 3s on 16384 size blocks: 2635 aes-256-gcm's in 2.98s
OpenSSL 1.1.1d  10 Sep 2019
built on: Mon Apr 20 20:23:01 2020 UTC
options:bn(64,32) rc4(char) des(long) aes(partial) blowfish(ptr) 
compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -fdebug-prefix-map=/build/openssl-8NbErV/openssl-1.1.1d=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DAES_ASM -DBSAES_ASM -DGHASH_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-256-gcm      10527.67k    12874.87k    13312.78k    14285.49k    14547.67k    14487.19k

Résultats pour chacha20-poly1305

Lime 1

Debian GNU/Linux 9.11 (stretch)

$ openssl speed -evp chacha20-poly1305
Doing chacha20-poly1305 for 3s on 16 size blocks: 3445568 chacha20-poly1305's in 2.99s
Doing chacha20-poly1305 for 3s on 64 size blocks: 1568887 chacha20-poly1305's in 2.99s
Doing chacha20-poly1305 for 3s on 256 size blocks: 599435 chacha20-poly1305's in 2.98s
Doing chacha20-poly1305 for 3s on 1024 size blocks: 159412 chacha20-poly1305's in 2.95s
Doing chacha20-poly1305 for 3s on 8192 size blocks: 20595 chacha20-poly1305's in 2.97s
Doing chacha20-poly1305 for 3s on 16384 size blocks: 10179 chacha20-poly1305's in 2.95s
OpenSSL 1.1.0l  10 Sep 2019
built on: reproducible build, date unspecified
options:bn(64,32) rc4(char) des(long) aes(partial) blowfish(ptr) 
compiler: gcc -DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/usr/lib/ssl\"" -DENGINESDIR="\"/usr/lib/arm-linux-gnueabihf/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
chacha20-poly1305    18437.82k    33581.53k    51495.09k    55334.88k    56806.14k    56533.13k 

Lime 2

Debian GNU/Linux 10 (buster)

$ openssl speed -evp chacha20-poly1305
Doing chacha20-poly1305 for 3s on 16 size blocks: 3251867 chacha20-poly1305's in 2.98s
Doing chacha20-poly1305 for 3s on 64 size blocks: 1552163 chacha20-poly1305's in 2.99s
Doing chacha20-poly1305 for 3s on 256 size blocks: 595667 chacha20-poly1305's in 2.99s
Doing chacha20-poly1305 for 3s on 1024 size blocks: 161305 chacha20-poly1305's in 2.98s
Doing chacha20-poly1305 for 3s on 8192 size blocks: 20588 chacha20-poly1305's in 2.98s
Doing chacha20-poly1305 for 3s on 16384 size blocks: 10368 chacha20-poly1305's in 2.99s
OpenSSL 1.1.1d  10 Sep 2019
built on: Mon Apr 20 20:23:01 2020 UTC
options:bn(64,32) rc4(char) des(long) aes(partial) blowfish(ptr) 
compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -fdebug-prefix-map=/build/openssl-8NbErV/openssl-1.1.1d=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DAES_ASM -DBSAES_ASM -DGHASH_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
chacha20-poly1305    17459.69k    33223.56k    51000.25k    55428.30k    56596.27k    56812.48k