Formal Methods for Security

PhD Course, 7.5 credits
Study period 2 (November 2025 - January 2026)
Language: English
Maximum number of students: 20 (PhD students have priority)
Registrtation deadline: general LP2 25/26 course registration deadline
Instructor: Hazem Torfah


OVERVIEW

Formal methods are mathematical techniques for the specification, design, and verification of software and hardware systems. In the context of security, formal methods provide rigorous tools to model and analyze systems for potential vulnerabilities and ensure compliance with security policies. These methods enable the precise definition of security properties, such as confidentiality, integrity, and privacy, and allow for automated verification to detect flaws that may be overlooked by traditional testing. By applying formal techniques such as model checking, theorem proving, and formal specification languages, developers can build systems with provable security guarantees.

The course consists of a series of lectures on different formalisms and methods that have been developed to reason about security and privacy properties. Topics include program verification through relational Hoare logic and its probabilistic extensions, the specification and verification of hyperproperties, formal verification of cryptographic protocols, and techniques for quantitative information flow analysis and verification.



LEARNING OUTCOME

After completion of the course the student should be able to:



PREREQUISITES

For PhD students: For Master students: We will be accepting a limited number of Master's students. To attend the course we expect to have successfully completed at least one of the following courses:

ORGANIZATION

The course will be split into two parts:

Lectures:

The first part of the course will consist of a series of lectures introducing the foundational concepts and methods related to the topics listed above. We will have up to three lectures per week, and this part will span approximately 4-5 weeks. The exact schedule will be provided below. Participation in quizzes during this period is mandatory.

Project:

The second part of the course involves project work. In groups of up to two students, you will implement and experiment with a practical project that applies key concepts learned in the course. The project work will include the following tasks: Project selection or proposals are due no later than the beginning of the fourth week of the course. Project work should begin immediately thereafter. Final presentations will take place in January.

REGISTRATION

For PhD students: please register by sending a registration email to the instructor

For masters students, this is an instance of the research-oriented course in Computer Science and Engineering (Chalmers: DAT235, GU: DIT577) with Ana Bove as examiner. Contact Ana Bove if you would like to be registered to this course. Note that you may not take the class for credit if you already have a result for this course code DAT235/DIT577 (e.g. from a previous iteration of the course). See the course plans at Chalmers and GU



EXAMINATION AND GRADING

To pass the course, students must successfully complete both the quizzes and the project. To pass the quizzes, a student must pass at least 3 out of the 4 quizzes. A quiz is considered passed if the student achieves at least 50% of the total points. To pass the project, students must complete all tasks 1, 2, and 3, present their project in class, meet the requirements for the written report documenting the project, and successfully pass the artifact evaluation.

Notice: The course examiner may assess individual students in other ways than what is stated above if there are special reasons for doing so, for example if a student has a decision from Chalmers about disability study support.

Final Grade:

Definition of functional and reusable for the purpose of this course

Functional:

Reusable:



SCHEDULE

TBD



COURSE MATERIAL

The class will be based on lecture slides that will be posted on this website.

Further resources