较新的英特尔处理器包含一个DRBG,它可以生成随机数,您可以使用RDRAND指令读取这些数字。它涉及从硬件熵源产生的256位种子S,其取决于亚稳振荡器中的噪声。用于得到数字的算法实际上是AES(K,V)
,其中K是从S的一半导出的短暂密钥,而V是从S的另一半导出的IV。无论如何;这可以通过some people who audited it更好地解释。
出于各种原因,我想以编程方式原位审核此机制的性能,这需要能够阅读或推导出两件事:
在多次迭代中使用此输出和RDRAND输出将为我提供所需的测试数据以进行此确定。
但是,在软件开发人员手册或其他地方,我找不到任何记录完成这些任务的方法。
假设我愿意编写Linux内核模块来实现这一目标,并且我愿意使用RDMSR或任何其他可用方法,包括调用MEI等片上设备,是否有可能获得这个数据?
答案 0 :(得分:2)
DRBG的内部状态符合符合FIPS 140-2标准的安全边界。您无法访问这些状态变量。