Are some pseudo-random number generators unpredictable?

  • Thread starter bbbeard
  • Start date
  • Tags
    Generators
In summary, pseudo-random number generators (PRNGs) are algorithms implemented on a computer to generate random numbers, but they require a seed to start a sequence and can be predictable if the algorithm and current output are known. However, there are PRNGs, such as the Luscher-Marsaglia-Zaman PRNG, where knowing a long sequence of outputs does not reveal the seed and thus makes it harder to predict future outputs. On the other hand, actual ideal random number generators use physical processes believed to be random and do not require a seed, making them intrinsically unpredictable. PRNGs can mimic the behavior of real RNGs but have limitations.
  • #1
bbbeard
192
4
The topic here is pseudo-random number generators (PRNGs), i.e. the kind of algorithm you implement on a computer to do Monte Carlo calculations.

All the PRNGs I know require a "seed" to start a sequence. Given the same seed, the algorithm, which is of course deterministic, will produce the same sequence of numbers.

Some PRNGs have the property that if you know the current output, you can predict what the next output value will be if you know what the algorithm is. I think simple linear congruential generators are in this class.

My question is, are there PRNGs which are not like this? I'm pretty sure there are; I think the Luscher-Marsaglia-Zaman PRNG is, because it actually updates some number of registers N>>1 at each step and only outputs a 32-bit current value. But I think if you know a sufficiently long sequence of outputs, you can reconstruct the contents of the registers, even if you don't know the seed, and then you could predict the next output.

Are some PRNGs intrinsically unpredictable? That is, even given a long sequence of outputs, you cannot predict the next output unless you know the seed? I am imagining some hybrid of RSS encryption and a PRNG -- or maybe mostly just RSS, since it somehow generates random-ish outputs in the course of doing its work. Is there a name for this class of PRNG?

BBB
 
Physics news on Phys.org
  • #2
What is the difference between a pseudo-random number generator and an actual ideal random number generator?

You get intrinsic unpredictability where you don't know the algorithm - like if you take the lowest place-value number in a rapidly changing natural measurement like wind speed as part of your number generation.

The size of the output you need before you can work out the seed is a measure of the randomness of the generator (iirc).
 
  • #3
bbbeard said:
Are some PRNGs intrinsically unpredictable? That is, even given a long sequence of outputs, you cannot predict the next output unless you know the seed?

To define the prediction problem precisely, you have to say what we are "given" about the possible PRNG's to consider. If you have an output of size N and all you know is that it comes from a recursive function, then my intuition is that there are infinitely many recursive functions that can produce that output - after all, we aren't given anything to limit the depth of the recursion. As a trivial example, one could have a recursive function that required N seeds to start it.
 
  • #4
Stephen Tashi said:
To define the prediction problem precisely, you have to say what we are "given" about the possible PRNG's to consider. If you have an output of size N and all you know is that it comes from a recursive function, then my intuition is that there are infinitely many recursive functions that can produce that output - after all, we aren't given anything to limit the depth of the recursion. As a trivial example, one could have a recursive function that required N seeds to start it.

I'm not sure whether the LMZ PRNG is like this, but it would be easy to write a PRNG where the output at each step is a function of the values in N seeded registers, but is not itself stored internally. So one would not be able to "re-seed" the generator using N consecutive outputs.

In my own coding I have abused the LMZ generator by seeding it with a single 32-bit seed, which I used to seed the system call to fill the 24 registers. This means I only generated 2^32 different series of numbers, instead of a potentially much larger space, But for what I was doing that was sufficient.

My question is really just a curiosity about whether there is a difference between linear congruential generators (where the current output tells you all you need to know to predict the future outputs) and other PRNGs. As far as I know, all useful PRNGs have the property that if you know the seed(s), you can reproduce the entire sequence of outputs, and obviously there are PRNGs where knowing the current output let's you predict future outputs without knowing the seeds. But I'm wondering if there are PRNGs where knowing N consecutive outputs is still not enough to predict future outputs, for any N.

BBB
 
  • #5
Simon Bridge said:
What is the difference between a pseudo-random number generator and an actual ideal random number generator?

A PRNG is an algorithm on a computer. A real random number generator uses some physical process believed to be random to generate numbers -- for example, the radiation-based products offered by http://www.aw-el.com/" . PRNGs can mimic the behavior of real RNGs but all have shortcomings of one sort or another.
 
Last edited by a moderator:
  • #6
Good - now can you put that answer in terms of intrinsic unpredictability.
 

1. What is a pseudo-random number generator (PRNG)?

A PRNG is a computer algorithm that generates a sequence of numbers that appear to be random but are actually determined by a set of mathematical equations. They are used in many applications, such as simulations, cryptography, and statistical sampling.

2. How are PRNGs different from true random number generators?

Unlike true random number generators which use physical processes such as atmospheric noise or radioactive decay to generate truly random numbers, PRNGs use a deterministic algorithm to generate numbers that appear to be random.

3. Can pseudo-random number generators be predicted?

In theory, yes. Since PRNGs use a deterministic algorithm, the output can potentially be predicted if the algorithm is known. However, most modern PRNGs use complex algorithms and are designed to be resistant to prediction.

4. What makes a PRNG unpredictable?

A good PRNG should have a long period, meaning that the sequence of numbers it generates should be long before it repeats itself. It should also have a high degree of statistical randomness, meaning that the numbers are distributed evenly and show no discernible patterns.

5. Are all PRNGs equally unpredictable?

No, some PRNGs are more predictable than others. It depends on the algorithm used and the quality of the seed value. A poor seed value or a flawed algorithm can make a PRNG more predictable and therefore less secure for certain applications.

Similar threads

  • Set Theory, Logic, Probability, Statistics
Replies
20
Views
2K
  • Set Theory, Logic, Probability, Statistics
Replies
1
Views
915
  • Programming and Computer Science
Replies
1
Views
632
Replies
5
Views
1K
Replies
25
Views
3K
  • Set Theory, Logic, Probability, Statistics
Replies
1
Views
2K
  • Set Theory, Logic, Probability, Statistics
Replies
1
Views
5K
  • Set Theory, Logic, Probability, Statistics
Replies
4
Views
1K
Replies
88
Views
7K
Replies
13
Views
2K
Back
Top