This specialisation focuses on understanding, working with, and programming such complex and distributed systems (Cloud Computing). It combines different expertise ranging from cryptography to logic and programming languages to make the study of systems precise and safe (Cybersecurity). It also explores the usage of industrial tools that fully automate system deployment in efficient and safe ways.
Cybersecurity and Cloud Computing is a dynamic and growing topic at SDU, in which researchers are excited about taming the complexity of big, highly interacting and distributed systems. We approach the research problems in our area from different angles, ranging from the more theoretical to the more applied perspectives, and have strong ties to industry.
In the academic year 2021/2022, we will be offering the following courses within the field of Cybersecurity & Cloud Computing, which address different aspects of the subject area.
This course offers a broader perspective of logic and how it is used in Computer Science. In a time when computers are increasingly taking charge of critical tasks, such as routing airplanes or administering medicine to patients, it is essential to understand how we can formalize the safety requirements we expect of such programs, and verify that they conform to them.
Responsible teacher: Luís Cruz-FilipeFull course description
Cryptology is the creation of secret codes, the possibilities for breaking them, and cryptographic protocols for security. Number-theoretic problems relevant to cryptology and the basic algebra necessary to understand them will also be presented during the course.
Cryptology has many applications, including sending private messages, enabling commerce over the internet (through encryption of credit card numbers, electronic money, secure methods for electronic signatures on documents, etc.), and authentication such as PIN codes for credit cards and logins.
Academic preconditions: Students taking this course are expected to have knowledge of linear algebra and either complexity theory or group theory.
Responsible teacher: Joan Boyar
In Concurrency Theory, we study models that focus on the key issues of concurrent systems, such as interaction protocols and how to build complex systems by connecting simpler ones. We look at methods that avoid costly mistakes, and discuss how mathematical methods underpin modern best practices.
Responsible teacher: Fabrizio MontesiFull course description
This course is a lightweight version of DM846. It covers the same main topics, but has a different examination type, with no individual project.
Responsible teacher: Luís Cruz-Filipe
This course offers a broad perspective on the design, analysis, and implementation of distributed systems. For this purpose, the course is organised into three main parts:
- The first part covers architectural aspects of distributed systems by analysing the main paradigms and patterns.
- The second part covers communication models that can be adopted in these distributed systems and the corresponding middleware solutions.
- The third part deals with the main problems that commonly arise in distributed programming, such as achievement of consensus, detection of failures and deadlocks, resource management and replication, by providing adequate techniques and algorithmic solutions.
Responsible teacher: Marco Peressotti
In this course we study how to link software development (Dev) and software security (Sec) with software operations (Ops), and study the latest advancements for the automation and creation of secure software that are revolutionising the software industry.
Responsible teacher: Jacopo Mauro
Cryptography provides algorithms that are crucial for the security (e.g. confidentiality, integrity, and authenticity) of our modern communication.
However, these algorithms themselves are only one pillar for security; it is also important to implement these algorithms efficiently and securely.
This course explains how to achieve high performance even for small embedded devices when implementing cryptographic (i.e. mathematical) algorithms and how to protect an implementation against side-channel attacks that are not looking for weaknesses in the algorithm or the implementation but in the physical properties of the computing platform.
The course is accompanied by hands-on tutorials on efficient implementation, side-channel analysis, and countermeasures.
Academic preconditions: Students taking this course are expected to have knowledge of basic cryptography as covered in DM557: Networks and Security.
Responsible teacher: Ruben Niederhagen
Master Thesis projects
The following are examples of previous Master Thesis topics within the area of Cybersecurity and Cloud Computing:
- Foundational aspects of choreographic programming
- A formal programming model for Bitcoin transactions
- Packaging microservices
Who teaches Cybersecurity & Cloud Computing?
Fabrizio Montesi is on a mission to revolutionize the world of computing with better programming languages, mathematical models, and tools to program the computer networks of the future. It is hard, daunting, and probably overambitious. The thought makes him smile every time.
Jacopo Mauro has always been fascinated by the interplay and interaction between concurrent systems and hard combinatorial problem solving. This led him from theoretical investigations on programming languages for distributed systems to the development of tools to optimize and automate application deployment.
Luís Cruz-Filipe has always enjoyed solving logical and mathematical puzzles. He combines this passion with his research by approaching problems in theoretical computer science in a creative manner, often using ideas from logic.
Ruben Niederhagen is a computer scientist specialising in Post-Quantum Cryptography, Applied Cryptography, and Embedded Security, focusing on the efficient and secure implementation of cryptographic and cryptanalytic algorithms in software and in hardware.
Marco Peressotti's objective is to make the development and analysis of concurrent and distributed systems more effective and robust. An overarching theme of his approach is the use of formal methods and programming languages techniques as well as the aim for a unifying mathematical perspective rooted in Logic and Category Theory.