Duration
20h Th, 20h Labo., 30h Proj.
Number of credits
Master of Science (MSc) in Computer Science and Engineering (Odd years, organized in 2023-2024) | 5 crédits | |||
Master of Science (MSc) in Computer Science and Engineering (double degree programme with HEC) (Odd years, organized in 2023-2024) | 5 crédits | |||
Master of Science (MSc) in Computer Science (Odd years, organized in 2023-2024) | 5 crédits | |||
Master of Science (MSc) in Computer Science (joint-degree programme with HEC) (Odd years, organized in 2023-2024) | 5 crédits |
Lecturer
Language(s) of instruction
English language
Organisation and examination
Teaching in the second semester
Schedule
Units courses prerequisite and corequisite
Prerequisite or corequisite units are presented within each program
Learning unit contents
This course is the natural follow-up of INFO0045 (Introduction to Computer Security). The objectives behind this course are to extend students' knowledge on Computer Security by discussing and practicing up-to-date Computer Security concepts.
The course is divided in two parts. In the first part, a few theoretical lessons are provided on advanced concepts based on cryptography mechanisms usage (see below for the table of content). In the second part, students practice advanced concepts in Computer Security, such as side-channel attacks
Table of Content (Theoretical lessons)
Part 1: Advanced Cryptography (B. Donnet)
- Chapter 1: Advanced Digital Signatures
- Chapter 2: Bank Card Payment
- Chapter 3: Merkle Tree
- Chapter 4: BlockChains
- Chapter 5: Securing Bitcoin (SCRIPT)
- Chapter 6: Securing Smart Contract (Solidity)
- Chapter 1: Side-Channels
- Chapter 2: Trusted Computing
- Chapter 3: Fuzzing
Learning outcomes of the learning unit
Upon completing this course, students will have a better understanding on how cryptography can be used through several use cases. Students will also have a theoretical and practical introduction on how to secure smart contracts through the solidity programming language.
Finally, Students will improve their practical knowledge of Computer Security
This course contributes to the learning outcomes I.2, II.2, III.1, III.4, IV.3, IV.4, VI.1, VII.1, VII.6 of the MSc in computer science and engineering.
Prerequisite knowledge and skills
Good knowledge of basics in Computer Security (INFO0045 or assimilated), in Computer Networking (INFO0010 or assimilated), in Operating Systems (INFO0940 or assimilated), and in Computation Structure (INFO0012 or assimilated).
Being comfortable with programming in C (Students must be comfortable with pointers and memory management) and in Object-Oriented programming (e.g., Java) is also suitable.
Planned learning activities and teaching methods
The course is organized as follows:
- Lectures (max 30 hours) describing in details the theoretical and practical concepts of the course
- Lab sessions. Labs are done individually and a short report (a simple text file to fill in or pieces of code) must be completed by the end of the lab
Mode of delivery (face to face, distance learning, hybrid learning)
Face-to-face course
Additional information:
Face-to-face lectures, lab sessions, and seminars.
The course is entirely given in English.
Recommended or required readings
Slides, labs, and assignment subjects are available on the course web page.
Following books have been used for building the theoretical lessons:
- A. J. Menezes, P. C. van Oorschot, S. A. Vanstone. Handbook of Applied Cryptography. CRC Press. 5th Edition. August 2001
- K. Finkenzeller. RFID Handbook, Fundamentals and Applications in Contactless Smartcards, Radio Frequency Identification, and Near-Field Communication. Ed. Wiley (3rd Edition). 2010.
- A. Antonopoulos. Mastering Bitcoin: Programming the Open Blockchain. Ed. O'Reilley (2nd Edition). 2017.
- A. Antonopoulos, G. Wood. Mastering Ethereum: Building Smart Contracts and DApps. Ed. O'Reilly (1st Edition). 2018
Exam(s) in session
Any session
- In-person
oral exam
Other : Labs
Additional information:
The evaluation will be based on supervised practical sessions (i.e., labs). An oral exam will also be organized on theoretical lessons and possible seminars.
In more details:
- Labs will account for 40% of the final grade
- The Oral Exam (in June) will focus on theoretical lesson (1 or 2 question(s)). It will account fro 60% of the final grade.
Resit
Labs cannot be redone for the resit. However, if the grade of the labs is favorable to the students, the resit session is identical to the first one, with the same weighting.
On the other hand, if the grade of the labs is not favorable to the student, it will not be taken into account in the weighting in September, which becomes 100% for the exam. Oral exam must be, obviously, redone.
Work placement(s)
Organisational remarks and main changes to the course
The course is organized during the Second term (from early February to mid-May), on Monday morning. All lectures are in English.
Contacts
Lecturers:
- Vincent Jacquot (mail -- office 1.72b/B28)
Association of one or more MOOCs
Items online
Course Web Site
The course web site contains PDF of the slides, labs/assignments subjects, details about gradings, and the course agenda. It also allows students to interact with the Pedagogical Team through the Discussion forum.