# Crypto pour les briques Pour rappel nous utilisons les modèles suivants, * [[https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXino-LIME/open-source-hardware|Olimex Lime 1]] * [[https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXino-LIME2/open-source-hardware|Olimex Lime 2]] Notamment pour la philosophie [[https://www.olimex.com/Products/OLinuXino/open-source-hardware|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 ```