Exercice 1 – Cryptographie ECC
1 Visualisation d’une courbe elliptique
Manipulation :
Configuration des paramètres : p = 23, a = 1, b = 1
Observation :
On n’obtient pas une courbe lisse et continue comme dans les fonctions réelles, mais un
nuage de points isolés (discrets).
Explication :
En cryptographie, on travaille sur un corps fini Fp . L’équation est :
y 2 ≡ x3 + ax + b (mod p)
Cette équation possède un nombre fini de solutions entières. La courbe est donc un en-
semble fini de points symétriques par rapport à l’axe horizontal (au sens modulaire).
2 Génération de clés ECC
Manipulation :
Utilisation de la courbe secp192r1
Observations :
— Clé privée (d) : un grand entier aléatoire
— Clé publique (Q) : un point (x, y) sur la courbe
Explication :
Q=d×G
où G est le point générateur.
Le calcul de Q à partir de d est facile, mais retrouver d à partir de Q est quasi
impossible (problème du logarithme discret elliptique).
3 Échange de clé (ECDH)
Principe :
K = dAlice × QBob
K = dBob × QAlice
Résultat :
dA (dB G) = dB (dA G)
Les deux parties obtiennent le même point K.
Explication :
Permet d’établir un secret partagé sur un canal non sécurisé sans transmettre la clé finale.
1
4 Signature numérique (ECDSA)
Manipulation :
Signer un message avec la clé privée et vérifier avec la clé publique.
Interprétation :
La signature est liée mathématiquement au message et à la clé privée.
— Si le message change, la vérification échoue
— Si la mauvaise clé publique est utilisée, la vérification échoue
Utilité :
— Garantit l’intégrité du message
— Authentifie l’expéditeur
5 Chiffrement ECC (ECIES)
Observation :
ECC n’est pas utilisé directement pour chiffrer de grandes données.
On utilise ECIES pour chiffrer une clé symétrique (par exemple AES), qui servira
ensuite à chiffrer le message.
6 Comparaison ECC vs RSA
6.1 Pourquoi ECC est plus efficace ?
ECC offre le même niveau de sécurité que RSA avec des clés beaucoup plus petites.
Exemple : une clé ECC de 256 bits est équivalente à une clé RSA de 3072 bits.
Cela réduit la charge de calcul, la consommation d’énergie et l’espace de stockage.
6.2 Pourquoi ECDLP est difficile ?
Le problème du logarithme discret elliptique est difficile car il n’existe pas d’algorithme
sous-exponentiel efficace pour le résoudre.
La seule solution reste la force brute ou des méthodes exponentielles.
6.3 Complexité d’une attaque brute force
√
O( n)
Pour une clé de 256 bits :
2128
6.4 Pourquoi choisir une courbe standardisée ?
Les courbes standardisées (NIST, Brainpool) sont testées pour éviter les faiblesses
structurelles ou les backdoors.
Créer sa propre courbe est risqué si elle n’est pas mathématiquement robuste.
2
7 Exercice 2 – DSA
7.1 1. Génération de clés DSA
Manipulation :
Sélection d’une taille de clé (ex : 1024 bits) dans JCrypTool.
Résultat :
— Clé privée : un nombre entier secret noté x
— Clé publique : un nombre noté y
Explication :
La sécurité repose sur la difficulté de calculer le logarithme discret dans un corps fini. La
clé publique est calculée à partir de la clé privée, mais l’opération inverse est mathémati-
quement irréalisable pour de grandes valeurs.
7.2 2. Signature d’un message
Manipulation :
Entrer un message texte et générer la signature.
Observation :
La signature produite est composée d’un couple de nombres (r, s).
Explication :
Ces deux valeurs sont calculées en utilisant le message haché, la clé privée et un nombre
aléatoire appelé nonce (k).
7.3 3. Vérification de signature
Manipulation :
Utilisation de la clé publique pour valider l’intégrité du message.
Résultat :
Si le message n’a pas été modifié, l’outil affiche « Signature valide ».
Interprétation :
Cela prouve que l’expéditeur possède bien la clé privée correspondant à la clé publique
utilisée et que le contenu n’a pas subi d’altération.
7.4 4. Importance du nonce k
Manipulation :
Signer le même message deux fois et observer la différence.
Observations :
— Cas 1 (k différent) : signatures différentes pour un même message
— Cas 2 (k identique) : la sécurité est compromise
Explication :
Le nonce k doit être unique et imprévisible. S’il est réutilisé ou découvert, un attaquant
peut extraire la clé privée à partir de deux signatures distinctes.
7.5 5. Comparaison DSA vs RSA vs ECC
3
Critère DSA RSA ECC
Usage principal Signature uniquement Chiffrement et signature Chiffrement et signature
Vitesse Rapide pour signer Rapide pour vérifier Très rapide
Taille de clé Grande (ex : 2048 bits) Grande (ex : 2048 bits) Petite (ex : 256 bits)
7.6 Réponses aux questions
a. Pourquoi DSA n’est utilisé que pour la signature ? Contrairement à RSA,
DSA est conçu uniquement pour fournir une preuve d’authenticité et d’intégrité. Il ne
permet pas le chiffrement direct des données.
b. Pourquoi le nonce k doit être secret ? Le paramètre k est critique dans l’équation
de signature. S’il est connu, un attaquant peut calculer la clé privée x par un simple calcul
algébrique.
c. Que se passe-t-il si k = 0 ? Si k = 0, l’inverse modulaire k −1 mod q n’existe pas.
De plus, la valeur r devient nulle, ce qui invalide la signature.
d. Pourquoi utilise-t-on une fonction de hachage ? On hache le message pour
deux raisons :
— Performance : signer une empreinte est plus rapide que signer un message entier
— Sécurité : toute modification du message change le hash et invalide la signature
8 Exercice 3 – ElGamal
8.1 1. Génération de clés
Manipulation :
Accès via Procédures individuelles → Asymmetric Encryption → ElGamal. Confi-
guration d’une taille de clé de 512 ou 1024 bits.
Résultat :
— Clé privée : un nombre entier x
— Clé publique : un triplet (p, g, y)
Explication :
Comme pour DSA et ECC, la sécurité d’ElGamal repose sur la difficulté du pro-
blème du logarithme discret dans un groupe cyclique.
8.2 2. Chiffrement et Déchiffrement
Manipulation :
Saisie du message “Bonjour [Ton Nom]”, utilisation de la clé publique pour chiffrer,
puis de la clé privée pour déchiffrer.
Observation :
Le chiffrement génère deux valeurs distinctes, notées (c1 , c2 ).
Interprétation :
Le message original est retrouvé intact après déchiffrement, validant le bon fonc-
tionnement de la paire de clés.
4
8.3 3. Non-déterminisme (caractère probabiliste)
Manipulation :
Chiffrer le même message deux fois avec la même clé publique.
Résultat :
Les cryptogrammes obtenus (c1 , c2 ) sont différents à chaque tentative.
Explication :
ElGamal est un algorithme probabiliste. Il utilise un nombre aléatoire k différent
pour chaque chiffrement. Cela empêche un attaquant de détecter si deux messages
chiffrés sont identiques.
8.4 4. Comparaison ElGamal vs RSA vs ECC
Critère ElGamal RSA ECC
Type Probabiliste Déterministe (par défaut) Probabiliste
Sécurité Logarithme discret Factorisation ECDLP
Taille de clé Grande (ex : 2048 bits) Grande (ex : 2048 bits) Petite (ex : 256 bits)
8.5 Réponses aux questions
a. Pourquoi ElGamal est probabiliste ? Parce que l’algorithme utilise un
paramètre aléatoire k lors du chiffrement. Un même message produit donc un
chiffré différent à chaque exécution.
b. Pourquoi le paramètre k est critique ? Si k est compromis ou réutilisé,
un attaquant peut effectuer des opérations algébriques pour retrouver le message
en clair ou la clé privée.
c. Quelle est la différence avec RSA ? RSA est déterministe sans padding
aléatoire : un même message donne toujours le même chiffré. ElGamal est pro-
babiliste par conception. De plus, le texte chiffré ElGamal est plus long (deux
composantes (c1 , c2 )).
d. Pourquoi le message doit être < p ? Les calculs d’ElGamal se font dans
Z∗p . Si m ≥ p, alors m est réduit modulo p :
m ≡ m mod p
Cela provoque une perte d’information et rend le déchiffrement incorrect.
9 Exercice 4 – Diffie-Hellman
9.1 1. Génération du secret partagé (Simulation)
Manipulation :
Accès via Procédures individuelles → Key Exchange → Diffie-Hellman → Simula-
tion.
Configuration des paramètres p = 23 et g = 5.
Calcul manuel :
5
— Alice (a = 6) :
A = g a mod p = 56 mod 23 = 15625 mod 23 = 8
— Bob (b = 15) :
B = g b mod p = 515 mod 23 = 19
— Secret partagé (K) :
K = B a mod p = 196 mod 23 = 2
K = Ab mod p = 815 mod 23 = 2
Observation :
Les deux parties obtiennent la même valeur K = 2 sans jamais l’avoir transmise
directement.
9.2 2. Test avec de grandes clés
Manipulation :
Utilisation de tailles de clés de 512 ou 1024 bits.
Observation :
Le calcul reste rapide, mais les valeurs de A, B et K deviennent très grandes.
Interprétation :
Plus la taille de p augmente, plus il est difficile de retrouver a ou b (problème du
logarithme discret).
9.3 3. Analyse de sécurité
Question : Pourquoi un attaquant ne peut-il pas retrouver le secret ?
Réponse :
Même si un attaquant intercepte g, p, A et B, il ne peut pas retrouver a ou b car il
n’existe pas de méthode efficace pour résoudre le logarithme discret dans un grand
corps fini.
9.4 4. Comparaison DH vs RSA vs ECC
Critère DH RSA ECC
Type Échange de clés Chiffrement/Signature Courbe elliptique
Sécurité Logarithme discret Factorisation ECDLP
Authentification Non (par défaut) Oui Oui
9.5 Réponses aux questions
a. Pourquoi DH ne chiffre pas directement ? Diffie-Hellman est un protocole
d’échange de clé. Il permet de générer un secret commun qui sera ensuite utilisé
avec un algorithme symétrique (par exemple AES) pour chiffrer les données.
b. Pourquoi utiliser TLS avec DH ? DH seul est vulnérable à l’attaque de
l’homme du milieu (MITM). TLS utilise des certificats pour authentifier les parti-
cipants avant l’échange.
6
c. Quelle est la différence entre DH et ECDH ? DH utilise l’arithmétique
modulaire classique. ECDH utilise les courbes elliptiques et offre la même sécurité
avec des clés plus petites.
d. Pourquoi choisir un grand p ? La sécurité dépend de la taille de p. Si p
est trop petit, un attaquant peut retrouver les clés par force brute ou avec des
algorithmes spécialisés.