May 08, 2024

Wiki

Python

Aide

edit SideBar

Search

Cryptographie


Contenu du module complémentaire

Séance 1

Cours : Cryptologie, un tour d'horizon.

Une courte introduction à la cryptologie : son vocabulaire, ses moyens mathématiques et ses buts. On y parle de chiffrement à clé publique et à clé secrète, de fonctions de hachage, de protocole d'authentification, et on donne des rudiments de cryptanalyse.

lien : Le cours

Travaux pratiques : Reprise en main de python

On découvre une petite partie du folklore de la cryptographie, en guise d'introduction : le carré de Polybe, le code de césar, etc.

TP : L'enfance de l'art

Séance 2

Cours : Un cryptosystème symétrique (DES)

On explique en détail l'algorithme du DES, et on évoque le Triple-DES et l'AES. On parle un peu d'attaque et de contre-attaque.

lien :

Travaux pratiques : Petite histoire de la cryptologie à l'âge classique.

On évoque ici différents éléments de l'age classique de la cryptologie : les chiffrements par substitution et transposition, le Chiffre de Vigenère et l'attaque de Babbage, et le système de Vernam. Ces cryptosystèmes ont été abandonnés : ils ne sont pas sûr.

TP : L'age classique

Séance 3 : Rappels sur les nombres premiers.

On rappelle des outils d'arithmétique, et on évoque, et on programme, différents résultats classiques sur les nombres premiers. On parle de répartition, et de tests de primalité.

Le but est de se rafraîchir la mémoire, en vue de programmer les méthodes de cryptographie asymétriques, basées sur l'arithmétique. Ils nous serviront pour comprendre les cryptosystèmes modernes.

TP : Les nombres premiers

Séances 4 et 5 : Exemples de cryptosystèmes asymétriques.

On y découvre les algorithmes ElGamal, RSA et du sac-à-dos : les plus célèbres cryptosystèmes asymétriques modernes.

TP :

Séance 6 : Les fonctions de hachage.

On regarde en détail l'utilité d'une fonction de hachage et d'un MAC. On y parle aussi de l'attaque des anniversaires. Enfin, on programme les algorithmes du SHA-1 et du SHA-256.

TP :

Séance 7

Cours : Gnu Privacy Guard (GPG).

On apprend à se forger ses propres clés publiques et privées, à les déposer sur un serveur de clés, et à les utiliser au quotidien. On apprend à gérer son porte-clés, et la notion de réseau de confiance.

lien : GnuPG

Pour aller un peu plus loin

Cours : OpenSSH

OpenSSH permet d'utiliser un shell sur une machine distante, en chiffrant les échanges.

lien :

Pratique de la cryptographie

On présente quelques outils fournissant des fonctions cryptographiques ou de sécurité. On en profite pour parler de certificats.

lien : Le cours

Mode d'évaluation

(Mise à jour: 8 mars 2021)

On vous demande de rendre, à votre responsable de TP :

  • Un document PDF, portant votre nom, bien rédigé et bien présenté, et détaillant, dans les grandes lignes, l'ensemble de vos travaux (aboutis ou non).
    • IL FAUT qu'il contienne un tableau récapitulatif de toutes les réalisations, avec un pourcentage d'aboutissement, en début de rapport
    • On pourra y copier des lignes du shell, ou de python, prouvant que l'on a bien appris à utiliser les outils du cours (sha1sum, pyDes, rsa, gnupg, etc.)
    • On expliquera chaque algorithme développé, les problèmes rencontrés, et on portera un regard critique sur le tout. Le but est de convaincre le correcteur qu'il s'agit là de vos réalisations, que vous avez bien compris (qu'elles ne proviennent pas du site du zéro par exemple, ou de wikipedia).
  • Les sources, dans le langage de votre choix. Pour avoir la moyenne, elles devront contenir au moins :
    • un algorithme de chiffrement asymétrique
    • un deuxième algorithme non élémentaire si vous travaillez à 2: un algorithme de chiffrement symétrique (DES), une fonction de hachage, ou d'autres réalisations non détaillées sur ce wiki (générateur de nombres pseudo-aléatoires, stéganographie, etc.)
    • un troisième algorithme non élémentaire si vous travaillez à 3, etc.
    • Chaque programme ajouté permettra d'augmenter sa note. Même les petits programmes (Largonjem, Polybe) seront considérés.
    • Exemples d'algorithmes non élémentaires : RSA, DES, AES, ElGamal, ElGamal sur courbes elliptiques, SHA1, MD5, etc. (tous ne sont pas détaillés dans ce wiki).
    • D'autres algorithmes, trouvés sur le net, sont les bienvenus : des générateurs cryptographiquement sûrs par exemple (Blum Blum Shub, ISAAC), d'autres fonctions de hachage, etc. Auquel cas, les détailler dans le rapport.

Vous enverrez tout cela par mail, pour le 28 mars 2021 au plus tard, à christophe.guyeux@univ-fcomte.fr

Bon courage, et travaillez bien.

Page Actions

Recent Changes

Group & Page

Back Links