Say I want to seed a CSPRNG. What sources are popular, but unreliable? What sources should I even use?
$\begingroup$
$\endgroup$
3
If it is for your personal use, randomness collected from mouse movements can be an option. Veracrypt uses this. If it is to be done on a large scale, try using Lava Lamps. If these seem unviable, try using the Urandom pool.
-
$\begingroup$ Do you have "What sources are popular, but unreliable?" the right way around? Lava lamps are a pretty perfect source of entropy (Rayleigh–Bénard convection/deterministic chaotic systems). I also suggest changing to
/dev/random
if you're looking for perfect but unreliable entropy sources. $\endgroup$ – Paul Uszak Sep 1 '19 at 23:39 -
$\begingroup$ It's important to realise that Thomas Hühn's silly 'myth' post is just a flawed and dangerous internet mime that seems to catch out young players. See and digest Mr. Pornin's acute comment in said post regarding the fundamental difference that is appropriate to this (and all other) question(s). $\endgroup$ – Paul Uszak Sep 2 '19 at 0:16
-
2$\begingroup$ @PaulUszak That "myth" post is not flawed. As someone who has read both the current LinuxRNG documentation and is familiar with the driver source code itself, I can say the only issues his post has is a few oversimplifications and a tiny mistake caused by him missing a change to the driver that came in kernel 4.8. But the idea behind is post is absolutely correct. Your view that you need the blocking pool to be secure is simply wrong. It's only perfect in theory if the entropy estimation is perfect, which it is not. $\endgroup$ – forest Sep 2 '19 at 4:20
rand()
is commonly (mis)used as a cryptographic seed. $\endgroup$ – forest Sep 1 '19 at 7:30