Passwords
就熵而言,可發音的密碼有多安全?
有一些強有力的研究支持使用可發音的密碼和提供此類密碼生成的多種 工具。
根據這個問題,密碼的熵取決於它的生成方法,但我如何確定我生成的可發音密碼有足夠的熵供我使用?(例如,在 pwgen 開源軟體的情況下)
以下是用於生成可發音密碼的虛擬碼。然而,這可能是最簡單的解決方案,我對現有的“傳統”方法很感興趣。
vowels = A, AI, AU, E, EA, EE, I, IA, IO, O, OA, OI, OO, OU, U consonants = B, C, CH, CL, D, F, FF, G, GH, GL, J, K, L, LL, M, MN, N, P, PH, PS, R, RH, S, SC, SH, SK, ST, T, TH, V, W, X, Y, Z theLastOneIsAVowel = True while length(strPassword) < Minimum_Length do if theLastOneIsAVowel then strPassword = strPassword + randomElementOf(consonants) else strPassword = strPassword + randomElementOf(vowels) endif theLastOneIsAVowel = ~(theLastOneIsAVowel) endwhile
是的,熵取決於生成過程。您連結到的研究具有那裡使用的(固定)過程的答案:
為了克服這個
$$ flaw in the original program $$,我們生成了完整的八字元可發音密碼列表(≈12 億),並以相等的機率分配該列表中的每個密碼,從而產生 30.2 位的熵。
這相當於五個 base 64 字元。即,與使用隨機 base 64 密碼相比,通過使密碼可發音,您每個字元損失了大約 2.25 位的熵。
然而,就像他們使用的實現一樣,該算法可能存在缺陷,並且不會以相等的機率生成所有可能的可發音密碼。在那種情況下,你會失去更多的熵。所以我會在依賴它之前仔細檢查程序。