In case anyone's interested in how Windows behaves for the sake of comparison, see: <a href="https://aka.ms/win10rng" rel="nofollow">https://aka.ms/win10rng</a>
/dev/urandom and /dev/random interfaces present the exact same interface -- The "Jiggle your mouse to generate encryption key" ridiculousness is now a thing of the past!
Great to see as much thought is put in infrastructure as in the improved cryptographic logic. They removed the /dev/urandom and the virtual machine cloned entropy that cause unsafe randomness.<p>Alongside BLAKE2 algorithmic improvements, we also get safer infrastructure. Very cool!
The jitter dance mentioned in here is pretty interesting. It doesn't seem obvious to me that a deterministic CPU running a deterministic scheduler is going to yield randomness.<p>But hopefully any modern system has some kind of hardware RNG and the "jitter dance" is just a last-resort type thing for strange systems.
The "Linus Jitter Dance" mentioned in the article is similar to Havaged, you can read more about it here: <a href="http://www.irisa.fr/caps/projects/hipsor/" rel="nofollow">http://www.irisa.fr/caps/projects/hipsor/</a><p>I recall using Haveged to prevent RNG from blocking on machines without hwrng (i.e. VMs) on old kernels.
It's great to see Linux adopting VMgenid. RDSEED over RDRAND when available also makes sense.<p>> In the per-cpu extension of that design, all entropy is extracted to a “base” crng. Then, each time a per-cpu crng is used, it makes sure that it is up to date with the latest entropy in the base crng. If it is, then it continues on doing fast key erasure with its own key. If it isn’t, then it does fast key erasure with the base crng’s key in order to derive its new one.<p>Beautiful. This is essentially the same thing the Windows 10 design does in the kernel.
What would be best way to evaluate randomness quality? This is something I've been thinking a lot. Yes, there are 'ent' and others, but I am more after trend of randomness quality over weeks and months.
I love taking these deep tech dives to appreciate how much thought and complexity goes into something seemingly as simple as random numbers. I know they're critically important for security - which truly is high stakes - so I'm not surprised. But it's fun and impressive nonetheless.