How do computers generate random numbers?
It&#x27;s a good introductory write up, but there are 3 things about it that frustrated me to no end.<p>&gt; &quot;As a human, I can do this very easily. 100101011010010110001101 There, I just did it.<p>No, you didn&#x27;t. That number is most certainly not random, there are biases in it, you just don&#x27;t know there are. Your mind is <i>not</i> random. This is why we use dice and not people to generate random bits.<p>&gt; What do you mean by “kind of random number”? Aren’t all random numbers the same. Not really. There are two primary types of random number generators.<p>I growled audibly at this one. <i>Random numbers should all be the same.</i> In quality, not quantity, of course. There should be no discernible difference. There is one kind of random number, only different types of <i>generators</i>, with a PRNG if the seed is provably destroyed there should be absolutely no way to distinguish between a number generated by a PRNG and a TRNG.<p>&gt; The computer hardware isn’t the only source of entropy. The user’s own mouse and keyboard movements can be used as well.<p>No. These movements are <i>not</i> random. Similar to my first gripe, your brain is not random. We used to use this approach to generate entropy and now we don&#x27;t because this is understood, &quot;random&quot; user inputs should absolutely never be used to generate randomness in anything security related.<p>&gt; Despite the benefits of CSPRNGs, as with everything else in the tech industry, security can never be guaranteed.<p>I&#x27;m glad you pointed this out. Everything in cryptography is based on unproven axioms, this is an important point that people should understand, it could be that P=NP, it could be that an algorithm exists to factor numbers to primes, we think not but really we don&#x27;t know.