Just finished the series last night. There were two things that stuck out for me
Not a real spoiler, so I'll just state that most cryptanalysis (code cracking) relies on having enough of the encoded messages to analyze. Any code, however simple it might sound, can be almost impossible to break if the messages are short enough. For example, if I'm thinking of a number between one and a hundred, and I encode it with a simple substitution cipher as XQ, you're not breaking that code. There's just not enough of it to ever know what the substitutions are. If the messages are short enough, even simple codes can be practically impossible to break.