📢 Courbe elliptique P-256 (NIST)
Cette implémentation utilise la courbe elliptique P-256 (aussi appelée secp256r1),
un standard recommandé par le NIST. Contrairement au DH classique, ECDH n'utilise pas directement
les nombres premiers p et g, mais des points sur une courbe elliptique.
ℹ️ Courbe P-256 :
• Équation : y² = x³ - 3x + b (mod p)
• Taille : 256 bits (équivalent à ~3072 bits en RSA)
• Plus rapide et plus compact que le DH classique
• Utilisé dans TLS, Bitcoin, Signal, etc.
ℹ️ Comment fonctionne ECDH (Elliptic Curve Diffie-Hellman) ?
ECDH est la version moderne de Diffie-Hellman basée sur les
courbes elliptiques.
1️⃣
Une courbe elliptique standard est choisie (P-256) - Publique
2️⃣
Alice génère un nombre privé (a) et calcule un point public : A = a·G (où G est le point générateur)
3️⃣
Bob génère un nombre privé (b) et calcule un point public : B = b·G
4️⃣
Alice et Bob échangent leurs points publics (A et B) sur un canal non sécurisé
5️⃣
Alice calcule : S = a·B (multiplication scalaire du point B par a)
6️⃣
Bob calcule : S = b·A (multiplication scalaire du point A par b)
7️⃣
Les deux obtiennent le même point S sur la courbe = a·b·G
🔐 Mathématiques :
- Alice calcule : a·B = a·(b·G) = (a·b)·G
- Bob calcule : b·A = b·(a·G) = (b·a)·G
- Comme a·b = b·a, ils obtiennent le même point S sur la courbe !
🛡️ Sécurité : Un attaquant qui intercepte A et B ne peut pas calculer le secret partagé sans connaître a ou b.
C'est le
problème du logarithme discret sur courbe elliptique (ECDLP), encore plus difficile que le DLP classique.
⚙️ Implémentation : Cette version utilise l'
API Web Crypto native du navigateur avec la courbe
P-256 (secp256r1).
🔗 Comparaison :
➡️ Voir la version DH classique