Skip to main content
\(\DeclareMathOperator{\lcm}{lcm} \newcommand{\lt}{<} \newcommand{\gt}{>} \newcommand{\amp}{&} \)
Lecture Notes on Cryptography
Szabolcs Tengely
Contents
Prev
Up
Next
Contents
Prev
Up
Next
Front Matter
1
Introduction
2
Classical ciphers
Shift ciphers
Affine ciphers
Hill ciphers
Substitution ciphers
Vigenère ciphers
ADFGX and ADFGVX ciphers
Playfair cipher
Exercises
3
The RSA algorithm
Common modulus attack
Iterated encryption attack
Low public exponent attack
Wiener's attack
Davida's attack
Elliptic curve factorization
Continued fraction factorization method
Dixon's method
Pollard's \(\rho\) factorization
Exercises
4
The Rabin and Paillier cryptosystems
The Rabin cryptosystem
Paillier’s cryptosystem
Exercises
5
Applications of the discrete logarithm problem
Diffie-Hellman key exchange
ElGamal cryptosystem
Massey-Omura encryption
The \(AA_{\beta}\) cryptosystem
Exercises
6
General attacks on the discrete logarithm problem
Baby-Step Giant-Step algorithm
The Pollard's \(\rho\) algorithm
Index calculus
Pohlig-Hellman algorithm
Exercises
7
Non-abelian discrete logarithm
Discrete logarithm with special generators
General case in \(PSL(2,\mathbb{F}_p)\)
Exercises
8
The NTRU cryptosystem
Lattice based attack on NTRU
CTRU: using polynomials over \(\mathbb{F}_2\)
ITRU: a variant of NTRU
Exercises
9
Shamir's secret sharing
Basic setup
Example and SageMath implementation
Exercises
10
Knapsack cryptosystems
Merkle–Hellman cryptosystem
Attack based on the LLL-algorithm
Chor-Rivest cryptosystem
Exercises
Authored in PreTeXt
Front Matter
1
Introduction
2
Classical ciphers
3
The RSA algorithm
4
The Rabin and Paillier cryptosystems
5
Applications of the discrete logarithm problem
6
General attacks on the discrete logarithm problem
7
Non-abelian discrete logarithm
8
The NTRU cryptosystem
9
Shamir's secret sharing
10
Knapsack cryptosystems