CHAPITRE 03 · COURS 2 · TD5

Cryptographie Moderne
Chiffrement Asymétrique

Basé sur les cours de Dr. F. Khalifa · USTOMB · L3 SI & ISIL

1. Introduction — Pourquoi le Chiffrement Asymétrique ?

⚠️ Le problème fondamental du chiffrement symétrique

En chiffrement symétrique, Alice et Bob doivent se mettre d'accord sur une clé secrète avant de communiquer. Mais comment échanger cette clé de façon sécurisée si leur canal de communication n'est pas encore sécurisé ? C'est le problème de la distribution des clés.

Si Alice envoie la clé à Bob via Internet et qu'un attaquant (Eve) l'intercepte, toutes les communications futures sont compromises.

// Chiffrement Asymétrique — Principe des deux clés
  ┌─────────────────────────────────────────────────────────┐
  │                      BOB                                │
  │  Génère une PAIRE de clés :                             │
  │  ┌──────────────────┐    ┌──────────────────┐          │
  │  │  Clé PUBLIQUE Kp │    │  Clé PRIVÉE  Ks  │          │
  │  │  (diffusée à     │    │  (gardée SECRET  │          │
  │  │   tout le monde) │    │   uniquement par │          │
  │  └──────────────────┘    │   Bob)           │          │
  │                           └──────────────────┘          │
  └─────────────────────────────────────────────────────────┘

  ALICE veut envoyer M à Bob :
  ① Alice récupère la clé publique Kp de Bob (publique → pas de risque)
  ② Alice chiffre : C = E(M, Kp)
  ③ Alice envoie C à Bob
  ④ Bob déchiffre : M = D(C, Ks)  ← seul Bob peut faire ça !

  Eve intercepte C mais ne peut pas déchiffrer sans Ks. ✓

  MODE SIGNATURE (inversé) :
  ① Bob signe avec sa clé PRIVÉE  : S = Sign(M, Ks)
  ② Alice vérifie avec la clé PUBLIQUE de Bob : Verify(S, Kp)
  ③ Garantie : seul Bob a pu créer S (non-répudiation).
🔐 Mode Chiffrement

On chiffre avec la clé publique du destinataire, il déchiffre avec sa clé privée.

→ Garantit que seul le destinataire peut lire le message.
→ Alice chiffre avec Kp(Bob), Bob déchiffre avec Ks(Bob).

✍️ Mode Signature

On signe avec sa propre clé privée, tout le monde vérifie avec la clé publique.

→ Garantit l'authenticité et la non-répudiation.
→ Bob signe avec Ks(Bob), Alice vérifie avec Kp(Bob).

💡 Principe mathématique fondamental

Le chiffrement asymétrique repose sur des problèmes mathématiques faciles dans un sens et computationnellement infaisables dans l'autre :

RSA : Factoriser un grand nombre en ses facteurs premiers (ex: n = p × q) est très difficile si p et q sont grands.
Diffie-Hellman / El Gamal : Calcul du logarithme discret — facile de calculer g^a mod n, mais très difficile de retrouver a connaissant g^a mod n.

2. L'Algorithme RSA — Principe

📖 Contexte historique

RSA a été inventé en 1977 par Ron Rivest, Adi Shamir et Leonard Adleman au MIT. C'est le premier algorithme de chiffrement à clé publique pratique. Sa sécurité repose sur la difficulté de factoriser de grands entiers. RSA est toujours utilisé aujourd'hui (TLS, SSH, signatures numériques).

🔑
Clé Publique
(e, n) — diffusée publiquement. Utilisée pour chiffrer les messages envoyés à Bob, ou pour vérifier les signatures de Bob.
🔒
Clé Privée
(d, n) — gardée secrète par Bob. Utilisée pour déchiffrer les messages reçus, ou pour signer des documents.
🧮
Modulus n
n = p × q — produit de deux grands nombres premiers. C'est la base de la sécurité : retrouver p et q à partir de n est très difficile si p et q sont grands.
Chiffrement RSA : C = Me mod n
Déchiffrement RSA : M = Cd mod n
💡 Pourquoi M = C^d mod n fonctionne-t-il ?

C'est grâce au théorème d'Euler : si pgcd(M, n) = 1, alors M^φ(n) ≡ 1 (mod n).

Puisque e·d ≡ 1 mod φ(n), on a e·d = k·φ(n) + 1 pour un certain entier k.
Donc C^d = (M^e)^d = M^(e·d) = M^(k·φ(n)+1) = (M^φ(n))^k · M ≡ 1^k · M = M (mod n) ✓

3. Génération des Clés RSA — Étapes Détaillées

La génération de clés RSA suit un algorithme précis en 4 étapes. Chaque étape est cruciale et peut faire l'objet d'une question d'examen.

// Algorithme de génération des clés RSA
ÉTAPE 1 — Choisir deux grands nombres premiers p et q
  → p et q doivent être distincts et suffisamment grands (≥ 512 bits en pratique)
  → Calculer n = p × q  (le modulus, public)

ÉTAPE 2 — Calculer φ(n) (indicatrice d'Euler)
  → φ(n) = (p − 1) × (q − 1)  [formule fondamentale pour n=pq]
  → φ(n) est le nombre d'entiers entre 1 et n qui sont premiers avec n

ÉTAPE 3 — Choisir e (exposant de chiffrement)
  → e doit vérifier : 1 < e < φ(n) et pgcd(e, φ(n)) = 1
  → e doit être premier avec φ(n) (pour qu'un inverse modulaire existe)
  → En pratique, e = 65537 = 2^16 + 1 (valeur standard)

ÉTAPE 4 — Calculer d (exposant de déchiffrement)
  → d est l'inverse modulaire de e modulo φ(n)
  → d tel que : e × d ≡ 1 (mod φ(n))
  → Autrement dit, il existe un entier k : d = (1 + k×φ(n)) / e

RÉSULTAT :
  Clé publique  KA = (e, n)   ← diffusée à tous
  Clé privée    KB = (d, n)   ← gardée secrète
Exemple numérique complet du cours (p=7, q=19)
Application pas à pas
ÉTAPE 1 : p = 7, q = 19 n = p × q = 7 × 19 = 133 ÉTAPE 2 : φ(n) = (p-1)(q-1) = 6 × 18 = 108 ÉTAPE 3 : Choisir e tel que pgcd(e, 108) = 1 → Test e = 5 : pgcd(5, 108) = 1 ✓ → e = 5 [5 est premier avec 108 : 108 = 4×27, facteurs premiers : 2, 2, 3 → 5 n'est pas parmi eux] ÉTAPE 4 : Trouver d tel que 5 × d ≡ 1 (mod 108) → d = (1 + k × 108) / 5 pour un entier k → k=1 : (1+108)/5 = 109/5 = 21.8 (non entier) → k=2 : (1+216)/5 = 217/5 = 43.4 (non entier) → k=3 : (1+324)/5 = 325/5 = 65 ✓ → d = 65 Vérification : 5 × 65 = 325 = 3×108 + 1 ≡ 1 (mod 108) ✓ Clé publique : (e=5, n=133) Clé privée : (d=65, n=133)
Chiffrement et déchiffrement de M = 6
Application RSA avec les clés générées
CHIFFREMENT : C = M^e mod n = 6^5 mod 133 6^1 = 6 6^2 = 36 6^4 = 36^2 = 1296 mod 133 = 1296 - 9×133 = 1296 - 1197 = 99 6^5 = 6^4 × 6^1 = 99 × 6 = 594 mod 133 = 594 - 4×133 = 594 - 532 = 62 → C = 62 DÉCHIFFREMENT : M = C^d mod n = 62^65 mod 133 (calcul via exponentiation rapide / square-and-multiply) → M = 6 ✓ (on retrouve bien le message original)
🧮 Astuce d'examen — Exponentiation rapide (Square-and-Multiply)

Pour calculer a^n mod m avec un grand n, on décompose n en binaire :

Ex : 65 en binaire = 1000001₂
a^65 = a^(2^6 + 2^0) = a^64 × a^1

On calcule en répétant : au carré → mod m → au carré → mod m...
Cette technique réduit considérablement le nombre d'opérations.

Sur l'examen : Si les exposants sont petits, calcul direct. Si grands, on peut appliquer les propriétés des congruences ou utiliser les valeurs intermédiaires.

4. Conditions de Validité et Propriétés RSA

🔑 Conditions IMPÉRATIVES pour que RSA fonctionne

① p et q doivent être premiers — sinon φ(n) = (p-1)(q-1) n'est plus valide.
② e doit véifier pgcd(e, φ(n)) = 1 — pour que l'inverse d existe.
③ M doit vérifier M < n — le message doit être plus petit que le modulus n.
④ pgcd(M, n) = 1 — le message doit être premier avec n (toujours vrai si M < p,q).
⑤ Le couple (e,d) doit vérifier e×d ≡ 1 (mod φ(n)) — condition de déchiffrement correct.

Comment vérifier si un couple (e, d) est valide ?

Un couple (e, d) est valide pour RSA si et seulement si : e × d ≡ 1 (mod φ(n)). On vérifie en calculant (e × d) mod φ(n) — le résultat doit être 1.

📌 Point d'examen : Identification des couples valides (TD5)

Pour n = 159 = 3 × 53 → φ(n) = (3-1)(53-1) = 2 × 52 = 104

Un couple (kc, kd) est valide si : kc × kd ≡ 1 (mod 104)

On vérifie : (kc × kd) mod 104 = 1 ?
→ Si oui : couple valide ✓
→ Si non : couple invalide ✗

Autre vérification : kc doit vérifier pgcd(kc, 104) = 1 (sinon pas d'inverse → invalide).

Structure du chiffrement asymétrique en pratique
🧑 ALICE (Émetteur)
Possède : Kp(Bob) [publique]
Chiffrement :
C = M^e mod n
→ Envoie C à Bob
C (chiffré)
EVE voit C
mais ne peut
pas déchiffrer
🧑 BOB (Destinataire)
Kp(Bob) = (e, n) [publique]
Ks(Bob) = (d, n) [privée]
Déchiffrement :
M = C^d mod n
→ Retrouve M ✓

5. Protocole Diffie-Hellman

📖 Objectif de Diffie-Hellman

Diffie-Hellman n'est pas un algorithme de chiffrement à proprement parler — c'est un protocole d'échange de clés. Il permet à Alice et Bob de générer un secret commun via un canal non sécurisé, sans jamais s'être rencontrés auparavant. Ce secret commun peut ensuite être utilisé comme clé pour un chiffrement symétrique.

Paramètres publics partagés

Alice et Bob se mettent d'accord publiquement sur :

  • n (ou p dans certaines notations) : un grand nombre premier
  • g : un entier (générateur, base) avec 1 < g < n
// Protocole Diffie-Hellman — Vue d'ensemble
                    PARAMÈTRES PUBLICS : (n, g)
                    (connus d'Alice, Bob et Eve)

     ALICE                                        BOB
       │                                           │
  Choisit a secret                           Choisit b secret
  (1 ≤ a ≤ n-1)                             (1 ≤ b ≤ n-1)
       │                                           │
  Calcule A = g^a mod n                     Calcule B = g^b mod n
       │                                           │
       │──────────────── A ──────────────────────►│
       │◄─────────────── B ──────────────────────  │
       │                                           │
  Calcule K = B^a mod n                    Calcule K = A^b mod n
       │                                           │
  K = (g^b)^a mod n = g^(ab) mod n         K = (g^a)^b mod n = g^(ab) mod n
       │                                           │
       └───────────── MÊME CLÉ K ! ───────────────┘

  EVE voit : n, g, A = g^a mod n, B = g^b mod n
  Pour trouver K, Eve doit résoudre le LOGARITHME DISCRET
  (trouver a tel que g^a ≡ A mod n) → computationnellement infaisable !
Exemple numérique du cours (n=23, g=3)
Application numérique complète
Paramètres publics : n = 23, g = 3 ALICE choisit a = 6 (secret) A = g^a mod n = 3^6 mod 23 3^1=3, 3^2=9, 3^3=27 mod 23=4, 3^4=12, 3^5=36 mod 23=13, 3^6=39 mod 23=16 → A = 16 (Alice envoie 16 à Bob) BOB choisit b = 15 (secret) B = g^b mod n = 3^15 mod 23 → B = 12 (Bob envoie 12 à Alice) [3^15 = 3^8 × 3^4 × 3^2 × 3^1 ; 3^8=6561 mod23=6 ; 6×12×9×3 mod23=12] ALICE calcule sa clé : K = B^a mod n = 12^6 mod 23 = 9 BOB calcule sa clé : K = A^b mod n = 16^15 mod 23 = 9 Clé commune K = 9 ✓ (Alice et Bob ont le même secret !) Eve voit : 23, 3, 16, 12 mais ne peut pas retrouver K sans a ou b.
⚠️ Faiblesse de Diffie-Hellman : Attaque Man-in-the-Middle

DH est vulnérable à une attaque de l'homme du milieu : Eve peut intercepter A et B, et établir un secret différent avec Alice et un autre avec Bob. Ni Alice ni Bob ne savent qu'Eve est au milieu.

Solution : Combiner DH avec une authentification (certificats numériques, RSA pour signer A et B) → Protocole Authenticated Diffie-Hellman.

6. Chiffrement El Gamal (1985)

📖 Principe

El Gamal, inventé par Taher ElGamal en 1985, est un algorithme de chiffrement asymétrique basé sur le problème du logarithme discret (comme Diffie-Hellman). Contrairement à RSA, El Gamal produit un chiffré deux fois plus long que le message original.

Génération des clés El Gamal
  • Choisir p premier, et deux entiers s et a tels que : 2 ≤ s ≤ p-2 et 0 ≤ a ≤ p-1
  • Calculer P = a^s mod p
  • Clé publique = (p, a, P)
  • Clé privée = s (l'entier secret)
Chiffrement El Gamal

Alice veut envoyer M à Bob (M < p). Elle choisit un entier aléatoire k et calcule :

C₁ = a^k mod p   |   C₂ = M · P^k mod p

Le message chiffré est la paire (C₁, C₂).

Déchiffrement El Gamal

Bob reçoit (C₁, C₂). Il calcule :

R₁ = C₁^s mod p = a^(sk) mod p = P^k mod p
M = C₂ · R₁⁻¹ mod p = M · P^k · P^(-k) mod p = M
Exemple numérique du cours
p=2579, a=2, s=765, P=a^s mod p = 2^765 mod 2579 = 949
Clé publique : (p=2579, a=2, P=949) Clé privée : s = 765 Alice veut envoyer M = 1299 à Bob. Elle choisit k = 853 aléatoirement. Chiffrement : C₁ = a^k mod p = 2^853 mod 2579 = 435 C₂ = M × P^k mod p = 1299 × 949^853 mod 2579 = 2396 Le message chiffré envoyé à Bob : (C₁=435, C₂=2396) Déchiffrement (par Bob) : R₁ = C₁^s mod p = 435^765 mod 2579 = P^k mod p M = C₂ × R₁⁻¹ mod p = 2396 × (R₁)⁻¹ mod 2579 = 1299
🔑 Différence clé RSA vs El Gamal

RSA : Sécurité basée sur la difficulté de factoriser n. Chiffré de même taille que M.
El Gamal : Sécurité basée sur la difficulté du logarithme discret. Chiffré de taille double (paire C₁, C₂).
Diffie-Hellman : Échange de clés uniquement (pas de chiffrement direct), basé sur le logarithme discret.

7. Comparatif : Symétrique vs Asymétrique

CritèreChiffrement Symétrique (AES)Chiffrement Asymétrique (RSA)
Nombre de clés1 clé partagée2 clés : publique + privée
Distribution des clés⚠️ Problème difficile✅ La clé publique peut être partagée librement
Vitesse⚡ Très rapide (100-1000x)🐢 Lent (opérations modulo sur grands nombres)
Taille de clé typique128, 256 bits2048, 4096 bits
Non-répudiation❌ Non (les deux parties ont la même clé)✅ Oui (seul le propriétaire a la clé privée)
Usage typiqueChiffrement de données volumineusesÉchange de clés, signatures, certificats
Sécurité repose surPropriétés des algorithmes (confusion/diffusion)Problèmes mathématiques difficiles (factorisation, log discret)
AlgorithmesDES, 3DES, AES, RC4RSA, El Gamal, ECC, Diffie-Hellman
💡 Chiffrement Hybride — La solution optimale

En pratique, on combine les deux approches pour bénéficier des avantages de chacune :

① Alice génère une clé symétrique aléatoire K (clé de session)
② Alice chiffre K avec la clé publique RSA de Bob → envoie à Bob
③ Bob déchiffre K avec sa clé privée RSA → obtient la clé de session
④ Alice et Bob chiffrent leurs messages avec K (AES) → rapide et sécurisé

C'est exactement ce que font TLS/HTTPS, SSH, etc.

Indicatrice d'Euler — Rappel pour l'examen
📐 Formules de φ(n) à connaître

Si n = p (premier) : φ(n) = p - 1
Si n = p^k : φ(n) = p^(k-1) × (p-1)
Si n = p × q (p,q premiers distincts) : φ(n) = (p-1)(q-1) ← cas RSA
Propriété multiplicative : Si pgcd(m,n)=1 alors φ(mn) = φ(m)φ(n)

Exemple : n = 159 = 3 × 53
→ φ(159) = (3-1)(53-1) = 2 × 52 = 104

CALCULATEUR RSA — Génération de Clés & Chiffrement

Entrez deux nombres premiers p et q pour générer vos clés RSA, puis chiffrez/déchiffrez un message. Attention : p et q doivent être premiers et distincts.

Nombre premier p
Nombre premier q
Exposant e (doit être premier avec φ(n))
Message M à chiffrer (M < n)
Chiffré C à déchiffrer
Résultats & Calculs détaillés
← Cliquez sur GÉNÉRER CLÉS pour commencer
// CORRECTION TD5
Travaux Dirigés 5 · Dr F. Khalifa · 2025-2026
TD5 — Chiffrement Asymétrique (RSA, Diffie-Hellman)
Exercice 1 — RSA avec n = 159
Soit le chiffrement RSA basé sur la quantité publique n = 159.
  • Calculer le nombre d'Euler φ(n) et donner les facteurs premiers de n.
  • Dans la liste des couples de clés (kc, kd) ci-dessous, trouver les couples ne vérifiant PAS le principe du RSA en justifiant : (7, 15), (9, 81), (5, 125), (33, 43), (3, 139), (23, 95)
✅ Correction complète

Partie 1 : Factorisation de n = 159 et calcul de φ(n)

Factorisation de 159
159 ÷ 2 = 79.5 → non entier (159 impair) 159 ÷ 3 = 53 → entier ! → 159 = 3 × 53 Vérification : 3 est premier ✓ | 53 est premier ✓ (53/2=26.5, 53/3=17.7, 53/5=10.6, 53/7=7.6 → aucune division entière) n = 159 = 3 × 53 → p = 3, q = 53 φ(n) = (p-1)(q-1) = (3-1)(53-1) = 2 × 52 = 104

Partie 2 : Vérification des couples (kc, kd)

Un couple est valide RSA si et seulement si : kc × kd ≡ 1 (mod 104), c'est-à-dire (kc × kd) mod 104 = 1.
De plus, kc doit vérifier pgcd(kc, 104) = 1.

Test de chaque couple
Couple (7, 15) : pgcd(7, 104) = 1 ✓ (7 est premier, ne divise pas 104 = 8×13) 7 × 15 = 105 = 1 × 104 + 1 → 105 mod 104 = 1 ✓ → COUPLE VALIDE ✓ Couple (9, 81) : pgcd(9, 104) = 1 ✓ (104 = 8×13, 9 = 3^2 → pas de facteur commun) 9 × 81 = 729 → 729 mod 104 = 729 - 7×104 = 729 - 728 = 1 ✓ → COUPLE VALIDE ✓ Couple (5, 125) : pgcd(5, 104) = 1 ✓ 5 × 125 = 625 → 625 mod 104 = 625 - 6×104 = 625 - 624 = 1 ✓ → COUPLE VALIDE ✓ Couple (33, 43) : pgcd(33, 104) = ? → 33 = 3×11, 104 = 8×13 → pgcd = 1 ✓ 33 × 43 = 1419 → 1419 mod 104 = 1419 - 13×104 = 1419 - 1352 = 67 ≠ 1 ✗ → COUPLE INVALIDE ✗ — 33×43 mod 104 = 67 ≠ 1 Couple (3, 139) : pgcd(3, 104) = 1 ✓ 3 × 139 = 417 → 417 mod 104 = 417 - 4×104 = 417 - 416 = 1 ✓ → COUPLE VALIDE ✓ Couple (23, 95) : pgcd(23, 104) = 1 ✓ (23 est premier) 23 × 95 = 2185 → 2185 mod 104 = 2185 - 21×104 = 2185 - 2184 = 1 ✓ → COUPLE VALIDE ✓ BILAN : Seul le couple (33, 43) est INVALIDE.

Conclusion : Le couple (33, 43) ne vérifie pas le principe RSA car 33 × 43 mod 104 = 67 ≠ 1. Pour que le déchiffrement fonctionne, il faut absolument que kc × kd ≡ 1 (mod φ(n)).

Exercice 2 — RSA avec clé publique (11, 319)
On considère la clé publique RSA (e=11, n=319).
  • Quel est le chiffrement avec cette clé du message m = 100 ?
  • Calculer la clé privée d correspondant à e = 11
  • Déchiffrer le message c = 133
  • Le message codé 625 peut-il résulter d'un codage avec la clé publique ? Même question avec la clé privée.
✅ Correction complète
Étape 0 : Factorisation de n = 319 et calcul de φ(n)
319 ÷ 11 = 29 → 319 = 11 × 29 ✓ Vérification : 11 est premier ✓ | 29 est premier ✓ p = 11, q = 29, n = 319 φ(n) = (11-1)(29-1) = 10 × 28 = 280 Vérification de e : pgcd(11, 280) = 1 ✓ (11 est premier, ne divise pas 280=8×5×7)
Question 1 : Chiffrement de m = 100 avec clé publique (e=11, n=319)
C = M^e mod n = 100^11 mod 319 Utilisation de l'exponentiation rapide : 100^1 = 100 100^2 = 10000 mod 319 = 10000 - 31×319 = 10000 - 9889 = 111 100^4 = 111^2 = 12321 mod 319 = 12321 - 38×319 = 12321 - 12122 = 199 100^8 = 199^2 = 39601 mod 319 = 39601 - 124×319 = 39601 - 39556 = 45 100^11 = 100^8 × 100^2 × 100^1 = 45 × 111 × 100 mod 319 = 45 × 111 mod 319 = 4995 mod 319 = 4995 - 15×319 = 4995 - 4785 = 210 → 210 × 100 mod 319 = 21000 mod 319 = 21000 - 65×319 = 21000 - 20735 = 265 C = 265
Question 2 : Calcul de la clé privée d
On cherche d tel que : e × d ≡ 1 (mod φ(n)) → 11 × d ≡ 1 (mod 280) Méthode : d = (1 + k × 280) / 11 pour k entier k=1 : (1+280)/11 = 281/11 = 25.5 (non entier) k=2 : (1+560)/11 = 561/11 = 51 ✓ Vérification : 11 × 51 = 561 = 2 × 280 + 1 ≡ 1 (mod 280) ✓ Clé privée d = 51
Question 3 : Déchiffrement de c = 133 avec clé privée (d=51, n=319)
M = C^d mod n = 133^51 mod 319 Exponentiation rapide (51 = 110011₂ = 32+16+2+1) : 133^1 = 133 133^2 = 17689 mod 319 = 17689 - 55×319 = 17689 - 17545 = 144 133^4 = 144^2 = 20736 mod 319 = 20736 - 65×319 = 20736 - 20735 = 1 133^8 = 1^2 = 1 133^16 = 1 133^32 = 1 133^51 = 133^32 × 133^16 × 133^2 × 133^1 = 1 × 1 × 144 × 133 mod 319 = 144 × 133 mod 319 = 19152 mod 319 = 19152 - 60×319 = 19152 - 19140 = 12 M = 12 (Note : remarquez que 133^4 ≡ 1 mod 319 → ordre de 133 divise 4)
Question 4 : Le chiffré 625 est-il valide ?
Condition : un texte chiffré C doit vérifier C < n = 319. 625 > 319 → IMPOSSIBLE ! Le message 625 ne peut PAS résulter d'un codage RSA avec n=319, que ce soit avec la clé publique OU la clé privée. En effet, C = M^e mod n donne toujours un résultat dans [0, n-1]. Puisque 625 ≥ 319, aucun résultat de chiffrement RSA avec n=319 ne peut valoir 625.
Exercice 3 — Diffie-Hellman avec p=233 et g=45
Supposons qu'Alice et Bob partagent p = 233 et g = 45. Si Alice choisit a = 11 et Bob b = 20, quelle est leur clé secrète commune K ?
✅ Correction complète — Protocole Diffie-Hellman
Paramètres
Paramètres publics : p = 233 (premier), g = 45 Alice choisit (secret) : a = 11 Bob choisit (secret) : b = 20
Étape 1 : Alice calcule A = g^a mod p
A = 45^11 mod 233 Calcul par exponentiation rapide (11 = 1011₂) : 45^1 = 45 45^2 = 2025 mod 233 = 2025 - 8×233 = 2025 - 1864 = 161 45^4 = 161^2 = 25921 mod 233 = 25921 - 111×233 = 25921 - 25863 = 58 45^8 = 58^2 = 3364 mod 233 = 3364 - 14×233 = 3364 - 3262 = 102 45^11 = 45^8 × 45^2 × 45^1 = 102 × 161 × 45 mod 233 102 × 161 mod 233 = 16422 mod 233 = 16422 - 70×233 = 16422 - 16310 = 112 112 × 45 mod 233 = 5040 mod 233 = 5040 - 21×233 = 5040 - 4893 = 147 A = 147 (Alice envoie 147 à Bob publiquement)
Étape 2 : Bob calcule B = g^b mod p
B = 45^20 mod 233 45^1 = 45 45^2 = 161 (calculé ci-dessus) 45^4 = 58 (calculé ci-dessus) 45^8 = 102 (calculé ci-dessus) 45^16 = 102^2 = 10404 mod 233 = 10404 - 44×233 = 10404 - 10252 = 152 45^20 = 45^16 × 45^4 = 152 × 58 mod 233 = 8816 mod 233 = 8816 - 37×233 = 8816 - 8621 = 195 B = 195 (Bob envoie 195 à Alice publiquement)
Étape 3 : Calcul de la clé commune K
Alice calcule : K = B^a mod p = 195^11 mod 233 195^2 mod 233 = 38025 mod 233 = 38025 - 163×233 = 38025 - 37979 = 46 195^4 = 46^2 = 2116 mod 233 = 2116 - 9×233 = 2116 - 2097 = 19 195^8 = 19^2 = 361 mod 233 = 128 195^11 = 195^8 × 195^2 × 195^1 = 128 × 46 × 195 mod 233 = 128×46 mod 233 = 5888 mod 233 = 5888 - 25×233 = 5888 - 5825 = 63 = 63 × 195 mod 233 = 12285 mod 233 = 12285 - 52×233 = 12285 - 12116 = 169 Bob calcule : K = A^b mod p = 147^20 mod 233 147^2 mod 233 = 21609 mod 233 = 21609 - 92×233 = 21609 - 21436 = 173 147^4 = 173^2 = 29929 mod 233 = 29929 - 128×233 = 29929 - 29824 = 105 147^8 = 105^2 = 11025 mod 233 = 11025 - 47×233 = 11025 - 10951 = 74 147^16 = 74^2 = 5476 mod 233 = 5476 - 23×233 = 5476 - 5359 = 117 147^20 = 147^16 × 147^4 = 117 × 105 mod 233 = 12285 mod 233 = 169 Clé commune K = 169 ✓ (Alice et Bob obtiennent bien le même secret !) Eve peut voir : p=233, g=45, A=147, B=195 Mais elle ne peut pas retrouver a=11 ou b=20 (logarithme discret difficile).
// ÉVALUATION — 15 QCM

QCM — Chapitre 3 : Chiffrement Asymétrique

15 questions techniques — Correction immédiate avec explication détaillée.

Score : 0 / 15