ScholarGate
Asistente

Funciones Hash Criptográficas

Una función hash criptográfica comprime una entrada arbitraria en un resumen corto de longitud fija de una manera unidireccional y resistente a colisiones, sirviendo como un bloque de construcción básico para la integridad, la autenticación y muchos protocolos de nivel superior.

Encontrar tema con PaperMindPróximamenteFind papers & topics
Tools & resources
Descargar diapositivas
Learn & explore
VídeoPróximamente

Definition

Una función hash criptográfica es una función determinista que mapea entradas de longitud arbitraria a una salida de longitud fija (resumen) de tal manera que es inviable encontrar una preimagen, una segunda preimagen o dos entradas distintas que produzcan la misma salida.

Scope

Este tema cubre las propiedades de seguridad de las funciones hash (resistencia a preimagen, segunda preimagen y colisión), sus construcciones internas (Merkle-Damgaard, esponja), las familias estandarizadas SHA-2 y SHA-3, y aplicaciones como la verificación de integridad, el almacenamiento de contraseñas, el compromiso y la prueba de trabajo. Aborda ataques criptoanalíticos, incluyendo el límite de cumpleaños y las rupturas de MD5 y SHA-1. Excluye los códigos de autenticación con clave, que se tratan en códigos de autenticación de mensajes, aunque muchos MAC se construyen a partir de funciones hash.

Core questions

  • ¿Qué distingue una función hash criptográfica de una suma de verificación ordinaria o una función de tabla hash?
  • ¿Por qué la resistencia a preimagen, segunda preimagen y colisión son distintas, y cómo se relacionan?
  • ¿Por qué la paradoja del cumpleaños limita la resistencia a colisiones a la mitad de la longitud del resumen?
  • ¿Cómo extienden las construcciones Merkle-Damgaard y de esponja una compresión de tamaño fijo a una entrada arbitraria?
  • ¿Cómo se utilizan las funciones hash para comprometer datos, verificar la integridad y almacenar contraseñas?

Key concepts

  • resumen del mensaje
  • resistencia a preimagen
  • resistencia a segunda preimagen
  • resistencia a colisiones
  • ataque de cumpleaños
  • construcción Merkle-Damgaard
  • construcción de esponja (Keccak)
  • ataque de extensión de longitud
  • prueba de trabajo

Key theories

Resistencia a colisiones y el límite de cumpleaños
Debido a la paradoja del cumpleaños, un ataque genérico de búsqueda de colisiones en un hash de n bits tiene éxito en aproximadamente 2^(n/2) operaciones; por lo tanto, la resistencia a colisiones requiere resúmenes aproximadamente el doble del nivel de seguridad deseado (por ejemplo, 256 bits para una seguridad de 128 bits).
Construcciones iteradas y de esponja
El paradigma Merkle-Damgaard construye un hash completo iterando una función de compresión de entrada fija sobre bloques de mensajes; la construcción de esponja utilizada por SHA-3 (Keccak) absorbe la entrada y exprime la salida de un gran estado de permutación, evitando debilidades de extensión de longitud.

Mechanisms

Un hash Merkle-Damgaard rellena el mensaje, lo divide en bloques y aplica iterativamente una función de compresión que mezcla cada bloque en un valor de encadenamiento en ejecución, produciendo el valor final como el resumen. La construcción de esponja de SHA-3, en cambio, absorbe bloques de mensajes mediante la aplicación de XOR a una parte de un estado grande permutado por la función Keccak-f, y luego exprime los bits del resumen, lo que evita la propiedad de extensión de longitud inherente a Merkle-Damgaard simple.

Clinical relevance

Las funciones hash son omnipresentes: verifican la integridad de las descargas de software, anclan firmas digitales (que firman un hash, no el documento completo), indexan contenido en Git y redes de entrega de contenido, aseguran el almacenamiento de contraseñas mediante funciones lentas de derivación de claves (bcrypt, Argon2), y proporcionan la prueba de trabajo y los árboles de Merkle subyacentes a las cadenas de bloques. La ruptura práctica de la resistencia a colisiones de MD5 y SHA-1 forzó la migración a SHA-2 en todo internet.

Evidence & guidelines

SHA-2 (SHA-256, SHA-512) se especifica en FIPS 180-4 y SHA-3 en FIPS 202; ambos están aprobados por el NIST. MD5 y SHA-1 están desaconsejados para uso de seguridad después de los ataques de colisión demostrados (siendo la colisión SHAttered SHA-1 de 2017 un hito). Para el almacenamiento de contraseñas, los estándares recomiendan funciones resistentes a la memoria como Argon2 en lugar de un hash simple.

History

La familia MD (MD4 y MD5 de Rivest) y SHA-0/SHA-1 diseñados por la NSA dominaron la década de 1990. Los ataques de colisión de Xiaoyun Wang (2004-2005) rompieron MD5 y debilitaron SHA-1, lo que impulsó la competencia abierta SHA-3 del NIST (2007-2012), ganada por el diseño de esponja Keccak de Bertoni, Daemen, Peeters y Van Assche. SHA-1 fue prácticamente roto por la colisión SHAttered en 2017.

Key figures

  • Ralph Merkle
  • Ivan Damgaard
  • Guido Bertoni
  • Joan Daemen
  • Xiaoyun Wang

Related topics

Seminal works

  • nist2015sha3
  • katz2020
  • menezes1996

Frequently asked questions

¿Por qué no puedo simplemente aplicar un hash a una contraseña y almacenar el resumen?
Los hashes criptográficos simples son rápidos, lo que permite a los atacantes probar miles de millones de conjeturas por segundo contra una base de datos robada. El almacenamiento de contraseñas, en cambio, utiliza funciones deliberadamente lentas, con sal y resistentes a la memoria (bcrypt, scrypt, Argon2) para que la fuerza bruta de cada contraseña sea costosa.
¿Está roto SHA-256 ahora que SHA-1 lo está?
No. SHA-1 y SHA-256 son algoritmos diferentes; los ataques de colisión en SHA-1 no se transfieren a SHA-2. SHA-256 sigue sin romperse y es el hash de propósito general recomendado, junto con SHA-3.

Methods for this concept

Related concepts