La entropía es una medida estándar de la complejidad de la generación de una contraseña. La manera estándar de calcular la entropía es tomar la probabilidad p de una contraseña que se está generando y tomar la suma de p * log2 (p) para cada contraseña en el conjunto de contraseñas posibles. Esta entropía mide la complejidad en función de cómo se genera la contraseña o un ataque en el peor de los casos (por ejemplo, no estamos tratando de calcular la entropía de rodar 6,2,6,3 en un dado cargado, sino la entropía de la distribución que llevó a esos números son enrollados). La entropía aquí no mide cómo la contraseña resistiría la fuerza bruta, etc.
Sin embargo, para las contraseñas con patrones (distribución no uniforme) la entropía de Shannon no es una medida precisa de capacidad de adivinación, ya que dos números aleatorios pueden tener la misma entropía pero uno puede actuar de manera mucho más predecible si tienen diferentes distribuciones. Cuando las entropías son similares, la distribución con la distribución menos uniforme (la que parece menos aleatoria) siempre es menos segura.
Por ejemplo, considera los siguientes esquemas con la misma entropía de Shannon pero con diferentes niveles de seguridad: lanza una moneda repetidamente y cuenta la cantidad de colas que obtienes, deteniéndote cuando salga primero la cara. En cuanto a la distribución de probabilidad, los números generados aquí tienen una entropía de Shannon de 2 bits. ¡Genial! Eso significa que este esquema es tan seguro como dos lanzamientos de monedas independientes, ¿verdad? No exactamente. Si lo piensa, el 50% de los números generados en el primer esquema son 0 (encabezados en el primer giro), y tiene un total de 1/3 de probabilidad de que dos usuarios obtengan el mismo resultado al usar el esquema. Por otro lado, dos tiradas de moneda independientes dan una probabilidad de 1/4 de producir cada número, con un 25% de probabilidad de que dos usuarios obtengan el mismo resultado. (La matemática para calcular la probabilidad de tal colisión no es complicada, pero requiere que conozca la frecuencia de cada posibilidad, como se explica aquí ). Entropy da una cifra engañosa para la seguridad del primer esquema.
¿Qué sucede cuando se genera una contraseña utilizando un proceso aleatorio que no usa una distribución uniforme, o una distribución que no es fácil de describir o asignar a resultados igualmente probables, como por ejemplo:
- Un esquema para escoger frases largas tomadas de un gran corpus inglés
- Un esquema para generar una contraseña basada en mnemotécnica
- Tirar un dado cargado 15 veces
¿Cómo compara la fuerza de las contraseñas aleatorias pero no uniformemente generadas como estas con las contraseñas generadas a partir de distribuciones uniformes? ¿Se aplica la entropía? ¿Es algo más un sustituto ampliamente aceptado? En mis experimentos, la entropía no es completamente precisa, pero aún así ofrece una estimación aproximada de la fortaleza de la contraseña.
Tampoco estoy preguntando cómo se calcula la entropía (ya lo dije anteriormente), si aplicamos la entropía a la contraseña individual o la distribución, o sobre la entropía de las contraseñas compuestas de forma no aleatoria por los usuarios. A diferencia de la respuesta que dice que todo se reduce a "en qué diccionario se encuentra su contraseña" (que se cita como una razón para ser un duplicado), esta pregunta asume que la distribución no es uniforme, o en otras palabras, cada contraseña no es igualmente probable. Tampoco estoy preguntando acerca de la seguridad de estos sistemas y soy consciente de que los patrones hacen que las contraseñas sean más débiles. Estoy tratando de entender la mejor manera de cuantificar la seguridad de estos esquemas para responder a preguntas como este .
Nota: Esta pregunta se cerró como un duplicado, aunque parte de esta pregunta no se aborda con precisión mediante las respuestas vinculadas (por ejemplo, ¿cómo se calcula la fuerza de una frase de contraseña de 4 palabras donde el ¿La frase está tomada del corpus de COCA?) He editado la pregunta para abordar estos puntos. Si cree que esta pregunta debería volver a abrirse, vote para reabrirla, y si cree que esta pregunta sería mejor si fuera más específica, dígalo.