Master on Cryptology & Computer Security

C/Java Programming (Master1)

This course is going from initiation, up to advanced topics in software project management in C and Java programming. It covers the following topics:

  • Basic C syntax;
  • Advanced C types;
  • Memory management in C;
  • Compilation (gcc) and Makefiles;
  • Debugging tools (gdb, valgrind);
  • Version control tools (svn).
  • Eclipse IDE;
  • Basic Java syntax;
  • Object Oriented programming concepts;
  • Java abstract data-types;
  • Design Patterns;
  • Java Generics.
Course Website

Software Security (Master1)

This course is about the security of sotware and how to exploit usual flaws to get access to unwanted features. This course covers the following topics:

  • Introduction to Software Security;
  • i386 & amd64 assembly;
  • ELF format;
  • Shellcodes;
  • Stack buffer-overflow;
  • Heap buffer-overflow;
  • Format string bugs;
  • Obfuscation & Reverse-engineering techniques.
Course Website

Software Verification (Master2)

This course is about formal verification of software, it goes through different techniques of formal proofs that can be conducted on a model of the verified software (the model is most of the time supposed to be extracted automatically). This course covers the following topics:

  • Propositional and modal logic;
  • Bounded Model-checking techniques;
  • SAT/SMT solvers;
  • ROBDD and Bitvector logic;
  • Abstract Interpretation;
  • Data-flow Analysis;
  • Exact Acceleration on VAS (Vector Addition System);
  • Abstraction-Refinement methods (CEGAR).
Course Website

Miscellaneous

Initiation à Python 3 (Tous niveaux)

Ce cours, en français, s’adresse à ceux qui veulent découvrir le langage de programmation Python. Il ne nécessite que très peu de connaissances préalables, mais il essaye de couvrir beaucoup de sujets en peu de temps. Les documents nécessaires sont accessibles via cette page:

Course Website