BIP39二进制查找表,安全偏执狂专用
霸王杰哥
发表于 2023-1-14 04:34:21
63
0
0
BIP39单词表经过特别设计,仅需前4个字母就可以确定一个单词,所以这张表里只填入了前4个字母。
BIP39单词表一共2048个单词。2048=2^11,也就是说,每个单词的序号(因为一般情况下序号从1开始,所以需要减去1才能变成从0开始)可以用11bit表示。在这张表中,前5bit确定行号,后6bit确定列号。
换句话说,每抛11次硬币,就可以确定一个单词:前5次确定行号,后6次确定列号。
抛128次硬币,就可以生成一组由12单词构成的助记词。
抛256次硬币,就可以生成一组由24单词构成的助记词。
红、橙、黄、绿、蓝、紫,这六色分隔线分别对应行号或列号的第1、2、3、4、5、6位。
(从高位到低位)第1位是0,表示单词位于红线的左侧或上侧;第1位是1,则表示单词位于红线的右侧或下侧;
第2位是0,表示单词位于橙线的左侧或上侧;第2位是1,则表示单词位于橙线的右侧或下侧;
……以此类推
不过,抛硬币后,光靠这张表,不依赖计算机,不能完全确定助记词中的最后一个单词,只能知道一个范围。
比如12单词可以表示132bit,比128bit多出4bit的校验码,校验码是从前128bit推算(哈希后取前4bit)出来的,这个还是要靠计算机去算。
也就是说,对于12单词助记词来说,最后一个单词只能找到一个范围,能确定它在某一行,然后这一行被红线和橙线分为4段,每一段有16个单词,只能确定它在哪一段里,不能确定是16单词中的哪一个。
同理,24单词有8bit的校验码,所以连行号都不能完全确定。这个表格一共32行,被红线、橙线、黄线分为8段,每一段有4行,只能确定在哪一段里,不能确定是4行×64单词=256个单词中的哪一个单词。
成为第一个吐槽的人