Como sabes, hasta ahora hemos visto como podemos conseguir confidencialidad, autenticación y no repudio. Aún queda un paso más que lograr: la integridad del mensaje. Con integridad nos referimos a la capacidad de asegurar que el mensaje no sea alterado durante su transmisión.
Esto es posible mediante las funciones hash, también llamadas funciones resumen. Una función hash, es un algoritmo que se aplica sobre el mensaje y produce un código de longitud fija que es un “resumen” del mismo.
La función puede ser tan simple como contar el número de unos del mensaje o mucho más compleja y producir un número de 128 bits resultado de contar el número de 0, el de 1, el de 00, el de 11, y así sucesivamente. En cualquier caso, una función hash, debe tener al menos dos características deseables:
- Que existan pocas probabilidades de que varios documentos generen el mismo valor resumen.
- Debería ser prácticamente imposible generar un documento que genere un valor resumen determinado.
Por todo ello, los algoritmos que se utilizan en la práctica son bastante complejos desde el punto de vista matemático. Hay funciones estándar, como MD4 (Acrónimo. MD= Message-Digest Algorithm 4) y MD5 (Acrónimo. MD= Message-Digest Algorithm 5), que producen números de 128 y 160 bits respectivamente.
Su funcionamiento cuando enviamos un mensaje cifrado es el siguiente: antes de cifrar el mensaje, se le añade el número obtenido de aplicarle este algoritmo. El receptor, tras descifrar el mensaje original, le volverá a aplicar la función y comprobará que el número obtenido coincide con el que recibió. Esto garantiza que el mensaje no ha sido alterado.
Otro uso típico de las funciones resumen es utilizarlas para almacenar los valores resumen de las contraseñas. Lo que se pretende con esto, es evitar guardar los valores en claro por seguridad. Además, de esta forma tenemos una solución para comprobar las contraseñas. Por ejemplo, en Linux, se almacenan los valores resumen de las contraseñas en el fichero etc/passwd.
Cuando se firma digitalmente un documento, se utiliza una función resumen del documento firmado en la firma electrónica. Gracias a dicho valor resumen, la firma, no sólo permite identificar a un individuo, sino que la firma será única para cada documento concreto que éste firme.
Para lograr todos los aspectos de seguridad mencionados al principio (salvo el de privacidad), se usará conjuntamente criptografía de clave pública, funciones resumen y firmas digitales.
Conjunto finito de pasos o instrucciones que te llevan a la resolución óptima de un problema.
Conjunto finito de pasos o instrucciones que te llevan a la resolución óptima de un problema.