This document discusses elliptic curve cryptography and zero knowledge proofs. It begins by establishing the mathematical foundations needed for cryptography, including groups, rings, fields, and the discrete logarithm problem. It then explains how elliptic curves can be used in public key cryptography applications like Diffie-Hellman key exchange and ElGamal encryption. It also covers zero knowledge proofs, their properties, examples of uses, and the Fiat-Shamir identification protocol. Throughout, it provides examples to illustrate key concepts in elliptic curve cryptography and zero knowledge proofs.