如何在TPM中加载和使用持久对称密钥?

时间:2019-12-26 07:49:51

标签: tpm trusted-computing

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

我尝试通过两种不同的方式来做到这一点:

1)

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

2)

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

我扫描了TCG's Specs,甚至阅读了free practical guide to TPM2.0,但没有发现有关我的问题的任何线索。

我想念什么?

1 个答案:

答案 0 :(得分:1)

TPM2_EncryptDecrypt用于对称密钥。将使用TPM2_EvictControl获得的密钥句柄作为@keyHandle参数传递,并适当设置decrypt参数。将mode设置为TPM_ALG_NUL,以便使用默认模式。

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