你在 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