[Python-ideas] Should our default random number generator be secure?

Tim Peters tim.peters at gmail.com
Wed Sep 9 21:20:52 CEST 2015


[Steven D'Aprano <steve at pearwood.info>]
> ...
> Question, aimed at anyone, not necessarily random832 -- one desirable
> property of PRNGs is that you can repeat a sequence of values if you
> re-seed with a known value. Does arc4random keep that property? I think
> that it is important that the default RNG be deterministic when given a
> known seed. (I'm happy for the default seed to be unpredictable.)

"arc4random" is ill-defined.  From what I gathered, it's the case that
"pure chacha" variants can be seeded to get a reproducible sequence
"in theory", but that not all implementations support that.

Specifically, the OpenBSD implementation being "sold" here does not and cannot:

    http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man3/arc4random.3

"Does not" because there is no API to either request or set a seed.

"Cannot" because:

    The subsystem is re-seeded from the kernel random number
    subsystem using getentropy(2) on a regular basis

Other variants skip that last part.


More information about the Python-ideas mailing list