如果我更改隨機 2 個單詞,在電子郵件中儲存助記符種子是否安全?
如果我在 gmail 和我的手機等電子郵件中儲存 12 個單詞的種子,但將種子中的第 3 和第 7 個單詞更改為其他 bip-39 單詞並記住它,那會安全嗎?我想不出一種方法讓某人能夠有效地暴力破解它。
一個 12 字的 BIP-39 助記符編碼 132 位、128 個編碼數據和 4 個校驗和位。每個字代表一個 11 位段。
假設攻擊者知道您更改了其中兩個單詞。我們還假設您沒有更改最終單詞,因此校驗和仍然有效。
這意味著攻擊者需要列舉從 1 到 11 選擇兩個單詞位置的所有組合,然後列舉每個位置中單詞的所有可能性。這是:
$$ {11 \choose 2} \cdot 2^{11} \cdot 2^{11} = 230,686,720 $$
他們將需要計算這麼多 SHA-256 雜湊來驗證每個雜湊的校驗和,儘管只有大約 $ 1/2^4 $ (6.25%) 將有匹配的校驗和。為他們留下大約 14,417,920 個候選編碼數據。
任何攻擊者都應該能夠用相當少的時間和記憶體計算這些候選者:
$$ \frac{14,417,920\text{ candidates}\cdot 128\text{ bits}}{8\text{ bits/byte}\cdot\ 2^{20}\text{ bytes/MB}} = 220\text{ MB} $$
即使我們假設攻擊者會花一秒鐘的時間來驗證每個候選者是否映射到他們關心的東西(例如確定它是否在給定係統中使用),他們仍然能夠在 167 中通過這個完整列表天 ( $ 14,417,920/60/60/24 $ ) 我們應該期望他們平均會在一半的時間內找到您的原始價值。在編碼數據是加密貨幣中使用的私鑰的情況下,他們可能能夠比這更快地執行這些檢查。
如果我們將您要修改的單詞數量增加到某個數量, $ k $ ,這變成:
$$ {11 \choose k} \cdot (2^{11})^k \le 462 \cdot (2^{11})^k \lt 2^9 \cdot (2^{11})^k = 2^{11k + 9} $$
因此,為了獲得相當於 96 位的安全性,您需要修改為:
$$ 11k+9 = 96 $$ $$ k \approx 7.9 \rightarrow 8\text{ words} $$
您需要更好的方法來保護您的密鑰。