Linux bringt eine eine ganze Reihe von Verschlüsselungsalgorithmen mit, die durch unterschiedliche Kombinationsmöglichkeiten, Parameter und Implementierungen zu vielen möglichen Varianten führen. Implementiert werden die Algorithmen durch zentrale Bibliotheken wie libgcrypt (cryptsetup, GPG, GnuTLS, …), libcrypto (OpenSSL, …) oder libnss (Mozilla, …). Nur, wer die Wahl hat, hat die Qual. Welche Verschlüsselungsalgorithmen sollte man denn für typische Aufgaben wie Festplattenverschlüsselung, Verschlüsselung einzelner Dateien und für Server mit SSL-Verschlüsselung wählen?
Oft greift man auf bekannte Algorithmen wie AES zurück. AES gilt als sicher und performant zugleich.
Wer möchte, kann seine Wahl aber auch mit Benchmarks auf der eigenen Hardware objektivieren. Einige Verschlüsselungstools bringen eingebaute Benchmarks mit, die hier kurz vorgestellt werden sollen.
Cryptsetup-Benchmark
Für die Festplattenverschlüsselung wird i.a. das Tool cryptsetup eingesetzt. Ab Version 1.6.0 bringt cryptsetup eine Benchmark-Option mit:
cryptsetup benchmark
[...]
# Algorithm | Key | Encryption | Decryption
aes-cbc 128b 157,2 MiB/s 182,1 MiB/s
serpent-cbc 128b 59,4 MiB/s 257,0 MiB/s
[...]
Für die Bewertung, welcher Algorithmus für die Festplattenverschlüsselung der schnellste ist, sollte man die Schreibgeschwindigkeit (Encryption) und Lesegeschwindigkeit (Decryption) gewichten.
SSL-Benchmarks
Auch OpenSSL und GnuTLS bringen ein integrierte Benchmark-Tools mit:
openssl speed
Doing mdc2 for 3s on 16 size blocks: 2227100 mdc2's in 3.00s
Doing mdc2 for 3s on 64 size blocks: 595953 mdc2's in 3.00s
[...]
GnuTLS bringt gleich drei Optionen (--benchmark-ciphers, --benchmark-soft-ciphers und --benchmark-tls) mit:
gnutls-cli --benchmark-tls
Testing throughput in cipher/MAC combinations:
Testing DH_ANON_ARCFOUR_MD5 with 1024 packet size: Processed 144.70 MB in 2.00 secs: 72.35 MB/sec
Testing DH_ANON_ARCFOUR_MD5 with 4096 packet size: Processed 176.91 MB in 2.00 secs: 88.45 MB/sec
[...]