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.

Math Book

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).

Programming Books

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.