Check out my interactive exploration of random walks on khanacademy labs.
When someone rolls dice, or selects a card from a shuffled deck the best possible strategy for predicting the outcome can’t beat a blind guess. This is because each outcome is equally likely. When we apply random shifts to our messages it results in a ciphertext which is indistinguishable from any other message – it contains no information. The problem with this method of encryption (one-time pad) is that we must share all the random shifts in advance. What happens when we apply pseudorandom shifts instead? We can relax our definition of perfect secrecy and achieve practical security…