L\\'utilisation de plus en plus intense de l\\'informatique dans les entreprises, quelle que soit leur taille, et la croissance rapide des réseaux de communication impliquent aujourd\\'hui, dans les formations d\\'ingénierie, l\\'introduction de connaissances de base en mathématiques discrètes et en informatique, connaissances qui ne s\\'acquièrent pas par la seule manipulation d\\'outils informatiques en constante évolution.
Ainsi l\\'utilisation du web amène les entreprises, de manière croissante, à rechercher des étudiants ayant un profil de mathématicien-informaticien, particulièrement dans les domaines touchant au codage et à la sécurité dans la transmission de leurs informations.
L\\'objectif principal de ce parcours est donc de donner aux étudiants le recul théorique nécessaire pour suivre et anticiper les évolutions permanentes dans ces domaines de l\\'informatique. Pour atteindre une bonne compréhension des théories, l\\'enseignement s\\'appuie sur la pratique du développement informatique dans des langages de base et sur la familiarisation avec les logiciels existants. L\\'ambition est ainsi de présenter aux étudiants les derniers résultats théoriques mathématiques et leurs algorithmes en codage et cryptographie ayant une importance pratique en matière de sécurité informatique.
Ce parcours bénéficie de l\\'appui de l\\'Insitut Camille Jordan de l\\'Université Lyon1 et du Laboratoire de l\\'Informatique du Parallélisme (LIP, UMR 5668 CNRS, INRIA, ENSL), qui ont un potentiel de chercheurs et enseignants chercheurs susceptibles d\\'apporter leurs connaissances et de participer à l\\'encadrement d\\'étudiants. Ce parcours est ouvert et conçu dans sa pédagogie pour accueillir des étudiants mathématiciens et informaticiens. Il constitue un parcours naturel pour les étudiants soucieux d\\'applications.
Les débouchés professionel sont nombreux et variés : ingénieur en sécurité informatique, responsable des systèmes d\\'information, cryptologue, ...
1ère année :
Calcul économique et financier
L\\'entreprise et ses risques
Codage-Cryptage
Linux et sécurité 1 : Interaction, communication
Ordonnancement
Linux et sécurité 2 : programmation et sécurisation
Méthodes mathématiques pour l\\'économie et la finance
Modèles et simulations aléatoires
Anglais
2ème année :
Information, sécurité, réseaux et cryptographie avancée (12 crédits)
Éléments de théorie de l\\'information
- Canaux discrets et continus. Codes dans les réseaux informatiques.
- Théorème de Shannon, Codage et sources ergodiques.
- Compression et ondelettes.
- Codes correcteurs. Aspects algorithmiques de codage-décodage. En longueur fixe : codes de Reed-Solomon, Reed-Muller, Fire, résidu quadratique, Goppa (lien avec les courbes algébriques sur les corps finis). En longueur variable : Codes convolutionnels. Code de Viterbi.
- Exemples d\\'application des codes et aspects algorithmiques (enregistrement numérique, magnétique ou optique, modem, liaison satellite).
- Notion de bon codes et énoncé de quelques bornes sur le taux d\\'information. Combinaison de codes.
Sécurité et réseaux en pratique
- Approfondissement d\\'Unix : programmation shell : bash, python, ruby.., installation, gestion et administration d\\'un système de base (dont gentoo et divers BSD), déploiement et sécurisation de services réseaux classiques.
- Réseaux informatiques : approfondissement des protocoles de communication classiques, mise en place d\\'architectures réseaux sécurisés, gestion de commutateur et mise en place de VLANs
- Outils et protocoles en matière de sécurité : IDS, scapy, nmap..., applications diverses des protocoles vus en cryptographie avancée.
- Mise en œuvre et gestion de cryptosystèmes : applications en stéganographie
- Transfert d\\'information sécurisée et développement avancé en C, C++ ,
- Java, php, sql, python et ruby.
Cryptographie avancée
- Cryptosystème et théorie de l\\'information : Clef, message et entropie. Perfection d\\'un système, Unicité, redondance. Théorie de Shannon et extension d\\'Hellman. Exemples classiques.
- Empreintes : Comment garantir l\\'intégrité d\\'un message, Fonctions de hachage, protocoles MD5, SHA-1.
- Logarithmes discrets sur les courbes elliptiques (ECDLP).
- Cryptanalyse avancée : Comment casser un système cryptographique.
- Réseaux dans un espace euclidien, L\\'algorithme LLL, Application au cassage du code de Merkle-Hellman basé sur le problème du sac à dos.
La plupart des exercices seront programmés en C en utilisant une bibliothèque publique pour manipuler les entiers longs.
Courbes elliptiques en cryptologie
- Courbes elliptiques
- Multiplication scalaire : Problème du logarithme discret, Algorithme d\\'exponentation - Utilisation de différents systèmes de coordonnées
- Points sur les courbes elliptiques
- Courbes elliptiques sur les corps finis
- Courbes elliptiques sur C
- Calcul de |E(F_q)|
Cryptologie, algorithmique, optimisation et développement (10 crédits)
Cette unité est assurée par les chercheurs et enseignants-chercheurs du Laboratoire de l\\'Informatique du Parallélisme (LIP, UMR 5668 CNRS, INRIA, ENS Lyon).
Cryptologie et algorithmique
- Intro et motivations : Cryptographie a base de courbes (hyper)elliptiques, et besoin d\\'arithmetique efficace dans k[x] en tres grand degre
- Multiplication rapide : FFT, Algorithme de Schonhage-Strassen, Un mot sur l\\'analogie entre k[x] et Z
- Evaluation multipoint.
- Récurrences linéaires pour la cryptographie
Principe de transposition dans sa généralité afin de compléter l\\'introduction qui en a été faite dans le premier tiers de ce cours. En particulier, seront étudiées les versions transposées des algorithmes suivants :
- multiplication (classique, Karatsuba, FFT),
- division (classique, Sieveking),
- évaluation multipoint,
- interpolation.
Notion de réseau. Cas de la dimension 2 : algorithme de Gauss. L\\'algorithme LLL. Applications de LLL à la cryptologie : attaque de certaines instances de RSA, attaque d\\'un cryptosystème reposant sur le problème du sac-à-dos. Applications de LLL au dilemme du fabricant de tables.
Principaux algorithmes utilisés pour implanter les opérations arithmétiques et les principales fonctions (fonctions trigonométriques, logarithme, exponentielle, etc.) sur ordinateur. On s\\'intéressera également aux systèmes de numération utiles en informatique.
Développement en langages C, C++ et Java dans les disciplines enseignées et pratique de langages comme php, sql.