比特币Bip-39字典有2048个单词。他们中的24人在一起很安全。如果源更大(语言中的所有单词),但只有7-8个单词,怎么办?这些词将完全由他们的索引随机选择。
发布于 2019-12-28 13:34:45
拥有2048个单词的比特币Bip-39字典可以通过掷硬币256次随机选择单词来创建\approx 2^{263}-entropy。随机比特被转换为24个11位块,每个块通过ID映射到2048个单词中的一个,由于随机选择允许重复,所以我们需要n^r而不是P(n,r);
如果我们假设英语有171,476个单词。再用8个字;
因此,171476^{8} \approx 7.475267765296064\mathrm{e}{+41} \approx 2^{139}.会有更低的熵,也就是Bip-39。7字;
因此,171476^7 \approx 4.3593667716158903\mathrm{e}{+36} \approx 2^{121}.的熵比Bip-39要低。
正如人们所看到的,Bip-39中的选择2048和24显然是为了达到2^{264}熵。如果你用16个单词作为密码(正如丹·尼利所指出的)
171476^{16} \approx 5.587962816287441\mathrm{e}{+83} \approx 2^{278}.将淘汰Bip-39.15个单词到达3.258743390496303\mathrm{e}{+78} \approx 2^{260}。
它还被认为是安全的吗
是的,它仍然是安全的,超出了任何集体力量的范围,就像比特币矿商的总实力一样,他们在一年内可以达到2^{92}双SHA256哈希。
注:我以前经常周旋。我已经决定使用完整的数字,因为这至少改变了一点。所以,这里是Python;
import math
def prinPowInBase2(b,p):
print(b,"^",p)
print("\t", math.pow(b,p))
print("\t", math.log2(math.pow(b,p)+1))
print("\t", math.floor(math.log2(math.pow(b,p)+1)))
prinPowerInBase2(2048,24)
发布于 2019-12-28 14:04:32
是的,7-8个单词是随机挑选出来的,这是一个强密码.
首先,我们应该考虑什么是强密码,我们根据密码中熵的大小来衡量产生密码的方法的强度。XKCD方法https://xkcd.com/936/使用4个随机的公共词,有44位熵。这被认为是一个合理的妥协,如果你想要一个难忘的密码。
如果你不想依赖PBKF,你可能需要更多的熵。随机的15个字符从64个可能值的字母表(例如大写大写、小写数和一些更多的字符)将给你90位熵,这是非常强的。
从一个质量好的字典中抽取8个随机单词,加上50K个单词,你就会得到几乎124位的熵。
有了完整的牛津词典,你就可以得到170 K个单词,甚至其中7个会给你121个熵。
所提到的BIP方法有264位,这是更多,但我们几乎不需要为一个密码。即使是来自密码管理器的不值得记忆的密码,通常也不会达到如此高的程度。
https://crypto.stackexchange.com/questions/76701
复制相似问题