The type of randomness you’re referring to is called ‘pseudo-randomness’. It’s not really random because there’s a deterministic process to generate it, but good pseudo random number generators (PRNGs) can produce very long sequences of numbers that are statistically indistinguishable from true randomness which is fine for the vast majority of use cases.
When you need true randomness you can sample an unpredictable physical system, for example you can measure thermal noise in an electronic circuit. CPUs have had these types of true random generators for a long time.
The downside of true RNGs is that they’re typically slow (compared to a PRNG).
The problem with using PRNGs for cryptography is that it’s possible to work out the internal state of the PRNG from a (typically) few samples and then predict all future numbers, with some PRNGs being easier to break than others.
Latest Answers