Search result: Catalogue data in Spring Semester 2023
Computer Science Master | |||||||||||||||||||||||||||
Majors | |||||||||||||||||||||||||||
Major in Secure and Reliable Systems | |||||||||||||||||||||||||||
Core Courses | |||||||||||||||||||||||||||
Number | Title | Type | ECTS | Hours | Lecturers | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
263-2815-00L | Automated Software Testing 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". | W | 7 credits | 2V + 1U + 3A | Z. Su | ||||||||||||||||||||||
Abstract | This 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 | ||||||||||||||||||||||||||
Content | The 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 notes | Lecture notes/slides and other lecture materials/handouts will be available online. | ||||||||||||||||||||||||||
Literature | Reading material and links to tools will be published on the course website. | ||||||||||||||||||||||||||
Prerequisites / Notice | The 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-00L | Program Analysis for System Security and Reliability Does not take place this semester. | W | 7 credits | 2V + 1U + 3A | M. Vechev | ||||||||||||||||||||||
Abstract | Security 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. | ||||||||||||||||||||||||||
Content | Please see: https://www.sri.inf.ethz.ch/teaching/pass2022 for detailed course content. | ||||||||||||||||||||||||||
263-4660-00L | Applied Cryptography | W | 8 credits | 3V + 2U + 2P | K. Paterson, F. Günther | ||||||||||||||||||||||
Abstract | This 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 objective | The 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. | ||||||||||||||||||||||||||
Content | Basic 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. | ||||||||||||||||||||||||||
Literature | Textbook: Boneh and Shoup, “A Graduate Course in Applied Cryptography”, http://toc.cryptobook.us/book.pdf. | ||||||||||||||||||||||||||
Prerequisites / Notice | Students 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. | ||||||||||||||||||||||||||
Competencies |
| ||||||||||||||||||||||||||
Elective Courses | |||||||||||||||||||||||||||
Number | Title | Type | ECTS | Hours | Lecturers | ||||||||||||||||||||||
252-0408-00L | Cryptographic Protocols | W | 6 credits | 2V + 2U + 1A | M. Hirt | ||||||||||||||||||||||
Abstract | In 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 objective | To know and understand a selection of cryptographic protocols and to be able to analyze and prove their security and efficiency. | ||||||||||||||||||||||||||
Content | The 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 notes | We provide handouts of the slides. For some of the topics, we also provide papers and/or lecture notes. | ||||||||||||||||||||||||||
Prerequisites / Notice | A basic understanding of fundamental cryptographic concepts (as taught for example in the course Information Security) is useful, but not required. | ||||||||||||||||||||||||||
Competencies |
| ||||||||||||||||||||||||||
263-2812-00L | Program Verification | W | 5 credits | 3G + 1A | P. Müller, M. Eilers | ||||||||||||||||||||||
Abstract | A 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 objective | Students 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. | ||||||||||||||||||||||||||
Content | The 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 notes | The slides will be available online. | ||||||||||||||||||||||||||
Literature | Will be announced in the lecture. | ||||||||||||||||||||||||||
Prerequisites / Notice | A 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-00L | Formal Methods for Information Security Does not take place this semester. | W | 5 credits | 2V + 1U + 1A | |||||||||||||||||||||||
Abstract | The 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 objective | The 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. | ||||||||||||||||||||||||||
Content | The 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-00L | Digital Signatures | W | 5 credits | 2V + 2A | D. Hofheinz | ||||||||||||||||||||||
Abstract | Digital 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 objective | The 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. | ||||||||||||||||||||||||||
Content | We 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. | ||||||||||||||||||||||||||
Literature | Jonathan Katz, "Digital Signatures." | ||||||||||||||||||||||||||
Prerequisites / Notice | Ideally, students will have taken the D-INFK Bachelors course "Information Security" or an equivalent course at Bachelors level. |
- Page 1 of 1