by Sid Fleischman
Explains how to make codes, gives some established codes, and provides stories and exercises to practice deciphering.