The book can be used at several different levels. Those interested in learning how to encipher messages using a variety of symmetric and asymmetric schemes will learn those techniques in this volume. Those interested in learning the mathematical foundations of these techniques will learn how and why the enciphering schemes actually work. And those who are looking for some challenging computer programming exercises will also find exercises in this book to keep them busy.
Table of Contents
Preface
1. Monoalphabetic Substitution Ciphers
2. Polyalphabetic Substitution Ciphers
3. Polygraphic Substitutio Systems
4. Public Key Cryptography
Appendix A: ASCII Code
Appendix B: Taxonomy of Cryptography
Appendix C: Answers to EvenNumbered Problems
Excerpt: Ch. 4 Public Key Cryptography (p. 141)
A common characteristic of all the cryptographic schemes so far considered is their symmetric nature—each scheme required the sender and the receiver of the message to share a bit of knowledge, namely the key used to encipher and decipher the text. In recent years, asymmetric cryptographic systems have been proposed. In such systems, rather than the sender and receiver sharing a common key, each participant has a public key E (for enciphering) and a private key D (for deciphering). The public and private keys of the sender are in no way related to the public and private keys of the receiver of the message. In fact, the public keys of the participants may well be published in a telephone directory format! For this reason, a scheme such as this is known as a public key scheme.
Suppose Beth wants to send Stephanie a message m using a public key system. Here's how this might work:

Beth looks up Stephanie's public key E_{s} in the directory and enciphers m using this key—the result is a ciphertext message E_{s}(m).

Upon receiving the ciphertext, Stephanie deciphers it using her private key D_{s} and arrives at the plaintext message D_{s}(E_{s}(m)).

If the system is correctly designed, D_{s}(E_{s}(m)) = m and so Stephanie now possesses Beth's original plaintext message. Note that Beth's public and private keys have no role to play in this transaction.
Should Molly intercept the encrypted message E_{s}(m), she would need to discover Stephanie's private key D_{s} in order to decipher the message. Molly wouldn't be able to persuade Beth to reveal this key—Beth herself is clueless as to its identity!
Of all the implementations of public key cryptographic systems, one of the more popular is the socalled RSA algorithm, named for its inventors Ronald Rivest, Adi Shamir and Leonard Adelman. In this chapter we will examine the workings of this system and answer questions including:

Where do these public and private keys come from?

What is the nature of these keys

How do you assure that D_{s}(E_{s}(m)) = m?
The answers to some of these and other questions lie in the theory of numbers. In particular, a 350 yearold theorem of Pierre de Fermat (whose name popped up in Section 2.3 in connection with probability) holds the solutions to these mysteries.
About the Author
Robert Edward Lewand received his PhD in mathematics from the University of Virginia. He is the coauthor of two books: Expert System Development and Intelligent Systems Design. He has delivered numerous talks and published extensively in professional journals largely in the areas of expert systems and artificial intelligence. He has been the recipient of several awards: Outstanding Teacher in the Faculty of Science (Goucher College, 1980), Fulbright Faculty Exchange Award (1987), Outstanding Scholarship Award (Goucher College, 1989), Caroline Doebler Bruckerl Award for Outstanding Faculty Member (Goucher College, 1999), and the John Smith Award for Distinguished College or University Teaching (MarylandVirginiaDistrict of Columbia Section of the Mathematical Association of America, 2002).