最新的AMD程序员手册,日期为2015年6月,包括RDRAND指令在指令集。为了完整起见,它缺乏RDSEED。AMD64 64体系结构程序员手册第3卷:一般用途和系统说明,第278页。
说明包括以下案文:
用硬件生成的随机值加载目标寄存器。
我有困难找到有关AMD的电路和其他设计/实现细节的信息。在搜索AMD网站时,我没有得到特定的点击量,而且一个普通的网络搜索正在返回许多由英特尔主导的噪音(这不是英特尔的错,而是它的方式)。
AMD的电路知道些什么?
基于@Richie的评论(这是一个很好的线索):根据NIST的验证的FIPS 140-1和FIPS 140-2密码模块,AMD没有经过批准的模块。此外,根据NIST的正在处理的模块,AMD没有什么在评估。
发布于 2017-02-09 16:41:29
这些电路使用的异步计数器是振铃,有时与一个种子从唯一的处理器ID (你在测试期间用e-熔断器吹掉)。
如果你拿32个环振荡器并行,每一个提供一个位,你会看到一个随机的32位值,每次你取样。引入的随机性是由于泊松过程的电荷到达不同的时间跨通道的设备,这就是为什么环振荡器是“噪音”。这就是为什么不需要种子,你只需要花一些时间,当CPU重置,以实现电气混乱。我甚至可能会保持一些地面联系薄弱,通过电阻基板,以增加电荷分布。
我也看到了一个实现,就是一些输入被放入SHA-1,这是带有处理器ID的异或,但是仅仅从物理的角度来看,你可以有环振荡器。我认为使用这种方法是因为NIST规范概述了这种方法。
增编:
对这种噪音最平易近人的讨论可能是本文:
R. Sarpeshkar,T. Delbruck和C.A. Mead,“MOS晶体管和电阻器中的白噪声”,IEEE电路和器件杂志,第9卷,第6期,第23-29页,1993年。
https://crypto.stackexchange.com/questions/29894
复制相似问题