密碼的質量是如何計算的,它是什麼意思?
在使用Keepass並使用它生成隨機密碼時,我一直注意到“質量”部分,但實際上從未知道它的實際含義。
所以我的問題是;
- 多少熵才足夠?
- 多少是矯枉過正?
- 熵實際上如何應用於攻擊者猜測密碼所需的時間長度?
- 熵是如何計算的,我添加一個新字元會如何影響位數?
- 理論最大值是多少?
謝謝!
多少熵才足夠?
對於密碼,真正的 96 位熵就足夠了。畢竟密碼通常會經過一些緩慢的密碼散列,這會顯著增加攻擊的工作量。即使具有超快速驗證功能,96 位也應該是攻擊者無法觸及的。
多少是矯枉過正?
超過 500 位很可能是矯枉過正,即使對於一個實際上不完美的熵源也是如此。如果您的熵是“真實的”(即所報告的實際上是熵),那麼超出 256 位甚至 192 位實際上是沒有意義的。
熵實際上如何應用於攻擊者猜測密碼所需的時間長度?
熵表示字元串1中的不確定性,並以位為單位進行對數測量。因此,如果將熵增加一倍,則字元串的不確定性會增加一倍,因此可以取兩倍的值,這意味著攻擊者必須嘗試兩倍數量的密碼。簡而言之:讓 $ l $ 是實際的熵(以位為單位),則有 $ 2^l $ 可能要嘗試的不同值。
熵是如何計算的,我添加一個新字元會如何影響位數?
我強烈懷疑這個工具要做的是分析密碼中使用的字元集,在字典中查找常用詞,然後猜測熵(通過比較 的熵來嘗試
potat
,potato
後者報告於12 位,前者為 20 位)。熵的上限是$$ \leq{|\Sigma|}^n $$在哪裡 $ \Sigma $ 是工具估計可能出現在您的密碼中的字母表/字元組,並且 $ n $ 是密碼的長度。例如,如果您使用大寫字母,它將包含那些而不是排除它們,如果您沒有大寫字母。
請注意,該工具報告的內容充其量只是一個估計值,由於使用了錯誤的 RNG、實現缺陷或您只是運氣不好並擊中了一個更容易被攻擊者猜到/猜到的字元串,實際熵可能會顯著降低.
理論最大值是多少?
理論上是沒有的。實際上,它可能受到 RAM 大小的限制(因為密碼必須適合其中)。
1實際上是隨機變數的不確定性,但這是細節。