Conversation

I want to live in a world where “random number generator” and “pseudorandom number generator” refer to secure things. And there is this other class of things like “statistical sequence generator” that others can play with and make fast.
3
161
Replying to
My claim is that what’s small is the set of people who need randomized algorithms and ALSO have tight performance requirements that make CSPRNGs inappropriate. These people know who they are and can shop for fast insecure generators, rather than having them be default.
3
14
For example we don’t optimize string operations in standard libraries to use fast streaming algorithms that would be appropriate for people doing large scale data processing (eg in HFT or “big science”) because we know those people have specific needs and can shop dependencies.
1
2
Most would be more than happy with a fast CSPRNG but that isn't what they're being given as a default so they find that the CSPRNG is a performance bottleneck and turn to trying to find the fastest alternative. Give them speed by default and they wouldn't consider alternatives.
2
Replying to and
I’m thrilled for them to consider alternatives. If you’re in a space where the RNG is slowing things down, go ahead and install a replacement dependency. Speeding your software up (by throwing out specific safety features) is something you do in the *optimization* phase.
1
Replying to and
Then they should turn elsewhere! By all means! Turn elsewhere! This whole argument is like saying “my stdlib is too slow because it does bounds checking on string copies and some ultra-high performance libraries will be faster if we omit those”. Ok, fine! Go ahead.
1
Show replies