Cryptology Academy · Lección

Qué caracteriza a una buena función hash

Explore la resistencia a preimagen, la resistencia a colisiones y el efecto avalancha.

Lección 1 de 413 pasos

Qué caracteriza a una buena función hash es una lección gratuita de Cryptology Academy en CoddyKit. Esta es la lección 1 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.

Bienvenida

Una función hash criptográfica transforma cualquier entrada en un resumen de longitud fija. En esta lección estudiaremos las propiedades que hacen que una función hash sea criptográficamente segura.

Salida determinista

Hash(M) siempre produce la misma salida para la misma entrada. SHA-256('hello') siempre es aabb..., sin importar dónde ni cuándo se calcule.

Longitud de salida fija

SHA-256 siempre produce 256 bits (32 bytes = 64 caracteres hexadecimales). SHA-512 siempre produce 512 bits. La entrada puede tener 0 bytes o 10 GB; el tamaño de la salida nunca cambia.

Resistencia a la preimagen

Dado un hash h, debe ser computacionalmente inviable encontrar cualquier mensaje M tal que Hash(M) = h. Propiedad unidireccional: no se puede invertir un hash.

Resistencia a la segunda preimagen

Dado M1, debe ser inviable encontrar M2 ≠ M1 tal que Hash(M1) = Hash(M2). Esto impide que un atacante sustituya un mensaje por otro diferente con el mismo hash.

Resistencia a las colisiones

Debe ser inviable encontrar CUALESQUIERA dos mensajes M1 ≠ M2 para los que Hash(M1) = Hash(M2). Esto es más difícil que encontrar una segunda preimagen, pero menos extraordinario de lo que parece: el principio del palomar garantiza que existen colisiones.

Efecto avalancha

Invertir un solo bit de la entrada debería cambiar aproximadamente el 50 % de los bits de salida. SHA-256('hello') y SHA-256('hellp') difieren en unos 128 bits. Esta sensibilidad evita los ataques de búsqueda incremental.

Construcción de Merkle-Damgård

MD5, SHA-1 y SHA-2 utilizan Merkle-Damgård: dividen la entrada en bloques y encadenan una función de compresión. El valor final de la cadena es el hash. Este diseño es vulnerable a ataques de extensión de longitud.

Construcción esponja

SHA-3 (Keccak) utiliza una construcción esponja: absorbe la entrada en un estado y después extrae la salida. Las construcciones esponja resisten los ataques de extensión de longitud y son más versátiles que Merkle-Damgård.

Cota del cumpleaños

El ataque de cumpleaños encuentra colisiones en 2^(n/2) operaciones, no en 2^n. SHA-256 tiene una salida de 256 bits, por lo que su resistencia a colisiones es de aproximadamente 2^128. SHA-1 (160 bits) tiene aproximadamente 2^80 y ya está roto en la práctica.

Hash frente a MAC y firma

Hash: no utiliza una clave y proporciona únicamente integridad. MAC (HMAC): hash con clave que proporciona integridad y autenticidad. Firma digital: utiliza una clave asimétrica y proporciona integridad, autenticidad y no repudio.

Comprobación rápida

¿Qué propiedad garantiza que sea inviable encontrar una entrada que produzca una salida hash determinada?

Resumen

Ahora comprende las propiedades de seguridad de las funciones hash. A continuación estudiaremos MD5, que fue el estándar en su momento y ahora está completamente roto.
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 «Qué caracteriza a una buena función hash» es gratis?

Sí — el texto completo de «Qué caracteriza a una buena función hash» 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 «Qué caracteriza a una buena función hash»?

Explore la resistencia a preimagen, la resistencia a colisiones y el efecto avalancha. 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 1 de 4.

¿Cuánto tiempo toma la lección «Qué caracteriza a una buena función hash»?

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