About This Book
This book is organized like a sandwich. The outer chapters (Chapter 1, Chapter 2, and Chapter 12) provide context for the rest of the book. Chapter 3 through Chapter 11 (the meat) are a methodical and pragmatic description of cryptographic programming in Java, including numerous useful examples.
Chapter 1, describes cryptography’s role in secure systems development and introduces some short examples of cryptographic programming.
Chapter 2, introduces the fundamental concepts of cryptography: ciphers, message digests, signatures, and random numbers.
Chapter 3, presents a bird’s-eye view of Java cryptographic software packages and introduces the Provider Architecture that underlies the Java Security API.
Chapter 4, describes cryptographic random numbers in Java.
Chapter 5, describes the key management classes that are included with the JDK.
Chapter 6, shows how to use message digests, signatures, and certificates for authentication.
Chapter 7, covers encryption: symmetric and asymmetric ciphers, cipher modes, and hybrid systems.
Chapter 8, describes how to create signed applets.
Chapter 9, describes how to write a security provider. It includes classes that implement the ElGamal cipher and signature algorithms.
Chapter 10, presents a completely functional application, a cryptographically enabled network talk application.
Chapter 11, includes another complete application, a cryptographically enabled email client.
Chapter 12, talks about noncryptographic security issues you should know about.
Appendix A, discusses the
BigInteger class, which is useful for implementing
the mathematics of cryptographic algorithms.
Appendix B, presents classes for base64 conversion.
Appendix C, describes the
archiving tool, which is used to bundle up Java applets and
Appendix D, includes a description of the JDK 1.1
javakey tool, which is used to manage a database
of keys and certificates.
Appendix E, contains a quick reference listing of the cryptographic classes covered in this book.