The basic techniques of algebra and number theory useful in recent applications to cryptography and codes are developed, ...