Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Monogafìa Funciones HASH (Criptografía) (página 2)



Partes: 1, 2

Las Funciones Resumen
se basan en la idea de funciones de compresión que dan
como resultado bloques de longitud n a partir de bloques
de longitud m y dichas funciones se encadenan de forma
iterativa haciendo que la entrada en el paso i dependa del
bloque i1 del mensaje y de la salida
del paso i1, como se muestra en la
figura:

Monografias.com

Se suele incluir en alguno de los bloques del mensaje
m al principio o al final información acerca de la longitud total del
mensaje, con lo cual se reducen las posibilidades de que 2
mensajes con diferentes longitudes den el mismo valor
HASH.

Uso de las funciones
HASH en criptografía

  • Una de las aplicaciones más interesantes de
    la actual criptografía es la posibilidad real de
    añadir en un mensaje una firma digital: La
    autenticación completa.

  • Todo esto comienza en el año 1976 cuando
    Diffie y Hellman presentan un modelo de cifrado
    asimétrico con clave pública, con los antiguos
    sistemas de cifra de clave simétrica esto era inviable
    o bien muy complejo.

  • No obstante dado que los sistemas de clave
    pública son muy lentos en vez de firmar digitalmente
    el mensaje completo, en un sistema criptográfico se
    incluirá como firma digital una operación de
    cifra con la clave privada del emisor sobre un resumen o hash
    de dicho mensaje representado por sólo una centena de
    bits.

Funciones
HASH

En una función
HASH dicho valor será generado por una
función H de la forma: h=H(M)

donde:

M: Es una longitud variable del mensaje.

H(M): Es un valor HASH de longitud
finita.

El valor HASH es aparentemente para el mensaje de
la fuente de un tiempo cuando
el mensaje es asumido o conocido que esta correcto, donde el
Receptor autentifica dicho mensaje pero recalcula el valor porque
dicha función si no considera que el valor sea secreto.

Mensaje = M ( Función Resumen = h(M)

Firma (rúbrica): r = EdE{h(M)}

dE: Es la clave privada del emisor que firmará
h(M)

¿Cómo se comprueba la identidad en
destino?

Se descifra la rúbrica r con la clave
pública del emisor dE, al mensaje en claro recibido M" (si
viniese cifrado, se descifra) se le aplica la misma
función HASH que en emisión y si los valores
son iguales la firma es auténtica y el mensaje
integro:

Calcula: EdE(r) = h(M)

Compara: ¿h(M") = h(M)?

¿Qué seguridad nos da
un resumen de k bits?

Seguridad asociada a
una función HASH

Suponga que hemos creado una función HASH
de forma tal que el resumen es sólo de 4 bits,
independientemente del tamaño de dicho mensaje de entrada
y nos surge la pregunta:

¿Cuál es la probabilidad
de que dos mensajes distintos tengan igual función
HASH?

Si esta probabilidad fuese muy baja (en este caso 1/16:
HASH desde 0000 hasta 1111) y podría darse el
siguiente caso: Alguien modifica nuestro mensaje firmado y
envía ese mensaje falso con la firma del primero ya que en
ambos casos son los mismos 4 bits.

Mensaje 1: "Rechazamos el contrato por no
interesarnos nada" HASH: 1101.

Mensaje 2: "Firma todo lo que te pongan porque
nos interesa" HASH: 1101.

Observe que ambos mensajes tienen 47 caracteres,
así podríamos crear una gran cantidad de mensajes
diferentes que digan cosas distintas incluso con igual
número de caracteres, ¡Hasta que los dos HASH
coincidan!, y por este motivo para que las funciones HASH
sean interesantes en criptografía deben cumplir un conjunto de
propiedades, ellas son:

h(M) será segura si tiene las siguientes
características:

  • Unidireccionalidad: Conocido un
    resumen h(M), debe ser computacionalmente imposible encontrar
    M a partir de dicho resumen.

  • Compresión: A partir de un
    mensaje de cualquier longitud, el resumen h(M) debe tener una
    longitud fija, lo normal es que la longitud de h(M) sea menor
    que el mensaje M.

  • Facilidad de cálculo: Debe
    ser fácil calcular h(M) a partir de un mensaje
    M.

  • Difusión: El resumen h(M)
    debe ser una función compleja de todos los bits del
    mensaje M si se modifica un solo bits del mensaje
    M y entonces el HASH h(M) debería
    cambiar la mitad de sus bits aproximadamente.

Algoritmos de resumen
en criptografía

  • MD5: Ron Rivest 1992. Mejoras al MD4
    y MD2 (1990), es más lento pero con mayor nivel de
    seguridad, es un resumen de 128 bits.

  • SHA-1: Del NIST, National Institute
    of Standards and Technology, 1994. Similar a MD5 pero con
    resumen de 160 bits, existen otras propuestas conocidas como
    SHA-256 y SHA-512 posibles estándares.

  • RIPEMD: Comunidad Europea, RACE,
    1992. Resumen de 160 bits.

  • N-Hash: Nippon Telephone and Telegraph, 1990.
    Resumen: 128 bits.

  • Snefru: Ralph Merkle, 1990.
    Resúmenes entre 128 y 256 bits, el mismo ha sido
    criptoanalizado y es lento.

  • Tiger: Ross Anderson, Eli Biham,
    1996. Resúmenes de hasta 192 bits. Optimizado para
    máquinas de 64 bits (Alpha).

  • Panama: John Daemen, Craig Clapp,
    1998. Resúmenes de 256 bits de longitud, trabaja en
    modo función HASH o como cifrador de
    flujo.

  • Haval: Yuliang Zheng, Josef Pieprzyk
    y Jennifer Seberry, 1992. Admite 15 configuraciones
    diferentes hasta 256 bits.

Función
Resumen SHA-1

Algoritmo:

Es muy similar a MD5 también trata bloques de 512
bits de mensaje con un total de 80 vueltas, pero en este caso el
vector inicial tiene una palabra más de 32 bits (E) por lo
que el resumen será de 160 bits.

Un resumen de 128 bits (MD5) tiene una complejidad
algorítmica de tan sólo 264 un valor en la
actualidad muy comprometido…

En cambio la
función SHA-1 (Secure Hash Algorithm) entregará un
resumen de 160 bits con una complejidad algorítmica de
280.

Esquema del resumen SHA-1.

Monografias.com

Vueltas funciones F, G, H, I en SHA-1.

Monografias.com

Las 80 vueltas en SHA-1.

Monografias.com

Algoritmo y desplazamiento en SHA-1.

Monografias.com

Comparativa entre MD5
y SHA-1

  • SHA-1 genera una salida de 160 bits de longitud
    mientras que MD5 genera sólo 128 bits.

  • La dificultad de generar un mensaje que tenga un
    resumen dado es del orden de 2128 operaciones para MD5 y 2160
    para SHA-1.

  • La dificultad de generar dos mensajes aleatorios
    distintos y que tengan el mismo resumen (ataques basados en
    paradoja del cumpleaños) es del orden de 264
    operaciones para MD5 y 280 para SHA-1.

  • Esta diferencia de 16 bits a favor de SHA-1 lo
    convierte en más seguro y resistente a ataques por
    fuerza bruta que el algoritmo MD5, aunque es más lento
    que MD5, SHA-1 es hoy el estándar como función
    HASH.

Pasos y tasas de cifra en MD5 y SHA-1.

Ambos algoritmos
procesan bloques de 512 bits y emplean 4 funciones primitivas
para generar el resumen del mensaje, pero…

  • SHA-1 realiza un mayor número de pasos que
    MD5: 80 frente a los 64 que realiza MD5.

  • SHA-1 debe procesar 160 bits de buffer en
    comparación con los 128 bits de MD5.

  • Por estos motivos la ejecución del algoritmo
    SHA-1 es más lenta que la de MD5 usando un mismo
    hardware, por ejemplo un programa realizado en C entregaba en
    un Pentium a 266 Mhz (no importa que esta velocidad sea tan
    baja) una tasa del orden de 20 Mbits/seg para SHA-1 y para
    MD5 esta tasa llegaba a los 60 Mbits/seg.

Diferencias entre MD5 y SHA-1.

  • La longitud máxima del mensaje para SHA-1
    debe ser menor de 264 bits mientras que MD5 no tiene
    limitaciones de longitud.

  • MD5 emplea 64 constantes (una por cada paso)
    mientras que SHA-1 sólo emplea 4. (una para cada 20
    pasos)

  • MD5 se basa en la arquitectura little-endian
    mientras que SHA-1 se basa en la arquitectura big-endian y
    por ello el vector ABCD inicial en MD5 y SHA-1 son
    iguales:

  • A = 01234567 (MD5) ( 67452301 (SHA-1)

  • B = 89ABCDEF (MD5) ( EFCDAB89 (SHA-1)

  • C = FEDCBA98 (MD5) ( 98BADCFE (SHA-1)

  • D = 76543210 (MD5) ( 10325476 (SHA-1)

Últimos
ataques a las funciones HASH

  • A finales del año 2004 científicos
    chinos de la Shandong University presentan trabajos en los
    que se analizan las debilidades reales de las funciones
    HASH como MD5 y SHA-1 ante colisiones.

  • Aunque no está claro que este tipo de ataques
    pudiese derivar en acciones de fraude, como sería
    suplantar un hash por otro igual y que en recepción se
    aceptase como válido si bien este último
    proviene de un mensaje distinto, es un claro motivo de
    preocupación actual.

  • El problema de estas vulnerabilidades estriba en que
    muchos servidores Web presentan un certificado digital X.509
    firmado en el mejor de los casos a partir de una
    función HASH SHA-1 y lo que es peor aún
    todavía hay algunos que usan un HASH MD5….
    este último mucho menos seguro que el
    primero.

Conclusiones

Arribamos a las siguientes conclusiones, luego de haber
analizado las funciones HASH para la
autenticación.

  • Las funciones HASH (MD5, SHA-1, etc.) pueden
    usarse además para autenticar a dos
    usuarios.

  • Como carecen de una clave privada no pueden usarse
    de forma directa para estos propósitos, no obstante
    existen algoritmos que permiten añadirles esta
    función.

  • Entre ellos está HMAC, una función que
    usando los HASH vistos y una clave secreta autentica a
    dos usuarios mediante sistemas de clave secreta, las
    funciones MAC (Message Authentication Code) y HMAC se dedican
    a la autenticación y firma digital.

  • HMAC se usa en plataformas IP seguras como por
    ejemplo en Secure Socket Layer, SSL.

Bibliografía

  • Stallings William, ¨Cryptography and network
    security: Principles and practice¨, 2da
    edición.

  • Sklar Bernard, ¨Digital Comunications:
    Fundamentals and application¨ Tomo1 y 2, 2da edition.
    (Upper Saddle River, NJ:Prentice-Hall,2001)

  • Curso Seguridad de Redes y Sistemas.
    Autor:

Msc. Walter Baluja García. CUJAE.

  • Lucena López José Manuel,
    ¨Criptografía y Seguridad en computadores¨,
    3ra edición. Marzo 2004. e-mail:

  • Angel Angel José de Jesús,
    ¨Criptografía para principiantes.

  • Dr. Ramió Aguirre Jorge, ¨ Libro
    electrónico de seguridad informática y
    criptografía. Versión 4.1¨, 6ta
    edición Marzo 2006. Universidad Politécnica de
    Madrid.

 

 

 

 

 

Autor:

Maytée Odette López
Catalá

Virgilio Zuaznabar Mazorra

Curso 2008

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter