I should add, as does the Python documentation, that if you want genuinely
non-reproducible random values, the `secrets` module exists and produces
the best results possible on a given OS and computer architecture.  On
Unix-like systems, /dev/random is the best source of entropy you're going
to find, and trying to find your own is certainly going to be less good
than that source which `secrets` utilizes.

On Mon, Nov 14, 2022 at 11:13 AM David Mertz, Ph.D. <david.me...@gmail.com>
wrote:

> In concept, what James suggests, is similar to the Random123 library,
> written at D.E.Shaw Research by my sadly late colleague John Salmon.  See
> https://github.com/DEShawResearch/random123 and the linked academic
> publications. E.g. https://dl.acm.org/doi/10.1145/2063384.2063405
>
> In general, all PRNGs are deterministic, and by relying on a known seed,
> the Nth element in a sequence of random numbers can always be
> reconstructructed.  However, if a large number of random numbers are used,
> certain replication scenarios make the purely sequential nature of
> generators like Mersenne Twister or linear congruential generators
> inconvenient.
>
> Counter based pseudo-random generators like Random123 use cryptographic
> transformations upon counter variables, and were rigorously shown to pass
> all standard tests of randomness of distribution.  However, these tests
> were done using AES, Threefish, and Philox, and do not automatically apply
> to SHA256 that James uses.  The advantage of these is that they allow
> direct construction of the Nth element in a pseudo-random sequence without
> large memory or CPU usage needed to construct the N-1 prior elements.
>
> That said, Random123 is *done right* by a number of very brilliant people
> who performed rigorous testing.  Something that "seems kinda similar" may
> or may not be of similar quality (more likely not).  FWIW, AES is built-in
> as a primitive instructruction on most modern general-purpose CPUs, so can
> be very fast to perform.
>
> On Mon, Nov 14, 2022 at 10:56 AM Barry <ba...@barrys-emacs.org> wrote:
>
>>
>>
>> > On 14 Nov 2022, at 14:31, James Johnson <jj126...@gmail.com> wrote:
>> >
>> > 
>> > I wrote the attached python (3) code to improve on existing prng
>> functions. I used the time module for one method, which resulted in
>> disproportionate odd values, but agreeable means.
>> >
>> > I used the hashlib module for the second. It is evident that the code
>> is amateur, but the program might result in better PRN generation.
>> >
>> > The "app" lends itself to checking, using statistical tools (see
>> comments.)
>>
>> Have you used any cryptographic tools to prove the quality of your PRNG?
>> What results did you get?
>> How does your PRNG compare to what python already has?
>>
>> Without that this analysis this will be unlikely to be considered as a
>> candidate for python stdlib.
>>
>> Barry
>>
>> >
>> > I remain a fan,
>> >
>> > James Johnson
>> > <testrandom.py>
>> > _______________________________________________
>> > Python-ideas mailing list -- python-ideas@python.org
>> > To unsubscribe send an email to python-ideas-le...@python.org
>> > https://mail.python.org/mailman3/lists/python-ideas.python.org/
>> > Message archived at
>> https://mail.python.org/archives/list/python-ideas@python.org/message/VENAT2YTVYVHTBSEVHHMIURCU6MG2CEO/
>> > Code of Conduct: http://python.org/psf/codeofconduct/
>>
>> _______________________________________________
>> Python-ideas mailing list -- python-ideas@python.org
>> To unsubscribe send an email to python-ideas-le...@python.org
>> https://mail.python.org/mailman3/lists/python-ideas.python.org/
>> Message archived at
>> https://mail.python.org/archives/list/python-ideas@python.org/message/HWQV4AKQAUM7CY4NWS2IRIVLRAYMKR3V/
>> Code of Conduct: http://python.org/psf/codeofconduct/
>>
>
>
> --
> Keeping medicines from the bloodstreams of the sick; food
> from the bellies of the hungry; books from the hands of the
> uneducated; technology from the underdeveloped; and putting
> advocates of freedom in prisons.  Intellectual property is
> to the 21st century what the slave trade was to the 16th.
>


-- 
Keeping medicines from the bloodstreams of the sick; food
from the bellies of the hungry; books from the hands of the
uneducated; technology from the underdeveloped; and putting
advocates of freedom in prisons.  Intellectual property is
to the 21st century what the slave trade was to the 16th.
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/U6TW75PUJLKJN2HRU3WYWGGW7PNUQRST/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to