École Privée d’Ingénierie du Niger — L’école du nouveau monde

✉ elearning@epiniger.edu.ne    🌐 epiniger.edu.ne

Semestre : Semestre 3 (S3)

  • Application client-serveur et Web 1

    Ce cours du semestre 3 pose les fondations système indispensables au développement et à l’exploitation d’applications client-serveur et Web : un serveur Web, une base de données ou une API tournent presque toujours sur un système de type UNIX (Linux dans l’immense majorité des hébergeurs, des opérateurs télécoms et des datacenters de la sous-région). L’étudiant apprend à manipuler un système UNIX en ligne de commande, à comprendre et piloter les processus, les signaux et les services (démons), puis à automatiser les tâches d’administration par des scripts shell sûrs et lisibles. Le cours est orienté cybersécurité : droits minimaux, services réduits au strict nécessaire, journaux exploitables et scripts robustes. Il sera prolongé au semestre 4 (ACS2434) par l’étude des architectures client-serveur, du protocole HTTP et de la configuration des serveurs.

    Objectifs d’apprentissage

    • Décrire l’architecture d’un système UNIX (noyau, shell, système de fichiers, utilisateurs) et naviguer efficacement en ligne de commande.
    • Gérer les permissions et les comptes selon le principe du moindre privilège (chmod, chown, umask, sudo).
    • Observer et contrôler les processus : identification, états, priorités, envoi de signaux.
    • Administrer les services avec systemd : démarrage, arrêt, activation, consultation des journaux, réduction de la surface d’attaque.
    • Écrire des scripts Bash structurés (variables, conditions, boucles, fonctions, codes de retour) pour automatiser sauvegardes et analyses de journaux.

    Prérequis

    Algorithmique et programmation (S1-S2), notions d’architecture des ordinateurs et de systèmes d’exploitation. Disposer d’une machine virtuelle Linux (Debian ou Ubuntu Server) dans son propre laboratoire.

    Plan du cours

    1. Leçon 1 — Introduction au système UNIX : architecture, fichiers et droits
    2. Leçon 2 — Processus et signaux
    3. Leçon 3 — Services et démons : administration avec systemd
    4. Leçon 4 — Scripting shell Bash pour l’administration

    Modalités d’évaluation

    Volume horaire : 10 h de cours magistral (CM), 0 h de TD, 10 h de travaux pratiques (TP) et 20 h de travail personnel de l’étudiant (TPE) ; 2 crédits. Évaluation : contrôle continu (comptes rendus de TP, quiz en ligne, mini-projet de script, 40 %) et examen terminal écrit et/ou pratique sur machine (60 %).

    Bibliographie

    • Brian W. Kernighan et Rob Pike, The UNIX Programming Environment, Prentice Hall.
    • William E. Shotts, The Linux Command Line, No Starch Press.
    • Evi Nemeth, Garth Snyder, Trent R. Hein, Ben Whaley, Dan Mackin, UNIX and Linux System Administration Handbook, Addison-Wesley.
    • Christophe Blaess, Scripts shell Linux et Unix, Eyrolles.
    • ANSSI, Recommandations de configuration d’un système GNU/Linux (guide en ligne, ssi.gouv.fr).
  • UML et ITIL 1

    Ce cours présente les principales étapes d’une démarche de modélisation d’un système d’information (SI) d’entreprise et les bonnes pratiques de gestion des services informatiques. Il constitue la première partie (semestre 3) d’un enseignement qui se poursuit au semestre 4 (modélisation opérationnelle et fonctionnelle). On y étudie d’abord ce qu’est un SI et pourquoi on le modélise, puis les cadres d’architecture d’entreprise (Zachman, TOGAF, urbanisation) qui organisent les vues métier, fonctionnelle, applicative et technique. Le langage UML 2 est ensuite introduit comme langage commun de représentation de ces vues. Enfin, le référentiel ITIL 4 montre comment un SI, une fois construit, est exploité sous forme de services mesurés et améliorés en continu — un cadre indispensable pour un futur technicien en cybersécurité, qui interviendra dans la gestion des incidents, des changements et de la sécurité de l’information.

    Objectifs d’apprentissage

    • Définir un système d’information, ses composantes et ses éléments de contexte (acteurs, parties prenantes, périmètre, contraintes).
    • Expliquer le rôle d’un cadre d’architecture d’entreprise et positionner les vues métier, fonctionnelle, applicative et technique.
    • Situer les diagrammes d’UML 2 et réaliser des diagrammes simples de contexte, de paquetages, de classes et de déploiement.
    • Décrire le système de valeur des services d’ITIL 4, ses principes directeurs et ses principales pratiques.
    • Calculer et interpréter des indicateurs de service (disponibilité, MTBF, MTTR, priorité d’un incident).

    Prérequis

    Notions d’organisation des entreprises, bases de programmation et de bases de données (première année).

    Plan du cours

    1. Leçon 1 — Systèmes d’information et démarche de modélisation
    2. Leçon 2 — Cadres d’architecture d’entreprise
    3. Leçon 3 — UML 2 : langage de représentation des vues architecturales
    4. Leçon 4 — ITIL 4 : gérer le système d’information comme un ensemble de services

    Modalités d’évaluation

    Volume horaire : 13 h de CM, 7 h de TD, 0 h de TP, 20 h de TPE ; 2 crédits. Contrôle continu (40 % : études de cas en TD et un dossier de modélisation d’un SI nigérien réel ou fictif) et examen terminal écrit de 2 heures (60 %).

    Bibliographie

    • P. Roques, UML 2 par la pratique : études de cas et exercices corrigés, Eyrolles.
    • J. Gabay, D. Gabay, UML 2 Analyse et conception, Dunod, 2008.
    • G. Booch, J. Rumbaugh, I. Jacobson, The Unified Modeling Language User Guide, Addison-Wesley.
    • The Open Group, The TOGAF Standard (www.opengroup.org).
    • AXELOS, ITIL Foundation, ITIL 4 Edition, TSO, 2019.
  • Bases de données (SQL et Oracle)

    Ce cours approfondit les bases de données relationnelles au-delà du simple langage SQL. Il prolonge les cours d’analyse informatique des semestres 1 et 2 : après un rappel de la modélisation Entité-Association et de ses extensions (types et sous-types, identifiants relatifs, contraintes), il traite la spécification et le contrôle de l’intégrité sémantique dans Oracle (contraintes déclaratives, déclencheurs PL/SQL), la gestion des transactions (propriétés ACID, contrôle de concurrence, reprise après panne) puis l’exploitation performante des bases : structures de stockage, index, évaluation et optimisation des requêtes, dénormalisation, serveurs parallèles, bases réparties et fédérées, et introduction aux systèmes NoSQL. Pour un futur spécialiste de la cybersécurité, ces notions sont essentielles : l’intégrité et la disponibilité des données font partie de la triade de sécurité, et la traçabilité (journaux, audit) repose sur les mécanismes étudiés ici. Le cours est entièrement organisé en TD et en TP guidés sous Oracle, réalisés dans le laboratoire personnel de l’étudiant.

    Objectifs d’apprentissage

    • Modéliser un domaine avec le modèle Entité-Association étendu et le traduire en schéma relationnel.
    • Classer les contraintes d’intégrité et les implanter en SQL (PRIMARY KEY, FOREIGN KEY, CHECK, UNIQUE) ou par déclencheurs PL/SQL.
    • Expliquer les propriétés ACID, les anomalies de concurrence, la sérialisabilité, le verrouillage et les niveaux d’isolation d’Oracle.
    • Décrire les mécanismes de journalisation et de reprise après panne.
    • Estimer le coût d’accès aux données, lire un plan d’exécution et choisir index ou dénormalisation.
    • Situer les architectures parallèles, réparties et NoSQL et leurs compromis.

    Prérequis

    Modèle relationnel, normalisation (1FN à 3FN) et langage SQL de base (SELECT, jointures, agrégats, INSERT/UPDATE/DELETE) vus en première année.

    Plan du cours

    1. Leçon 1 — Rappels et modélisation conceptuelle avancée
    2. Leçon 2 — Intégrité sémantique : contraintes SQL et déclencheurs PL/SQL sous Oracle
    3. Leçon 3 — Gestion des transactions : concurrence et reprise après panne
    4. Leçon 4 — Stockage, optimisation des requêtes, bases réparties et NoSQL

    Modalités d’évaluation

    Volume horaire : 0 h de CM, 10 h de TD, 10 h de TP, 20 h de TPE ; 2 crédits. Contrôle continu (50 % : comptes rendus des TP guidés et interrogations de TD) et examen terminal (50 % : épreuve écrite de 2 heures comprenant modélisation, SQL/PL-SQL et analyse d’ordonnancements de transactions).

    Bibliographie

    • G. Gardarin, Bases de données, Eyrolles.
    • R. Elmasri, S. B. Navathe, Fundamentals of Database Systems, Pearson.
    • A. Silberschatz, H. F. Korth, S. Sudarshan, Database System Concepts, McGraw-Hill.
    • P. J. Sadalage, M. Fowler, NoSQL Distilled, Addison-Wesley, 2012.
    • Oracle Corporation, documentation officielle Oracle Database Concepts et PL/SQL Language Reference (docs.oracle.com).
  • Algorithmique et programmation 3

    Ce cours d’Algorithmique et programmation de 2e année (semestre 3) est consacré au langage C, langage des systèmes d’exploitation (noyau Linux), des pilotes, des équipements réseau et de nombreux outils de sécurité (OpenSSH, OpenSSL, Snort, Suricata). Le maîtriser est indispensable au spécialiste en cybersécurité : pour écrire des outils efficaces, pour lire et auditer du code, et pour comprendre l’origine des vulnérabilités de corruption mémoire afin de les prévenir. Le cours reprend les notions algorithmiques de L1 et les traduit rigoureusement en C : genèse et philosophie du langage, chaîne de compilation, structure d’un programme, types et opérateurs (y compris les opérateurs bit à bit utilisés pour les masques réseau et les permissions), instructions et structures de contrôle, tableaux et chaînes, fonctions et procédures, structures de données (struct, enum, typedef) et bibliothèque standard. Chaque leçon insiste sur les bonnes pratiques de programmation sûre (norme SEI CERT C) et se termine par des TP guidés sur la machine virtuelle de l’étudiant, jusqu’à un petit outil de dessin en mode texte.

    Objectifs d’apprentissage

    • Situer l’histoire et les normes du C, et décrire la chaîne préprocesseur – compilateur – assembleur – éditeur de liens.
    • Écrire des programmes C structurés, compilés sans avertissement avec gcc -Wall -Wextra.
    • Utiliser correctement les types et opérateurs, y compris conversions et opérateurs bit à bit.
    • Employer les structures de contrôle et manipuler tableaux et chaînes sans débordement.
    • Découper un programme en fonctions et en modules, et modéliser des données avec struct, enum et typedef.
    • Exploiter la bibliothèque standard et réaliser un petit outil de dessin.

    Prérequis

    Algorithmique et programmation S1 et S2 (pseudo-code, structures de contrôle, tableaux, sous-programmes, notions de pointeurs, listes et piles).

    Plan du cours

    1. Genèse du langage C, concepts de base et structure générale d’un programme
    2. Opérateurs sur les types de données simples et instructions simples
    3. Structures de contrôle et tableaux
    4. Procédures, fonctions et structures de données

    Modalités d’évaluation

    Volume horaire : 10 h de CM, 10 h de TD, 10 h de TP et 30 h de TPE ; 3 crédits. Évaluation : contrôle continu (comptes rendus de TP avec code source, quiz en ligne, mini-projet « outil de dessin ») pour 40 % et examen terminal (écrit : lecture et écriture de code C, traces d’exécution) pour 60 %.

    Bibliographie

    • B. W. Kernighan, D. M. Ritchie, Le langage C : norme ANSI, Dunod.
    • C. Delannoy, Programmer en langage C, Eyrolles.
    • K. N. King, C Programming: A Modern Approach, W. W. Norton.
    • R. C. Seacord, Secure Coding in C and C++, Addison-Wesley.
    • SEI CERT, SEI CERT C Coding Standard, Carnegie Mellon University (en ligne).
  • Recherche opérationnelle 1

    La recherche opérationnelle (RO) regroupe les méthodes mathématiques qui aident à prendre la meilleure décision possible sous contraintes : combien produire, comment mélanger des matières premières, comment répartir un budget ou des heures de travail. Pour un futur administrateur systèmes et réseaux orienté sécurité, ces méthodes servent aussi à dimensionner des infrastructures, à répartir un budget de sécurité ou à planifier des équipes de supervision (SOC). Ce premier cours (semestre 3) est consacré à la programmation linéaire : modélisation, résolution graphique, algorithme du simplexe, dualité et analyse de sensibilité, avec une initiation au logiciel LINDO. La suite (semestre 4) traitera la programmation en nombres entiers, les problèmes de réseaux et de flots.

    Objectifs d’apprentissage

    • Reconnaître les structures courantes de problèmes de décision (production, mélange, choix de médias, placements financiers).
    • Formuler un programme linéaire : variables de décision, fonction objectif, contraintes, conditions de non-négativité.
    • Résoudre graphiquement un programme linéaire à deux variables et identifier les cas particuliers (solution multiple, non bornée, impossible).
    • Appliquer l’algorithme du simplexe sous forme de tableaux et en interpréter chaque itération.
    • Écrire le dual d’un programme linéaire, interpréter les prix duaux (prix fantômes) et les intervalles de sensibilité, en connaître les limites.
    • Saisir un modèle dans LINDO et lire son rapport de résolution.

    Prérequis

    Mathématiques de première année : équations et inéquations linéaires, représentation graphique de droites, systèmes d’équations, notions de matrices. Pratique élémentaire d’un tableur.

    Plan du cours

    1. Leçon 1 — Modélisation et formulation de programmes linéaires
    2. Leçon 2 — Résolution graphique et cas particuliers
    3. Leçon 3 — L’algorithme du simplexe
    4. Leçon 4 — Dualité, analyse de sensibilité et initiation à LINDO

    Modalités d’évaluation

    Volume horaire : 13 h de cours magistral (CM), 7 h de travaux dirigés (TD), 0 h de travaux pratiques, 20 h de travail personnel de l’étudiant (TPE) ; 2 crédits. Évaluation : contrôle continu (40 % : interrogations écrites en TD, un devoir de modélisation à rendre) et examen terminal écrit de 2 heures (60 %) comportant une formulation de problème, une résolution par le simplexe et une question d’interprétation de sensibilité.

    Bibliographie

    • F. S. Hillier, G. J. Lieberman, Introduction to Operations Research, McGraw-Hill.
    • W. L. Winston, Operations Research: Applications and Algorithms, Duxbury Press.
    • H. A. Taha, Operations Research: An Introduction, Pearson Prentice Hall.
    • V. Chvátal, Linear Programming, W. H. Freeman, 1983.
    • D. de Werra, T. M. Liebling, J.-F. Hêche, Recherche opérationnelle pour ingénieurs, tome I, Presses polytechniques et universitaires romandes.
  • Théorie des langages 1

    La théorie des langages est le socle formel de l’analyse lexicale et syntaxique, de la compilation, de la recherche de motifs et de la validation des données. Ce cours de deuxième année (S3) de la Licence Professionnelle en Informatique, option Cybersécurité, en présente la première partie : notions fondamentales (mots, langages, opérations, grammaires, hiérarchie de Chomsky, propriétés de fermeture) puis langages réguliers et automates à états finis. Les exemples sont reliés aux usages professionnels : analyseurs lexicaux, signatures d’IDS, validation d’entrées par liste blanche, politiques de mots de passe. La suite (S4) traitera des langages algébriques, des automates à pile et des machines de Turing.

    Objectifs d’apprentissage

    • Manipuler les notions de mot, de langage et les opérations sur les langages.
    • Définir une grammaire syntagmatique, effectuer des dérivations et classer une grammaire dans la hiérarchie de Chomsky.
    • Utiliser les propriétés de fermeture des langages réguliers et algébriques.
    • Construire des automates finis (AFD, AFN, ε-AFN), les transformer et les déterminiser.
    • Passer d’une expression régulière à un automate et inversement, minimiser un AFD.
    • Démontrer qu’un langage n’est pas régulier avec le lemme de l’étoile.

    Prérequis

    Notions de base de logique et de théorie des ensembles (union, intersection, relations, récurrence), algorithmique de première année.

    Plan du cours

    1. Alphabets, mots, langages et opérations
    2. Grammaires syntagmatiques, hiérarchie de Chomsky et propriétés de fermeture
    3. Automates à états finis : définitions, variantes et déterminisation
    4. Expressions régulières, minimisation et langages réguliers

    Modalités d’évaluation

    Volume horaire : 13 h de cours magistral, 7 h de travaux dirigés, 20 h de travail personnel (2 crédits). Évaluation : contrôle continu (quiz en ligne, exercices de TD rendus) et examen terminal écrit (constructions d’automates, dérivations, preuves courtes).

    Bibliographie

    • John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman, Introduction to Automata Theory, Languages, and Computation, Pearson (Addison-Wesley).
    • Michael Sipser, Introduction to the Theory of Computation, Cengage Learning.
    • Olivier Carton, Langages formels, calculabilité et complexité, Vuibert, 2008.
    • Pierre Wolper, Introduction à la calculabilité, Dunod.
    • Alfred Aho, Monica Lam, Ravi Sethi, Jeffrey Ullman, Compilateurs : principes, techniques et outils, Pearson Education.
  • Outils de détection d’intrusion

    Ce cours forme les étudiants au métier de défenseur : détecter les intrusions, analyser les alertes et réagir aux incidents, dans l’esprit d’un analyste de centre opérationnel de sécurité (SOC). Il part des protocoles réseau (IP, TCP, UDP, ARP, ICMP, fragmentation) relus sous l’angle de la détection, présente les technologies de filtrage et les principes des systèmes de détection d’intrusion (signatures, anomalies, HIDS, NIDS, IPS). Il décrit ensuite les grandes familles d’attaques au niveau de leurs mécanismes généraux, de leurs indicateurs de compromission et de leurs parades, sans jamais fournir de procédure offensive. Il traite enfin l’architecture de collecte (placement des sondes, SPAN/TAP), la journalisation et le SIEM, l’organisation d’un SOC, l’installation de Suricata dans le laboratoire de l’étudiant, le tri des alertes, les métriques de détection et la réponse à incident. Les exemples portent sur des organisations nigériennes (banque, opérateur, école) ; toute manipulation se fait sur les machines virtuelles de l’étudiant, dans le respect de la loi nigérienne sur la cybercriminalité.

    Objectifs d’apprentissage

    • Identifier dans le trafic et les journaux les champs et comportements révélateurs d’une intrusion.
    • Expliquer les techniques de détection (signatures, anomalies) et choisir entre HIDS, NIDS et IPS.
    • Associer les familles d’attaques à leurs indicateurs de compromission et à leurs parades.
    • Concevoir une architecture de collecte et dimensionner un SIEM ; décrire les fonctions d’un SOC.
    • Installer, configurer et tester un IDS open source (Suricata) dans un laboratoire isolé.
    • Trier et prioriser des alertes, calculer les métriques de détection et conduire une réponse à incident.

    Prérequis

    Bonnes connaissances en réseaux (modèle TCP/IP, adressage, VLAN) et en sécurité ; administration Linux de base ; connaissance du guide d’hygiène informatique de l’ANSSI ; avoir suivi le parcours d’introduction à la cybersécurité.

    Plan du cours

    1. Leçon 1 — Protocoles réseau et principes de la détection d’intrusion
    2. Leçon 2 — Familles d’attaques et indicateurs de compromission
    3. Leçon 3 — Déployer un IDS : sondes, journaux, SIEM et SOC
    4. Leçon 4 — L’analyste SOC : tri des alertes, métriques et réponse à incident

    Modalités d’évaluation

    Volume horaire : 13 h de cours magistral, 7 h de travaux dirigés et 20 h de travail personnel de l’étudiant (dont les manipulations guidées dans le laboratoire virtuel) ; 2 crédits. Évaluation : contrôle continu (quiz, exercices de TD, compte rendu du TP Suricata) et examen terminal écrit (analyse d’alertes et de journaux, calculs de métriques, questions de cours).

    Bibliographie

    • Richard Bejtlich, The Practice of Network Security Monitoring, No Starch Press, 2013.
    • Chris Sanders et Jason Smith, Applied Network Security Monitoring: Collection, Detection, and Analysis, Syngress, 2013.
    • NIST SP 800-94, Guide to Intrusion Detection and Prevention Systems (IDPS), 2007 ; NIST SP 800-61, Computer Security Incident Handling Guide.
    • ANSSI, Guide d’hygiène informatique et Recommandations de sécurité pour la mise en œuvre d’un système de journalisation.
    • OISF, documentation officielle de Suricata (docs.suricata.io) ; norme ISO/IEC 27035 (gestion des incidents de sécurité de l’information).
  • Gestion de clés et algorithmes cryptographiques

    Ce cours prolonge « Principes de la cryptographie et cryptanalyse » (PCC2311), qui a présenté l’histoire des chiffres, le vocabulaire (chiffrement, clé, vecteur d’initialisation), les principes de Kerckhoffs et de Shannon, les chiffrements symétriques (DES, 3DES, AES, modes ECB, CBC, CFB, CTR) et asymétriques (RSA, ElGamal, Diffie-Hellman). Il se concentre sur les algorithmes qui garantissent l’intégrité et l’authenticité (fonctions de hachage, MAC, signatures) et sur ce qui fait la sécurité réelle d’un système : la gestion des clés et les infrastructures à clés publiques. Les manipulations se font dans le laboratoire personnel de l’étudiant avec OpenSSL, Apache, GnuPG et la bibliothèque standard Python (hashlib, hmac, secrets), sur des cas inspirés d’organisations nigériennes (école, banque, PME, paiement mobile).

    Objectifs d’apprentissage

    • Expliquer les propriétés des fonctions de hachage, le paradoxe des anniversaires et l’état de MD5, SHA-1, SHA-2 et SHA-3 ; stocker correctement des mots de passe.
    • Choisir entre MAC (HMAC, CMAC) et signature (RSA, DSA, ECDSA) et calculer des exemples sur de petits nombres.
    • Définir une politique de gestion des clés couvrant tout le cycle de vie, avec les standards PKCS et les recommandations NIST/ANSSI.
    • Expliquer l’attaque de l’homme du milieu contre Diffie-Hellman et les moyens de l’empêcher.
    • Lire et valider des certificats X.509, créer une petite PKI de test et mettre en place HTTPS sur Apache.
    • Échanger des messages chiffrés et signés avec GnuPG et vérifier correctement un jeton JWT.

    Prérequis

    Cours PCC2311 (arithmétique modulaire, AES, RSA, Diffie-Hellman), administration Linux de base (paquets, droits, services), notions de réseau (HTTP, DNS, TCP) et de programmation Python.

    Plan du cours

    1. Leçon 1 — Fonctions de hachage cryptographiques
    2. Leçon 2 — Intégrité et authentification : MAC, HMAC et signatures numériques
    3. Leçon 3 — Gestion des clés : cycle de vie, échange Diffie-Hellman, homme du milieu et standards PKCS
    4. Leçon 4 — Infrastructures à clés publiques (PKI), certificats X.509 et cas pratiques : OpenSSL, HTTPS, GnuPG, JWT

    Modalités d’évaluation

    Volume horaire : 13 h de cours magistral, 7 h de travaux dirigés, 0 h de TP encadré, 20 h de travail personnel de l’étudiant (TPE), 2 crédits. Les manipulations guidées (OpenSSL, Apache, GnuPG, Python) sont réalisées en TPE sur les machines virtuelles de l’étudiant. Évaluation : contrôle continu (40 % : quiz en ligne, exercices de TD, compte rendu de la mise en place d’HTTPS ou de l’échange GnuPG) et examen terminal écrit (60 %).

    Bibliographie

    • A. Menezes, P. van Oorschot, S. Vanstone, Handbook of Applied Cryptography, CRC Press, 1996.
    • N. Ferguson, B. Schneier, T. Kohno, Cryptography Engineering: Design Principles and Practical Applications, Wiley, 2010.
    • W. Stallings, Cryptography and Network Security: Principles and Practice, Pearson.
    • NIST SP 800-57 Part 1 Recommendation for Key Management ; FIPS 180-4 (SHS), FIPS 186-5 (signatures), FIPS 198-1 (HMAC).
    • IETF : RFC 5280 (certificats X.509 et CRL), RFC 2104 (HMAC), RFC 8017 (PKCS#1), RFC 7519 (JWT).
  • Principes de la cryptographie et cryptanalyse

    Ce cours d’introduction à la cryptologie (UE1 « Cryptanalyse », L2) présente les principes sur lesquels reposent toutes les protections modernes de l’information : messageries, paiement mobile, VPN des banques et des opérateurs, sauvegardes chiffrées des administrations. On part de l’histoire des chiffres secrets et de leur cryptanalyse élémentaire (César, Vigenère, analyse de fréquences), on acquiert les outils mathématiques indispensables (arithmétique modulaire, théorie de Shannon), puis on étudie la cryptographie symétrique (DES, AES, modes opératoires) et asymétrique (RSA, Diffie-Hellman, ElGamal, courbes elliptiques). La cryptanalyse est abordée dans une démarche défensive : comprendre pourquoi un système tombe pour savoir choisir et configurer des algorithmes sûrs. Les exercices se font sur de petits nombres, à la main puis avec Python (pow, hashlib) et OpenSSL dans le laboratoire personnel de l’étudiant. Ce cours est complété, au même semestre, par « Gestion de clés et algorithmes cryptographiques » (GAC2312) : hachage, MAC, signatures, gestion des clés et PKI.

    Objectifs d’apprentissage

    • Retracer les grandes étapes de l’histoire de la cryptographie et de la cryptanalyse et en tirer les principes de Kerckhoffs et de Shannon.
    • Chiffrer et casser les chiffrements classiques (César, ROT13, substitution, Vigenère) par force brute, analyse de fréquences et méthode de Kasiski.
    • Effectuer les calculs d’arithmétique modulaire utiles en cryptographie (PGCD, inverse, exponentiation rapide, Fermat-Euler) et évaluer une sécurité en bits.
    • Décrire le fonctionnement des chiffrements symétriques (flot, blocs, DES, 3DES, AES) et choisir un mode opératoire adapté.
    • Mettre en œuvre à la main RSA, Diffie-Hellman et ElGamal et expliquer le principe des courbes elliptiques.
    • Identifier les grandes familles d’attaques et recommander des algorithmes et des tailles de clés conformes à l’état de l’art.

    Prérequis

    Mathématiques de base (division euclidienne, nombres premiers, puissances, logarithme en base 2), numération binaire et hexadécimale, notions de programmation Python et utilisation de la ligne de commande Linux.

    Plan du cours

    1. Leçon 1 — Histoire de la cryptographie et cryptanalyse des chiffrements classiques
    2. Leçon 2 — Outils modernes : services de sécurité, arithmétique modulaire et théorie de Shannon
    3. Leçon 3 — Cryptographie symétrique : chiffrements par flot et par blocs, DES, AES et modes opératoires
    4. Leçon 4 — Cryptographie asymétrique : RSA, Diffie-Hellman, ElGamal, courbes elliptiques et cryptanalyse

    Modalités d’évaluation

    Volume horaire : 13 h de cours magistral, 7 h de travaux dirigés, 0 h de TP encadré, 20 h de travail personnel de l’étudiant (TPE), 2 crédits. Les manipulations OpenSSL/Python proposées sont réalisées en TPE sur les machines virtuelles de l’étudiant. Évaluation : contrôle continu (40 % : quiz en ligne, exercices de TD corrigés, compte rendu d’une manipulation) et examen terminal écrit (60 % : exercices de calcul et questions de cours, calculatrice autorisée).

    Bibliographie

    • A. Menezes, P. van Oorschot, S. Vanstone, Handbook of Applied Cryptography, CRC Press, 1996 (consultable en ligne sur le site de l’Université de Waterloo).
    • B. Schneier, Cryptographie appliquée : protocoles, algorithmes et code source en C, Vuibert (traduction de Applied Cryptography, Wiley).
    • S. Singh, Histoire des codes secrets : de l’Égypte des pharaons à l’ordinateur quantique, JC Lattès, 1999 (rééd. Le Livre de Poche).
    • C. Paar, J. Pelzl, Understanding Cryptography, Springer, 2010.
    • NIST, FIPS 197 Advanced Encryption Standard et SP 800-57 Recommendation for Key Management ; ANSSI, guide de sélection d’algorithmes cryptographiques.
  • Projet personnel

    Le Projet personnel (UE5 « Communication et techniques de présentation », semestre 3) permet à chaque étudiant de la Licence Professionnelle en Génie Mécanique de conduire, seul ou en binôme, un projet concret en lien avec sa formation et son futur métier : conception et fabrication d’un petit équipement (séchoir solaire, support de moteur, banc d’essai de pompe), étude de maintenance d’une installation réelle (groupe électrogène, motopompe d’irrigation, compresseur), amélioration d’un poste de travail d’atelier, ou étude technico-économique d’une idée d’entreprise. Le projet mobilise les acquis des semestres 1 à 3 (dessin, construction mécanique, fabrication, maintenance) et développe l’autonomie, l’organisation et la capacité à rendre compte.

    Le cours fournit la méthode : il ne s’agit pas seulement de « faire quelque chose », mais de le faire comme un professionnel, avec un objectif clair, un planning, un budget en FCFA, un suivi régulier et une présentation soignée devant un jury. Chaque leçon comporte des mises en situation corrigées et des modèles directement réutilisables.

    Objectifs d’apprentissage

    • Choisir et formuler un projet personnel réaliste, utile et cohérent avec la formation (objectifs SMART, cahier des charges).
    • Planifier le projet : découpage en tâches (WBS), durées, chemin critique, diagramme de Gantt, budget et analyse des risques.
    • Exécuter le projet en autonomie, tenir un journal de bord et suivre l’avancement à l’aide d’indicateurs simples.
    • Appliquer une démarche itérative inspirée du Lean Startup (prototype minimal, mesure, apprentissage).
    • Rédiger un rapport de projet structuré et présenter oralement ses résultats devant un jury.

    Prérequis

    Aucun prérequis formel. Les connaissances de dessin technique, de construction mécanique, de procédés de fabrication et de techniques de communication acquises en S1-S3 sont mobilisées.

    Plan du cours

    1. Définir et cadrer un projet personnel en lien avec la formation
    2. Planifier le projet : découpage, délais, budget et risques
    3. Exécuter et suivre le projet en autonomie
    4. Présenter le projet final : rapport écrit et soutenance orale

    Modalités d’évaluation

    Volume horaire : 20 h de CM, 10 h de TD et 30 h de travail personnel (TPE), 3 crédits, sans TP encadré (la réalisation se fait en travail personnel et, si besoin, à l’atelier sur autorisation). Évaluation : contrôle continu (fiche projet, planning, revues d’avancement, journal de bord) et évaluation finale du projet (rapport écrit et soutenance orale devant un jury).

    Bibliographie

    • John M. Nicholas, Herman Steyn, Project Management for Engineering, Business, and Technology, Routledge.
    • Eric Ries, The Lean Startup, Crown Business (trad. fr. Lean Startup, Pearson).
    • Jean-Louis G. Muller, Management de projet, AFNOR Éditions.
    • Michel Beaud, L’art de la thèse, La Découverte (méthodologie de rédaction).