Random number generating in PM

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
Iwabee

Random number generating in PM

Post by Iwabee »

How can I generate an random number in protected mode?
Chase

RE:andom number generating in PM

Post by Chase »

>On 2001-12-10 11:22:55, Iwabee wrote:
>How can I generate an random number in protected mode?

Without a source of radioactivity you can't :)

You can get pseudo-random numbers though...
The typical approach is to have an algorithm that takes
the current time as a seed and does some wacky computation
with it.

Random number generation has had alot of research.
A quick search on google should turn up a bunch of different
methods and downloadable implementations.
notten

RE:andom number generating in PM

Post by notten »

>On 2001-12-10 11:22:55, Iwabee wrote:
>How can I generate an random number in protected mode?

Try this: Make a cycling calculation of the
square root of two and then make a 'device'
entery for your OS that returns the curent
location in the computation. Store the value
somewhere in a file and start again at that
place when you restart your computer.
Another way is to take a value, square it,
take the 3 center digits, and use that value,
then square the number formed of those 3 digits,
square that, take the 3 center digits and keep
repeating.
Schol-R-LEA

RE:andom

Post by Schol-R-LEA »

>On 2001-12-10 17:24:38, Chase wrote:
>>On 2001-12-10 11:22:55, Iwabee wrote:
>>How can I generate an random number in protected mode?
>
>Without a source of radioactivity you can't :)
>

Actually, the newer Intel chipsets all have
hardware RNG based on measurement of thermal
fluctuations in the BIOS die. see
http://www.intel.com/design/security/rng/rngppr.htm
for details.

Other random number systems have been available
as bus cards for years. Most of those use either
a variation on the thermal fluctuations system,
or use a 'noise generator' of some kind (for
example, a wire or semiconductor chip that has a unpredictably variable resistance; this results
in a truly random variation that can be detected
by a built-in ohmmeter).

However, to date only a small minority of systems
have these. The usual suggestion is to use a
conventional PRNG as your main algorithm, and to
use the RNG for providing it seed if there is
one; otherwise, use a traditional seed-generation
method such as sampling the current time in
seconds and XORing it to the time of the previous
run.
Post Reply