你在 BlindPost 上的身份就是一组 12 个英文单词的助记词。没有手机号,没有邮箱,没有用户名 —— 只有写在一张纸上的 12 个词。
很多人第一反应:"才 12 个词?这能安全到哪去?"
我们来做一下数学题。剧透:暴力破解一个 12 词助记词所需的时间,比宇宙存在的时间还要长很多个数量级 —— 哪怕动用人类历史上所有计算机都不够。
"12 个词"在密码学上到底意味着什么?
这 12 个词不是任意的英文单词,而是从 BIP39 标准定义的 2,048 个固定词汇表里选出来的。BIP39 是比特币、以太坊钱包、以及绝大多数现代加密身份系统通用的工业标准。
词汇表里每个词都被精挑细选,读起来或写下来不会和别的词混淆。表里 2,048 个词,正好是 2^11 —— 也就是说,每个词承载 11 个比特的熵。
12 个词 × 11 比特 = 132 比特熵。BIP39 还包含一个 4 比特的校验和(用于检测拼写错误),实际有效的安全强度是 128 比特。
128 比特熵意味着:
2^128 = 340,282,366,920,938,463,463,374,607,431,768,211,456 ≈ 3.4 × 10^38 种可能的助记词
这是 340 万亿亿亿。换个直观的对比:
- 地球上所有沙子的颗粒数:约 7.5 × 10^18
- 可观测宇宙里的恒星数:约 10^24
- 10 万个地球的所有原子总数:约 3 × 10^50
- 12 词 BIP39 助记词的所有可能组合:约 3.4 × 10^38
助记词的可能组合数比可观测宇宙里所有恒星都多大约 10 万亿倍。
攻击者能多快尝试每一种猜测?
暴力破解不是简单地随机生成组合。每尝试一个猜测,攻击者必须:
- 用 PBKDF2-HMAC-SHA512 进行 2,048 轮的 key 拉伸,从助记词派生出种子
- 从种子派生出加密密钥
- 验证这个密钥是否匹配目标
所以每个猜测花费的算力,远远高于一次哈希运算。即使是专门为助记词破解而优化的 GPU 集群,顶尖攻击者也只能做到大约 每秒 10^9(10 亿)次猜测。
某些团队声称用定制 ASIC 能更快 —— 让我们慷慨一点,假设 每秒 10^12(1 万亿)次猜测,这已经远远超过当前任何实际针对 PBKDF2 派生密钥的破解硬件能达到的速度。
每秒 1 万亿次猜测的话:
所需时间 = 3.4 × 10^38 / 10^12 = 3.4 × 10^26 秒
3.4 × 10^26 秒在人类时间尺度上是多久?
- 宇宙年龄:约 4.35 × 10^17 秒(138 亿年)
- 暴力破解 BlindPost 助记词所需时间:约 7.8 亿倍宇宙年龄
如果你从宇宙大爆炸的那一刻就开始破解,使用比当前快 1,000 倍的硬件,到现在,你只完成了 **0.0000001
BlindPost