Nicht erst durch die Geschichte mit der NSA verschlüsseln viele Anwender ihre Festplatten, was auch sehr sinnvoll ist. Dennoch halten sich die Mythen hartnäckig das die Performance darunter leidet und man daher darauf verzichten sollte oder die in Festplatten eingebaute Verschlüsselung genutzt werden sollte.
Die Implementierung in einer Festplattenfirmware kann nicht geprüft werden, es ist egal welche Performance diese liefert, wenn nicht sicher ist ob und wie verschlüsselt wurde. Hersteller versprechen gerne, dass hierbei AES verwendet wird, zum Thema ECB und Co schweigen die Datenblätter aber gerne. Ich selbst stehe technischen Daten von Herstellern stets skeptisch gegenüber ;)
Dann bleibt noch die Sache mit der schlechten Performance, ein Mythos, der wohl in die Geschichte eingehen wird. Wer ein aktuelles System hat, und nicht an der falschen Stelle gespart hat, verfügt über einen Prozessor mit der AES-NI Erweiterung. Mit dem Befehl cryptsetup benchmark kann auf jedem halbwegs aktuellen Linux selbst die Performance der Verschlüsselung, unabhängig vom Datenträger, getestet werden. Nachfolgend die Werte meines Desktop-PCs, welcher schon etwas älter ist und daher noch kein AES-NI unterstützt:
# Intel(R) Core(TM)2 Duo CPU E6750 @ 2.66GHz
# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1 359101 iterations per second
PBKDF2-sha256 206088 iterations per second
PBKDF2-sha512 134157 iterations per second
PBKDF2-ripemd160 280668 iterations per second
PBKDF2-whirlpool 138407 iterations per second
# Algorithm | Key | Encryption | Decryption
aes-cbc 128b 138,9 MiB/s 160,6 MiB/s
serpent-cbc 128b 53,6 MiB/s 196,8 MiB/s
twofish-cbc 128b 136,5 MiB/s 180,0 MiB/s
aes-cbc 256b 109,2 MiB/s 121,3 MiB/s
serpent-cbc 256b 53,6 MiB/s 197,1 MiB/s
twofish-cbc 256b 136,3 MiB/s 180,1 MiB/s
aes-xts 256b 162,4 MiB/s 160,8 MiB/s
serpent-xts 256b 176,0 MiB/s 184,5 MiB/s
twofish-xts 256b 166,5 MiB/s 166,7 MiB/s
aes-xts 512b 122,9 MiB/s 121,5 MiB/s
serpent-xts 512b 176,4 MiB/s 184,6 MiB/s
twofish-xts 512b 166,5 MiB/s 167,4 MiB/s
Die, meiner Meinung nach, einzig relevante Zeile ist die aes-xts Zeile mit 512 Bit. Dort erreicht meine CPU von 2007 (!!!) immerhin noch ungefähr 121 MiB/s, mehr als die im System verbaute Festplatte. Sehen wir uns das Ganze noch auf meinem Notebook an, dort ist ein aktueller Intel CPU verbaut:
# Intel(R) Core(TM) i7-2640M CPU @ 2.80GHz
# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1 465619 iterations per second
PBKDF2-sha256 265596 iterations per second
PBKDF2-sha512 176172 iterations per second
PBKDF2-ripemd160 385505 iterations per second
PBKDF2-whirlpool 215934 iterations per second
# Algorithm | Key | Encryption | Decryption
aes-cbc 128b 589.8 MiB/s 1961.6 MiB/s
serpent-cbc 128b 75.6 MiB/s 293.0 MiB/s
twofish-cbc 128b 168.8 MiB/s 318.4 MiB/s
aes-cbc 256b 434.8 MiB/s 1514.6 MiB/s
serpent-cbc 256b 75.7 MiB/s 293.0 MiB/s
twofish-cbc 256b 168.9 MiB/s 318.4 MiB/s
aes-xts 256b 1708.7 MiB/s 1716.9 MiB/s
serpent-xts 256b 303.3 MiB/s 288.4 MiB/s
twofish-xts 256b 313.2 MiB/s 315.4 MiB/s
aes-xts 512b 1329.2 MiB/s 1342.5 MiB/s
serpent-xts 512b 303.2 MiB/s 288.5 MiB/s
twofish-xts 512b 313.1 MiB/s 315.2 MiB/s
Hier reden wir von schlappen 1329 MiB/s, obwohl dieses System eine ordentliche SSD verbaut hat ist diese der Bremsklotz im System, und nicht wie oft behauptet die Verschlüsselung. Wer möchte, kann sich jetzt noch ein Szenario generieren, indem die Verschlüsselung trotzdem doof und langsam ist, realistisch dürfte das aber bei den wenigsten Anwendern zutreffend sein.