Bienvenue sur le site de l'option

Pratique de la cryptographie

Master 1 informatique - Semestre 1 - Année 2016-2017


Responsable: Rémi MORIN: remi.morin(at)lif.univ-mrs.fr

Résumé

Cette UE propose un tour d'horizon de la cryptographie moderne: il s'agit d'initier les étudiants du Master Informatique aux problématiques fondamentales de confidentialité, d’authentification et d’intégrité, illustrées sur des cas concrets. Une attention particulière est portée sur la mise-en-oeuvre de primitives cryptographiques à l'aide de librairies spécifiques afin d'être en mesure d'incorporer des fonctionnalités cryptographiques dans un logiciel sécurisé.
Les différents types de solutions sont présentés: chiffrements symétrique, asymétrique, par flot, par blocs, ou hybride pour la confidentialité; les fonctions de hachage courantes et leurs applications à l'intégrité, au stockage des mots-de-passe, au chiffrement par mot-de-passe, ou à l'authentification non-interactive; les certificats, les autorités de confiance et les trousseaux de clefs pour la sécurité des protocoles.
Le détail de plusieurs fonctions considérées comme sûres, et recommandées par l'ANSSI, telles que l'AES, le RSA, le DSA font l'objet d'un codage complet en C ou en Java (au choix) afin de développer une expertise technique de base. En particulier, les Travaux Pratiques permettent de s'initier à l'utilisation de librairies standards pour le calcul sur de grands entiers, à savoir GMP en C ou BigInteger en Java. La phase de bourrage, dans l'AES ou le RSA, et l'emploi d'un mode opératoire sont également implémentés. Enfin, l'utilisation de l’API JCE (Java Cryptography Extension) ou de la librairie OPENSSL permet de consolider les connaissances et les savoir-faire acquis mais aussi d'explorer de nouvelles primitives.
Quelques protocoles d'échange de clefs de session et d'authentification interactive sont étudiés en fin de cours.
Présentation de l'option:
Emploi du temps prévisionnel:

Organisation

Le module consiste en 10 cours de 1h et 10 TD/TP de 2h. Il faut ajouter à ceci 2h de travail personnel par semaine afin de terminer chez soi les Travaux Pratiques.
Un projet en temps limité compte pour 40 % dans la note finale. Il s'appuie sur les techniques vues en Travaux Pratiques.

Planning


Cours (1h)

TD/TP (2h)

Cours 0

Introduction aux concepts cryptographiques

Cours 1

Fonctions de hachage cryptographiques

Authentification artisanale d'émail
par HMAC

Cours 2

Cryptographie symétrique par flot

Extension de la clef dans l'AES
Application de la clef longue du RC4

Cours 3

Cryptographie symétrique par blocs

Implémentation de l'AES:
chiffrement du bloc nul avec la clef nulle

Cours 4

Arithmétique et algorithmique

Calcul de grands nombres premiers
à l'aide de GMP en C
ou de BigInteger en Java

Cours 5

RSA: protocole
et mise en oeuvre pratique

Fabrique de clefs RSA de taille réaliste

Cours 6

Signatures et certificats

Diplômes en PDF authentifiés
par une signature standard

Cours 7

Introduction à la JCE
et aux trousseaux de clefs

Décryptage d'un chiffré hybride à l'aide
d'un trousseau de clefs volumineux

Cours 8

Logarithme discret – applications

Implémentation du DSA dans
sa forme originale

Cours 9

Échange de clefs de session

Bourrages PKCS5 et OAEP

Projet

Quelques techniques d'accélération

Compléments

Références bibliographiques

  1. Jacques Stern, La science du secret,
    Odile Jacob, coll. « Sciences », 5 janvier 1998, 203 p.
  2. A.J. Menezes, P.C. van Oorschot et S.A. Vanstone, Handbook of Applied Cryptography,
    CRC Press, 1996, 816 pages. Disponible en ligne
  3. William Stallings, Cryptography and Network Security.
    Prentice Hall, 2003, 681 pages | ISBN-10: 0130914290 | ISBN-13: 9780130914293
  4. Le référentiel général de sécurité de l'agence nationale de la sécurité des systèmes d’information (ANSSI).