Ho pensato a come generare passphrase casuali da un dizionario pubblico di parole (simile alle passphrase XKCD / Diceware).
Una cosa in particolare a cui stavo pensando è che la lunghezza di tale passphrase perderà molte informazioni sulla frase (supponendo che il dizionario contenga parole di lunghezza variabile, come la maggior parte delle liste diceware sembrano fare). Supponiamo di avere una lista di 1024 parole, quindi generare una frase casuale di cinque parole dovrebbe fornire 50 bit di entropia se la lunghezza è nascosta. Tuttavia, supponiamo che la lunghezza non sia nascosta e che ci siano solo 128 parole di lunghezza tre (e nessuna di lunghezza una o due) nel dizionario. Ora dì che sappiamo che una passphrase è di 15 caratteri. Quindi una passphrase di cinque parole di lunghezza 15 potrebbe essere prodotta solo da quelle 128 parole di lunghezza tre che danno un'entropia molto più bassa di 35 bit.
Mi chiedo se questa perdita di entropia sia qualcosa di cui dovrei preoccuparmi.
In particolare, mi interessa sapere se è giusto ipotizzare che qualcuno che infrange una passphrase non conosca la lunghezza della frase? In altre parole è ragionevole presumere che nei sistemi più comuni la lunghezza della frase sia nascosta a un potenziale aggressore?
In caso contrario, i generatori di passphrase lo prenderanno in considerazione in qualche modo?
Dovrei aggiungere che chiedo perché non sono così familiare con il modo in cui le password / frasi sono protette. Tuttavia, presumo che vengano spesso inviati a un server in qualche forma crittografata e, per quanto ne so, la crittografia non protegge necessariamente la lunghezza del testo in chiaro.
Questo non è simile alle domande sulla rivelazione della lunghezza della password. Questo perché ogni carattere in una password ha la stessa lunghezza (in particolare 1). In una passphrase, tuttavia, l'equivalente di un carattere è una parola del dizionario. Supponendo che queste parole abbiano lunghezze diverse, la lunghezza dell'intera passphrase rivelerà quali tipi di parole sono stati usati. Nell'esempio sopra una password di lunghezza 15 rivela che solo le parole di lunghezza 3 sono state utilizzate. Per una password questo è equivalente a qualcosa di simile a rivelare che solo le lettere a, b, c, d, e, f, g, h, i e j dove usate nel generare la password.
Ho letto anche la domanda sulla sicurezza delle password in stile XKCD, ma per quanto posso vedere nessuna delle risposte risolve questo problema.