跳到主要内容
ecdsa.com

LMS 与 HSS(Leighton–Micali 签名)

RFC 8554 和 NIST SP 800-208 规定的有状态哈希签名方案:由 Winternitz 一次性密钥构成的 Merkle 树可以签名固定数量的消息,HSS 则把多棵树叠加起来,以签名更多消息。
其他写法LMSHSSLeighton-MicaliRFC 8554

高度为 10 到 25 的树使每个密钥可以生成 2¹⁰ 到 2²⁵ 个签名;Winternitz 参数在签名大小与速度之间权衡。签名约为 1~9 KB,公钥约为 60 字节。HSS(分层签名系统)用上层的树为下层的树签名,以扩大容量。SP 800-208 批准了使用 SHA-256 和 SHAKE256、输出长度为 192 位或 256 位的 LMS 和 HSS,并要求在无法导出私有状态的硬件模块中完成密钥生成和签名。

每个一次性密钥只能使用一次,因此签名者必须在发布签名之前以原子方式更新并持久保存状态;崩溃、从备份恢复或克隆 HSM 都可能导致重复使用,进而使伪造成为可能。因此 LMS 适合签名量小、受控的签名场景,例如固件和启动镜像(CNSA 2.0 在这些场景中要求使用 LMS 或 XMSS,其 FAQ 对国家安全系统只允许单树形式),而不适合通用场景。

标准与参考资料

全部术语