You are all missing the point of my benchmark, which was to get at the speed 
the raw ALGORITHM goes. It is SIMPLY one AES encrypt per 16 bytes of output.

My approach was a back-of-the-napkin to show what my crappy machine does when 
there's very little overhead EXCEPT the encryption operation.

But on any desktop or better architecture, the hardware support has long 
enabled rates north of a gigabit per second, and generally, FAR better. For 
isntance, AMD's Ryzen can top 15 gigabits per second. 
<https://www.vortez.net/articles_pages/amd_ryzen_7_1700x_review,7.html>

You can ALWAYS do a lot to slow ANY PRNG down, like make a ton of unnecessary 
system calls. Still, it would be relatively easy to provide secure random 
numbers by default. It can be done... you all are measuring a ton of overhead 
from other things, which can all be controlled.

Also, the reason some of you see a performance difference between /dev/urandom 
and /dev/random, and some of you don't:

Linux used to have a pretty old school approach to things, and /dev/urandom was 
different and slower than /dev/random. There was pretty much never a good 
reason to call /dev/random on a box with the old implementation.

The whole subsystem was rebuilt, and they do the same thing now, but both 
devices remain.

And, the whole subsystem is far more sane and efficient than it used to be, as 
well. 

Reply via email to