8. 私钥一致性测试 (Private Key Consistency Testing)
接收同时包含 seed 和 expandedKey 的 private key 时, 接收方应该执行 seed 一致性检查, 以确保发送方正确生成了 private key.不执行此 seed 一致性检查的接收方可以避免 keygen 和比较操作, 但无法确保 seed 与 expandedKey 匹配.
如果执行检查后发现 seed 和 expandedKey 不一致, 接收方必须将该 private key 作为格式错误拒绝.
接收包含 expandedKey 的 private key 时, [FIPS203] 在第 7.3 节规定, 使用前必须执行 "hash check".该节还规定了对 expandedKey 的类型和长度执行另外两项检查, 而这些检查由本标准保证.
seed 一致性检查包括: 通过 ML-KEM.KeyGen_internal(d,z) (算法 16), 使用前 32 个 octets 作为 d, 其余 32 个 octets 作为 z, 从 seed 重新生成展开形式, 并确保它与 private key 中给出的值逐字节相等.
附录 C.4 包含一些 seed 与展开 private key 不一致的示例.