Summary of "Cryptography and Cryptanalysis in Java"
Chapter 1: Getting Started
This chapter introduces cryptology as the study of techniques for secure communication. It
explains the difference between theoretical and applied cryptography, and introduces
cryptanalysis. The chapter emphasizes the increasing need for secure digital
communication in the 'zettabytes era'. It outlines the book's goal to provide practical
cryptographic solutions using Java.
Chapter 2: JDK 21: New Features
Explores Java SE 21’s new features including pattern matching for switch, record patterns,
virtual threads, and structured concurrency. The chapter focuses on how these features can
be applied to cryptographic applications to improve clarity, performance, and security in
Java programs.
Chapter 3: Roadmap and Vision for Jakarta EE 11
Details the goals and improvements in Jakarta EE 11, particularly for building secure,
scalable, cloud-native enterprise applications. It highlights new APIs, compatibility
improvements, and support for microservices and DevOps strategies.
Chapter 4: Java Cryptography Architecture
Provides an in-depth guide to Java’s built-in cryptography framework (JCA), including
providers, key management, secure random generation, encryption, and digital signatures.
The chapter includes Java examples demonstrating real-world usage.
Chapter 5: Classical Cryptography
Covers historical ciphers like Caesar, Vigenère, and Hill. Each method is presented with
mathematical background and Java code for encryption/decryption and analysis. This
chapter serves as a foundation for understanding modern techniques.
Chapter 6: Quantum Cryptography
Introduces quantum concepts such as qubits, superposition, and entanglement. Explains
quantum key distribution (QKD), particularly the BB84 protocol, and demonstrates Java-
based simulations integrating quantum ideas with classical cryptography.
Chapter 7: Formal Techniques for Cryptography
Focuses on mathematical rigor in cryptography: logic-based models, entropy, algebra, and
elliptic curves. It discusses formal verification techniques that prove cryptographic
algorithm correctness and robustness.
Chapter 8: Pseudorandom Generators
Explores the theory and implementation of pseudorandom number generators (PRNGs).
Java’s `Random` class and new secure alternatives are compared. Discusses the security
flaws in insecure PRNGs for cryptographic use.
Chapter 9: Hash Functions
Examines cryptographic hash functions like MD5 and SHA variants. Discusses their uses in
data integrity, digital signatures, and password security, highlighting desired properties
such as collision resistance.
Chapter 10: Symmetric Encryption Algorithms
Describes symmetric encryption, focusing on DES, AES, Blowfish, and Twofish. Includes key
generation, encryption steps, operation modes (CBC, ECB), and practical security concerns.
Chapter 11: Asymmetric Encryption Schemes
Introduces public-key cryptography with RSA, ElGamal, and Merkle-Hellman. Describes key
distribution, encryption/decryption mechanics, and modern usage. Discusses ECC and post-
quantum advancements.
Chapter 12: Advanced Encryption Schemes
Explores secure computation through homomorphic and searchable encryption. Presents
how these methods can enable computations on encrypted data without decryption,
maintaining data privacy.