This book is based on a course in cryptography at the upper level under
graduate and beginning graduate level that has been given at the University
of Maryland since 1997. When designing the course, we decided on the fol
lowing requirements.
• The course should be up-to-date and cover a broad selection of topics
from a mathematical point of view.
• The material should be accessible to mathematically mature students
having little background in number theory and computer program-
ming.
• There should be examples involving numbers large enough to demon-
strate how the algorithms really work.
We wanted to avoid concentrating solely on RSA and discrete logarithms,
which would have made the course mostly a number theory course. We
also did not want to teach a course on protocols and how to hack into
friends' computers. That would have made the course less mathematical
than desired.
There are numerous topics in cryptology that can be discussed in an
introductory course. We have tried to include many of them. The chapters
represent, for the most part, topics that were covered during the different
semesters we taught the course. There is certainly more material here than
could be treated in most one-semester courses. The first eight chapters
represent the core of the material. The choice of which of the remaining
chapters are used depends on the level of the students.