Textbooks
Required reading
Cryptography and Network Security: Principles and
Practice, William Stallings, 1998, Prentice Hall.
This is the primary textbook, and is the book from which exercises
will be assigned. Note that this is not the
same book used in CSPP 531 during winter quarter.
PKI: A Wiley Tech Brief, Tom Austin, 2001, Wiley & Sons.
This book contains a good overview of PKI, and several case studies
which will be discussed in class.
Recommended reading
Applied Cryptography, 2nd edition, Bruce Schneier, 1995,
Wiley & Sons.
This is the definitive book on cryptographic algorithms, and
includes C source code. Available in
paperback or
hardcover. There is also a copy on 24-hour reserve in Eckhart Library.
I've been asked if there's a good book that goes into more detail on the
number theory. My recommendation would be:
The Higher Arithmetic, 7th edition, William Davenport, 1999,
Cambridge University Press.
This is a great, small book on number theory, with a section on
cryptographic applications. It covers all the topics from class (and
goes into more detail than you probably want to see).
There are no required programming books for the class. If you want
a reference book, I recommend the following:
Java
Thinking in Java, Bruce Eckel, 2000, Prentice Hall.
The entire text of the book is available
online
(and is nicely hyperlinked).
Java in a Nutshell, David Flanagan, 1999, O'Reilly,
and the companion volume,
Java Examples in a Nutshell.
These are a solid introduction to the language, and serve as a
useful reference once you've learned the basics.
Python
Learning Python, Mark Lutz and David Ascher, 1999, O'Reilly.
This is a good introduction to the language.
Python Essential Reference, 2nd edition,
David Beazley, 2001, New Riders.
This contains a tutorial and a complete reference, in one small
volume. (And, if you have any questions, the author is just down the
hall.) This is best for people with a bit of programming experience.
The new second edition includes Python 2.1.
Programming Python, Mark Lutz, 2001, O'Reilly.
This is a good reference for Python 2.0, though a bit too heavy for
everyday use.