Leo en el blog de Bruce Schneier[1] de nuevo sobre el dispositivo DiceKeys,
un mecanismo para crear y almacenar una clave de 192 bits. El dispositivo no
me convence y muchas de las razones están expresadas en los comentarios al
artículo, la gente que comenta los artículos de Bruce suelen estar bien
informados y opinan con fundamento.
El asunto es que a mi y a otros me ha recordado "Diceware" una página que
apareció hace muuuuchos años para usando unos cuantos dados corrientes
elegir una clave. Se utiliza una lista de 6^5 = 7776 palabras cortas y
fáciles de recordar (al menos si eres inglés), se elige una de ellas tirando
5 dados y consultando en la lista. De esa manera cada palabra son
log(7776)/log(2) = 12.92 bits aproximadamente. Una combinación de cinco
palabras produciría una clave de unos 64.4 bits de entropía. Lógicamente
aumentar el número de palabras aumenta esta cantidad a costa de ser más
larga de escribir (o recordar).
Durante mucho tiempo barajé la posibilidad de escribir mi propia lista de
palabras en español pero soy demasiado perezoso para emprender esa tarea. Ya
hay una lista así en la página pero está llena (a diferencia de la inglesa)
de combinaciones como n57 que son difíciles de recordar y hay palabras muy
similares en la lista. Por cierto la página web de diceware [2] sigue
existiendo y al parecer se ha actualizado este año pero no lo parece.
El criterio creo yo debería ser tener palabras realmente diferentes para que
si dudas puedas buscar en la lista cual podría ser tu palabra (si encuentras
n58 y n57 te puedes ver en un apuro) y las palabras deberían ser cortas y
sencillas para un hablante promedio.
El caso es que ahora tengo ganas de comprarme unos dados de 16 caras para
escribir directamente una clave en hex, lanzando diez dados tengo 80 bits,
si los lanzo 2 veces 160 bits... Eso sí, no es fácil de recordar ni de
escribir.
Yo creo que la solución para una clave maestra sólida es o bien escribirla y
guardar el papel en tu cartera o bien inventar una frase memorable para
nosotros compuesta por cinco o seis palabras. La longitud es demasiado larga
para producirla por fuerza bruta y no hay un método de generar frases al
azar aunque potencialmente no sean tantas. Eso sí, cuando la escribes todos
los días puede resultar pesado.
[1]
https://www.schneier.com/blog/archives/2020/08/dicekeys.html
[2]
https://theworld.com/~reinhold/diceware.html