Introduction
------------
Here is your in-depth guide to cryptography and cryptanalysis in Java. This book includes challenging cryptographic solutions that are implemented in Java 17 and Jakarta EE 10. It provides a robust introduction to Java 17's new features and updates, a roadmap for Jakarta EE 10 security mechanisms, a unique presentation of the "hot points" (advantages and disadvantages) from the Java Cryptography Architecture (JCA), and more.
The book dives into the classical simple cryptosystems that form the basis of modern cryptography, with fully working solutions (encryption/decryption operations). Pseudo-random generators are discussed as well as real-life implementations. Hash functions are covered along with practical cryptanalysis methods and attacks, asymmetric and symmetric encryption systems, signature and identification schemes.
The book wraps up with a presentation of lattice-based cryptography and the NTRU framework library. Modern encryption schemes for cloud and big data environments (homomorphic encryption and searchable encryption) also are included. After reading and using this book, you will be proficient with crypto algorithms and know how to apply them to problems you may encounter.
What You Will Learn
-------------------
Develop programming skills for writing cryptography algorithms in Java
Dive into security schemes and modules using Java
Explore “good” vs “bad” cryptography based on processing execution times and reliability
Play with pseudo-random generators, hash functions, etc.
Leverage lattice-based cryptography methods, the NTRU framework library, and more
Author(s): Stefania Loredana Nita, Marius Iulian Mihailescu
Edition: 1
Publisher: Springer
Year: 2022
Language: English
Pages: 232
Tags: java17 java18 openjdk cryptography jakarta ee10 lts
Table of Contents
About the Authors
About the Technical Reviewer
Chapter 1: Introduction
Cryptography and Cryptanalysis
Book Structure
Conclusion
References
Chapter 2: JDK 17: New Features
Conclusion
References
Chapter 3: Roadmap and Vision for Jakarta EE 10
Conclusion
References
Chapter 4: Java Cryptography Architecture
Architecture and Design Principles
JCA Classes and Algorithms
Algorithms and Engine Classes
Interfaces and Main Classes
Data Encryption
Hash Functions
Signatures
Generating Signatures
Verifying the Signature
Conclusion
References
Chapter 5: Classical Cryptography
Caesar Cipher
Implementation
Cryptanalysis
Vigenère Cipher
Implementation
Cryptanalysis
Hill Cipher
Implementation
Cryptanalysis
Conclusion
References
Chapter 6: Formal Techniques for Cryptography
Definitions
Probabilities and Statistics
Conditional Probability
Random Variables
Entropy
A Little Algebra
Elliptic Curves
Conclusion
References
Chapter 7: Pseudorandom Number Generators
Examples of PRNGs
Linear Congruential PRNGs
Blum-Blum-Shub PRNG
Linear Circuit PRNGs
Other PRNGs
PRNGs Security
Java.util.Random Class
Conclusion
References
Chapter 8: Hash Functions
Conclusion
References
Chapter 9: Symmetric Encryption Algorithms
Data Encryption Standard
The Generation of Keys
Encryption and Decryption Process
Operation Modes for DES
Advanced Encryption Standard
Encryption and Decryption Process
Operation Modes for AES
Conclusion
References
Chapter 10: Asymmetric Encryption Schemes
RSA
ElGamal
Merkle-Hellman
The Knapsack Approach
Algorithms
Conclusion
References
Chapter 11: Signature Schemes
Conclusion
References
Chapter 12: Identification Schemes
FFS Identification protocol
Conclusion
References
Chapter 13: Lattice-Based Cryptography and NTRU
Practical Implementation of the NTRU Library
Conclusion
References
Chapter 14: Advanced Encryption Schemes
Homomorphic Encryption
Searchable Encryption
Conclusion
References
Chapter 15: Cryptography Tools
CryptTool
OpenSSL
Conclusion
References
Index