Who Are You?
This book is written for moderately experienced Java developers who are interested in cryptography. It describes cryptographic development in Java. If you know nothing about cryptography, don’t worry—there’s a whole chapter (Chapter 2) that describes the concepts. The main thrust of this book is to detail the classes and techniques that you need to add cryptographic functionality to your Java application.
This book stubbornly sticks to its subject, cryptographic development in Java. If you’re curious about the mathematics or politics of cryptography, pick up a copy of Bruce Schneier’s Applied Cryptography (Wiley). Although I will implement the ElGamal cipher and signature algorithms in Chapter 9, I’m demonstrating the Java programming, not the mathematics. And although I explain how the Java cryptography packages are divided by U. S. export law (Chapter 3), I won’t try to explain the laws in detail or comment on them. A solid book on the mathematics of cryptography is the Handbook of Applied Cryptography by Alfred J. Menezes et al. (CRC Press). For a recent look at the politics of cryptography, see Privacy on the Line: The Politics of Wiretapping and Encryption, by Whitfield Diffie and Susan Landau (MIT Press).
If you need to get up to speed with Java development, I suggest these O’Reilly books:
David Flanagan’s Java in a Nutshell provides a speedy introduction to Java for the experienced developer.
Exploring Java, by Pat Niemeyer and Joshua Peck, has a gentler learning curve for the less experienced developer.
For an overview of the entire Java Security API, try Scott Oaks’ Java Security, also published by O’Reilly.