Note-4418-34

Token ID: 1

ERC-721 1 Transfers

Metadata

{
  "title": "助记词越多越安全吗?",
  "tags": [
    "post"
  ],
  "summary": "研究了一下 12 个助记词和 24 个助记词的区别,BIP39 定义了助记词的生成算法,其中生成 12 个助记词的种子随机数 (随机熵) 是 128 位,密码学安全强度为为 2^128, 而 24 个助记词的种子随机数是 256 位,密码学安全强度为 2^256。 因此理论上讲…",
  "sources": [
    "xlog"
  ],
  "external_urls": [
    "https://albert.xlog.app/zhu-ji-ci-yue-duo-yue-an-quan-ma-"
  ],
  "date_published": "2023-05-17T13:04:50.608Z",
  "content": "研究了一下12个助记词和24个助记词的区别,BIP39定义了助记词的生成算法,其中生成12个助记词的种子随机数(随机熵)是128位,密码学安全强度为为2^128, 而24个助记词的种子随机数是256位,密码学安全强度为2^256。\n\n或者从另一个角度理解,从2048个单词库中选择24个助记词的组合是2048^24(与2^256接近),而选择12个助记词的组合是2028^12(与2^128接近),因此理论上讲24个助记词更难暴力碰撞,安全性更高。\n\n这里有一个著名的理论叫生日悖论,是指如果一个房间里有23个或23个以上的人,那么至少有两个人的生日相同的概率要大于50%, 对于60或者更多的人,这种概率要大于99%。\n\n生日悖论对密码学的影响是巨大的。具体来说,当哈希函数的输出长度为n位时,当元素数量达到2^(n/2)时,存在两个元素的哈希值相同的概率大约为50%。也就是说,256位哈希函数的密码学安全强度为其bit位数的一半,即 2^128,这个刚好是12个助记词的密码学安全强度,而目前大多数公链在交易签名之前使用的哈希函数是256位。\n\n如果攻击者能够找到两个不同的输入数据,它们的哈希值相同,那么攻击者就可以利用这个漏洞在交易签名环节进行碰撞攻击,比如拿已经上链的转帐交易,碰撞哈希值(对原交易做一些修改,比如修改转帐的接收地址)制造假的交易。\n\n与其去碰撞助记词,不如碰撞交易的哈希值(当然这2种都几乎不可能)。\n\n所以并不是助记词越多越安全,12个助记词刚好是足够的,其密码学安全强度是2^128,再增加助记词的数量并不能提高密码学安全强度。更多的助记词反而会增加保存的难度。",
  "attributes": [
    {
      "value": "zhu-ji-ci-yue-duo-yue-an-quan-ma-",
      "trait_type": "xlog_slug"
    }
  ]
}