Search result: Catalogue data in Spring Semester 2023

Computer Science Master Information
Majors
Major in Secure and Reliable Systems
Core Courses
NumberTitleTypeECTSHoursLecturers
263-2815-00LAutomated Software Testing Information Restricted registration - show details
Last cancellation/deregistration date for this graded semester performance: 17 March 2023! Please note that after that date no deregistration will be accepted and the course will be considered as "fail".
W7 credits2V + 1U + 3AZ. Su
AbstractThis course introduces students to classic and modern techniques for the automated testing and analysis of software systems for reliability, security, and performance. It covers both techniques and their applications in various domains (e.g., compilers, databases, theorem provers, operating systems, machine/deep learning, and mobile applications), focusing on the latest, important results.
Learning objective* Learn fundamental and practical techniques for software testing and analysis

* Understand the challenges, open issues and opportunities across a variety of domains (security/systems/compilers/databases/mobile/AI/education)

* Understand how latest automated testing and analysis techniques work

* Gain conceptual and practical experience in techniques/tools for reliability, security, and performance

* Learn how to perform original and impactful research in this area
ContentThe course will be organized into the following components: (1) classic and modern testing and analysis techniques (coverage metrics, mutation testing, metamorphic testing, combinatorial testing, symbolic execution, fuzzing, static analysis, etc.), (2) latest results on techniques and applications from diverse domains, and (3) open challenges and opportunities.

A major component of this course is a class project. All students (individually or two-person teams) are expected to select and complete a course project. Ideally, the project is original research related in a broad sense to automated software testing and analysis. Potential project topics will also be suggested by the teaching staff.

Students must select a project and write a one or two pages proposal describing why what the proposed project is interesting and giving a work schedule. Students will also write a final report describing the project and prepare a 20-30 minute presentation at the end of the course.

The due dates for the project proposal, final report, and project presentation will be announced.

The course will cover results from the Advanced Software Technologies (AST) Lab at ETH as well as notable results elsewhere, providing good opportunities for potential course project topics as well as MSc project/thesis topics.
Lecture notesLecture notes/slides and other lecture materials/handouts will be available online.
LiteratureReading material and links to tools will be published on the course website.
Prerequisites / NoticeThe prerequisites for this course are some programming and algorithmic experience. Background and experience in software engineering, programming languages/compilers, and security (as well as operating systems and databases) can be beneficial.
263-2925-00LProgram Analysis for System Security and Reliability Information
Does not take place this semester.
W7 credits2V + 1U + 3AM. Vechev
AbstractSecurity issues in modern systems (blockchains, datacenters, deep learning, etc.) result in billions of losses due to hacks and system downtime. This course introduces fundamental techniques (ranging over automated analysis, machine learning, synthesis, zero-knowledge, differential privacy, and their combinations) that can be applied in practice so to build more secure and reliable modern systems.
Learning objective* Understand the fundamental techniques used to create modern security and reliability analysis engines that are used worldwide.

* Understand how symbolic techniques are combined with machine learning (e.g., deep learning, reinforcement learning) so to create new kinds of learning-based analyzers.

* Understand how to quantify and fix security and reliability issues in modern deep learning models.

* Understand open research questions from both theoretical and practical perspectives.
ContentPlease see: https://www.sri.inf.ethz.ch/teaching/pass2022 for detailed course content.
263-4660-00LApplied Cryptography Information Restricted registration - show details W8 credits3V + 2U + 2PK. Paterson, F. Günther
AbstractThis course will introduce the basic primitives of cryptography, using rigorous syntax and game-based security definitions. The course will show how these primitives can be combined to build cryptographic protocols and systems.
Learning objectiveThe goal of the course is to put students' understanding of cryptography on sound foundations, to enable them to start to build well-designed cryptographic systems, and to expose them to some of the pitfalls that arise when doing so.
ContentBasic symmetric primitives (block ciphers, modes, hash functions); generic composition; AEAD; basic secure channels; basic public key primitives (encryption,signature, DH key exchange); ECC; randomness; applications.
LiteratureTextbook: Boneh and Shoup, “A Graduate Course in Applied Cryptography”, http://toc.cryptobook.us/book.pdf.
Prerequisites / NoticeStudents should have taken the D-INFK Bachelor's course “Information Security" (252-0211-00) or an alternative first course covering cryptography at a similar level. / In this course, we will use Moodle for content delivery: https://moodle-app2.let.ethz.ch/course/view.php?id=19644.
CompetenciesCompetencies
Subject-specific CompetenciesConcepts and Theoriesassessed
Techniques and Technologiesassessed
Method-specific CompetenciesAnalytical Competenciesassessed
Media and Digital Technologiesassessed
Personal CompetenciesCreative Thinkingfostered
Critical Thinkingfostered
Integrity and Work Ethicsfostered
Elective Courses
NumberTitleTypeECTSHoursLecturers
252-0408-00LCryptographic Protocols Information W6 credits2V + 2U + 1AM. Hirt
AbstractIn a cryptographic protocol, a set of parties wants to achieve some common goal, while some of the parties are dishonest. Most prominent example of a cryptographic protocol is multi-party computation, where the parties compute an arbitrary (but fixed) function of their inputs, while maintaining the secrecy of the inputs and the correctness of the outputs even if some of the parties try to cheat.
Learning objectiveTo know and understand a selection of cryptographic protocols and to
be able to analyze and prove their security and efficiency.
ContentThe selection of considered protocols varies. Currently, we consider
multi-party computation, secret-sharing, broadcast and Byzantine
agreement. We look at both the synchronous and the asynchronous
communication model, and focus on simple protocols as well as on
highly-efficient protocols.
Lecture notesWe provide handouts of the slides. For some of the topics, we also
provide papers and/or lecture notes.
Prerequisites / NoticeA basic understanding of fundamental cryptographic concepts (as taught
for example in the course Information Security) is useful, but not
required.
CompetenciesCompetencies
Subject-specific CompetenciesConcepts and Theoriesassessed
Techniques and Technologiesassessed
Method-specific CompetenciesAnalytical Competenciesassessed
Decision-makingfostered
Personal CompetenciesCreative Thinkingfostered
Critical Thinkingfostered
263-2812-00LProgram Verification Information Restricted registration - show details W5 credits3G + 1AP. Müller, M. Eilers
AbstractA hands-on introduction to the theory and construction of deductive program verifiers, covering both powerful techniques for formal program reasoning, and a perspective over the tool stack making up modern verification tools.
Learning objectiveStudents will earn the necessary skills for designing, developing, and applying deductive verification tools that enable the modular verification of complex software, including features challenging for reasoning such as heap-based mutable data and concurrency. Students will learn both a variety of fundamental reasoning principles, and how these reasoning ideas can be made practical via automatic tools.

By the end of the course, students should have a good working understanding and decisions involved with designing and building practical verification tools, including the underlying theory. They will also be able to apply such tools to develop formally-verified programs.
ContentThe course will cover verification techniques and ways to automate them by introducing a verifier for a small core language and then progressively enriching the language with advanced features such as a mutable heap and concurrency. For each language extension, the course will explain the necessary reasoning principles, specification techniques, and tool support. In particular, it will introduce SMT solvers to prove logical formulas, intermediate verification languages to encode verification problems, and source code verifiers to handle feature-rich languages. The course will intermix technical content with hands-on experience.
Lecture notesThe slides will be available online.
LiteratureWill be announced in the lecture.
Prerequisites / NoticeA basic familiarity with propositional and first-order logic will be assumed. Courses with an emphasis on formal reasoning about programs (such as Formal Methods and Functional Programming) are advantageous background, but are not a requirement.
263-4600-00LFormal Methods for Information Security Information
Does not take place this semester.
W5 credits2V + 1U + 1A
AbstractThe course focuses on formal methods for the modeling and analysis of security protocols for critical systems, ranging from authentication protocols for network security to electronic voting protocols and online banking. In addition, we will also introduce the notions of non-interference and runtime monitoring.
Learning objectiveThe students will learn the key ideas and theoretical foundations of formal modeling and analysis of security protocols. The students will complement their theoretical knowledge by solving practical exercises, completing a small project, and using state-of-the-art tools. The students also learn the fundamentals of non-interference and runtime monitoring.
ContentThe course treats formal methods mainly for the modeling and analysis of security protocols. Cryptographic protocols (such as SSL/TLS, SSH, Kerberos, SAML single-sign on, and IPSec) form the basis for secure communication and business processes. Numerous attacks on published protocols show that the design of cryptographic protocols is extremely error-prone. A rigorous analysis of these protocols is therefore indispensable, and manual analysis is insufficient. The lectures cover the theoretical basis for the (tool-supported) formal modeling and analysis of such protocols. Specifically, we discuss their operational semantics, the formalization of security properties, and techniques and algorithms for their verification.

The second part of this course will cover a selection of advanced topics in security protocols such as abstraction techniques for efficient verification, secure communication with humans, the link between symbolic protocol models and cryptographic models as well as RFID protocols (a staple of the Internet of Things) and electronic voting protocols, including the relevant privacy properties.

Moreover, we will give an introduction to two additional topics: non-interference as a general notion of secure systems, both from a semantic and a programming language perspective (type system), and runtime verification/monitoring to detect violations of security policies expressed as trace properties.
263-4656-00LDigital Signatures Information W5 credits2V + 2AD. Hofheinz
AbstractDigital signatures as one central cryptographic building block. Different security goals and security definitions for digital signatures, followed by a variety of popular and fundamental signature schemes with their security analyses.
Learning objectiveThe student knows a variety of techniques to construct and analyze the security of digital signature schemes. This includes modularity as a central tool of constructing secure schemes, and reductions as a central tool to proving the security of schemes.
ContentWe will start with several definitions of security for signature schemes, and investigate the relations among them. We will proceed to generic (but inefficient) constructions of secure signatures, and then move on to a number of efficient schemes based on concrete computational hardness assumptions. On the way, we will get to know paradigms such as hash-then-sign, one-time signatures, and chameleon hashing as central tools to construct secure signatures.
LiteratureJonathan Katz, "Digital Signatures."
Prerequisites / NoticeIdeally, students will have taken the D-INFK Bachelors course "Information Security" or an equivalent course at Bachelors level.
  •  Page  1  of  1