Depende del sistema de cifrado y su implementación: no hay garantía de que la computadora pueda indicar el descifrado correcto de uno incorrecto.
Sin embargo, la mayoría de los sistemas diseñados para el cifrado de datos estáticos (es decir, el cifrado de archivos o correos electrónicos, en lugar de solo cifrar temporalmente los datos para transferirlos a través de una red no confiable) incluyen alguna forma de detectar cuando un error es incorrecto. Se ha dado la clave. El mecanismo exacto varía, pero algunos de los más utilizados incluyen:
-
Comprueba la clave antes que intenta descifrar e incluye un hash criptográfico de como parte de los datos encriptados. (Para los mensajes encriptados usando criptografía de clave pública , uno podría simplemente incluir la clave pública, o un hash de ella, en el mensaje cifrado.)
-
Verifique la clave al comienzo del descifrado, añadiendo un encabezado conocido a los datos de texto simple (esto podría ser tan simple como un bloque de bytes nulos) y verificando que se descifre correctamente.
-
Verifique la clave, y la integridad de los datos, incluyendo un código de autenticación del mensaje en el cifrado datos (o utilizando un modo de cifrado autenticado ). El propósito principal de un MAC es proteger los datos cifrados contra la manipulación, pero como efecto secundario, también sirve para detectar descifrados incorrectos. Sin embargo, el MAC no se puede verificar sin leer y procesar primero todos los datos, por lo que, por motivos de facilidad de uso, aún puede ser útil combinar esto con uno de los otros métodos de verificación clave descritos anteriormente.
En cualquier caso, un formato de cifrado bien diseñado permitirá que se notifique rápidamente al usuario, si intentan descifrarlo con la clave incorrecta, pero no también , ya que eso solo lo haría Más fácil de descifrar la clave por la fuerza bruta sin hacer nada para ayudar a los usuarios legítimos. La forma recomendada de lograr esto, para el cifrado simétrico con una clave derivada de una frase de contraseña, es utilizar una función de derivación de claves ( como PBKDF2 o scrypt ) con un parámetro ajustable que controla la cantidad de trabajo necesario para calcular la clave de la frase de contraseña. Esta clave derivada (que debería ser lo suficientemente larga, por ejemplo, de 128 bits o más, para no ser inteplegable por fuerza bruta) se puede verificar con uno de los métodos descritos anteriormente.