3.2.2通過助記詞生成種子(BIP39標準)
助記詞由長度為128到256位的隨機序列(熵)匹配詞庫而來,隨后采用PBKDF2(Password-Based Key Derivation Function 2)推導出更長的種子(seed)。生成的種子被用來生成構建deterministic Wallet和推導錢包密鑰。
在密碼學中,Key stretching技術被用來增強弱密鑰的安全性,增加了暴力破解 (Brute-force attack)對每個可能密鑰嘗試攻破的時間,增強了攻擊難度。各種編程語言原生庫都提供了key stretching的實現。PBKDF2是常用的 key stretching算法中的一種。基本原理是通過一個為隨機函數(例如 HMAC 函數),把明文和鹽值作為輸入參數,然后重復進行運算最終產生密鑰。
如圖3.5所示:
1)PBKDF2有兩個參數:助記詞和鹽。鹽的目的是提升進行暴力攻擊時的困難度,可以參見BIP-39標準。鹽由字符串常數“助記詞"與可選的用戶提供的密碼字符串連接組成;
2)PBKDF2使用HMAC-SHA512作為隨機算法+2048次哈希重復計算,最終得到BIP32 種子,512 位(64字節)是期望得到的種子長度。即DK = PBKDF2(PRF, Password, Salt, c, dkLen),其中,PRF是一個偽隨機函數,例如HASH_HMAC函數,它會輸出長度為hLen的結果;Password是用來生成密鑰的原文密碼;Salt是一個加密用的鹽值;c是進行重復計算的次數;dkLen是期望得到的密鑰的長度;DK是最后產生的密鑰。

版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。