How does the Trusted Platform Module generate its true random numbers?
Asked Answered
P

1

4

So far I know that the TPM is using thermal noise for generating true random numbers. But I'm also sure that the TPM uses more sources for the entropy. In that that keystroke timings, drive seek time, or clock jitter would be possibilities. But which sources does the TPM use? And how does it convert them into a true random number?

Pye answered 26/11, 2015 at 15:15 Comment(0)
R
2

How a TPM's random number generator has to look like can be read in the specification. For TPM 1.2, I link this PDF: Part 1 Design Principles

When you look at section 4.2.5 Random Number Generator you get a good idea how it works in general. However, how a certain TPM's RNG works is an implementation detail and is up to the manufacturer. However, the specification mentions some possible entropy sources:

types of sources could include noise, clock variations, air movement, and other types of events

The conversion to a random number is done using a state machine and a mixing function. Again, implementation is vendor specific. I cite:

The RNG consists of a state-machine that accepts and mixes unpredictable data and a post-processor that has a one-way function (e.g. SHA-1). The idea behind the design is that a TPM can be good source of randomness without having to require a genuine source of hardware entropy.

Radu answered 13/1, 2016 at 23:13 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.