El PIM de VeraCrypt no es necesario si usas una contraseña lo suficientemente segura.
Qué es el PIM de VeraCrypt
En términos sencillos, el PIM de VeraCrypt define la cantidad de veces que tu contraseña se hasheado antes de ser usada para descifrar el disco.
Para ser precisos, cada volumen de VeraCrypt se cifra mediante una clave maestra aleatoria. Su contraseña se utiliza como base para descifrar la clave maestra: lo que en realidad descifra la clave maestra es el resultado de una función de derivación de claves que toma su contraseña como entrada. Esta función de derivación de clave repite su cálculo de hashing interno varias veces según el PIM.
En el manual de VeraCrypt :
Cuando se especifica un valor PIM, se calcula el número de iteraciones
como sigue:
- Para el cifrado del sistema que no usa SHA-512 o Whirlpool: Iteraciones = PIM x 2048
- Para el cifrado del sistema que utiliza SHA-512 o Whirlpool, el cifrado no del sistema y los contenedores de archivos: Iteraciones = 15000 + (PIM x 1000)
Implicaciones del PIM de VeraCrypt
El PIM de VeraCrypt aumenta tanto el tiempo que tarda en descifrar el disco como el tiempo que tarda un atacante en forzar su contraseña. Cuanto más fuerte sea su contraseña, más tiempo tomará un ataque de fuerza bruta exitoso, más bajo será el PIM para hacer que el ataque sea impráctico o antieconómico. Por lo tanto, si usa una contraseña suficientemente segura, el PIM de VeraCrypt es superfluo.
El uso del PIM predeterminado de VeraCrypt aumenta el tiempo de ataque y el tiempo de descifrado proporcionalmente, mientras que el uso de un PIM personalizado aumenta el tiempo de ataque más que el tiempo de descifrado, ya que el atacante tendría que forzar la contraseña y el PIM. El aumento de tiempo del ataque en el último caso es 1 + 2 + 3 + ... + PIM = PIM (PIM + 1) / 2 correspondiente a un cuadrado.
Suponiendo que su contraseña solo usa letras y números en inglés, aumentar el PIM en un factor de 1000 (por ejemplo, 500 - > 500000) corresponde aproximadamente al aumento de la contraseña en solo 4 caracteres (36 ^ 4 ~ (1000 * 1001) / 2). En mi opinión, es contraproducente porque necesita memorizar aproximadamente la misma cantidad de caracteres con la molestia añadida de un mayor tiempo de descifrado.
Todo lo anterior no está relacionado con AES, que es una cifra simétrica utilizada para descifrar el volumen VeraCrypt después de derivar una clave maestra aleatoria.