Quiero encriptar una parte de mi HDD. Pero antes de eso quería comparar los diferentes algoritmos disponibles preguntándome si debería elegir aes-xts-256o aes-xts-512.
Nota: no tengo aesaceleración de hardware. Los puntos de referencia se repitieron varias veces sin muchos cambios. Me gustaría aclarar que estos puntos de referencia solo son válidos en mi computadora (Debian, core 2 duo). Esto no pretende ser una comparación completa de LUKS-TrueCrypt.
TL; DR: vaya a la parte 4
1- Cryptsetup
Así que lo descargué cryptsetup v1.6.0para hacer uso del nuevo cryptsetup benchmarkcomando.
Mando
$cryptsetup benchmark
Resultados
# 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
Pensamientos
Encbcmodo, ¡serpentes sorprendentemente rápido para descifrar!Enxtsmodo,serpentes claramente el más rápido.- El tamaño de la clave parece no tener casi ningún efecto notable .
serpenttwofish aesno se comporta bien cuando se aumenta el tamaño de la clave.
Actualizaciones fuera de VM
2- TrueCrypt
Realmente me sorprendió, ya que aesse sabe que es el más rápido (incluso sin aceleración de hardware). Así que lo descargué TrueCryptpara verificar estos resultados. TrueCryptusa el xtsmodo por defecto, así que supongo que también lo usa en sus puntos de referencia.
Método
- Herramientas> Benchmark
- Elija cualquier tamaño de búfer (aquí, 5 MB)
- Haga clic en "Benchmark"
Resultados
# Algorithm | Encryption | Decryption
AES 106 MB/s 107 MB/s
Twofish 78 MB/s 76 MB/s
Serpent 41 MB/s 42 MB/s
Pensamientos
Estos resultados corresponden mucho más a lo esperado, pero no coinciden bien con cryptsetuplos resultados.
3- pensamientos generales
cryptsetupproporcionó un mejor rendimiento general queTrueCrypten este caso. Esto podría explicarse de la siguiente manera:cryptsetupfue compilado en mi sistema con rutinas de optimización del compilador mientrasTrueCryptya estaba compilado de manera genérica;- AFAIK
cryptsetupusa módulos criptográficos kernelspace mientrasTrueCryptusa rutinas criptográficas de espacio de usuario.
- Sin embargo, no puedo explicar por qué
serpent-xts-512parece ser el camino a seguir,cryptsetupmientras queaes-xtsel único cifrado que vale la pena usar.
4- pregunta
cryptsetupy TrueCryptproporciona resultados cualitativos (velocidad de cifrado relativa) y cuantitativos completamente diferentes (velocidad real de cada cifrado) en puntos de referencia en RAM.
- ¿Es algo que ya has notado?
- ¿Debo confiar
cryptsetupy usar elserpent-xts-512cifrado para la velocidad?

serpentque se hizo mucho más lento. Entonces el problema con la serpiente está resuelto.Twofishsigue siendo más rápido queaesadentrocryptsetupy más lentoTrueCrypt. Y no tengoaesaceleración de hardware en absoluto ... esto no es una cosa VM ...cryptsetupserá más rápido queTrueCryptlos mismos algoritmos de cifrado ya que seTrueCryptejecuta bajoFUSE(sistema de archivos de espacio de usuario), mientras quecryptsetupusa LUKS, que es un módulo de kernel. Mencioné la máquina virtual como si estuviera ejecutando cualquier otro programa en su sistema operativo host (incluso tareas en segundo plano), afectaría los resultados de sus puntos de referencia.El kernel de Linux tiene módulos Serpent optimizados para SSE2 y AVX para acelerar las cargas de trabajo en paralelo (como el descifrado CBC y XTS enc & dec).
El rendimiento de Serpent en el descifrado CBC y XTS con esos módulos cargados debe estar casi al mismo nivel que el software AES y Twofish (un poco más rápido o más lento dependiendo de su modelo de CPU exacto).
fuente
También tenga en cuenta que el código SSE2 ejecutado por el kernel invitado en algunas máquinas virtuales es mucho más lento que en el kernel host. He experimentado esto con Oracle VirtualBox. Por lo tanto, los resultados para Serpent on VM pueden no necesariamente correlacionarse con el rendimiento esperado en el host real.
fuente