<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
The core RNG is going to be part of the randomized hashing function<br>
patch. The patch will be applied to all Python version from 2.6 to 3.3.<br>
Some people may want to applied it to 2.4 and 2.5, too. As the patch is<br>
going to affect six to eight Python versions, it should introduce as few<br>
new code as possible. Any new code might be a source of new bugs. The<br>
Mersenne Twister code is mature and works sufficiently as backup.<br>
<br>
Any new RNG should go through a PEP process, too. You are welcome to<br>
write a PEP and implement an additional RNG for the random module. New<br>
developers and new ideas are well received.<br></blockquote></div><br>Good point.<br>In fact, these RNG are 100% based on the hash functions provided for instance by OpenSSL. But I think this library is not a dependency so my proposal still has the same impact.<br>
The Random123 library is a reimplementation of some cryptographic functions with two arguments, the key and the counter, and that&#39;s it. So if there is somewhere in the Python C code such cryptographic function, it can be reused to create Crush-resistant random numbers with no new code line.<br clear="all">
<br>Cheers,<br><br>Matthieu<br>-- <br>Information System Engineer, Ph.D.<br>Blog: <a href="http://matt.eifelle.com" target="_blank">http://matt.eifelle.com</a><span onmouseout="cancel = false; window.setTimeout(WRCHideContent, 1000); clearTimeout(showTimer);" onmouseover=" var self = this; showTimer = window.setTimeout(function(){WRCShowContent({&#39;rating&#39;:{},&#39;flags&#39;:{},&#39;single&#39;:true,&#39;ttl&#39;:7200,&#39;expireTime&#39;:&#39;20120103122129&#39;}, self.className)},600);" class="wrc0" style="padding-right:16px;width:16px;height:16px"></span><br>
LinkedIn: <a href="http://www.linkedin.com/in/matthieubrucher" target="_blank">http://www.linkedin.com/in/matthieubrucher</a><span onmouseout="cancel = false; window.setTimeout(WRCHideContent, 1000); clearTimeout(showTimer);" onmouseover=" var self = this; showTimer = window.setTimeout(function(){WRCShowContent({&#39;rating&#39;:{&#39;value&#39;:92,&#39;weight&#39;:100},&#39;flags&#39;:{},&#39;single&#39;:false,&#39;ttl&#39;:7200,&#39;expireTime&#39;:&#39;20120103112142&#39;}, self.className)},600);" class="wrc13" style="padding-right:16px;width:16px;height:16px"></span><br>