sumed to have access. The process by which the sender and recipient can achieve secrecy is called encryption or encipherment. In encryption, the plaintext is transformed into a message, called the ciphertext, in such a way that the recipient can recover the plaintext from the ciphertext while the eavesdropper cannot. The transformation of plaintext to ciphertext and back is controlled by one or more strings of symbols or digits called keys (Boyd, 1993). A further use of encryption is for authentication, when it is necessary to check that you are communicating with the correct person and not an impostor (message authentication codes or digital signatures). Principles of Encryption Encryption algorithms have two possible components: substitution, in which plaintext symbols are mapped to different symbols, and transposition, in which the locations of symbols in the ciphertext are altered from the locations of the corresponding symbols in the plaintext. The need for substitution is obvious; many symbols have sufficient significance that an eavesdropper could deduce information from them wherever they are and perhaps alter them. Transposition is desirable to prevent the eavesdropper from deducing informa- tion by comparing messages, or corrupting known parts of a message, even if he does not know what they have been altered to. The most completely secure system is known as the one-time pad. This is a symbol-by- symbol substitution system in which the key is as long as the message; hence no deductions about one part of the ciphertext help the eavesdropper to decipher the rest. The problem is in distribution of the key itself (key management), which is now as big a problem as the original problem of sending the message securely. Practical encryption systems must have manageable keys and are based on algorithms for which it is too difficult, rather than theoretically impossible, to decrypt the ciphertext. Various (worst-case) assumptions are made in designing and analyzing the security of the system; it is normally assum