Random 可信平台模块如何生成其真实随机数?

Random 可信平台模块如何生成其真实随机数?,random,tpm,Random,Tpm,到目前为止,我知道TPM使用热噪声来生成真正的随机数。但我也确信TPM使用了更多的熵源。 在这种情况下,击键计时、驱动器寻道时间或时钟抖动都是可能的。但是TPM使用哪些来源?它如何将它们转换成真正的随机数?可以在规范中读取TPM的随机数生成器的外观。对于TPM 1.2,我链接此PDF: 当您查看第4.2.5节“随机数生成器”时,您可以大致了解它的工作原理。然而,某个TPM的RNG如何工作是一个实施细节,由制造商决定。然而,本规范提到了一些可能的熵源: 源的类型可能包括噪音、时钟变化、空气运动和其

到目前为止,我知道TPM使用热噪声来生成真正的随机数。但我也确信TPM使用了更多的熵源。
在这种情况下,击键计时、驱动器寻道时间或时钟抖动都是可能的。但是TPM使用哪些来源?它如何将它们转换成真正的随机数?

可以在规范中读取TPM的随机数生成器的外观。对于TPM 1.2,我链接此PDF:

当您查看第4.2.5节“随机数生成器”时,您可以大致了解它的工作原理。然而,某个TPM的RNG如何工作是一个实施细节,由制造商决定。然而,本规范提到了一些可能的熵源:

源的类型可能包括噪音、时钟变化、空气运动和其他类型的事件

使用状态机和混合函数将其转换为随机数。同样,实现是特定于供应商的。我引述:

RNG由接受和混合不可预测数据的状态机和具有单向功能的后处理器(如SHA-1)组成。设计背后的理念是TPM可以是良好的随机性来源,而不需要真正的硬件熵来源