Listed in: Mathematics and Statistics, as MATH-252
Nathan K. Pflueger (Section 01)
Many security problems arise when two computers must communicate on a channel with eavesdroppers or malicious attackers. Public-key cryptography applies ideas from number theory and abstract algebra to address these problems. This course concerns the mathematical theory and algorithms needed to construct the most commonly-used public-key ciphers and digital signature schemes, as well as the attacks that must be anticipated when designing such systems. Several topics from number theory, abstract algebra, and algorithms will be introduced, including discrete logarithms, integer factorization algorithms, and elliptic curves. Depending on time and student interest, we may cover some newer systems that are believed to be secure against attacks by quantum computers but not yet commonly implemented in practice. Students will write short programs to implement the systems and to break badly implemented systems. No prior programming experience is expected; basic aspects of programming in Python will be taught in class. Four class hours per week.
Requisite: Experience writing proofs, such as MATH 220/221 or 271/272, or consent of the instructor. Spring semester. Professor Pflueger.