I am interested in understanding if it is possible to predict Python 3 random.random()
when seeded with high entropy value from a physical system, like a dice toss.
In other words, is random.random()
a good function that takes "entropy" and reduces it to an unpredictable determinist bounded value or not?
From my understanding, it passes all randomness tests I found.
I am not interested in good practice and that it is better to use /dev/urandom
, secrets or other sources of good random values. That is a known fact.
Things to consider:
- The random generator is seeded with high entropy value and only used once to generate a single value from the initial state before being seeded again.
- The generator is seeded with new seed for every number.
- The seed has high entropy, something around 256 bits or entropy or more.
The reason I want to do this it that it allows me to use random.choise
which is an extremely convenient way to transform a seed into a choice. Here's a rough implementation of the idea:
random.random
is seeded with an high entropy seed.random.choice
is used.random.random
is seeded with a new high entropy seed.random.choice
is used.- ...again and again.
Is the resulting choices list predictable?