He estado pensando en cómo generar frases de contraseña aleatorias de un diccionario público de palabras (similar a las frases de contraseña de XKCD / Diceware).
Una cosa en particular en la que estaba pensando es que la longitud de tal frase de paso filtrará mucha información sobre la frase (suponiendo que el diccionario contenga palabras de longitud variable, como parece hacer la mayoría de las listas de software de dados). Si tengo una lista de 1024 palabras, la generación de una frase aleatoria de cinco palabras debería proporcionar 50 bits de entropía si la longitud está oculta. Sin embargo, digamos que la longitud no está oculta y que solo hay 128 palabras de longitud tres (y ninguna de longitud uno o dos) en el diccionario. Ahora digamos que sabemos que una frase de contraseña tiene 15 caracteres. Luego, una frase de contraseña de cinco palabras de longitud 15 solo podría producirse a partir de esas 128 palabras de longitud tres que dan una entropía mucho menor de 35 bits.
Me pregunto si esta pérdida de entropía es algo de lo que debería preocuparme.
En particular, me interesa saber si es justo suponer que alguien que rompe una contraseña no conoce la longitud de la frase. Dicho de otra manera, ¿es razonable suponer que en la mayoría de los sistemas comunes la longitud de la frase está oculta para un atacante potencial?
Si no, ¿los generadores de frase de contraseña lo toman en cuenta de alguna manera?
Debo agregar que pregunto porque no estoy tan familiarizado con la forma en que se protegen las contraseñas / frases. Sin embargo, supongo que a menudo se envían a un servidor de forma cifrada y, por lo que sé, el cifrado no necesariamente protege la longitud del texto sin formato.
Esto no es similar a las preguntas sobre revelar la longitud de la contraseña. Esto se debe a que cada carácter en una contraseña es de la misma longitud (a saber, 1). Sin embargo, en una frase de contraseña, el equivalente de un carácter es una palabra del diccionario. Suponiendo que estas palabras tienen diferentes longitudes, la longitud de toda la frase de contraseña revelará qué tipos de palabras se usaron. En el ejemplo anterior, una contraseña de longitud 15 revela que solo se usaron palabras de longitud 3. Para una contraseña, esto es equivalente a algo como revelar que solo las letras a, b, c, d, e, f, g, h, i y j se utilizan para generar la contraseña.
También leí la pregunta sobre la seguridad de las contraseñas de estilo XKCD, pero en la medida en que no veo ninguna de las respuestas a este problema.