Leí que LUKS usa AES de 256 bits con CBC de forma predeterminada. CBC, por supuesto, tiene las desventajas de que si cambia algo en el texto simple, tiene que cambiar todo lo que viene después. En el caso del cifrado del disco duro, eso suele ser de al menos unos pocos cientos de GB, a menudo varios TB. No desea volver a escribir varios TB cada vez que se cambie una palabra en un archivo de texto, obviamente.
Luego leí que LUKS resuelve este problema usando solo CBC dentro de bloques pequeños (por ejemplo, 512 Byte) que encripta independientemente uno de otro. Además de teniendo otros problemas ¿Cómo no introduce esto los problemas del BCE? ¿Es decir, preservar la estructura y ser semánticamente maleable?
¿Se elige un nuevo vector de inicialización para cada uno de esos ~ 512 bloques de bytes para que estos problemas no ocurran? Si es así: ¿Cómo se elige?
¿Por qué LUKS no usa CTR?