3 ms·
This is a randomness distillation function that gets entropy from a system source like linux getrandom() or the OpenSSL RNG. It's nice but it is purely computa
by throwaway81523 4y ago
This is a randomness distillation function that gets entropy from a system source like linux getrandom() or the OpenSSL RNG. It's nice but it is purely computational. It doesn't harvest entropy on its own, if that is what you were hoping.
- lxgr 4y ago> It doesn't harvest entropy on its own, if that is what you were hoping. I'm actually hoping that userspace applications stop attempting any such thing if it can be at all avoided (and on most systems, it can).
- ilyt 4y agoWhy it would need to "distill" anything on modern Linux/BSD?
- throwaway81523 4y agoI think the idea is to be fast by avoiding system calls and using fast primitives underneath, and to unreversibly garble the internal state quickly. I don't see very obvious applications for this though. If you think your computer is leaking internal state, you have bigger problems. Otherwise, use getrandom() to seed your favorite stream cipher. I do want to look at this more closely, because if DJB thinks it is worthwhile, there is likely to be something to it. But it doesn't jump out at me after the quick glance that I took.
- ilyt 4y agoWell the lib is from 2008 where randomness story looked worse. Might be worthwhile back then. Also > Another virtue of having a randombytes() abstraction layer is that test frameworks can substitute a deterministic seeded randombytes() providing known pseudorandom bytes for reproducible tests. Of course, the randombytes() provided by these test frameworks must be kept separate from the fresh randombytes() used for deployment.