揭秘助记词中随机数生成的门道

要点总结
助记词由 BIP-39 标准定义,本质是从随机数“翻译”成单词序列
随机数的生成方式分为伪随机(PRNG)与真随机(TRNG)两种
伪随机依赖算法与种子,可被预测;真随机则取样于物理噪声
硬件钱包通过 SE 安全芯片的 TRNG 模块实现真正随机性
OneKey 使用通过 EAL6+ 安全认证的 SE 芯片,并符合 NIST / FIPS 标准
软件钱包端调用操作系统安全模块,确保随机数同样达标
“越随机,越安全”:这是加密工程学的底层真理
近日,加密社区再次热议一起「旧案」。
Milk Sad 研究员披露,早在 2020 年底,一个与矿池 Lubian.com 相关的钱包集群在短短两小时内被清空,
13 万多枚比特币消失殆尽,价值超过 30 亿美元。
原因钱包在生成私钥时使用了有缺陷的伪随机算法,攻击者通过暴力破解推算出了所有私钥。
「助记词是怎么生成的?」
当你创建一个新的钱包时,屏幕上出现的那串 12 或 24 个单词,并不是随机挑的。它们是钱包按照一套规则,从一段纯随机数中「翻译」出来的结果。这套规则叫 BIP-39,几乎所有主流钱包都在用。
首先,钱包会在本地生成一段随机数,长度一般是 128 到 256 位。这段随机数就像钱包的「基因」,所有私钥和地址都是从它推算出来的。
接着,钱包会给随机数加上一个短校验码,用来防止输入错误。做法是:把随机数通过 SHA-256 哈希算法「包裹」一遍,取结果的前几位字符,并拼到随机数的末尾。
可以把它想象成我们日常看到的身份证最后一位校验码:身份证前 17 位是你的出生年月、地区编码等,最后一位则是根据前面数字计算出来的「校验」。
最后一步是将处理过随机数以每 11 位为长度进行切割,并分别转化为一个 0-1023 以内的数字,再从字典表中找出对应的单词作为助记词。可以把随机数看成一个超长的数字串,钱包把它切成一段一段,每一段都查词表找对应的单词,最后拼成一句你能读懂的话。
「助记词的随机性来自哪里?」
助记词的核心是那段随机数。如果那串随机数能被预测,钱包的安全也就不复存在。
所以,问题的关键是——这些随机数究竟从哪里来?
在计算机世界里,随机数分两种:伪随机数(PRNG) 和 真随机数(TRNG)。
它们的区别,就在于「有没有足够密码学强度的随机性」。
伪随机数是「算」出来的。
程序先给自己一个起点,叫作「种子 seed」,再按照固定算法算出一串看似杂乱的数字。
如果你用同样的算法和同样的种子重新运行一次,结果会一模一样。
这在普通应用里没问题,比如游戏掉宝或数据模拟,但在加密世界却是灾难。
因为只要有人能猜出算法或种子,就能把你的「随机数」完全重现。这类问题在历史上真发生过,比如一些钱包使用了错误的随机算法,攻击者从算法特征中推算出了私钥,造成巨额损失。
真随机数则完全不同。
它不仅是「算」出来的,而是「测」出来的——直接从物理世界中取样。
例如电子噪声、晶体振荡的轻微抖动、电压波动、热噪声……
这些微小变化没有任何可预测的规律,就像自然界的混沌。 真随机数生成器(TRNG)会用专门的电路去采集这些微小的物理信号,比如电流的噪声或晶体的轻微抖动。
但原始信号也可能带着一点点规律或偏差,所以芯片会再进行处理,把这些细微的不平衡「搅拌」得更彻底、更平均,生成一个真随机的序列。
硬件钱包中的助记词生成就是基于经过 EAL6+ 高规格安全认证 SE 中的 随机数生成器。
「硬件钱包如何做到纯粹的随机性?」
要理解硬件钱包的安全,就得从它最底层的「物理随机」说起。在一台硬件钱包里,有一颗专门负责安全的芯片,叫安全芯片(Secure Element, SE)。它和普通的主控芯片不同,是为防篡改、防攻击而设计的独立模块,广泛应用在银行IC卡、SIM卡和电子护照等对安全要求极高的场景中。
在这颗安全芯片里,有一个核心的小模块,叫真随机数生成器(TRNG)。它可以直接从物理世界里「抓」出随机,也可以结合满足 FIPS / NIST (两个美国国家级安全标准体系)的算法去生成一个真随机数。
芯片内部有一堆极其敏感的电子电路,会捕捉像电流噪声、微小振动这种连人都察觉不到的波动。这些信号天生混乱、无法预测,就像你录下一段风声——每一秒都不一样。
芯片会把这些「风声」再搅拌几遍,去掉可能存在的微小规律,最后留下的,才是一串真正随机、谁也无法预料的数字。这一切都在芯片的封闭环境中完成,不依赖电脑或手机,外界也无法干预。
你可以把它想成一个装在保险柜里的「掷骰子机」。每当钱包需要生成助记词时,这台机器就在保险柜里自动摇骰子、记录结果、再锁上柜门。
从助记词的第一位开始,它就诞生在一个外界无法进入的安全空间里。
「OneKey 是怎么做的」
在随机数这件事上,OneKey 选择了最底层、最硬核的方案。
在硬件钱包 上,新款 OneKey 采用了带有 EAL6+ 级安全认证的安全芯片。它的真随机数生成器(TRNG)完全符合密码学安全要求。
旧款 OneKey 设备的设计也延续了同样的理念。它使用主控芯片(MCU)内置的 TRNG 模块生成随机数,并经过了符合 NIST SP800-22 和 FIPS 140-2 标准的随机性测试。这些标准是密码学领域的「金尺子」,用来检验一个随机数序列是否真的没有规律、无法预测。
而在软件钱包这边,OneKey 也没有掉以轻心。不管是桌面端、浏览器插件,还是手机 App,它们在生成助记词时都会向设备本身「借」随机数——不是自己写算法去算,而是直接调用操作系统的安全模块。
举个例子,当你在电脑上用 OneKey 创建钱包时,程序会让系统来帮忙「摇骰子」。macOS、Windows 都内置了专门的加密级随机引擎,它们平时会不断从各种来源收集噪声:键盘输入、时钟抖动、网络延迟……这些杂乱的信息混在一起,就成了高质量的随机源。手机也同理。或者如果硬件本身就支持了 TRNG 模块,那么也可以直接拿来用。
总而言之,即便是在普通设备上,也能保证随机性达到加密级的安全标准。
「End」
加密安全从不是玄学,而是工程学。
对于助记词来说,越随机,越混沌,越安全!






