# Cryptography

- [Introduction](/notes/cryptography/introduction.md)
- [Number Theory Fundamentals](/notes/cryptography/number-theory-fundamentals.md)
- [Divisibility, Factors and Euclid's Algorithms](/notes/cryptography/number-theory-fundamentals/divisibility-factors-and-euclids-algorithms.md): An outline of the fundamentals of number theory
- [Modular Arithmetic](/notes/cryptography/number-theory-fundamentals/modular-arithmetic.md): An introduction to the fundamentals
- [Rings, Fields and Euler's Totient Function](/notes/cryptography/number-theory-fundamentals/rings-fields-and-eulers-totient-function.md): The basics of Rings, Fields and Euler's Phi Function
- [Continued Fractions](/notes/cryptography/continued-fractions.md)
- [RSA](/notes/cryptography/overview.md)
- [Public Exponent Attacks](/notes/cryptography/overview/public-exponent-attacks.md)
- [e=1](/notes/cryptography/overview/public-exponent-attacks/e-1.md)
- [Small e](/notes/cryptography/overview/public-exponent-attacks/small-e.md)
- [Multi-party RSA with Small e](/notes/cryptography/overview/public-exponent-attacks/multi-party-rsa-with-small-e.md)
- [Wiener's Attack](/notes/cryptography/overview/public-exponent-attacks/wieners-attack.md): Using Continued Fractions to attack large e values
- [Choice of Primes](/notes/cryptography/overview/choice-of-primes.md)
- [N is prime](/notes/cryptography/overview/choice-of-primes/n-is-prime.md)
- [Mersenne Primes](/notes/cryptography/overview/choice-of-primes/mersenne-primes.md)
- [P=Q](/notes/cryptography/overview/choice-of-primes/p-q.md)
- [Fermat Factorisation](/notes/cryptography/overview/choice-of-primes/fermat-factorisation.md): Used when p and q are numericaly close
- [Factorisation Methods](/notes/cryptography/overview/factorisation-methods.md)
- [Pollard's p-1](/notes/cryptography/overview/factorisation-methods/pollards-p-1.md): Factorising N when we know a factor is smooth
- [Diffie-Hellman Key Exchange](/notes/cryptography/overview-1.md)
- [Solving the DLP](/notes/cryptography/overview-1/solving-the-dlp.md)
- [Baby Step, Giant Step](/notes/cryptography/overview-1/solving-the-dlp/baby-step-giant-step.md): The simple iterative approach
