Cryptography - Part 2

In the previous issue of Parabola we saw how to encode (and also how to break!) monoalphabetic ciphers (i.e. we replace each letter of the alphabet by some other letter every time it occurs in the message). We now look at some more complex codes.