为什么私钥生成中的熵源至关重要

Author logo
Patrick Dike-Ndulue
Post image

你知道吗?比特币私钥其实就是一个 256 位的数字。这意味着可能的组合有 2^256 种之多——这个数字甚至远超可观测宇宙中的原子总数。
Private keys are the linchpin of cryptocurrency security, serving as the cryptographic equivalent of a master password for your digital assets. Their security relies heavily on randomness or entropy, which is crucial in generating them. Entropy is measured in bits, quantifying a system's degree of randomness or uncertainty.

为了让你直观感受随机性的重要性,举个例子:私钥生成时如果熵不足,曾导致过严重漏洞甚至被黑客攻击。2024 年,因私钥被攻破而造成的损失超过 2.39 亿美元,足以说明高质量熵源对于密钥安全至关重要。

那么,如果比特币私钥只是一个数字,超级计算机用暴力破解需要多久?请继续阅读,答案将在文末揭晓。

什么是熵?

熵是衡量随机性或不可预测性的指标,对于生成安全的密码学密钥至关重要。这个概念源自信息论,熵用来量化系统中的不确定性。简单来说,事物越难预测,熵就越高。

高熵对于加密货币的私钥来说非常重要,因为它保证密钥几乎不可能被猜测或暴力破解。这种随机性通常来自多种来源,包括硬件事件、环境噪音,或用户的鼠标移动、键盘输入等操作系统收集的不可预测事件,最终生成真正的随机数,为安全私钥打下基础。

如果熵不足,生成的密钥可能变得可预测,从而容易受到攻击。例如,如果熵源存在缺陷,可能会反复生成相同或类似的结果,攻击者就有可能预测或重建私钥。

由于随机性极为关键,即使是云平台、虚拟机等复杂系统也会采用专用硬件,确保加密操作有可靠的高质量熵源。

熵是如何工作的?

在硬件钱包中,熵对于生成安全私钥至关重要。其工作原理如下:

熵源

像 Tangem Wallet 这样的硬件钱包配备专用的硬件随机数发生器(HRNGs),通过测量电子噪声、热变化等物理现象来生成随机性。这些原始熵为生成不可预测的私钥提供了基础。
部分硬件钱包还允许用户通过掷骰子等方式手动输入随机数据,参与熵的生成。虽然用户参与的熵和硬件熵混合有时对熵的质量影响有限,但作为趣味补充无妨。

密钥生成

当收集到足够的熵后,钱包会用它来生成私钥。这个过程通常会结合 SHA-256 等密码学算法,生成 256 位密钥。许多硬件钱包采用 BIP39 标准,将熵转换为一串 12-24 个单词的助记词。助记词可用于恢复私钥。

流程安全性

钱包固件会确保熵被充分混合,防止可预测性。随后,私钥会被安全地存储在设备内部的防篡改环境中。这也是大多数硬件钱包配备 CC 认证安全芯片的原因。Tangem 的固件还曾由 Kudelski Security 和 Riscure 两家独立安全机构进行过两次全面审计。
通常,硬件钱包会将熵生成和密钥存储与设备其他操作隔离开来,从而最大限度降低被恶意软件等外部威胁攻击的风险。

备份与恢复

通过熵生成的助记词可以手写下来妥善保存。如果设备丢失或损坏,这组助记词就是恢复钱包的关键。助记词本身包含了用于生成密钥的熵,因此也是一种安全的备份方式。

硬件钱包依赖高质量熵,确保生成的私钥安全且抗攻击,是存储加密资产最安全的方式之一。

为什么熵如此重要?

由于熵和恢复短语本质上包含相同信息,只是形式不同,因此你的熵必须像恢复短语一样严格保密。换句话说,任何获取你熵的人都能访问你的整个钱包!

正如助记词可以让他人掌控你所有私钥及钱包下的全部账户,熵也同样如此。因此,必须确保熵足够随机且难以推算,这对安全至关重要。

你肯定不希望有人猜到你的熵,从而盗取你的资金吧?这正是熵必须极难被猜中的原因。它应该足够随机,使得猜测序列或遇到相同组合的概率在统计上几乎为零。

如果熵很容易被猜到,黑客就可能利用这一点窃取你的资产。因此,选择重视熵源的加密钱包极为重要。
 

理解熵与助记词

助记词的随机性对安全至关重要。如果手动挑选单词或使用可预测的模式,会极大削弱钱包的防御力。Tangem 采用基于熵的方法,确保了对抗各种攻击所需的高随机性。

虽然 Tangem 提供了安全熵生成的工具,但保护助记词的责任在你自己。切勿将助记词泄露给任何人,包括 Tangem 官方。助记词是你数字资产的钥匙,其保密性决定了钱包的安全。
 

Trust Wallet 漏洞:熵的重要性

选择加密钱包时,必须关注钱包如何生成随机性。2022 年 Trust Wallet 的安全事件,很大程度上就是因为熵生成方式可预测。

SecBit 在其博客中对该漏洞进行了深入研究和解析:Trust Wallet's Fomo3D Summer: Fresh Discovery of Low Entropy Flaw From 2018。我们在此简要总结要点:

Trust Wallet 的 iOS 平台依赖 trezor-crypto 库生成 BIP39 助记词。该库包含本不应在生产环境中使用的示例代码,并明确标注仅供测试,不能用于实际环境。

  1. 代码主要包含两个部分:random32() 和 random_buffer()。
  2. random32()
    - 该部分用于生成随机数,但安全性很低。
    - 它以当前时间为种子生成随机数。
    - 问题在于,如果知道大致生成时间,攻击者可能推算出结果。
    - 更糟的是,如果两个人在同一秒生成随机数,他们得到的“随机”数完全相同。
  3. random_buffer()
    - 该部分负责填充随机字节(数据单元)。
    - 它调用 random32(),因此存在同样的安全隐患。
  4. 主要问题
    - 这段代码被用于生成助记词,从而访问用户的加密钱包。
      - 由于随机性不足,黑客比正常情况下更容易猜中助记词。
      - 攻击者无需从数百万种可能中猜测,只需在几千种(基于生成时间)中尝试即可。
  5. 错误做法
      - Trust Wallet 忽略了警告,仍然采用了该代码。
      - 这导致用户钱包助记词的熵极易被重现,远低于应有安全性。

Trust Wallet 最近的安全事件再次提醒我们,强熵生成对于加密钱包安全有多么重要。Trust Wallet 最终通过赔偿用户损失来解决了问题。

Tangem Wallet 如何生成熵

Tangem Wallet 从熵生成环节就为你的加密资产提供坚实的安全保障。钱包采用经过权威认证的真随机数发生器,并由独立专家严格测试,确保生成的数字不可预测,有效防止潜在攻击。

暴力破解比特币私钥需要多久?

要回答这个问题,我们先拆解一下整个过程和规模:

比特币私钥确实只是一个数字,但它极其庞大。具体来说,是一个 256 位的数字,也就是有 2^256 种可能的私钥。

即便用现今最强大的超级计算机,暴力破解比特币私钥所需时间也几乎无法想象,远远超过宇宙的年龄。

 

假设超级计算机每秒能检测 1 万亿(10^12)个密钥,找到一个私钥平均仍需 3.67 × 10^57 年。而宇宙的年龄约为 138 亿年(1.38 × 10^10 年)。

换句话说,暴力破解比特币私钥所需时间约为宇宙年龄的 1.33 × 10^47 倍。

想想我们在这颗年轻又湿润的地球上所取得的成就,实在令人惊叹。

Author logo
作者 Patrick Dike-Ndulue

Senior editor covering crypto, onchain equities, and technology.

Author logo
經審核 Rukkayah Jigam

Writer & editor covering digital assets and product updates.