May 26, 2018
Entropy (randomness) management
This module maintains a concept of a current selection of entropy source. Algorithms that require entropy can use the source nominated by this module, avoiding the need for entropy source objects to be explicitly passed around. This is convenient because usually one entropy source will be used for an entire program run and so an explicit entropy source parameter would rarely vary. There is also a default entropy source, avoiding the need to explicitly configure a source at all.
If nothing is done to set a source then it defaults to the use of Rijndael AES in counter mode see DataEntropyRawSourceCryptCounter and CryptRijndael, keyed using Perl’s built-in rand function. This gives a data stream that looks like concentrated entropy, but really only has at most the entropy of the rand seed. Within a single run it is cryptographically difficult to detect the correlation between parts of the pseudo-entropy stream. If more true entropy is required then it is necessary to configure a different entropy source.