Simon Singh did a history of codebreaking his book
The Code Book which included, I think, ten challenges to break (of increasing complexity).
I'd imagine it is difficult to pitch the codes at an appropriate level such that most readers could get it, but that it was at least something of a challenge..