![](/sites/default/files/styles/large/public/media/2019-12/Illustration_master_informatique_parcours_SPFN.jpg?itok=JPOxnGVV)
Parcours Cryptologie, Calcul haute-performance et Algorithmique (CCA)
Le parcours Cryptologie, Calcul haute-performance et Algorithmique (CCA) offre une formation de haut niveau dans les domaines de la cryptologie et du calcul haute-performance. Ces deux domaines, scientifiquement complémentaires, y compris sur le marché du travail trouvent de nombreux débouchés à haute valeur ajoutée. Ils s'appuient sur des compétences avancées dans plusieurs domaines de l'algorithmique comme le calcul formel et l'arithmétique des ordinateurs.
Certaines Unités d'Enseignements de la spécialité sont mutualisées avec le EUMaster4HPC (master de référence européen pour le calcul haute-performance) et la spécialité MaIn (Mathématiques-Informatique) de l'école d'ingénieurs PolyTech Sorbonne.
Objectifs
Cette formation vise à former des spécialistes de haut niveau, ayant une double compétence dans les deux domaines applicatifs suivants :
- la cryptologie : il s'agit de la science du secret, qui englobe la cryptographie -- l'art de concevoir des protocoles permettant de communiquer et échanger des informations -- et la cryptanalyse -- qui consiste en l'analyse des niveaux de sécurité de ces protocoles;
- le calcul haute-performance : composante essentielle d'industries stratégiques, ce domaine englobe les problématiques liées à la parallélisation d'algorithmes semi-numériques, la programmation parallèle et l'adaptation aux architectures émergentes (GPU ou super-calculateurs).
Ces deux domaines sont étroitement liés d'un point de vue pratique : la cryptanalyse fait souvent usage de paradigmes du calcul haute-performance et les techniques de programmation sont proches. Ils sont encore plus liés du point de vue fondamental : l'algorithmique mathématique (opérant sur des matrices, des polynômes, etc.) et les questions arithmétiques (opérateurs algébriques pour la cryptographie, qualité numérique) constituent les leviers méthodologiques fondamentaux de la formation. Ceux-ci se déclinent en deux grands domaines :
- l'arithmétique des ordinateurs et la fiabilité numérique : il s'agit du domaine de l'informatique qui s'intéresse aux opérations de base du calcul sur ordinateur, la représentation et l'utilisation algorithmique des entiers et des nombres en virgule flottante, ainsi que l'évaluation de la qualité numérique des programmes;
- le calcul formel (ou calcul algébrique) : il s'agit du domaine de l'informatique qui s'intéresse aux opérateurs de calcul algébriques sur des objets comme matrices et polynômes, s'appuyant sur des représentations exactes des données de calculs, les domaines considérés étant le plus souvent des corps finis (notamment pour la cryptologie) ou des entiers multi-précision.
Programme, Savoir-faire et Compétences
À l'issue de la formation, les étudiantes et étudiants ont acquis une expertise sur :
- les techniques de la cryptologie moderne, tant du point de vue de l'attaquant que du défenseur ainsi qu'une initiation aux techniques de cryptanalyse ;
- les modèles et paradigmes de calcul (approché/exact) et leur déploiement/développement tant dans les domaines liés à la cryptologie que ceux liés au calcul scientifique ;
- le calcul haute-performance, ses modèles et ses techniques de programmation.
Ils acquièrent également des connaissances opérationnelles via de nombreux projets de développements au sein de plusieurs Unités d'Enseignements dont un conséquent sur tout le long du second semestre de la première année.
La rédaction des différents rapports et rendus de projets, les soutenances organisées permettent aux étudiantes et étudiants d'acquérir les réflexes et pratiques de la communication scientifique et professionnelle.
Enfin, plusieurs cours sont dispensés en anglais (les travaux dirigés restent dispensés en français) qui permet d'assurer une maîtrise de l'anglais technique. Ceci est renforcé par la présence d'étudiants en mobilité internationale dans plusieurs Unités d'Enseignements de la formation, favorisant également les capacités de communication des étudiantes et étudiants de la formation.
Public visé et pré-requis
Cette formation s'adresse à des étudiantes ou étudiants ayant une solide formation en informatique et/ou en mathématiques. La plupart des personnes recrutées au niveau M1 ont suivi une formation de niveau L3 en informatique ou dans un double cursus mathématiques-informatique ou dans un cursus mathématiques intégrant des Unités d'Enseignement en algorithmique et programmation. Les candidatures retenues au niveau M2 proviennent d'élèves d'écoles d'ingénieurs essentiellement mais aussi d'autres masters dont le programme de M1 recoupe largement celui de cette formation.
Les pré-requis nécessaires pour suivre cette formation relèvent des connaissances générales attendues au niveau licence en informatique, principalement :
- en algorithmique et structures de données d'une part et programmation d'autre part (du fait des thématiques développées, une aisance en langage C est appréciée).
- une bonne connaissance des mathématiques de base : logique, arithmétique, algèbre (notamment pour ce qui relève de l'algèbre linéaire) et analyse, probabilités.
Avoir suivi une UE d'introduction à la cryptologie est un plus mais ce n'est pas nécessaire.
Puisque plusieurs cours sont dispensés en Anglais (les TD et TP restent en français), un bon niveau de compréhension de l'anglais est requis (entre A2 et B1).
Première année
Le premier semestre permet d'acquérir les premières connaissances fondamentales et compléter ou renforcer ses acquis de licence. Il est composé de :
- deux Unités d'Enseignement obligatoires (COMPLEX, MODEL) qui permettent d'acquérir les connaissances indispensables en théorie de la complexité (décidabilité, classes de complexité, algorithmes d'approximation) ainsi que les paradigmes de l'algorithmique mathématique (algorithmes fondamentaux de l'algèbre linéaire, CRT et évaluation/interpolation, opérateurs arithmétiques et transformées de Fourier);
- trois Unités d'Enseignement à choisir librement sous les contraintes suivantes :
- au moins deux parmi les Unités : HPC, ARCHI1 et Noyau : HPC introduit les concepts fondamentaux de la programmation parallèle (qui sont des pré-requis pour le M2), ARCHI1 introduit les concepts de l'architecture des ordinateurs et NOYAU étudie le fonctionnement des noyaux des systèmes d'exploitation;
- au plus une UE parmi les Unités : BDA (Bases de Données Avancées), MOGPL (Modélisation et probas-stats), PR (Programmation Répartie) et SC (Secure Coding).
Les Unités apparaissant en italique/gras ci-dessus sont celles dont le cours est dispensé en Anglais (les TD et TP restent dispensés en Français).
Le second semestre permet d'approfondir les notions introduites au premier semestre et d'introduire celles nécessaires à la poursuite en M2, notamment en cryptologie et en algorithmique numérique. Il est composé de :
- une Unité d'Enseignement Projet obligatoire : il s'agit d'un temps fort de la formation où les étudiants travaillent en équipe sur un projet ambitieux, tout au long du semestre sous l'encadrement d'un enseignant-chercheur, enseignante-chercheuse, chercheuses ou chercheur de notre équipe pédagogique;
- au moins trois Unités d'Enseignements parmi :
- ANUM (Algorithmique Numérique), FLAG (Fondements de l'Algorithmique Algébrique), ISEC (Introduction a la sécurité) -- toutes ces unités dispensent des enseignements qui sont des pré-requis pour le deuxième année de master -- ainsi que ARCHI2 (architecture des noyaux des systèmes multi-processeurs)
- au plus une Unité d'Enseignement parmi :
- ARCHI2, ML (Machine Learning), PNL (Programmation au coeur du noyau Linux) et SAS (Sécurité et Administration des Systèmes).
Les Unités apparaissant en italique/gras ci-dessus sont celles dont le cours est dispensé en Anglais (les TD et TP restent dispensés en Français).
Deuxième année
Le troisième semestre permet renforce les acquis de première année tout en préparant les étudiants à la recherche de stage et l'insertion professionnelle. Il est composé de cinq Unités d'Enseignements don au moins quatre parmi
- AFAE (Arithmétique flottante et erreurs d'arrondis), CRYPTA (Cryptologie Avancée), GPU (Programmation GPU), POSSO (Systèmes algébriques et cryptologie multivariée post-quantique) et SCA (Attaques par Canaux Auxiliaires). Ces cinq Unités sont au coeur disciplinaire de notre formation.
- au plus une Unité à choisir librement parmi celles proposées dans le master d'Informatique de Sorbonne Université.
Ce dernier semestre est dédié au stage que les étudiantes et étudiants préparent soit dans l'industrie du numérique, soit dans le monde académique. Ce stage est évalué via la rédaction d'un rapport ainsi qu'une soutenance orale.
Débouchés
Ce parcours forme des expertes et experts de la conception et de l’implémentation de solutions informatiques en cryptologie et calcul haute-performance.
La panoplie de métiers possibles à l'issue de cette formation est assez large : elle englobe les métiers techniques de la cyber-sécurité et du calcul intensif (e.g. déploiement de solutions logicielles), des fonctions de concepteur et/ou d'encadrement relevant de l'ingéniérie de la sécurité informatique et du calcul haute-formance, voire les métiers de la recherche et développement en cryptologie, calcul haute-performance et aux domaines fondamentaux que sont l'arithmétique des ordinateurs et le calcul formel.
Les débouchés sont donc très nombreux. Les étudiantes et étudiants trouvent rapidement un travail dans l'industrie numérique, soit au sein de grands groupes, soit au sein d'entreprises de taille moyenne ou dans le tissu important des start-ups du numérique ; ou bien au sein d'acteurs institutionnels dépendant de l'État ou bien au sein du monde de la recherche académique (Universités, CNRS, Inria, par exemple).
Contacts
Responsables de parcours (CCA)
Vincent Neiger et Mohab SAFEY EL DIN
Secrétariat
Yanny DICOT