Preface
Overview of Cryptography
Introduction
Goals of Cryptography
Classification of Cryptosystem
Practically Useful Cryptosystem
Cryptanalysis
Basic Algebra
Group
Ring
Field
Exercise
Number Theory
Introduction
Prime Numbers
Cardinality of Primes
Extended Euclidean Algorithm
Primality Testing
Factorization and Algorithms for it
Congruences
Quadratic Congruence
Exponentiation and Logarithm
Discrete Logarithm Problem and Algorithms for it
Exercise
Probability and Perfect Secrecy
Basic Concept of Probability
Birthday Paradox
Perfect Secrecy
Vernam One Time Pad
Random Number Generation
Pseudo-random Number Generator
Exercise
Complexity Theory
Running Time and Size of Input
Big-O Notation
Types of algorithm
Complexity Classes
Exercise
Classical Cryptosystems
Classification of Classical Cryptosystem
Block Cipher
Stream Cipher
Cryptanalysis of Cryptosystems
Exercise
Block Ciphers
Introduction
Modes of Operation
Padding
Design Considerations
Data Encryption Standard
Advanced Encryption Standard
Exercise
Hash Function
Compression and Hash Functions
Hash function for cryptography
Random Oracle Model
Cryptographic Hash Functions
Exercise
Public Key Cryptosystem
Introduction
Diffie-Hellman Key Exchange Protocol
RSA Cryptosystem
Rabin Cryptosystem
ElGamal Cryptosystem
Elliptic Curve Cryptosystem
Exercises
Digital Signature
Formal Definitions
Attack Goals for Digital Signature
Digital Signature in Practice
Some Popular Digital Signatures
Exercises
Research Directions in Cryptography
Pairing-Based Cryptography
Zero-knowledge Proof System
Authenticated Group Key Exchange
Attribute-Based Cryptography
Homomorphic Encryption
Secure Multi-party Computation
Secret Sharing
Post-Quantum Cryptography
Side-Channel Analysis
References
Index