## Helping Alice and Bob to Share Secrets

#### What is this course about?

This course examines various aspects of security in widely deployed communication networks, including theoretical and practical areas. The course begins with the presentation of core cryptographic primitives and how cryptography can be used in real-life scenarios. Then, detailed principles and examples regarding secure communication between two parties over an insecure communication channel are presented.

The second half of the course discusses attacks and techniques that a powerful adversary can follow in order to find information that otherwise should remain private. Throughout the course, students will be exposed to many exciting open problems in the field and will have the opportunity to work in programming projects related to security and/or cryptography.

#### Classes Schedule

The course will be presented solely online. All lectures, labs, exercises and any relevant material will be uploaded and available in their entirety from the first day of the course. Hence, it is up to you to arrange the pace at which you wish to follow the course.

#### Requirements for completing the course

During the course, you will have to submit two (2) courseworks (CWs). For ecah CW, you will have to achieve at least 40%. If you fail to get this, then you immediately fail the course (i.e. no second chance).

Coursework I counts towards 50% of your overall mark and is a theoretical one. You will be given a set of exercises to which you should provide a well-explained and structured solution. Coursework II counts towards 40% of your mark and is a programming assignment. You can find more details about this CW on course’s webpage.

Apart from the courseworks there will be a series of labs. Each lab will have a set of tasks that you need to accomplish/solve with the help of teacher assistants (TAs). At the end of each lab, you are expected to submit you lab work based on instructions that will be provided by the TAs. While the labs are not mandatory (i.e. failing to submit lab-related work will not result in course failure), they count towards 10% of your overall mark.

To pass the course you need:

- Get at least 40% in Coursework I;
- Get at least 40% in Coursework II;
- Have an average of at least 50%: 50%CWI + 40%CWII + 10%Labs >= 50.

#### Lecture 1: Introduction

- Number of Videos: 3
- Number of Tutorials: 1
- Lecture Total Time: 71 min
- Expected Studying Time: 4.5h (approximately)

##### Lecture 1a: Course Logistics (22 min)

##### Lecture 1b: Introduction (29 min)

##### Lecture 1c: A Toy Protocol (21 min)

#### Lecture 2: Cryptography I (Basic)

- Number of Videos: 5
- Number of Tutorials: 1
- Lecture Total Time: 98 min
- Expected Studying Time: 12h (approximately)

##### Lecture 2a: A Life Full of Bugs (7 min)

##### Lecture 2b: Terminology (8 min)

##### Lecture 2c: Symmetric Encryption (42 min)

##### Lecture 2d: Asymmetric Encryption (25min)

##### Lecture 2e: Cryptographic Hash Functions and Communication Integrity (16min)

#### Lecture 3: Cryptography II (Basic)

- Number of Videos: 3
- Number of Tutorials: 1
- Lecture Total Time: 66 min
- Expected Studying Time: 14h (approximately)

##### Lecture 3a: Digital Signatures (20min)

##### Lecture 3b: Properties of Digital Signatures (16min)

##### Lecture 3c: Digital Certificates

#### Lecture 4: Security Protocols I

- Number of Videos: 2
- Number of Tutorials: 1
- Lecture Total Time: 70 min
- Expected Studying Time: 20h (approximately)

##### Lecture 4a: Authentication Notions (19min)

##### Lecture 4b: Protocols, Protocols, Protocols I (51 min)

#### Lecture 5: Security Protocols II

- Number of Videos: 3
- Number of Tutorials: 1
- Lecture Total Time: 76 min
- Expected Studying Time: 20h (approximately)

##### Lecture 5a: Protocols, Protocols, Protocols II (30 min)

##### Lecture 5b: Basic Authentication Techniques (19 min)

##### Lecture 5c: Typical Attacks (27 min)

#### Lecture 6: Real Protocols

- Number of Videos: 3
- Number of Tutorials: 0
- Lecture Total Time: 73 min
- Expected Studying Time: 20h (approximately)

##### Lecture 6a: Cryptographic Systems (9 min)

##### Lecture 6b: SSL/TLS (26 min)

##### Lecture 6c: Kerberos (38 min)

#### Lecture 7: Cloud Security

- Number of Videos: 2
- Number of Tutorials: 1
- Lecture Total Time: 57 min
- Expected Studying Time: 22h (approximately)

##### Lecture 7a: Storing Data in the Cloud (27 min)

##### Lecture 7b: Cryptographic Storage (30 min)

#### Lecture 8: Operations on Encrypted Data

- Number of Videos: 4
- Number of Tutorials: 0
- Lecture Total Time: 41 min
- Expected Studying Time: 22h (approximately)

##### Lecture 8a: Introduction to Symmetric Searchable Encryption (SSE) (10min)

##### Lecture 8b: Building an SSE scheme (8min)

##### Lecture 8c: Introduction to Multi-Input Functional Encryption (10min)

##### Lecture 8d: Privacy-Preserving Release of Statistics (13min)

#### Lecture 9: Certificateless Public Key Cryptography

- Number of Videos: 2
- Number of Tutorials: 1
- Lecture Total Time: 35 min
- Expected Studying Time: 10h (approximately)