posted 30 Aug 2021

updated 25 Jan 2025

Cryptography


§ Overview

Mathematical foundations of modern cryptography including \n-Diffie-Hellman key-exchange, RSA, primality tests (AKS, Baillie-PSW), factorization (Pollard rho, sieves, Lenstra), and elliptic curves.

Notes from MATH 470 — Communications and Cryptography at Texas A&M.

Based off of lectures by Dr. Josiah Park, and An Introduction to Mathematical Cryptography by J. Hoffstein, J. Pipher, and J.H. Silverman.

§ Comments

Notation

  • Zn\mathbb{Z}_n and Z/nZ\mathbb{Z}/n\mathbb{Z} are used interchangably; as are (Zn)×(\mathbb{Z}_n)^\times and (Z/nZ)×(\mathbb{Z}/n\mathbb{Z})^\times
  • Zn\mathbb{Z}_n is sometimes used in place of (Zn)+(\mathbb{Z}_n)^{+} or (Zn)×(\mathbb{Z}_n)^\times, which is disambiguated based on context
  • N\mathbb{N} are the natural numbers, defined without 0.
  • P\mathbb{P} are the set of primes
  • The interval notation [ab],[a\dots b], (ab),(a\dots b), (ab],(a\dots b], [ab)[a\dots b) defines the set of integers between aa and bb with brackets for inclusivity or parentheses for exclusivity[a].

(2025) Over the years I've come to prefer the set notation {a,,b}[ab],\{a, \dots, b\} \triangleq [a\dots b], even if it means that I have to explicitly state n1n - 1 instead of using a parenthesis for when something is exclusive.

^a: Not everything has been touched in my update; some portions of these notes may use the interval notation, and in others the set notation.