Mittlerweile haben viele CPUs spezielle Befehle für AES-Verschlüsselung bekommen:
% cat /proc/cpuinfo
vendor_id : GenuineIntel
cpu family : 6
model : 60
model name : Intel(R) Core(TM) i7-4720HQ CPU @ 2.60GHz
flags : … aes …
Der Kernel und zum Beispiel openssl nutzen diese, womit die Verschlüsselung
sehr, sehr schnell arbeiten kann. Dies ist vorteilhaft für die
Festplattenverschlüsselung, weil man so Datenraten erreicht, die teilweise den
Datenraten von unverschlüsselten Festplatten entsprechen. Mit cryptsetup
benchmark
lässt sich ein Vergleich verschiedenen Verschlüsselungsarten und
Parameter der Verschlüsselung durchführen:
# Die Tests sind nur annähernd genau, da sie nicht auf den Datenträger zugreifen.
PBKDF2-sha1 1365333 iterations per second for 256-bit key
PBKDF2-sha256 1560380 iterations per second for 256-bit key
PBKDF2-sha512 1230723 iterations per second for 256-bit key
PBKDF2-ripemd160 992969 iterations per second for 256-bit key
PBKDF2-whirlpool 712347 iterations per second for 256-bit key
# Algorithm | Key | Encryption | Decryption
aes-cbc 128b 690,1 MiB/s 3002,3 MiB/s
serpent-cbc 128b 88,3 MiB/s 593,2 MiB/s
twofish-cbc 128b 189,7 MiB/s 371,1 MiB/s
aes-cbc 256b 509,6 MiB/s 2287,0 MiB/s
serpent-cbc 256b 92,9 MiB/s 590,3 MiB/s
twofish-cbc 256b 192,9 MiB/s 374,9 MiB/s
aes-xts 256b 2605,5 MiB/s 2590,3 MiB/s
serpent-xts 256b 591,4 MiB/s 567,3 MiB/s
twofish-xts 256b 364,8 MiB/s 369,2 MiB/s
aes-xts 512b 2004,1 MiB/s 2012,9 MiB/s
serpent-xts 512b 591,8 MiB/s 566,9 MiB/s
twofish-xts 512b 356,0 MiB/s 368,7 MiB/s
Wenn dabei – wie bei aes-xts auf meinem Asus Zenbook – für einen Algorithmus Datenraten über 1 GiB/s erscheinen, sollte man Festplattenverschlüsselung nutzen.
Auf meinem alten iBook G4 war zum Beispiel twofish schneller als AES.