Algoritmos de compendio de mensajes. Concepto de “Huella Digital” o “Hash”
La función de integridad en un sistema de información basado en TICs puede conseguirse utilizando un algoritmo de compendio, que se caracteriza por reducir el mensaje original a una secuencia de bits que lo identifica y que se denomina “huella digital” o compendio de mensaje.
Por lo tanto, estos algoritmos realizan una serie de operaciones matemáticas sobre el mensaje original para calcular un valor de tamaño fijo (de 128, 160, 256, 384 o 512 bits), la “huella digital”, utilizando una función de dispersión unidireccional (es decir, no puede reconstruirse el mensaje a partir de su compendio) que cumple con un conjunto de propiedades criptográficas:
- Conociendo la “huella digital”, no se obtiene ninguna información sobre el mensaje original.
- No es factible encontrar dos mensajes originales que generen la misma “huella digital”. La probabilidad de colisión (es decir, la obtención de una misma secuencia de bits a partir de dos mensajes distintos) es muy remota, prácticamente nula.
- Un cambio cualquiera en el mensaje de entrada debe modificar, en promedio, la mitad de los bits que se generan a la salida del algoritmo, es decir, un pequeño cambio en el mensaje cambia totalmente su “huella digital”.
Estos algoritmos también se denominan algoritmos hash y, entre los más populares, se encuentran MD2, MD4, MD5 y las diferentes versiones de SHA.
Ejemplo de obtención de la huella digital de un mensaje:
Los algoritmos MD4 y MD5 (del idioma inglés, Message Digest 4 y Message Digest 5, respectivamente) generan compendios de 128 bits. A su vez, los algoritmos SHA-0 (del idioma inglés, Secure Hash Algorithm), SHA-1 y SHA-2 generan compendios de diferentes longitudes, tales como 160, 256, 384 o 512 bits.
Pueden señalarse dos aplicaciones principales de los algoritmos de compendio:
- Códigos de detección de modificación -MDC- (del idioma inglés, Modification Detection Codes): creación de un código o secuencia de bits que permite detectar si el contenido del mensaje ha sido modificado.
- Códigos de autenticación del mensaje -MAC- (del idioma inglés, Message Authentication Codes): obtención de un código o secuencia de bits que permite probar la integridad del contenido y la autenticación del origen del mensaje, al generar una clave Cátedra Redes de Información ISI – FRSF UTN Año 2010 Página 19 de 39 que depende tanto del usuario como del propio mensaje (se aplica la función hash a los datos del mensaje y a una clave conocida por el usuario -generalmente una clave privada-).
Esta aplicación ha propiciado el desarrollo de la Firma Electrónica, así como el desarrollo de mecanismos para el control de la integridad y autenticidad del software.