Ich möchte einen Teil meiner Festplatte verschlüsseln. Aber vorher wollte ich die verschiedenen verfügbaren Algorithmen vergleichen und mich fragen, ob ich aes-xts-256
oder wählen sollte aes-xts-512
.
Hinweis: Ich habe keine aes
Hardwarebeschleunigung. Die Benchmarks wurden ohne große Änderung mehrmals wiederholt. Ich möchte klarstellen, dass diese Benchmarks nur auf meinem Computer gültig sind (Debian, Core 2 Duo). Dies ist kein vollständiger LUKS-TrueCrypt-Vergleich.
TL; DR: Weiter mit Teil 4
1- Cryptsetup
Also habe ich heruntergeladen cryptsetup v1.6.0
, um den neuen cryptsetup benchmark
Befehl zu nutzen.
Befehl
$cryptsetup benchmark
Ergebnisse
# Algorithm | Key | Encryption | Decryption
aes-cbc 128b 128,2 MiB/s 157,2 MiB/s
serpent-cbc 128b 49,6 MiB/s 57,7 MiB/s
twofish-cbc 128b 138,0 MiB/s 183,8 MiB/s
aes-cbc 256b 97,5 MiB/s 121,9 MiB/s
serpent-cbc 256b 51,8 MiB/s 57,7 MiB/s
twofish-cbc 256b 139,0 MiB/s 183,8 MiB/s
aes-xts 256b 156,4 MiB/s 157,8 MiB/s
serpent-xts 256b 55,7 MiB/s 58,7 MiB/s
twofish-xts 256b 161,5 MiB/s 165,9 MiB/s
aes-xts 512b 120,5 MiB/s 120,9 MiB/s
serpent-xts 512b 55,7 MiB/s 58,5 MiB/s
twofish-xts 512b 161,5 MiB/s 165,3 MiB/s
Gedanken
Imcbc
Modusserpent
ist überraschend schnell beim Entschlüsseln!Imxts
Modusserpent
ist eindeutig der schnellste.- Die Schlüsselgröße scheint fast keinen merklichen Einfluss darauf zu haben .
serpent
twofish
aes
verhält sich nicht gut, wenn die Schlüsselgröße erhöht wird.
Updates von VM
2- TrueCrypt
Ich war wirklich überrascht, da aes
bekannt ist, dass es das schnellste ist (auch ohne Hardwarebeschleunigung). Also habe ich heruntergeladen TrueCrypt
, um diese Ergebnisse zu überprüfen. TrueCrypt
Verwendet den xts
Modus standardmäßig, daher gehe ich davon aus, dass er auch in seinen Benchmarks verwendet wird.
Methode
- Tools> Benchmark
- Wählen Sie eine beliebige Puffergröße (hier 5 MB)
- Klicken Sie auf "Benchmark"
Ergebnisse
# Algorithm | Encryption | Decryption
AES 106 MB/s 107 MB/s
Twofish 78 MB/s 76 MB/s
Serpent 41 MB/s 42 MB/s
Gedanken
Diese Ergebnisse entsprechen viel mehr den Erwartungen, stimmen jedoch nicht gut mit cryptsetup
den Ergebnissen überein .
3- Allgemeine Gedanken
cryptsetup
lieferte eine bessere allgemeine Leistung alsTrueCrypt
in diesem Fall. Dies könnte folgendermaßen erklärt werden:cryptsetup
wurde auf meinem System mit Compiler-OptimierungsroutinenTrueCrypt
kompiliert, während es bereits generisch kompiliert wurde;- AFAIK
cryptsetup
verwendet Kernelspace-Kryptomodule, während Benutzerraum-Kryptoroutinen verwendet werdenTrueCrypt
.
- Ich kann jedoch nicht erklären, warum
serpent-xts-512
dies der richtige Weg zu sein scheint,cryptsetup
obwohl esaes-xts
die einzige Chiffre ist, die es wert ist, verwendet zu werden.
4- Frage
cryptsetup
und TrueCrypt
geben völlig unterschiedliche qualitative (relative Verschlüsselungsgeschwindigkeit) und quantitative (tatsächliche Geschwindigkeit jeder Verschlüsselung) Ergebnisse in In-RAM-Benchmarks.
- Ist dir das schon aufgefallen?
- Sollte ich der Geschwindigkeit vertrauen
cryptsetup
und sie verwendenserpent-xts-512
?
serpent
die viel langsamer wurden. Damit ist das Problem mit der Schlange gelöst.Twofish
ist immer noch schneller alsaes
incryptsetup
und langsamer inTrueCrypt
. Und ich habe überhaupt keineaes
Hardwarebeschleunigung ... das ist keine VM-Sache ...cryptsetup
ist schneller alsTrueCrypt
bei Verwendung derselben Verschlüsselungsalgorithmen, da esTrueCrypt
unterFUSE
(User-Space-Dateisystem) ausgeführt wird, währendcryptsetup
LUKS verwendet wird, bei dem es sich um ein Kernelmodul handelt. Ich erwähnte die virtuelle Maschine, als ob Sie andere Programme unter Ihrem Host-Betriebssystem ausführen würden (sogar Hintergrundaufgaben), dies würde die Ergebnisse Ihrer Benchmarks beeinflussen.Der Linux-Kernel verfügt über SSE2- und AVX-optimierte Serpent-Module, um parallelisierbare Workloads (wie CBC-Entschlüsselung und XTS enc & dec) zu beschleunigen.
Die Leistung von Serpent bei der CBC-Entschlüsselung und bei XTS mit diesen geladenen Modulen sollte nahezu auf dem Niveau von Software AES und Twofish liegen (je nach genauem CPU-Modell etwas schneller oder langsamer).
quelle
Beachten Sie auch, dass der vom Gastkernel in einigen VMs ausgeführte SSE2-Code viel langsamer ist als auf dem Hostkernel. Ich habe dies mit Oracle VirtualBox erlebt. Daher korrelieren die Ergebnisse für Serpent auf VM möglicherweise nicht unbedingt mit der erwarteten Leistung auf dem tatsächlichen Host.
quelle