1 .定义助记符号的生成
使用助记符语句(mnemonic word sequence )作为密码,用几个助记符替换最近直接生成随机数的方式(确定性钱包的种子随机数)。
1.1 .生成步骤
1 )生成128~256位(bits )随机数,称为熵);以128bits为例);
因为正态熵的比特数目必须是32的整数倍,所以熵的长度取值在值位128到256之间的32的整数倍,分别是128、160、192、224和256;
2 )熵checksum计算
对熵进行SHA256散列,提取前4位用作校验数字; (校验码长度=数据全长/32 );
3 )将原始熵和checksum连接到132bits的长度
4 )将132bits的长度以11bits分割为12部分
5 ) .每11bits对应于2048个长度的单词表中的一个单词;
(助记符有2048个词,11位可以搜索词典中的所有词,作为词的索引)
1.2 .随机位数和助记符号个数对应表
校验和=熵长度/32位
助记符号数=(熵和)/11
熵(bits )校验和(bits )熵校验和(bits )助记符的数量为128413212160516515192619818212568264242。 助记符生成主序列(512位,64字节)
BIP39利用PBKDF2函数估计种子。
将散列函数hmac-sha512(key=“mnemonic”,作为盐为passphrase ) 2048作为重复计算的次数
【参考】[1] HMAC算法可以引用' HMAC(2)散列运算消息认证码hmac '