El hash es una parte de un contenedor con datos encriptados debido a los dos propósitos principales:
-
integrity check
: en lugar de aplicar hashing a la clave de cifrado, el contenedor cifrado se procesa para recibir un resumen. Luego, el otro lado de un canal de comunicación tendría el hash recibido datos encriptados y verificaría si los hash coinciden. Si coinciden, los datos no se verán afectados durante el proceso de transmisión y se inicia el proceso de descifrado.
-
authentity check
: ¿qué sucede si el contenedor se interceptó durante la transmisión y se sustituyeron los datos cifrados y el hash? Para asegurarse de que esto nunca suceda, se utiliza algún tipo de hashing derivado de clave como hmac
. Entonces, sin saberlo, el atacante clave no tiene forma de manipular los datos para que la otra parte no los detecte. La clave hmac
obviamente debe compartirse entre las partes por separado antes de la transmisión real de los datos cifrados.
A partir de la clave de cifrado: en el escenario AES
, la clave ya debe ser conocida por ambas partes antes de la transmisión de datos cifrados. Por lo general, se comparte utilizando una criptografía asimétrica como RSA
.
Google SSL
o TLS
para leer más acerca de cómo los criptogramas simétricos y asimétricos desempeñan su papel de esta manera en la comunicación.