Author(s): George Kudrayvtsev
Year: 2022
Language: English
Tags: CS 6260; cybersecurity; georgia tech; georgia institute of technology; algorithms; computer science; lecture notes
Contents
Preface
Introduction
I Symmetric Cryptography
Perfect Security
Notation & Syntax
One-Time Pads
The Beauty of XOR
Proving Security
Block Ciphers
Modes of Operation
ECB—Electronic Code Book
CBC—Cipher-Block Chaining
CBCC—Cipher-Block Chaining with Counter
CTR—Randomized Counter Mode
CTRC—Stateful Counter Mode
Security Evaluation
IND-CPA: Indistinguishability Under Chosen-Plaintext Attacks
IND-CPA-cg: A Chosen Guess
What Makes Block Ciphers Secure?
Random Functions
IND-CCA: Indistinguishability Under Chosen-Ciphertext Attacks
Summary
Message Authentication Codes
Notation & Syntax
Security Evaluation
UF-CMA: Unforgeability Under Chosen-Message Attacks
Mode of Operation: CBC-MAC
Hash Functions
Collision Resistance
Building Hash Functions
One-Way Functions
Hash-Based MACs
Authenticated Encryption
INT-CTXT: Integrity of Ciphertexts
Generic Composite Schemes
Encrypt-and-MAC
MAC-then-encrypt
Encrypt-then-MAC
In Practice…
Dedicated Authenticated Encryption
AEAD: Associated Data
GCM: Galois/Counter Mode
Stream Ciphers
Generators
PRGs for Encryption
Evaluating PRGs
Creating Stream Ciphers
Forward Security
Considerations
Common Implementation Mistakes
II Asymmetric Cryptography
Overview
Notation
Security Definitions
Number Theory
Groups
Modular Arithmetic
Running Time
Inverses
Modular Exponentiation
Groups for Cryptography
Discrete Logarithm
Constructing Cyclic Groups
Modular Square Roots
Square Groups
Square Root Extraction
Chinese Remainder Theorem
Encryption
Recall: The Discrete Logarithm
Formalization
Difficulty
Diffie-Hellman Key Exchange
ElGamal Encryption
Security: IND-CPA
Security: IND-CCA
Cramer-Shoup Encryption
RSA Encryption
Protocol
Limitations
Securing RSA
Hybrid Encryption
Multi-User Encryption
Security Definitions
Security Evaluation
Scheme Variants
Digital Signatures
Security Definitions
RSA
Plain RSA
Full-Domain Hash RSA
Probabilistic Signature Scheme
ElGamal
Digital Signature Algorithm
Schnorr Signatures
Scheme Variants
Simple Multi-Signature Scheme
Simple Blind Signature Scheme
Signcryption
Secret Sharing
Public Key Infrastructure
Registering Users
Revocation
Scaling
An Alternative: Pretty Good Privacy
Secret Sharding
Shamir's Secret Sharing
Threshold Schemes
Man-in-the-Middle Attacks
Passwords
Epilogue
III Advanced Topics
Secure Cryptographic Primitives
OWFs to PRGs
Extension by 1 Bit
Arbitrary Extension
PRGs to PRFs
Conclusion
References
Commitments
Formalization
Pedersen Commitments
Proof of Properties
Random Oracle Model
An Amazing PRF
Conclusion
References
Zero-Knowledge Proofs
Knowledge Proof
Example: Factorization
Formalization
Zero-Knowledge
Example: Factorization
Example: Graph Coloring
Formalization
Schnorr's Protocol
Interactivity
Succinctness
Why Succinct Proofs?
Construction
References
Multi-Party Computation
Two-Party Computation
Oblivious Transfer
Yao's Garbled Circuits
Extending to More Parties
Elliptic Curves
Elliptic Curves as a Group
The Set
The Operation: ``Addition''
Group Properties
References
Index of Terms