Ciphers, Data Structures, and Probability