4.5 Pseudorandomness
Computational security is built on the concept of pseudorandomness, the idea that bit strings (that is, ciphertexts) can look completely random even though they are not.
Pseudorandomness enables us to build (computationally) secure symmetric encryption schemes where a relatively short key, let’s say 128 bits long, is used to securely encrypt multiple terabytes of plaintext messages.
In a nutshell – the precise mathematical details are, of course, much more complex – this works because a polynomial-time attacker cannot distinguish between a pseudorandom string and a truly random string. This means that, for the attacker, the ciphertext looks like it has been produced by a one-time pad, using the pseudorandom string as a key.
Pseudorandom strings can be created using a pseudorandom generator. This is a deterministic algorithm that takes a short, truly random string as input and expands it into a long pseudorandom string [97]. Figure 4...