InfyCalculator
English
💻

Calculadora de probabilidad de colisión de hash

Calcula la probabilidad de colisión de un hash o ID (paradoja del cumpleaños) para cualquier tamaño en bits: CRC-32, IDs de 64 bits, UUID v4, MD5, SHA-256, y cuántos elementos dan un 50% de riesgo.

Tamaño del hash o ID
Número de elementos con hash
Cargando calculadora…

Cómo funciona

p ≈ 1 − e^(−n(n − 1) ÷ (2 × 2^b)) · pares en colisión esperados = n(n − 1) ÷ (2 × 2^b) · elementos para 50% ≈ √(2 ln 2 × 2^b) ≈ 1.1774 × 2^(b/2) · elementos para una probabilidad p ≈ √(2 × 2^b × p) (p pequeña)

Es la paradoja del cumpleaños aplicada a los hashes: con n elementos y 2^b valores igual de probables hay n(n − 1)/2 pares, cada uno con probabilidad 2^−b de coincidir, así que las colisiones se vuelven probables con solo unos 2^(b/2) elementos, la cota del cumpleaños. Un CRC de 32 bits llega al 50% con unos 77,000 elementos, un ID de 64 bits con unos 5,000 millones, mientras que los UUID aleatorios de 122 bits necesitan unos 2.7 × 10^18. La fórmula supone un hash uniforme; no mide ataques deliberados contra hashes rotos como MD5 o SHA-1.

Ejemplo resuelto

Al aplicar un hash de 64 bits a 1,000,000,000 elementos: n(n − 1)/2 ÷ 2^64 = 0.0271 pares en colisión esperados, así que la probabilidad de colisión es 1 − e^−0.0271 = 2.67% (una entre unas 37.4). Un 50% de probabilidad requiere 5.06 × 10^9 elementos y la probabilidad de uno en mil millones se alcanza con 192,077 elementos.

Fuentes: Wikipedia — Birthday attack (probability table) · RFC 9562 — Universally Unique IDentifiers (UUIDs)

Preguntas frecuentes

¿Qué tan probable es una colisión de UUID?

Un UUID versión 4 tiene 122 bits aleatorios. Generar mil millones de UUID da una probabilidad de colisión de alrededor de 10^−19; harían falta unos 2.7 × 10^18 UUID para un 50%.

¿Qué es la cota del cumpleaños?

Es la regla práctica de que las colisiones en un hash de b bits se vuelven probables tras unos 2^(b/2) valores, la raíz cuadrada del número de salidas posibles: el mismo efecto por el que en un grupo de 23 personas hay un 50% de que dos cumplan años el mismo día.

¿Basta un hash de 32 bits para IDs únicos?

Casi nunca. Con 32 bits ya hay un 1% de probabilidad de colisión con unos 9,300 elementos y un 50% con unos 77,000. Usa 64 bits o más para identificadores y 128 bits para cualquier cosa global.

¿Sirve esto para la seguridad de SHA-256?

Da la resistencia genérica a colisiones de 2^128 operaciones para SHA-256. En hashes con debilidades criptográficas conocidas (MD5, SHA-1) se pueden provocar colisiones mucho más rápido, así que la cifra aleatoria no mide su seguridad.

Calculadoras relacionadas

Esta calculadora tiene fines informativos. Verifica los resultados importantes antes de tomar decisiones.