La entropía de una contraseña en palabras llanas

Fundamentos

Por qué la robustez se mide en bits, cómo calcularla tú mismo y cuántos años llevaría descifrar una contraseña de tu longitud.

Cuando una web dice «contraseña segura», normalmente ha comprobado la longitud y la presencia de un dígito. Eso no dice nada sobre la robustez real. La medida correcta se llama entropía, se cuenta en bits y es justo lo que muestra el indicador de nuestras páginas.

Qué es un bit de entropía

La entropía es el logaritmo en base dos del número de opciones igual de probables. Un bit es elegir entre dos; diez bits, entre 1024; veinte bits, entre aproximadamente un millón. Cada bit añadido duplica el trabajo de descifrado.

Para una contraseña aleatoria la fórmula es sencilla:

entropía = longitud × log₂(tamaño del alfabeto)

Un alfabeto con minúsculas, mayúsculas, dígitos y símbolos tiene 94 caracteres, y log₂(94) ≈ 6,55 bits por carácter. Una contraseña de 16 caracteres lleva, por tanto, unos 105 bits.

105bits
Eso da una contraseña de 16 caracteres

Una granja que pruebe 10¹⁴ candidatos por segundo tardaría más de lo que lleva existiendo el universo. No es una figura retórica: 2¹⁰⁴ entre 10¹⁴ da del orden de 10¹⁷ años.

Cuántos bits bastan

BitsVeredictoAdecuado para
menos de 40débilnada más allá de formularios de usar y tirar
40–60aceptableforos y servicios sin datos personales
60–80buenatiendas, redes sociales, suscripciones
80–100robustacorreo, banca, sistemas de trabajo
100+fortalezacontraseñas maestras, claves de cifrado

De bits a años

De media, un atacante debe recorrer la mitad del espacio, es decir 2(bits−1) guesses. Divide that by the guessing rate and you get the time. The rates we use:

  • 100 intentos por segundo: ataque a un formulario con retardos y bloqueos. — attacking a login form with delays and lockouts.
  • 10¹⁰ por segundo: descifrado sin conexión de una base de hashes robada con unas cuantas tarjetas gráficas. — offline cracking of a stolen hash database on a few GPUs.
  • 10¹⁴ por segundo: un equipo dedicado a la escala de una gran organización. — a dedicated rig at the scale of a large organisation.

Una salvedad importante: las cifras valen solo si el servicio guarda las contraseñas como es debido, con una función lenta como bcrypt o Argon2 y una sal. Si los hashes son MD5 a secas, las velocidades suben en órdenes de magnitud.

Cómo se calcula la fórmula, si te interesa

La entropía es log₂(N) × L, donde N es el tamaño del alfabeto y L la longitud. El logaritmo en base dos responde a «cuántas duplicaciones caben en este alfabeto»: para 26 minúsculas son 4,7 bits por carácter; para 94 caracteres imprimibles, 6,55.

Multiplicar por la longitud funciona porque cada carácter se elige de forma independiente: el espacio de búsqueda es N elevado a L, y el logaritmo convierte la potencia en multiplicación.

De ahí una conclusión práctica: añadir un carácter rinde más que ampliar el alfabeto.

Por qué los filtros reducen la robustez

Cada restricción reduce el alfabeto. El interruptor «quitar parecidos» elimina 13 caracteres de 94 y el precio de un carácter baja de 6,55 a 6,34 bits. Sobre 20 caracteres son cuatro bits perdidos: un intercambio aceptable a cambio de legibilidad, pero conviene saberlo.

El modo «sin repeticiones» muerde más: allí el alfabeto se encoge con cada carácter, así que la entropía es una suma de logaritmos. Nuestra calculadora hace exactamente eso, en lugar de multiplicar por el tamaño original como hacen muchos generadores.

Por qué las contraseñas inventadas no tienen entropía

La fórmula solo vale para una elección uniformemente aleatoria. Si la contraseña la inventó una persona, el número de opciones es formalmente el mismo, pero las probabilidades están muy desiguales: palabras del vocabulario habitual, una fecha de nacimiento, un equipo favorito. El atacante recorre primero lo probable y la robustez real cae miles de veces.

Por eso justamente unapassphrase debe salir por sorteo: seis palabras al azar de una lista de 2048 dan exactamente 66 bits, mientras que seis palabras pensadas por una persona valen 25 como mucho.

Calcular tu propia contraseña

Identifica el alfabeto que realmente usaste, multiplica el log₂ de su tamaño por la longitud y tendrás una cota superior. Después resta por palabras de diccionario, fechas y recorridos de teclado. Elstrength checker does the whole calculation for you.

Continuar

Otras herramientas

Copiado