Albert

Albert

twitter

助記詞越多越安全嗎:12助記詞 VS 24助記詞

研究了一下 12 個助憶詞和 24 個助憶詞的區別,BIP39 定義了助憶詞的生成演算法,其中生成 12 個助憶詞的種子隨機數(隨機熵)是 128 位,密碼學安全強度為 2^128,而 24 個助憶詞的種子隨機數是 256 位,密碼學安全強度為 2^256。

或者從另一個角度看,從 2048 個單詞庫中選擇 24 個助憶詞的組合是 2048^24(與 2^256 接近),而選擇 12 個助憶詞的組合是 2028^12(與 2^128 接近),因此理論上講 24 個助憶詞更難暴力碰撞,安全性更高。

但是有一個著名的理論叫生日悖論,是指如果一個房間裡有 23 個或 23 個以上的人,那麼至少有兩個人的生日相同的概率要大於 50%, 對於 60 或者更多的人,這種概率要大於 99%。

生日悖論對密碼學的影響是巨大的。具體來說,當雜湊函數的輸出長度為 n 位時,當元素數量達到 2^(n/2) 時,存在兩個元素的雜湊值相同的概率大約為 50%。也就是說,256 位雜湊函數的密碼學安全強度為其 bit 位數的一半,即 2^128,這個剛好是 12 個助憶詞的密碼學安全強度,而目前大多數公鏈在交易簽名之前使用的雜湊函數是 256 位。

如果攻擊者能夠找到兩個不同的輸入數據,它們的雜湊值相同,那麼攻擊者就可以利用這個漏洞在交易簽名環節進行碰撞攻擊,比如拿已經上鏈的轉帳交易,碰撞雜湊值(對原交易做一些修改,比如修改轉帳的接收地址)製造假的交易。

也就是說,這裡最薄弱的環節不在助憶詞或者私鑰,而在於交易簽名的雜湊演算法部分(或者說二者是難度差不多);攻擊者與其去碰撞助憶詞,不如碰撞交易的雜湊值(當然這 2 種都幾乎不可能)。

所以並不是助憶詞越多越安全,12 個助憶詞剛好是足夠的,其密碼學安全強度是 2^128,再增加助憶詞的數量並不能提高密碼學安全強度。更多的助憶詞反而會增加保存的難度。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。