1. SEGURIDAD DE T.I.
Unidad I. Funciones Hash criptográficas
M.T.I. Raúl David Salomón García
2. 1.1 Propiedades
Los algoritmos HASH no son más que funciones
que permiten calcular el número resumen de un
mensaje, el cual cumple con las siguientes
propiedades:
Todos los hashes generados con una función de
hash tienen el mismo tamaño, sea cual sea el
mensaje utilizado como entrada.
Dado un mensaje, es fácil y rápido -mediante una
computadora- calcular su hash.
Es imposible reconstruir el mensaje original a
partir de su hash.
Es imposible generar un mensaje con un hash
determinado.
3. Puede ser aplicado para:
Comprobación de integridad de archivos
Seguridad en procesos de identificación en
sistemas
Firmas digitales
4. 1.2 Códigos de detección de
modificación
El objetivo de estas funciones (MDC –
Modification Detection Codes) es poder detectar
si un mensaje ha sido modificado o no. Por tanto
permiten la verificación de la integridad del
mensaje. Su funcionamiento consiste en
calcular el valor hash del mensaje y que este
sirva como prueba para una posible verificación
de si el mensaje ha sido modificado.
5. Tipos de MDC
Para cumplir su objetivo la función hash tiene que cumplir
propiedades que la hagan resistente frente a ataques de
adversarios maliciosos que quieran hackearla. Según la
propiedad que se estime necesaria que cumpla, se puede
decir que hay dos tipos de Códigos de Detección de
modificaciones:
Las que requieren que la función hash sea OWHF (One-
Way Hash Function/Función Hash de un solo sentido).
Por tanto es difícil encontrar un mensaje que tenga un
valor hash preespecificado.
Las que requieren que la función hash sea CRHF
(Collision Resistant Hash Function/Función Hash
resistente a colisiones). Por tanto es difícil encontrar dos
mensajes con el mismo valor hash.
7. 1.4 Códigos de autentificación de
mensajes
En criptografía, un Message authentication code, a menudo llamado MAC, es
una porción de información utilizada para autenticar un mensaje.
Los valores MAC se calculan mediante la aplicación de una función hash
criptográfica con clave secreta K, que sólo conocen el remitente y el
destinatario, pero no los atacantes. Se dice que la función hash tiene que ser
criptográfica porque tiene que cumplir ciertas propiedades de seguridad que
las hacen resistentes a los ataques.
Matemáticamente, la función hash criptográfica toma dos argumentos: una
clave K de tamaño fijo y un mensaje M de longitud arbitraria. El resultado es
un código MAC de longitud fija:
MAC = Ck(M)
Donde:
M es el mensaje de longitud arbitraria
Ck es la función que transforma el mensaje en un valor MAC y que utiliza
la clave secreta k como parámetro
MAC es el valor calculado de longitud fija
8. 1.4 Códigos de autentificación de
mensajes
Si el valor MAC enviado coincide con el valor
que el destinatario calcula, éste puede
garantizar que:
El mensaje no fue alterado
El mensaje proviene del remitente indicado en
el mensaje
Si el mensaje incluye un número de
secuencia, que el mensaje sigue en la
secuencia correcta
9. Aplicaciones de MAC
Los MAC se suelen usar para autenticación (de ahí su nombre).
El que se quiere autenticar y el verificador comparten la clave
de la función MAC y la mantienen en secreto. De esta forma,
cuando el verificador recibe el valor MAC puede verificar si ese
valor MAC corresponde con el que se tiene que generar a partir
de un mensaje dado.
Hay dos formas de funcionamiento, según donde se genere el
mensaje:
El mensaje es generado por quien se quiere autenticar y
después este manda al verificador el mensaje y el valor MAC
asociado. En el paso siguiente el verificador verifica (v.l.r.) la
validez del valor MAC y a la vez se asegura de la integridad
del mensaje recibido.
El mensaje es generado por el verificador y se le manda al
que se quiere autenticar para que este genere el valor MAC y
lo mande al verificador.
10. 1.5 Integridad de datos y autenticación de
mensajes
Prácticas propuestas
Desarrollar un programa en Java o C que calcule
el hash para una cadena de caracteres
determinada
Generar claves privadas para emisores y
receptores de mensajes.
Autentificar mensajes enviados por el profesor
Generar cadenas hash para mensajes
determinados.
Usar aplicaciones que permitan generar MD5 y
SHA