Cryptography, or cryptology, is a subject that is concerned with privacy or confidentiality of communication over insecure channels, in the presence of adversaries. It seeks to find ways to encrypt messages so that even if an unauthorized party gets a hold of a message, they cannot make sense out of it. The ways to break encryption systems, called cryptanalysis, is also part of the subject. Cryptography is sometimes confused with the related but distinct field of coding theory that deals with reliability of communication over noisy channels. See the author’s earlier module titled “An introduction to coding theory via Hamming codes” for an introduction to coding theory. There are two basic methods in cryptography: classical cryptography and public key cryptography. The latter is a more recent idea and this module will focus on that method through one of its best known and widely used examples: RSA cryptosystem. Proposed in 1977, the RSA cryptosystem has survived many attacks and is still commonly used.