diff --git a/bip-0039.mediawiki b/bip-0039.mediawiki index 6fbff6be..a7a56c3f 100644 --- a/bip-0039.mediawiki +++ b/bip-0039.mediawiki @@ -78,7 +78,8 @@ c) sorted wordlists (i.e. implementation can use binary search instead of linear search) - this also allows trie (prefix tree) to be used, e.g. for better compression -The wordlist can contain native characters, but they have to be encoded using UTF-8. +The wordlist can contain native characters, but they have to be encoded in UTF-8 +using Normalization Form Compatibility Decomposition (NFKD). ==From mnemonic to seed== @@ -86,8 +87,8 @@ A user may decide to protect their mnemonic by passphrase. If a passphrase is no present, an empty string "" is used instead. To create a binary seed from the mnemonic, we use PBKDF2 function with a mnemonic -sentence (in UTF-8) used as a password and string "mnemonic" + passphrase (again -in UTF-8) used as a salt. Iteration count is set to 2048 and HMAC-SHA512 is used as +sentence (in UTF-8 NFKD) used as a password and string "mnemonic" + passphrase (again +in UTF-8 NFKD) used as a salt. Iteration count is set to 2048 and HMAC-SHA512 is used as a pseudo-random function. Desired length of the derived key is 512 bits (= 64 bytes). This seed can be later used to generate deterministic wallets using BIP-0032 or