当前位置: 首页 > 知识库问答 >
问题:

Trusted Platform模块如何生成其真实随机数?

裴学
2023-03-14

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

共有1个答案

韦安怡
2023-03-14

TPM的随机数生成器的外观可以在规范中读取。对于TPM 1.2,我将此PDF链接:第1部分设计原则

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

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

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

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

 类似资料:
  • 问题内容: 我正在阅读Math.random()javadoc,发现random只是psuedorandom。 是否有一个库(特别是java)根据随机变量(例如环境温度,CPU温度/电压等)生成随机数? 问题答案: 查看http://random.org/ RANDOM.ORG是一种真正的随机数服务,可通过大气噪​​声生成随机性。 可以在以下位置找到用于与其连接的Java库: http //sou

  • 本文向大家介绍Python中random模块生成随机数详解,包括了Python中random模块生成随机数详解的使用技巧和注意事项,需要的朋友参考一下 Python中的random模块用于生成随机数。下面介绍一下random模块中最常用的几个函数。 random.random random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0 random.uniform  

  • 我对Java还是有点陌生,有一个实验室需要模拟一个彩票游戏,生成一个介于1到10之间的数字。它首先询问用户想要购买多少张彩票,然后询问他们是否希望计算机为他们生成猜测,如果是,则会生成猜测并显示中奖号码。如果用户说不,那么用户将自己输入猜测,并显示中奖号码。 我在弄清楚当有人输入是或否时如何执行代码时遇到了问题。我应该做一个do while循环吗? 这是我现在的代码。 以下是算法:1。获取购票数量

  • 本文向大家介绍如何生成一个随机数?相关面试题,主要包含被问及如何生成一个随机数?时的应答技巧和注意事项,需要的朋友参考一下  

  • 问题内容: 我正在学习python的随机模块。而且我知道它会生成伪随机数。它的核心思想是使用高频时钟作为种子,然后使用一个函数来产生“看起来像”的随机数。 据我所知,在现实世界中甚至不可能生成真实的随机数。 但是我知道Unix随机产生器引入了其他一些因素,例如鼠标移动轨迹的参数,IO响应时间,从而给随机数产生器函数带来了不确定性。通过该方法,我们可以获得比普通伪随机数更好的随机数。很难预测。 那么

  • 本文向大家介绍Python使用random模块生成随机数操作实例详解,包括了Python使用random模块生成随机数操作实例详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python使用random模块生成随机数操作。分享给大家供大家参考,具体如下: 今天在用Python编写一个小程序时,要用到随机数,于是就在网上查了一下关于Python生成各种随机数的方法,现将其总结如下: 此处