From 041f51c2fffcee067b5fe61f544d686e0f2b0ecb Mon Sep 17 00:00:00 2001 From: slush0 Date: Fri, 7 Feb 2014 21:01:10 +0100 Subject: [PATCH] Usage of UTF-8 NFKD --- bip-0039.mediawiki | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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