CryptographyHow can two people communicate secrets back and forth, even when a third party can eavesdrop on everything they say? Modern cryptography is an increasingly important field which helps to answer this question. It draws from a variety of mathematical and math-related fields, such as number theory, computational complexity, and the theory of algorithms. Topics may include some basic encryption-breaking techniques, the discrete logarithm problem, integer factorization and primality testing, probability and combinatorics, elliptic curves, complexity theory, and P versus NP. The course will introduce several modern techniques, such as Diffie-Hellman key exchange, ElGamal encryption, RSA, and probabilistic prime tests. While this is not a computer programming course, those interested in the subject may find this course an illuminating introduction to some theoretical aspects of the field.