Skip to main content

3.5. Rationale

3.5. Rationale (基本原理)

前几节中描述的过程模仿了 [X9.62] 附录 D 中描述的使用 "HMAC_DRBG" 伪随机数生成器的 "Approved" k 生成过程。主要区别在于我们使用私钥 x 和哈希消息 H(m) 的连接作为伪随机数生成器 (PRNG) 种子。如果使用 n 比特的 "安全级别", 则 HMAC_DRBG 应使用至少 n+64 比特的种子熵; 然而, 密钥 x 也应该用那么多熵生成, 并且 x 的长度是 qlen, 它至少等于 2*n, 因此大于 n+64 (根据标准规定的 DSA 和 ECDSA 要求 qlen >= 160)。因此可以认为确定性 ECDSA 满足 [X9.62] 附录 D 的熵要求。

我们使用 bits2octets(H(m)) 而不是 H(m), 以便于集成。实际上, 许多现有签名系统卸载消息哈希; 签名引擎 (可以访问私钥) 仅接收 H(m)。在某些应用中, 数据带宽受到限制, 仅将 H(m) 的前 qlen 比特传输到签名引擎, 基于 bits2int 转换将忽略后续比特。可能在某些系统中, 截断的 H(m) 可以在外部对 q 取模约简, 因为这是 (EC)DSA 对哈希消息执行的第一件事。通过 bits2octets 的定义, 确定性 (EC)DSA 可以应用于相同的输入。