Table of contents CryptoBook Book Plan Style Guide Sample Page Contributors Fundamentals Mathematical Notation Division and Greatest common divisor Euclidean Algorithm Modular Arithmetic Theorems of Wilson, Euler, and Fermat Fermat's Little Theorem in Detail Euler's Theorem in Detail Quadratic Residues Continued Fractions Number Theory Ideals Polynomials With Shared Roots Integer Factorization Pollard rho Sieves Abstract algebra Groups Another take on groups Discrete Log Problem Rings Fields Polynomials Elliptic Curves Untitled Lattices Introduction LLL reduction Gram-Schmidt Orthogonalization Lagrange's algorithm LLL reduction Lattice reduction Minkowski reduced HKZ reduced LLL reduced Applications Coppersmith algorithm Extensions of Coppersmith algorithm Hard lattice problems Lattices of interest Cryptographic lattice problems Short integer solutions (SIS) Learning with errors (LWE) Ring-LWE NTRU Interactive fun Resources and notations Asymmetric Cryptography RSA Proof of correctness RSA application Low Private Component Attacks Wiener's Attack Boneh-Durfee Attack Common Modulus Attack Recovering the Modulus Diffie-Hellman MITM Elliptic Curve Cryptography Symmetric Cryptography Encryption The One Time Pad AES Rijndael Finite Field Round Transformations Hashes Introduction / overview The Birthday paradox / attack Isogeny Based Cryptography Introduction to Isogeny Cryptography Isogenies Isogeny and Ramanujan Graphs Appendices Sets and Functions Probability Theory