In 1994, my colleague Terri Lindquester had a pedagogical inspiration: to teach cryptology. The lack of unified
resources to teach an introductory course with mathematical themes, historical content, and current cryptographic
relevance required her to piece together material from various sources. She had considerable success with The Science
of Secret Writing: more students requested it at registration time than could be accommodated, her own insights
and teaching abilities made the course itself lively and appealing to the students enrolled, and students from
a wide range of academic disciplines learned some mathematics and cryptology. The experience convinced her that
there was a genuine need for an up-to-date introductory cryptology text, and this prompted her to seek National
Science Foundation (NSF) funding to develop materials for such a course. A guiding principle was to introduce mathematics
in the context of cryptology. This book is the result of Terri's application for that funding, of the foundation's
awarding it, and of a great deal of work, teaching, and writing in the interim. Unfortunately for those who use
this text, very little of it is Terri's writing. Almost coincident with the awarding of funding for the project,
Terri was called to serve in an administrative capacity at Rhodes College. The demands of this post were such that
it would be extraordinarily difficult for her to work on the cryptology project, and indeed its fate was, for a
time, in question. In 1997, through conversations with and encouragement from Terri, I embarked on the project:
teaching the second offering of Secret Writing, doing research, and writing materials based on her course notes
from the first offering of Secret Writing. I became "Chief Staff Mathematician" on the project. With
her continuing consultation and reviewing of early drafts, the book has evolved into its present form.
This book is directed toward those whose mathematical background includes college-preparatory courses such as
high school algebra and geometry. In earlier drafts, I have used it as the basis for a course for which there were
no formal mathematical prerequisites at the college level. Students majoring in areas ranging from Art History
to Zoology took the course. Many had not taken mathematics in four or five years.
The purpose of the book is to introduce students to segments of history and current cryptological practice that
have mathematical content or underpinnings. This is not a mathematics text in the strictest sense because it does
not begin with a few definitions and axioms and build up a mathematical edifice on that. However, a variety of
mathematical topics are developed here: modular arithmetic, probability and statistics, matrix arithmetic, Boolean
functions, complexity theory, and number theory. In each case, the topic is germane to cryptology.
The concepts introduced in this book may also be a springboard for those who may not be drawn into technical
careers but who instead may be headed toward careers in public service or industry where important policy or strategic
decisions regarding information security will be made. The more technical background the policy makers and managers
have, the better. With any luck, these pages may provide some of that background.
The treatment here is not comprehensive, but the concepts discussed cover a number of the current uses of cryptographic
methods. The mathematical basis of cryptography has been a theme throughout this exposition, and what is here can
provide an entree to a range of mathematical areas. Readers may find their way into the general mathematical literature
as well by following the links provided in the mathematical references in this book.
The academic and popular literature on cryptology is large and growing rapidly. It represents a considerable
body of general knowledge about cryptology and specific information on implementations in hardware and software.
In the bibliography of this book you will find a number of book and journal references on the subject. However,
this merely scratches the surface. If you want to explore the literature more deeply, go to the references in these
books.
A few words of advice about the book are in order. First, there is more material here than can be used in a
one-semester course. One possible pathway through the material is this: Chapter 1, Chapter 2, Chapter 3 (possibly
skipping 3.2), and Sections 4.1, 4.3, 4.4, 4.6, and 5.4. This sort of option covers conventional substitutions
and transpositions, block ciphers and hash functions, public-key cryptography and related mathematics, applications
of public-key cryptography such as key agreement and digital signatures, and finally a look at public policy issues
relating to cryptography. Several mathematical topics arise naturally with this approach: modular arithmetic, functions,
probability, matrix arithmetic, and number theory. In a more technically oriented course, a closer focus on 4.7,
5.1, or 5.3 may be appropriate.
There is a second caveat. An instructor is unlikely to be able to cover all this material at a uniform pages-per-unit-time
rate: Some of the mathematical topics here are inherently more challenging than others to absorb. Consequently,
while many sections can be dealt with effectively in one lecture, some may require more time to cover adequately.
Instructors should be prepared to use their best judgment about this issue, taking into account the background
of the students enrolled in the course.
In this material, opportunities abound for implementing encryption, decryption, and cryptanalytic methods on
a computer. Depending on the method, students and instructors may wish to use a spreadsheet, computer algebra system,
or compiled language such as C++ or Java. A few explicit examples and pseudocode and a range of hints throughout
the text provide some indications how this can be done, though programming is not a focus in this text.
Summary
This book introduces a wide range of up-to-date cryptological concepts along with the mathematical ideas that
are behind them. The new and old are organized around a historical framework. A variety of mathematical topics
that are germane to cryptology (e.g., modular arithmetic, Boolean functions, complexity theory, etc.) are developed,
but they do not overshadow the main focus of the book. Chapter topics cover origins, examples, and ideas in cryptology;
classical cryptographic techniques; symmetric computer-based cryptology; public-key cryptography; and present practice,
issues, and the future. For individuals seeking an up-close and accurate idea of how current-day cryptographic
methods work.
Table of Contents
1. Origins, Examples, and Ideas in Cryptology.
A Crypto-Chronology. Functions. Crypto: Models, Maxims, and Mystique.
2. Classical Cryptographic Techniques.
Shift Ciphers and Modular Arithmetic. Affine Ciphers; More Modular Arithmetic. Substitution Ciphers. Transposition
Ciphers. Polyalphabetic Substitutions. Probability and Expectation. The Friedman and Kasiski Tests. Cryptanalysis
of the Vingenere Cipher. The Hill Cipher; Matrices.
3. Symmetric Computer-Based Cryptology.
Number Representation. Computational Complexity. Stream Ciphers and Feedback Shift Registers. Block Ciphers.
Hash Functions.
4. Public-Key Cryptography.
Primes, Factorization, and the Euclidean Algorithm. The Merkle-Hellman Knapsack. A Little Number Theory: Fermat's
Little Theorem. The RSA Public-Key Cryptosystem. Key Agreement and the ElGamal Cryptosystem. Digital Signatures.
Zero-Knowledge Identification Protocols.
5. Present Practice, Issues, and the Future.
A Cryptographic Standard: DES. Electronic Mail Security. Public Key Infrastructure. Policy, Privacy, and International
Issues.
Glossary.
Bibliography.
Table of Primes.
Answers to Exercises.
Index.