Je veux crypter une partie de mon disque dur. Mais avant cela, je voulais comparer les différents algorithmes disponibles en me demandant si je devais choisir aes-xts-256
ou aes-xts-512
.
Remarque: je n'ai pas d' aes
accélération matérielle. Les repères ont été répétés plusieurs fois sans grand changement. Je voudrais dire clairement que ces benchmarks ne sont valables que sur mon ordinateur (Debian, duo core 2). Il ne s'agit pas d'une comparaison LUKS-TrueCrypt complète.
TL; DR: passez à la partie 4
1- Cryptsetup
J'ai donc téléchargé cryptsetup v1.6.0
pour utiliser la nouvelle cryptsetup benchmark
commande.
Commander
$cryptsetup benchmark
Résultats
# 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
Pensées
Encbc
mode,serpent
est étonnamment rapide à décrypter!Enxts
mode,serpent
c'est clairement le plus rapide.- La taille de la clé semble n'avoir presque aucun effet notable sur .
serpent
twofish
aes
ne se comporte pas bien lorsque la taille de clé est augmentée.
Mises à jour hors VM
2- TrueCrypt
J'ai été vraiment surpris car il aes
est connu pour être le plus rapide (même sans accélération matérielle). J'ai donc téléchargé TrueCrypt
pour revérifier ces résultats. TrueCrypt
utilise le xts
mode par défaut donc je suppose qu'il l'utilise également dans ses benchmarks.
Méthode
- Outils> Benchmark
- Choisissez n'importe quelle taille de tampon (ici, 5 Mo)
- Cliquez sur "Benchmark"
Résultats
# Algorithm | Encryption | Decryption
AES 106 MB/s 107 MB/s
Twofish 78 MB/s 76 MB/s
Serpent 41 MB/s 42 MB/s
Pensées
Ces résultats correspondent beaucoup plus à ce qui est attendu mais ne correspondent pas bien aux cryptsetup
résultats de.
3- Réflexions générales
cryptsetup
fourni de meilleures performances générales queTrueCrypt
dans ce cas. Cela pourrait s'expliquer de la manière suivante:cryptsetup
a été compilé sur mon système avec des routines d'optimisation du compilateur alors qu'ilTrueCrypt
était déjà compilé de manière générique;- L'AFAIK
cryptsetup
utilise des modules de chiffrement dans l'TrueCrypt
espace noyau tout en utilisant des routines de chiffrement dans l' espace utilisateur.
- Cependant, je ne peux pas expliquer pourquoi
serpent-xts-512
semble être la voie à suivrecryptsetup
alors queaes-xts
le seul chiffre vaut la peine d'être utilisé.
4- Question
cryptsetup
et TrueCrypt
donner des résultats qualitatifs (vitesse de chiffrement relative) et quantitatifs (vitesse réelle de chaque chiffrement) complètement différents dans des points de repère en RAM.
- Est-ce quelque chose que vous avez déjà remarqué?
- Dois-je faire confiance
cryptsetup
et utiliser leserpent-xts-512
chiffrement pour la vitesse?
serpent
ce qui est devenu beaucoup plus lent. Le problème avec le serpent est donc résolu.Twofish
est encore plus rapide queaes
danscryptsetup
et plus lenteTrueCrypt
. Et je n'ai pas du tout d'aes
accélération matérielle ... ce n'est pas une chose VM ...cryptsetup
sera plus rapide queTrueCrypt
les mêmes algorithmes de chiffrement étant donné qu'ilTrueCrypt
s'exécute sousFUSE
(système de fichiers de l'espace utilisateur), alors qu'ilcryptsetup
utilise LUKS, qui est un module du noyau. J'ai mentionné la machine virtuelle comme si vous exécutiez d'autres programmes sous votre système d'exploitation hôte (même des tâches d'arrière-plan), cela affecterait les résultats de vos tests de performances.Le noyau Linux dispose de modules Serpent optimisés SSE2 et AVX pour accélérer les charges de travail parallélisables (telles que le décryptage CBC et XTS enc & dec).
Les performances de Serpent dans le décryptage CBC et XTS avec ces modules chargés devraient être presque au même niveau que les logiciels AES et Twofish (légèrement plus rapides ou plus lents selon votre modèle de processeur exact).
la source
Notez également que le code SSE2 exécuté par le noyau invité dans certaines machines virtuelles est beaucoup plus lent que sur le noyau hôte. J'ai vécu cela avec Oracle VirtualBox. Ainsi, les résultats de Serpent sur VM ne sont pas nécessairement en corrélation avec les performances attendues sur l'hôte réel.
la source