0Pricing
Cyber Security Academy · Lección

Funciones hash: SHA-256 y más allá

Explore las propiedades de las funciones hash criptográficas: resistencia a colisiones, resistencia a preimagen y aplicaciones.

Funciones hash: SHA-256 y más allá es una lección gratuita de Cyber Security Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cyber Security Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cyber Security Academy incluye 4 lecciones en total.

¿Qué es una función hash criptográfica?

Una función hash criptográfica toma una entrada de longitud arbitraria y produce una salida de longitud fija (resumen). Debe ser determinista, rápida de calcular, resistente a preimagen (no se puede invertir), resistente a colisiones (no se pueden encontrar dos entradas con el mismo hash) y sensible al efecto avalancha (un cambio pequeño → un hash completamente diferente).

Familia SHA-2

La familia SHA-2 (diseñada por la NSA y estandarizada por el NIST) incluye:

  • SHA-256 — salida de 256 bits, ampliamente utilizada
  • SHA-384 — salida de 384 bits
  • SHA-512 — salida de 512 bits, más rápida en CPU de 64 bits

SHA-256 se utiliza en Bitcoin, certificados TLS e identificadores de commits de Git.

Familia SHA-3

SHA-3 utiliza un diseño completamente distinto del de SHA-2 (la construcción de esponja Keccak). Se estandarizó como alternativa de respaldo por si se descubrían debilidades en SHA-2. SHA-3 no está ampliamente implementada, pero se utiliza en algunos protocolos criptográficos y dispositivos de hardware.

MD5 y SHA-1: vulnerables

Nunca use MD5 ni SHA-1 con fines de seguridad:

  • MD5: se pueden encontrar colisiones en segundos con hardware convencional
  • SHA-1: primera colisión práctica demostrada en 2017 (SHAttered)

Siguen siendo útiles para sumas de comprobación sin fines de seguridad (deduplicación de archivos), pero no para garantizar la integridad.

Usos del hash: integridad de archivos

Verificación de descargas:

sha256sum ubuntu-24.04.iso
# Compare with the hash published on the official site
# If hashes match, file is unmodified

Usos del hash: firmas digitales

Al firmar documentos, no ciframos el documento completo con la clave privada (es demasiado lento). En su lugar:

  1. Calcule el hash del documento: H = SHA256(document)
  2. Cifre el hash con la clave privada: sig = RSA_encrypt(H, private_key)
  3. Adjunte la firma al documento

Verificación: descifre la firma con la clave pública, vuelva a calcular el hash y compare los resultados.

HMAC: hash con clave para la integridad

HMAC (código de autenticación de mensajes basado en hash) combina una función hash con una clave secreta para producir una etiqueta de autenticación. Se utiliza para verificar tanto la integridad como la autenticidad de los datos. Se utiliza en JWT, la autenticación de API y TLS.

import hmac, hashlib
mac = hmac.new(key, message, hashlib.sha256).hexdigest()

Ataques de extensión de longitud de hash

SHA-2 (construcción de Merkle-Damgård) es vulnerable a los ataques de extensión de longitud: si conoce H(secret+message), puede calcular H(secret+message+extension) sin conocer el secreto. HMAC evita este problema. SHA-3 no es vulnerable.

Tablas rainbow y salting

Una tabla rainbow precalcula correspondencias entre hashes y entradas para realizar búsquedas rápidas. El salting evita esto: añadir un valor aleatorio único por entrada hace que cada hash sea único, lo que obliga a aplicar fuerza bruta completa a cada entrada en lugar de realizar una búsqueda.

Árboles de Merkle

Un árbol de Merkle es un árbol de hashes en el que cada nodo padre es el hash de sus hijos. Se utiliza en la cadena de bloques de Bitcoin, Git y los registros de transparencia de certificados para verificar eficazmente grandes conjuntos de datos sin descargarlos por completo.

Cómo elegir el hash adecuado

Guía de selección:

  • Integridad general/sumas de comprobación: SHA-256
  • Almacenamiento de contraseñas: Argon2id, bcrypt (NO SHA-256 directamente)
  • Autenticación de mensajes: HMAC-SHA-256
  • Firmas digitales: SHA-256 o SHA-384 como hash subyacente
  • Evite: MD5 y SHA-1 en aplicaciones de seguridad

Comprobación rápida: funciones hash

¿Qué construcción evita los ataques de extensión de longitud y además requiere una clave secreta?

Resumen de la lección

Las funciones hash producen resúmenes de longitud fija a partir de entradas arbitrarias. SHA-256 y SHA-512 son los estándares actuales. MD5 y SHA-1 no son seguros para aplicaciones de seguridad. HMAC añade una clave secreta para proporcionar integridad autenticada. Use Argon2/bcrypt para las contraseñas. Los árboles de Merkle amplían el uso de hashes para verificar eficazmente grandes conjuntos de datos.

Preguntas frecuentes

¿La lección «Funciones hash: SHA-256 y más allá» es gratis?

Sí — el texto completo de «Funciones hash: SHA-256 y más allá» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cyber Security Academy, actualiza a CoddyKit PRO. El curso de Cyber Security Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Funciones hash: SHA-256 y más allá»?

Explore las propiedades de las funciones hash criptográficas: resistencia a colisiones, resistencia a preimagen y aplicaciones. Practicas Cyber Security Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Cyber Security Academy?

No se requiere experiencia previa. Cyber Security Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Funciones hash: SHA-256 y más allá»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Cyber Security Academy?

Sí. Cada lección de Cyber Security Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Cifrado simétrico: AES y cifradores de flujo
  2. Cifrado asimétrico: RSA y curvas elípticas
  3. Funciones hash: SHA-256 y más allá
  4. Firmas digitales y certificados
← Volver a Cyber Security Academy