Keys
在 BIP-39 中不允許重複時的攻擊向量差異
我們正在使用一個 12 字方案 BIP-39 助記密鑰生成方案,該方案創建一個 128 位的熵,然後用於生成一個種子,該種子反過來為使用者派生一個私鑰。它從 2048 個單詞中隨機選擇 12 個單詞。
有 $ 2048^{12} = 5.444518 \cdot 10^{39} $ 形成種子熵的組合。
該方案允許重複單詞。一些使用者對此感到惱火併寫電子郵件支持,我想知道只允許唯一的單詞會失去多少熵。
那將是 $ \frac{2048!}{(2048-12)!} = 5.271538 \cdot 10^{39} $ 變化。
總之,後一種解決方案只有 $ \frac{5.271538 \cdot 10^{39}}{5.444518 \cdot 10^{39}} \approx 96.8% $ 可能的種子數比非唯一的種子數多。
這在數學上是否正確,並且鑑於使用者友好性的提高,這對安全性的影響是否可以忽略不計?
對安全性沒有影響。
種子組合可能比您輸入的 128 位密鑰具有更多的熵。假設您用於將 128 位密鑰轉換為 12 字種子的函式是單射的,那麼您甚至無法使用您擁有的密鑰空間訪問所有可能的種子,因為 $ 2048^{12} \gg 2^{128} $ .
從一組 2048 個單詞中挑選的 12 個隨機單詞的熵是 $ \log_2(2048^{12}) = 132 $ 位。如果你只允許唯一的詞,它是 $ \log_2(\frac{2048!}{(2048-12)!}) \approx 131.95 $ 位。這些大於 128。