Spring 2023


Listed in: Mathematics and Statistics, as MATH-252

Moodle site: Course


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.

How to handle overenrollment: Preference is given to students who have not taken Math 350 or equivalent.

Students who enroll in this course will likely encounter and be expected to engage in the following intellectual skills, modes of learning, and assessment: Problem sets, In-class quizzes or exams, Use of computational software, Writing short programs.


2022-23: Offered in Spring 2023