跳到主要内容

8. 运行考虑 (Operational Considerations)

SLH-DSA 使用相同的 OID 来标识公钥和签名算法. 这意味着, 尽管在数学上可行, 由 Pure SLH-DSA OID 标识的 SLH-DSA 密钥不允许用于生成或验证由 HashSLH-DSA OID 标识的签名, 反之亦然.

认证机构 (CA) 运营者需要预先决定其 CA 证书使用 Pure SLH-DSA 还是 HashSLH-DSA, 并在生成证书时为公钥和私钥分配适当的 OID. 以下若干考虑因素可能影响这一决定.

  • 使用外部签名模块时, 例如硬件安全模块 (HSM), 可传输到签名模块并由其处理的数据大小可能受限. SLH-DSA 会对内部 M' 消息执行两遍处理, 因此必须将其保存在内存中. 使用 HashSLH-DSA 可减小 M' 的大小.

  • 使用 Pure SLH-DSA 时, 大型 CRL 也可能超过 HSM 签名操作的大小限制. 限制 CRL 大小的一种方式是按照 [RFC5280] 第 5.2.5 节使用 CRL Distribution Points 和 Issuing Distribution Points 来创建分区 CRL.

  • 具有大量主体备用名称 (SANs) 的终端实体 (EE) 证书也可能超过 HSM 签名操作的大小限制.

  • 可能需要考虑潜在验证者的环境. 在 SLH-DSA 签名验证期间, 整个证书或 CRL 都需要保存在内存中; 它不能以流式方式处理. 具体而言, 有一个从 SLH-DSA 签名中提取的随机化值 (R), 该值会在 M' 之前输入摘要函数. 因此, 若要以流式方式验证 SLH-DSA 消息, 签名必须位于消息之前. 对证书和 CRL 而言并非如此. 使用 HashSLH-DSA 可减小内存中保存的 M' 的大小.

SLH-DSA 私钥可以安全生成非常大量 (2^64) 的签名, 见第 9 节. 如果运营者可能生成接近该限制数量的签名, 则应该通过跟踪已生成签名的数量并在达到适当限制后销毁私钥, 或者通过设置证书的 "Not After" (过期) 日期使得按签名速率不可能超过该限制, 来缓解潜在危害.