Office Hours by appointment
Course DescriptionIn this class we will discuss the use of formal verification methods for proving security properties of computer systems. We will study the application of model checking and theorem proving to a wide range of security-critical systems. A few examples include voting machines, operating systems, and cryptographic protocols. We will discuss the benefits and challenges of using formal methods for security in various settings.
There are no prerequisites for this class. The class is meant for students who are interested in software, hardware, and systems security, as well as students interested in the application of formal methods. The class will be research focused: classes will be centered around the discussion of published research in the security community, and students will work on an original research project and write a workshop-quality paper describing their work.
ProjectStudents will work in groups of 2 on an original research project. At the end of the semester, each group will submit a workshop-quality paper and give a short presentation in class describing their work. A written project proposal will be due roughly six weeks into the semester. We will discuss possible project ideas in class; however, you are encouraged to develop your own ideas.
ReadingWe will read one paper per class. You are required to complete the reading and submit a short review by the midnight before class. Your review should contain:
- One to three sentences summarizing the problem addressed, the basic approach taken, and the key insight or innovation of the paper;
- Up to six sentences describing the strengths and weaknesses of the paper, as you see it;
- At least one concrete idea for a research project inspired by this paper that you might do; and
- Any questions you might have.
Paper PresentationEach person will be responsible for presenting 2--3 papers to the class over the course of the semester.
GradingFinal Project: 50%
Paper Reviews and Discussion: 20%
Paper Presentations: 30%