Classic cryptanalysis using hidden Markov models