This book is an integrated introduction to the mathematics of coding, that is, replacing information expressed in symbols, such as a natural language or a sequence of bits, by another message using (possibly) different symbols. There are three main reasons for doing this: economy, reliability, and security, and each is covered in detail. Only a modest mathematical background is assumed, the mathematical theory being introduced at a level that enables the basic problems to be stated carefully, but without unnecessary abstraction. Other features include: clear and careful exposition of fundamental concepts, including optimal coding, data compression, and public-key cryptography; concise but complete proofs of results; coverage of recent advances of practical interest, for example in encryption standards, authentication schemes, and elliptic curve cryptography; numerous examples and exercises, and a full solutions manual available to lecturers from www.springer.com. TOC:Coding and its uses.- Prefix-free codes.- Economical coding.- Data compression.- Noisy channels.- The problem of reliable communication.- The noisy coding theorems.- Linear codes.- Algebraic coding theory.- Coding natural languages.- The development of cryptography.- Cryptography in theory and practice.- The RSA cryptosystem.- Cryptography and calculation.- Elliptic curve cryptography.- Answers to odd-numbered exercises.- Index.