Cryptology Academy · Lección

Explicación de las familias SHA-1 y SHA-2

Comprenda la debilidad de SHA-1 y las diferencias entre SHA-256 y SHA-512.

Lección 3 de 413 pasos

Explicación de las familias SHA-1 y SHA-2 es una lección gratuita de Cryptology 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 Cryptology Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cryptology Academy incluye 4 lecciones en total.

Introducción

SHA-1 y SHA-2 son los sucesores de MD5 diseñados por la NSA. SHA-1 ya está retirado. SHA-256 y SHA-512 siguen siendo el estándar del sector para la mayoría de las aplicaciones.

Descripción general de SHA-1

SHA-1 produce un hash de 160 bits (20 bytes). Fue diseñado por la NSA y publicado en 1995. Ejemplo: SHA1('hello') = aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d

Estructura de SHA-1

SHA-1 utiliza 80 rondas agrupadas en 4 etapas de 20 rondas. Cada etapa utiliza funciones lógicas diferentes (Ch, Parity, Maj). Extiende 16 palabras de entrada a 80 mediante XOR y rotaciones.

Colisión de SHA-1: SHAttered (2017)

En 2017, Google y CWI Amsterdam produjeron la primera colisión práctica de SHA-1 (el ataque SHAttered). Se obtuvieron dos PDF con hashes SHA-1 idénticos, pero con contenido diferente. Coste: aproximadamente 6500 años de GPU.

Familia SHA-2

SHA-2 incluye: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 y SHA-512/256. Todas son funciones de Merkle-Damgård. SHA-256 es la variante más utilizada.

Estructura de SHA-256

SHA-256 utiliza 64 rondas sobre bloques de 512 bits. Mantiene 8 palabras de estado de 32 bits cada una (a,b,c,d,e,f,g,h). Cada ronda mezcla palabras de entrada mediante las funciones Ch, Maj, Σ0 y Σ1.

SHA-256 en Python

import hashlib msg = b'hello' digest = hashlib.sha256(msg).hexdigest() print(digest) # 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

SHA-512 frente a SHA-256

SHA-512 utiliza 80 rondas con palabras de 64 bits y produce 512 bits. Es más rápido en hardware de 64 bits, pero produce resúmenes más grandes. Utilice SHA-512 cuando necesite un nivel de seguridad de 256 bits.

SHA-3 (Keccak)

SHA-3 se estandarizó en 2015 como un diseño alternativo. Utiliza la construcción esponja en lugar de Merkle-Damgård, por lo que es inmune a los ataques de extensión de longitud.

Ataques de extensión de longitud contra SHA-2

SHA-256(secret || message) es vulnerable: un atacante que conozca Hash(message) puede calcular Hash(message || padding || extra). Por eso HMAC utiliza una construcción de doble hash.

Cuándo utilizar cada uno

SHA-256: uso general, TLS, certificados y HMAC. SHA-512: aplicaciones que necesitan un margen de seguridad mayor. SHA-3: protocolos nuevos sin preocupaciones por la extensión de longitud. Nunca utilice SHA-1 ni MD5 en diseños nuevos.

Comprobación rápida

¿Qué construcción utiliza SHA-3 que lo hace inmune a los ataques de extensión de longitud?

Resumen

Comprende la evolución de la familia SHA. A continuación estudiaremos las aplicaciones prácticas de los hashes: sumas de comprobación, HMAC y el uso de SHA en Git.
Gratis para empezar

Aprende Cryptology Academy con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
67
Lecciones
261

Preguntas frecuentes

¿La lección «Explicación de las familias SHA-1 y SHA-2» es gratis?

Sí — el texto completo de «Explicación de las familias SHA-1 y SHA-2» 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 Cryptology Academy, actualiza a CoddyKit PRO. El curso de Cryptology Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Explicación de las familias SHA-1 y SHA-2»?

Comprenda la debilidad de SHA-1 y las diferencias entre SHA-256 y SHA-512. Practicas Cryptology 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 Cryptology Academy?

No se requiere experiencia previa. Cryptology 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 «Explicación de las familias SHA-1 y SHA-2»?

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 Cryptology Academy?

Sí. Cada lección de Cryptology 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. Qué caracteriza a una buena función hash
  2. MD5: historia, usos y por qué está obsoleto
  3. Explicación de las familias SHA-1 y SHA-2
  4. Aplicaciones de los hashes: sumas de comprobación, HMAC y Git
← Volver a Cryptology Academy