478 / 691H

Cryptographic Entropy

密码学熵

用于生成密钥的输入是否不可预测,取决于数据获取方式及攻击者掌握的信息,而不是字符串的长度或外观。

密码学熵表示对生成秘密密钥或生成器状态所用数值的不确定性。评估时要考虑可能输入的分布及对手掌握的信息。很长的输出也可能来自一个很小且可预测的空间;安全性因此涉及源头、处理过程与状态保护。

RFC 4086 区分难以猜测与单纯的统计不规则性。攻击者可能知道启动时间或序列号,或者只需搜索很小的范围。将其编码为长字符串不会相应扩大秘密空间。单独一个显示出来的密钥无法说明其生成质量。 [RFC 4086 — Unpredictability and source limitations]

DRBG 从秘密初始状态出发,按算法产生后续输出。这是一种有用的密码学构造,但新增字节并不自动成为新的物理熵。相同的完整状态和输入会产生相同的后续结果。生成器强度还取决于初始化及正确使用。 [NIST SP 800-90A Rev. 1 — Deterministic generation and reseeding]

NIST SP 800-90B 要求描述噪声源、依赖关系及健康测试。这些测试在启动时及运行中持续检查未经处理的噪声,先于后续处理。环境变化或噪声源卡死可能破坏假设;故障必须报告给应用,而不能将结果当作良好数据。 [NIST SP 800-90B — Entropy source design and health tests]

称为 conditioning 的处理可以降低偏差,将已有不确定性集中到较短输出中。Hash 无法将完全已知的输入变成秘密。对于相互依赖的多个源,不能直接相加其估计值;更复杂的混合本身不能证明独立性或质量。 [NIST SP 800-90B — Entropy source design and health tests] [RFC 4086 — Unpredictability and source limitations]

获得 DRBG 状态的人可能根据其构造预测后续输出。要恢复抵抗这种预测的能力,必须补入足够多、攻击者未知的新鲜熵。仅继续执行算法或加入已知时间并不能保证这一点。恢复生成器也不会使已泄露的密钥失效。 [NIST SP 800-90A Rev. 1 — Deterministic generation and reseeding]

BIP39 将 128 位输入与 4 位校验和编码为 12 个单词;对 256 位输入则增加 8 位,形成 24 个单词。校验和由输入派生,不增加熵。这些长度不能证明输入质量;更长的单词列表也无法修复可预测的生成方式。 [BIP39 — Entropy, checksum and mnemonic encoding]

NIST SP 800-22 明确区分通过统计测试与密码学安全。测试可以发现特定偏差,但不能代替算法分析,也不能证明对手不知道输入。对成品文件进行测试不等于认证钱包安全。 [NIST SP 800-22 Rev. 1a — Limits of statistical testing]

NIST SP 800-90C 将熵源与 DRBG 机制组合成随机生成器构造。评估钱包时,应查看具体实现、熵的获取与估计、错误处理和状态保护。仅引用标准或芯片名称,并不能证明某个版本符合这些要求。 [NIST SP 800-90B — Entropy source design and health tests] [NIST SP 800-90C — Complete random bit generator constructions]

要获得更完整的理解,请将本词条与以下词条结合阅读: Entropy Bit, CSPRNG, Dice Roll Entropy, 私钥. 反向关联还来自: Dice Roll Entropy, Entropy Bit, Brute Force Search Space, Random Number Generator.

DOC · 001NIST SP 800-90B — Entropy source design and health tests规范 ↗DOC · 002NIST SP 800-90A Rev. 1 — Deterministic generation and reseeding规范 ↗DOC · 003RFC 4086 — Unpredictability and source limitations规范 ↗DOC · 004BIP39 — Entropy, checksum and mnemonic encoding规范 ↗DOC · 005NIST SP 800-22 Rev. 1a — Limits of statistical testing文档 ↗DOC · 006NIST SP 800-90C — Complete random bit generator constructions规范 ↗
来源优先 · 非投资建议