5

较新的英特尔处理器包括一个 DRBG,它可以生成随机数,您可以使用 RDRAND 指令读取这些随机数。它涉及从硬件熵源生成的 256 位种子 S,该熵源依赖于亚稳态振荡器中的噪声。用于得出数字的算法是有效的AES(K,V),其中 K 是从 S 的一半派生的临时密钥,而 V 是从 S 的另一半派生的 IV。无论如何,我认为;一些对其进行审核的人对此进行了更好的解释。

由于各种原因,我想以编程方式就地审核该机制的性能,这需要能够读取或导出两件事:

  • S 的值
  • K 或 V 的值

使用这个和 RDRAND 在多次迭代中的输出将为我提供做出此决定所需的测试数据。

但是,在软件开发人员手册或其他地方,我找不到任何记录在案的方法来完成这些任务中的任何一个。

假设我愿意编写一个 Linux 内核模块来实现这一点,并且我愿意为此使用 RDMSR 或任何其他可用的方法,包括调用诸如 MEI 之类的片上设备,是否有可能获取这些数据?

4

1 回答 1

2

DRBG 的内部状态在符合 FIPS 140-2 的安全边界内。您无法访问这些状态变量。

于 2013-09-17T00:09:42.430 回答