Liste des UE SFPN

Premier semestre

MODEL - Modèle de calcul

Dans cette UE, on étudiera les grands paradigmes de résolution numériques et symboliques des problèmes algorithmiques standard se posant en calcul scientifique. Ces études se feront au travers de problématiques liées à la sécurisation des données et leur transmission, la fouille de données, l'imagerie, ou encore la robotique. Les réalisations pratiques s'effectueront par l'utilisation des logiciels MATLAB et Maple utilises dans l'industrie.

COMPLEX - Complexité, algorithmes randomisés et approchés

Dans cette UE, nous nous intéresserons aux ressources de calcul (temps, espace mémoire ...) nécessaires pour résoudre les problèmes algorithmiques, en distinguant les problèmes dits "faciles" (problèmes dont la complexité est une fonction polynomiale de la taille du problème), des problèmes dits "difficiles". Nous introduirons les classes de complexité fondamentales P et NP et nous définirons la NP-complétude. Ce cours introduira quelques techniques d'algorithmes d'approximation et de randomisation permettant de contourner la difficulté de résolution des problèmes difficiles, et permettant ainsi leur application en pratique avec des temps de calcul 9raisonnables (algorithme de type Las Vegas, Monte Carlo, approximation avec garantie de performance, etc.). Ces algorithmes seront illustrés sur un éventail de problèmes concrets relevant de divers parcours du master.

SC - Secure Coding

Dans cette UE, on étudiera les techniques permettant d’écrire du code informatique sûr (éviter par exemple les exploitations de la pile pour des attaques). On étudiera aussi le développement de logiciels de sécurité.

P1-MSI - Projet S1 MSI

Deuxième semestre

Anum - Algorithmique numérique (3 ECTS)

Cette UE est la suite naturelle de la partie numérique de l'UE MODEL. Il s'agit de compléter les connaissances en outils mathématiques et en algorithmiques afin de pouvoir résoudre des problèmes concret et de grandes tailles. On étudiera en particulier des algorithmes et leur implantation fréquemment utilisés dans le domaine du calcul scientifique et de la science des données. Les applications seront très diverses et pourront changer chaque année : on verra par exemple des applications en finance (calcul du prix des options), en simulation des structures pour l'impression 3D, en imagerie (compression d'image), en deep learning (algorithme du gradient stochastique), etc. On s'attachera pour chaque algorithme à proposer des versions permettant une implantation efficace sur machines parallèles. Les algorithmes seront codés en MATLAB ou en Python.

FLAG - Fondement de l'algorithmique algébrique

Cette UE est la suite de la partie calcul formel de MODEL. Il s’agit de présenter des algorithmes rapides fondamentaux pour le calcul formel sur les entiers et les polynômes en une variable. Pour cela, nous nous appuierons fortement sur l’algèbre linéaire. Nous montrerons d’abord comment linéariser certains problèmes afin de les résoudre. Les systèmes linéaires qui en découlent ont souvent une certaine structure provenant naturellement du problème originel. C’est pourquoi, nous montrerons ensuite comment nous pouvons exploiter l’algèbre linéaire structurée afin de nous affranchir des complexités classiques de l’algèbre linéaire dense et résoudre certains de ces systèmes en temps sous-quadratique. Ces problèmes trouvent des applications en cryptographie et en théorie des codes, par exemple. Une implantation rigoureuse de ces algorithmes sera aussi étudiée.

HPC - Calcul haute performance : notions de base

Cette UE vise à présenter les bases du calcul haute performance et du parallélisme afin de pouvoir concevoir, implémenter et optimiser des programmes parallèles sur des architectures classiques (multi- processeurs et multi-cœurs). Les points suivants seront abordés : architecture des machines parallèles, algorithmique parallèle, parallélisme de données et de tâches, décomposition et équilibrage de charge, paradigmes standards de programmation parallèle sur machines à mémoire distribuée ou partagée (standards MPI et OpenMP), programmation mixte multi-thread / multi-processus, optimisation de code séquentiel pour le calcul haute performance, programmation vectorielle (SIMD), introduction à la parallélisation automatique. Mise en pratique sur une application réelle (projet).

ISEC - Introduction à la sécurité

L'objectif de cette UE est de présenter les concepts fondamentaux de la sécurité des systèmes information et des réseaux, ainsi qu'un panorama des différents chapitres de la sécurité. Cette UE fournira une introduction à la sécurité des systèmes d'information et des réseaux dans sa globalité en présentant les concepts fondamentaux de la sécurité, un panorama des menaces, des fonctions et mécanismes de sécurité. En particulier, l'UE ISEC comportera une introduction aux outils cryptographiques utilisés par un grand nombre de mécanismes de sécurité afin de garantir la confidentialité, l'intégrité ou l'authenticité d'une information.

SECOM-MSI - Sécurité des communications radio

L'objectif principal de ce cours est de former les étudiants aux principes du traitement du signal numérique et à son application à l'analyse de divers signaux radio en utilisant des outils de la radio logicielle. Des séances de travaux pratiques et un projet permettront de concrétiser cette formation en réalisant des attaques connues et ainsi identifier des faiblesses dans un système de communication radio. Une part importante du cours portera sur la réflexion autour de possibles contre-mesures à de telles attaques et en leur réalisation.

P-SFPN - Projet SFPN

P2-MSI - Projet S2 MSI

Troisième trimestre

AFAE - Arithmétique flottante et analyse d'erreur

Cette UE est à l'intersection de l'algorithmique et des mathématiques. L'un des objectifs est de maîtriser les concepts liés aux erreurs d'arrondi et à leurs conséquences ainsi que d'apprendre à effectuer une analyse globale de qualité numérique pour tout code de simulation numérique. Nous présenterons l'arithmétique à virgule flottante (norme IEEE 754) des ordinateurs et ses conséquences sur les résultats numériques de codes de calcul scientifique. De même que la théorie et pratique des méthodes d'estimation ou de majoration de l'erreur d'arrondi en générale en utilisant en particulier l'arithmétique d'intervalle, l'arithmétique stochastique discrète et les méthodes compensées. Une présentation de la théorie du calcul des fonctions élémentaires sera aussi proposée.

HPCA - Calcul haute performance : programmation et algorithmique avancée

Cette UE vise à présenter les algorithmes et les techniques de programmation parallèles avancés pour le calcul haute performance, afin de pouvoir concevoir, implémenter et optimiser des programmes parallèles sur des architectures hétérogènes et massivement parallèles (GPU, calcul haute performance à large échelle sur un grand nombre de noeuds ...). Les points suivants seront abordés : calcul haute performance sur architectures hétérogènes (GPU ...), introduction aux langages standards pour le calcul haute performance (extensions de langage et directives de compilation), optimisation de code dans un contexte hétérogène : multi- architecture et multi-paradigme, algorithmes parallèles et leur stabilité numérique pour l’algèbre linéaire numérique, algorithmes parallèles minimisant les communications, calcul haute performance et reproductibilité, algorithmique asynchrone. Mise en pratique sur une application réelle (projet).

POSSO - Introduction à la résolution de systèmes polynomiaux

Les systèmes polynomiaux modélisent des situations statiques non linéaires. Leur résolution est donc plus délicate que la résolution des systèmes linéaires, mais néanmoins cruciales puisque ces systèmes apparaissent naturellement en cryptologie post-quantique et diverses sciences de l'ingénieur (robotique, biologie, chimie, vision artificielle, etc.). Dans cette UE, on étudiera des algorithmes efficaces permettant de résoudre de tels systèmes et des exemples d'applications seront étudiés.

CRYPTA - Cryptologie avancée et appliquée

Dans cette UE, on se propose de présenter les moyens algorithmiques permettant de sécuriser les données numériques (chiffrement, signature, authentification etc.) à l'aide des cryptosystèmes à clé publique les plus récents ou largement utilisés dans l'industrie. Les algorithmes les plus efficaces permettant leur évaluation (cryptanalyse) seront aussi présentés et des versions plus simples seront mises en pratique. Par exemple, on étudiera l'utilisation des courbes elliptiques en cryptographie et les meilleurs algorithmes permettant de résoudre le problème mathématique sous-jacent. Aussi, en restant à un haut niveau, nous présenterons l'utilisation de tels cryptosystèmes dans le cadre de la carte à puce.

ALMAS - Algorithmes et mathématiques pour la sécurité des communications

La cryptographie est un ensemble de techniques qui permettent d'assurer la sécurité des systèmes d'information. Cette discipline, à la frontière des mathématiques, de l'informatique et de l’électronique, permet notamment de conserver aux données leur caractère confidentiel, de contrôler leur accès ou d'identifier des documents. Ce cours s'adresse aux étudiants ayant un goût pour l'algorithmique, à la fois dans ses aspects mathématiques et dans ses aspects pratiques. Son but est d'enseigner la problématique de la cryptologie moderne, les principaux outils utilisés par la cryptologie pour proposer des solutions aux problèmes de sécurité et les méthodes pour analyser et garantir formellement la sécurité de protocoles cryptographiques.

SCA - Attaques par canaux auxiliaires

Les implémentations de protocoles cryptographiques peuvent reposés sur des algorithmes mathématiques supposés surs qu'ils ne sont pas moins vulnérables à des attaques liées aux matériels sur lesquels ils sont déployés. Le but de cette UE est de montrer comment des informations obtenues en effectuant des mesures physiques (consommation électrique, émanation magnétique, etc) lors de l'exécution de circuits intégrés permettent de retrouver les secrets de tels protocoles et ainsi mettre à mal la sécurité escomptée. Des rappels d'électronique et d'analyse des signaux seront prodiguées afin de comprendre et d'expérimenter de telles attaques et des contremesures seront aussi présentées. Des acteurs du monde industriel (cartes à puces) et des instituts gouvernementaux pourront intervenir lors de ce cours.