跳到主要内容

7. 实现注意事项 (Implementation Considerations)

虽然 [FIPS203] 第 7.1 节提到可保存 seed 值以供未来扩展, 但算法 19 并不会向调用者提供可用于序列化的 seed 值.类似地, 展开 seed 值的算法未被列为 "main algorithms" 之一, 且名称中包含 "internal", 尽管很明显, 为了从 seed 展开密钥, 允许将其对外暴露.下面给出扩展 [FIPS203] 中定义的 API 以支持将 seed 值作为 private key 序列化的可能方式.

为了支持将 seed 值作为 private key 序列化, 令算法 19b 表示与 [FIPS203] 中算法 19 相同的过程, 但它在第 7 行返回 (ek, dk, d, z).此外, 算法 16 应提升为可供外部使用的 "main algorithm", 用于展开 seed 值.

还应注意, 不同于其他算法中的 private key 压缩方法, 从 seed 展开 private key 是单向函数.这意味着一旦从 seed 展开完整密钥并丢弃 seed, 即使完整的展开 private key 可用, 也无法重新创建 seed.因此, 推荐实现保留并导出 seed, 即使同时也导出展开的 private key.