1

我只是想在 TPM 的 NV 存储中永久存储一个 32 字节长的对称密钥,并在重启后使用它(无需将其从 TPM 中取出)来加密小型数据。

我试图以两种不同的方式做到这一点:

1)

  • 使用 TPM 的随机字节生成器创建密钥
  • 在 NV 中定义空间并在其中写入密钥
  • 问题:我知道如何阅读它,但是如何加载它以便在 TPM 中使用它?

2)

  • 使用 TPM2_Create 命令创建 AES 密钥
  • 使用 TPM2_EvictControl 命令使其持久化
  • 通过相同的电源循环,我有了它的手柄,我可以加载它并使用它
  • 问题:与之前类似,如何在下一次电源循环后加载并使用它?

我扫描了TCG 的规格,甚至阅读了这个免费的 TPM2.0 实用指南,但没有找到任何关于我的问题的线索。

我错过了什么?

4

1 回答 1

1

TPM2_EncryptDecrypt旨在与对称密钥一起使用。将您获得的密钥句柄TPM2_EvictControl作为@keyHandle参数传递,并适当地设置decrypt参数。设置modeTPM_ALG_NUL使用默认模式。

请记住,使用 TPM 加密大量数据(对称密钥通常用于)是不切实际的。

于 2019-12-26T13:01:31.063 回答