This question already has an answer here:

What's the difference between a statistical pseudorandom number generator (PRNG) and a cryptographic-strength PRNG?

I've seen a lot of PRNGs that are proposed for statistical uses -- e.g., statistical simulation, games, that sort of thing. These statistical PRNGs include schemes like linear congruential generators, linear feedback shift registers (LFSR), Mersenne twister, and many others.

I've also seen many proposals for cryptographic-strength PRNGs: PRNGs designed for cryptographic uses. These include constructions such as AES-CTR DRBG, HMAC_DRBG, ANSI X9.17, and many others.

What's the difference between these two kinds of PRNGs? Is there any difference?

Can I take a PRNG that was designed for statistical use, and use it for cryptographic purposes? Would that be safe? If I find some statistical PRNG that looks nifty but wasn't designed specifically for cryptographic use, would it be reasonable to use it for cryptographic uses? What if I start with a statistical PRNG and then tweak it a little bit -- would it be OK then?

This is intended as a general reference question that we can point others to, when they ask about specific instances of this sort situation.


merged by e-sushi Jul 26 '15 at 8:21

This question was merged with What is the difference between CSPRNG and PRNG? because it is an exact duplicate of that question.