diff --git a/td-jdr.md b/td-jdr.md index 6fd1329..55548e1 100644 --- a/td-jdr.md +++ b/td-jdr.md @@ -1,4 +1,4 @@ -TD2 : Usage de la cryptographie asymétrique +TD : Usage de la cryptographie asymétrique ============================================= _Pas de compte-rendu pour ce TD_ @@ -9,7 +9,7 @@ Ce TD présente et applique les notions de cryptographie asymétrique : * Distribution de clés * Signature et chiffrement RSA -Le cryptosystème que nous allons utiliser ici est basé sur la fonction RSA. Le cryptosystème proposé est simple et présente donc certaines vulnérabilités mais illustre le fonctionnement. +Le cryptosystème que nous allons utiliser ici est basé sur la fonction RSA. Le cryptosystème proposé est simple et présente donc certaines vulnérabilités mais illustre le fonctionnement. Vous pouvez réutiliser le code développé au S1 pour les fonctions RSA. Génération de clés RSA @@ -20,10 +20,7 @@ Nous allons commencer par générer une paire de clés RSA pour chacun. Voici l' * Choisir deux nombres premiers _p_ et _q_ ([exemples de premiers](https://fr.wikipedia.org/wiki/Liste_de_nombres_premiers)) * Calculer _n = p * q_ (__Attention, pour que la suite du TD fonctionne, n doit être supérieur à 1000 !__) * Calculer _φ(n) = (p-1)(q-1)_ -* Choisir _e_ tel que : - * _1 < e < φ(n)_ - * _pgcd(e, φ(n)) = 1_ - * Par exemple, un premier qui ne divise pas φ(n) +* Choisir _e_ tel que _1 < e < φ(n)_ et _pgcd(e, φ(n)) = 1_ (par exemple, un premier qui ne divise pas φ(n) conviendra pour _e_) * Déterminer l'inverse modulaire _d ≡ e-1 mod φ(n)_. Vous pouvez utiliser [DCODE](https://www.dcode.fr/inverse-modulaire) pour cela (attention, pas le `pow` Python pour ça, sauf si vous êtes *certain* d'avoir une version de python supérieure ou égale à 3.8 !) * La clé publique est _(e,n)_ et la clé privée est _(d,n)_