MSTR Cat

Blockchain/Nivel II · Mecánica/2.1 Criptografía/Lección 1

Funciones de hash y SHA-256

La huella digital que ancla el libro de cuentas

MaterialesUna terminal con shasum u openssl instaladoUna calculadora en línea de SHA-256Dos archivos de texto que difieren por un único carácter

Curiosidad

  1. ¿Por qué cambiar un carácter en un archivo modifica la mitad de su hash?
  2. Si infinitas entradas posibles comparten un conjunto finito de salidas, ¿por qué sigue siendo inviable encontrar dos que colisionen?
  3. ¿Qué hizo que SHA-256 fuera seguro cuando su predecesor, SHA-1, fue vulnerado?

Explorar

  1. Una función de hash criptográfica mapea datos de longitud arbitraria a un resumen de tamaño fijo. Es determinista: la misma entrada siempre produce la misma salida. Es rápida de calcular, pero es inviable invertirla. Esta propiedad unidireccional define la resistencia a las preimágenes. Si un atacante solo posee el hash, no puede derivar el mensaje original. Esta irreversibilidad garantiza las verificaciones de integridad y las pruebas de identidad en los sistemas distribuidos.
  2. SHA-256 produce una salida de 256 bits independientemente del tamaño de la entrada. Ya sea que la entrada sea un solo byte o un archivo de un gigabyte, el resumen mantiene exactamente 32 bytes. Esta longitud fija permite un almacenamiento y una comparación consistentes. La función procesa los datos en bloques de 512 bits a través de 64 rondas de operaciones lógicas. Su diseño sigue la construcción Merkle–Damgård, concatenando una función de compresión entre los bloques; es la mezcla de esta función de compresión lo que altera la salida.
  3. El efecto avalancha es una característica fundamental: cambiar un bit en la entrada modifica aproximadamente la mitad de los bits del hash de salida. Esta sensibilidad garantiza que incluso una pequeña corrupción o manipulación de los datos genere un digest completamente diferente. Esto hace que las funciones de hash sean ideales para verificar la integridad de los archivos y detectar alteraciones. Cualquier modificación, por más sutil que sea, rompe la coincidencia entre los hashes esperados y los calculados.
  4. La resistencia a las colisiones es la propiedad más exigente. Encontrar dos entradas distintas que produzcan el mismo hash requiere aproximadamente 2^128 operaciones debido al límite de cumpleaños. Para SHA-256, este costo computacional hace que los ataques por fuerza bruta sean imprácticos con el hardware actual. En contraste, SHA-1 sufrió un ataque práctico contra colisiones demostrado por investigadores de Google y CWI en 2017, conocido como SHAttered. Esta vulnerabilidad obligó a abandonar SHA-1 en las aplicaciones críticas desde el punto de vista de la seguridad.
  5. Bitcoin aplica SHA-256 dos veces, una práctica conocida como doble hashing. Los encabezados de los bloques y las IDs de las transacciones se procesan con SHA-256, y luego el resultado se vuelve a procesar con SHA-256. Satoshi nunca explicó esta elección; una explicación común es la protección contra ataques de extensión de longitud, una propiedad conocida de los hashes Merkle–Damgård como SHA-256. Cada hash de bloque e ID de transacción en la cadena es el resultado de este doble proceso.
  6. Abra cualquier terminal o herramienta en línea y calcule el hash SHA-256 de la cadena 'MSTR Cat'. Luego, calcule el hash de 'MSTR cat', cambiando solo la mayúscula de una letra. Compare las dos salidas hexadecimales de 64 caracteres. Serán completamente diferentes y no compartirán ningún patrón reconocible. Esta divergencia inmediata ilustra el efecto avalancha en acción: un único cambio de bit desordena todo el resumen, lo que confirma que la función trata las entradas con extrema sensibilidad.

Datos clave

  • SHA-256 produce una salida fija de 256 bits para cualquier tamaño de entrada.
  • El efecto avalancha garantiza que un cambio en un bit modifique aproximadamente la mitad de los bits del hash.
  • Encontrar una colisión SHA-256 por fuerza bruta requiere aproximadamente 2^128 operaciones.
  • SHA-1 fue vulnerado por un ataque práctico contra colisiones (SHAttered) en 2017.
  • Bitcoin utiliza doble SHA-256 para los hash de bloques y las ID de transacciones.
  • SHA-256 procesa los datos en bloques de 512 bits a través de 64 rondas.

Ejercicio nueve, seis, tres, uno

9ReunirEnumera 9 funciones de hash o algoritmos de checksum utilizados en informática. Indica sus tamaños de salida y sus casos de uso principales.
6AgruparAgrupa los 9 en 6 categorías según su nivel de seguridad: roto, obsoleto, estándar para uso general, estándar para contextos de alta seguridad, especializado para velocidad, u otro.
3DestilarReduce los 6 grupos a 3 razones principales por las cuales se selecciona una función de hash para una aplicación específica.
1CristalizarEscribe una oración que explique cómo los resúmenes de longitud fija permiten la verificación de datos de tamaño variable.

Verificación de hechos

Fechas, cifras y afirmaciones verificadas con las fuentes publicadas que se enumeran a continuación.

Abrir en la academia interactiva →

EN PT ZH JA KO RU DE FR MS