Previous: Tris et ComplexitéTris et Complexité Up: Option Algèbre et Calcul Formel, Préparation à l'Agrégation de Mathématiques d'OrsayOption Algèbre et Calcul Formel, Préparation à l'Agrégation de Mathématiques d'Orsay Next: Le Groupe SymétriqueLe Groupe Symétrique
Document aussi disponible au format PDF, Postscript, DVI, Text, LaTeX, LyX.

TP: rudiments de cryptographie



1  Introduction

dhrydhr pubfr dhr fnaf ha cyv fnaf har gnpur w rzcbegr znyter ibhf zba cnanpur

1.1  À quoi sert la cryptographie?

1.2  Objectifs principaux de la cryptologie

  1. Cryptographie:
    1. Authentification
    2. Chiffrement
    3. Signature
    4. Tatouage
  2. Cryptanalyse

1.3  Exemples de protocoles cryptographiques

1.3.1  Chiffrement symmétrique

  1. Permutation d'alphabet, César et ROT13
  2. Enigma
    Exercice 1   On considère une mini machine Enigma pour l'alphabet {E,I,L,N,S,T} disposant de deux rotors à choisir parmi trois et du réflecteur représentés ci-dessous. Pour des questions pratiques, les sommets de l'hexagone extérieur représentent les six contacts de la face droite du rotor, et les sommets de l'hexagone intérieur ceux de la face gauche:



    Plus précisément:
    1. La rotation d'un rotor est décrite par sa lettre la plus à droite.
    2. Les six contacts sont décrits par les lettres E,I,L,N,S,T de sorte que les labels coïncident avec ceux des rotors lorsque ces derniers sont en position E (comme dans la figure).
    3. Le rotor en position 1 tourne d'un cran dans le sens trigonométrique après chaque appui de touche;
    4. Le rotor en position 2 tourne d'un cran dans le sens trigonométrique après chaque passage du rotor en position 1 de la lettre I à la lettre E;
    5. Le réflecteur est fixé sur la lettre E;
    6. Le courant passe successivement de la droite vers la gauche à travers le rotor en position 1, le rotor en position 2, rebondit via le réflecteur puis repasse en sens inverse à travers les deux rotors.
    Par exemple, avec le rotor II en position 1 sur la lettre N, et le rotor III en position 2 sur la lettre I, vérifiez que le courant rentrant par le contact I est envoyé successivement sur les contacts S, T, N, L, puis T. Autrement dit, la lettre I est chiffrée par T. Vérifiez que réciproquement la lettreT est chiffrée par I.

    Décoder le message IENILILESNI avec le rotor I en position 1, le rotor III en position 2, respectivement sur les lettres T et N au départ.

    Modéliser mathématiquement la substitution d'alphabet appliquée à chaque étape par la machine Enigma.
  3. Masque jetable

1.3.2  Chiffrement assymétrique

  1. El-Gammal

    Log discret et courbes elliptiques http://fr.wikipedia.org/wiki/Courbe_elliptique#La_loi_de_groupe.2C_description_g.C3.A9om.C3.A9trique

1.4  Partage de secret à zéro information a priori

  1. Valise à double serrure
  2. Diffie-Hellmann

1.4.1  Secret partagé


Exercice 2   Un vieux pirate est sur son lit de mort. Dans sa jeunesse il a enfoui un Fabuleux Trésor dans la lagune de l'Ile de la Tortue, quelque part à l'est du Grand Cocotier. Il a réuni ses dix lieutenants préférés pour leur transmettre l'information secrète indispensable: la distance entre le Grand Cocotier et le Trésor. Connaissant bien ses lieutenants, et dans un étonnant dernier sursaut de justice, il ne voudrait pas qu'une conjuration de quelques uns d'entre eux assassines les autres pour empocher seuls le trésor. En tenant cependant compte de la mortalité habituelle du milieu, il souhaite donner une information secrète à chacun de ses lieutenants pour que huit quelconques d'entre eux puissent retrouver ensemble le trésor, mais pas moins. Comment peut-il s'y prendre?

1.5  Sécurité des protocoles cryptographiques et complexité des algorithmes

Étude de texte, Chapitre 20, Modern Computer Algebra.

2  TP: Implantation simple et usage de RSA

Les exercices peuvent être faits au choix avec MuPAD, Maple, ou tout autre système de calcul formel!

2.1  Échauffements


Exercice 3   Afficher des nombres premiers à 10 et 20 chiffres (cf. ?nextprime, ?prevprime et ?ithprime. Effectuer le produit de deux nombres premiers, puis tenter de factoriser ce résultat (cf. ?factor/?ifactor). Que pouvez-vous conclure ?

Faire quelques calculs dans Z/pZ (cf. ?Dom::IntegerMod
/ ?modp).

Convertir 201398120938 en base 124, puis revenir (cf. ?numlib::g_adic
/ ?base)

2.2  Implantation de RSA


Exercice 4   Compléter le squelette Crypto/RSA.mu. Ce squelette est fourni en MuPAD; l'adaptation pour Maple devrait être quasi-immédiate.

2.3  Expérimentation: échange de données confidentielles par dessus un media non sûr


Exercice 5   Le répertoire /home/doc/nthiery/Media file:/home/doc/nthiery/Media sera le média non sûr par dessus lequel vous allez communiquer (tout le monde peut y lire et écrire librement).

Créer une paire clef publique/clef privée, et mettre la clef publique (c'est-à-dire [n, e]
) dans un fichier Prenom.Nom.clef-publique, par exemple en utilisant votre éditeur de texte préféré.

Pour écrire un message à quelqu'un, écrire le message chiffré dans un fichier Prenom1.Nom1-pour-Prenom2.Nom2-numero
, ou 1 est l'expéditeur, 2 est le destinataire, et numero est le numéro du message. Typiquement: Nicolas.Thiery-pour-Florent.Hivert-4.

Pour visualiser un message, on peut par exemple utiliser:
cat Nicolas.Thiery-pour-Florent.Hivert-4


Le copier-coller est très utile pour toutes ces manoeuvres! De même que l'utilisation de la touche TAB pour la complétion automatique des noms de fichiers.

Évidement, vous êtes plus qu'encouragés à essayer d'intercepter les messages de vos petits camarades :-)

Pour mettre un peu de piment, on va faire un petit championnat:
  1. Chaque message envoyé de manière sûre donne un point à l'expéditeur et au destinataire;
  2. Chaque message intercepté et déchiffré par une tierce personne lui donne trois points;
  3. Celui qui marque le plus grand nombre de points a gagné.
Exercice 6   Dans le répertoire, il y a déjà ma clef publique, un message que j'ai chiffré avec ma clef privée à l'intention de tout le monde, la clef publique de Toto et un message chiffré à l'intention de Toto. Toto a une clef privée inconnue. L'objectif est de déchiffrer les deux messages.

2.4  Applications de RSA


Exercice 7   Décrire comment on peut utiliser RSA pour résoudre les problèmes suivants:
  1. Chiffrement
  2. Signature
  3. Authentification

Exercice 8   À votre avis, quelles sont les difficultés qui peuvent être rencontrées dans la mise en oeuvre de RSA ?

2.5  Préparation à l'oral d'agrégation


Exercice 9   Préparer des illustrations de cours de quelques minutes sur les thèmes suivants:
  1. Cryptosystème par décalage et attaque brutale.
  2. Cryptosystème par substitution et attaque par étude de fréquence de lettres.
  3. Cryptosystème RSA et attaque par factorisation.
  4. Cryptosystème Rabin et attaque par chiffrement de carrés.
  5. Chronométrer à chaque fois le temps passé à la préparation.

Références

[1]
www.wikipedia.org, et en particulier les articles sur Enigma http://en.wikipedia.org/wiki/Enigma_machine
[2]
Modern Computer Algebra, chapitre 12

Valid HTML 4.0! Previous: Tris et ComplexitéTris et Complexité Up: Option Algèbre et Calcul Formel, Préparation à l'Agrégation de Mathématiques d'OrsayOption Algèbre et Calcul Formel, Préparation à l'Agrégation de Mathématiques d'Orsay Next: Le Groupe SymétriqueLe Groupe Symétrique
TP: rudiments de cryptographie / Option Algèbre et Calcul Formel / Nicolas M. Thiéry
Last modified: Jeu 23 Nov 2006 9:24:03