2 Propriétés
4 Usage
5 Conclusion
ECC génère des clés grâce aux propriétés de l’équation de la courbe elliptique au lieu
de la méthode de génération traditionnelle en tant que produit de très
grands nombres premiers .
Courbe elliptique ? C’est quoi ?
Une courbe elliptique est un objet très simple mais qui a des
propriétés tout à fait surprenantes.
𝟐 𝟑 𝟐
𝑬∶ 𝒚 + 𝒂𝟏 𝒙𝒚 + 𝒂𝟑 𝒚 = 𝒙 + 𝒂𝟐 𝒙 + 𝒂𝟒 𝒙 + 𝒂𝟔
Ce corps peut être soit premier, soit binaire, et le choix de corps n’a pas
une influence importante sur la performance du crypto-système.
Courbe elliptique ?! C’est quoi ?!
L’équation Weierstrass d’une courbe elliptique peut être simplifiée, si
la courbe est définie sur un corps premier 𝐹𝑝 dont la caractéristique
est différente de 2 et de 3.
𝒚𝟐 = 𝒙 𝟑 + 𝒂𝒙 + 𝒃
Où : 𝒂𝟏 = 𝟎, 𝒂𝟐 = 𝟎 𝒆𝒕 𝒂𝟑 = 𝟎
𝒂𝟒 = 𝒂 ∈ 𝑭 𝒑
𝒂𝟔 = 𝒃 ∈ 𝑭 𝒑
∆ = −𝟏𝟔 𝟒𝒂𝟑 + 𝟐𝟕𝒃𝟐 𝒆𝒕 ∆ ≠ 𝟎
Courbe elliptique ? A quoi ressemble?
Contrairement à ce que l'on pourrait croire, une courbe elliptique n'est pas une ellipse.
Historiquement, le terme "courbe elliptique" vient en réalité de l'association de ces courbes
avec les intégrales elliptiques, ces dernières servant à calculer la longueur des arcs d'une
ellipse.
Pour son utilisation en cryptographie, une courbe elliptique est définie sur un corps fini K,
c'est-à-dire sur un ensemble fini d'éléments avec lesquels on est capable de faire des
additions, soustractions, multiplications et divisions. Par exemple, le corps fini K le plus
connu est l'ensemble {0,1} des booléens (dont les calculs sont faits sur un seul bit
d'information).
L'équation la plus simplifiée d'une courbe elliptique est de la forme
o
Courbe elliptique ?!
Sur C :
Sur Z/pZ :
Propriétés
Propriétés de courbe elliptique
Comment fait-on des calculs sur une courbe elliptique?
On peut effectuer deux opérations mathématiques bien précises sur les courbes elliptiques :
L'addition de points :
quand on a deux points P et R sur une courbe elliptique EC, alors on peut calculer leur addition Q = P + R,
et le résultat Q appartient aussi à EC.
La multiplication de points :
quand on a un point P sur une courbe elliptique EC, alors on peut additionner k fois ce même point (p.ex.
si k = 2, alors on peut calculer P + P), ce qui résulte en la multiplication de points Q = k*P (p.ex. si k = 2,
alors Q = 2*P = P + P), et le résultat Q appartient aussi à EC.
Finalement, la multiplication de points n'est qu'une simple série d'additions de points. Par exemple :
Q = 3*P = P + P + P = (P + P) + P.
Si on considère que T = P + P, alors on peut remplacer P + P par T dans l'équation précédente, ce qui
revient à écrire que Q = T + P.
Propriétés de courbe elliptique
g = nb aléatoire
Ax= nb aléatoire (privé) Bx = nb aléatoire (privé)
inférieur à p
Ay = g Ax mod(p) By =g Bx mod(p)
Ay Ay
By By
s = By Ax mod(p) s = Ay Bx mod(p)
Utilisation en cryptographie_ Key Exchange
E = elliptic curve
Utilisation en cryptographie_ Key Exchange
EC-DH
2 3
𝐸: 𝑦 = 𝑥 + 2𝑥 + 2 𝑚𝑜𝑑 17
𝐺 = (5, 1)
Utilisation en cryptographie_ Key Exychange
EC-DH_example
Compute 2𝐺 = 𝐺 + 𝐺
2 3 52 +2
3 𝑥𝐺 +𝑎 −1
𝑠= ===>𝑠 ≡ ≡ 77. 2 ≡ 9 . 9 ≡ 13 mod(17)
2 𝑦𝐺 2 1
2 2
𝑥2𝐺 = 𝑠 − 2𝑥𝐺 ===>𝑥2𝐺 ≡ 13 − 2 5 ≡ 16 − 10 ≡ 6 𝑚𝑜𝑑(17)
𝑦2𝐺 = 𝑠 𝑥𝐺 − 𝑥2𝐺 − 𝑦𝐺
===>𝑦2𝐺 ≡ 13 5 − 6 − 1 ≡ −13 − 1 ≡ −14 ≡ 3 𝑚𝑜𝑑(17)
2𝐺 = (6,3)
Utilisation en cryptographie_ Key Exchange
EC-DH_example (8/9)
2𝐺 = (6,3) 10𝐺 = (7,11) 18𝐺 = (5,16)
3𝐺 = (10,6) 11𝐺 = (13,10) 19𝐺 = ∞
4𝐺 = (3,1) 12𝐺 = (0,11)
5𝐺 = (9,16) 13𝐺 = (16,4)
6𝐺 = (16,13) 𝑛 = 19
14𝐺 = (9,1) ቊ
ℎ=1
7𝐺 = (0,6) 15𝐺 = (3,16)
8𝐺 = (13,7) 16𝐺 = (10,11)
9𝐺 = (7,6) 17𝐺 = (6,14)
Utilisation en cryptographie_ Key Exchange
EC-DH_example
Utilisation en cryptographie_ Key Exchange
cal2 cal2
cal3 = n.s.P
cal4 = (M + n.s.P)-n.s.P
M
Utilisation en cryptographie_ Signature numérique
EC-El-Gamal
M !!
Alice Bob
Ap: clé publique = {E(𝐹𝑝 ),
n= nb entier aléatoire (privé)
P, As.P}
0≤𝑛 ≤𝑝−1 E (a, b, K) = ellipticcurve
R= 𝑛. 𝑃 = (𝑥𝑅 , 𝑦𝑅 ) P = une point aléatoire
𝒓 ≡ 𝑥𝑅 𝑚𝑜𝑑 𝑝 ≠ 0 sur E
𝒆 = ℎ 𝑀 ȁℎ ∶ 𝑓𝑐𝑡 𝑑𝑒 ℎ𝑎𝑐ℎ𝑎𝑔𝑒 As = clé secrète de Alice
−1
𝒔 ≡ 𝑛 𝑒 + 𝑟. 𝐴𝑠 𝑚𝑜𝑑 𝑝 ≠ 0
(R, s) (R, s)
𝐕𝟏 = 𝑠 𝑅
𝑽𝟐 = ℎ 𝑀 . 𝑃 + 𝑟. 𝐴𝑝
𝑉1 ≟ 𝑉2
Utilisation en cryptographie_ Signature numérique
ECDSA_Définition
L’algorithme a été proposé en 1992 par Scott Vanstone, en réponse à un appel d'offre pour les
signatures numériques du NIST (National Institute of Standards and Technology).
Toutes les courbes ne se valent pas, et ces paramètres ne sont pas choisis au hasard. Plusieurs
courbes sont proposées par le Standards for Efficient Cryptography Group (SECG). Le protocole
Bitcoin, par exemple, utilise la courbe poétiquement nommée « secp256k1 » dont les paramètres
sont les suivants :
Utilisation en cryptographie_ Signature numérique
Clé publique, clé privée
Utilisation en cryptographie_ Signature numérique
Signature d’un message
Utilisation en cryptographie_ Signature numérique
Signature d’un message
un point P d’une courbe elliptique E(K) d’ordre n premier où K est un corps fini,
▪ H une fonction de hachage
▪ m le message à signer
La mise en place du schéma EC-DSA nécessite une paire de clés, l’une publique, l’autre
privée. La clé publique est accessible à tous et permet à chacun de vérifier l’intégrité du
message et l’authenticité de l’entité qui l’a envoyé.
Alice dispose maintenant de la paire de clés dont elle a besoin. Pour signer son message
elle procède ainsi :
➢ Elle choisit de manière aléatoire un nombre k entre 1 et n − 1.
➢ Elle calcule :
➢ kP = (x, y)
➢ u = x mod n
➢ v = (H(m)+su) k mod n
Si u ou v sont nulles, elle recommence, sinon la signature est la paire (u, v).
Utilisation en cryptographie_ Signature numérique
Clé publique, clé privée
Vérification :
Pour cela il devra alors être capable de déterminer s connaissant Q, et donc résoudre le
problème du logarithme discret.
Utilisation en cryptographie_ Signature numérique
Clé publique, clé privée
Démonstration:
Plusieurs questions et doutes mis en avant ont énormément retenu les industriels de se lancer dans
l'aventure ECC.
L'élément déclencheur a été l'histoire avec Dual_EC_DRBG (Dual Elliptic Curve Deterministic Random Bit
Generator), algorithme qui génère des nombres aléatoires en se basant sur les mathématiques des courbes
elliptiques. Le problème est que cet algorithme, standardisé par le NIST et promu par la NSA, ne semble
pas être si aléatoire que cela. Il semblerait en effet que la séquence de nombres renvoyés par l'algorithme
pourrait être complètement prédite par une personne connaissant certains paramètres secrets de la courbe
elliptique, c'est ce que l'on appelle un backdoor. Que cet algorithme ait été écrit spécifiquement avec cette
backdoor ou pas ne change pas la puissance des mathématiques sur les courbes elliptiques ; cela soulève
plutôt des questions sur les processus de standardisation des courbes elliptiques pour la cryptographie.
Cette histoire a créé une atmosphère de méfiance au sein de la communauté cryptographique vis-à-vis du
NIST. Même si aucune nouvelle faille ou backdoor n'a été trouvée jusqu'à présent pour les courbes
standardisées par le NIST, les cryptographes recommandent d'en utiliser d'autres, telles que celle de Dan
Bernstein, ou encore celles de Paulo Baretto et al. Malheureusement, ces courbes elliptiques non-
conventionnelles vont mettre beaucoup de temps à être acceptées et utilisées à grande échelle.
ECC
La cryptographie sur courbes elliptiques est l'une des plus puissantes techniques dans le
domaine.
Grâce à ses petites longueurs de clés, leur stockage peut se faire dans des environnements
limités (p.ex. les tags RFID des passeports biométriques) et les calculs sont exécutés plus
rapidement qu'avec de la cryptographie classique telle que RSA, tout en assurant un haut
niveau de sécurité.
L'ECC se montre donc très prometteuse pour le futur, malgré les doutes soulevés par la
communauté cryptographique vis-à-vis des recommandations et standards du NIST à son
sujet.
Test pratique
L exemple suivant montre l 'utilisation de
ECDH et de ECDSA au niveau du protocole
SSL de certains sites web, tels que celui de
Gmail. Notons que pour ce dernier, le
protocole d'échange de clés est ECDHE, une
variante de ECDH où les secrets choisis par
les deux entités communicantes sont
éphémères (d'où le "E" rajouté à
l'accronyme), c'est-à-dire utilisés que
temporairement, par exemple pour une seule
session de communication. Ce choix permet
ainsi de fournir une confidentialité
persistante (forward secrecy en anglais) :
même si un adversaire retrouve les secrets
éphémères d'une session compromettant
ainsi les communications correspondantes, il
ne sera pas capable de compromettre les
communications d'une session antérieure.
Wireshark (client to server)
La cryptographie à courbe elliptique est une bonne idée parce que nous
pouvons atteindre avec bien petites clés, le meme niveau de sécurité
que d’autres algorithmes avec des longues clés.
ECC 256 bit ≈ RSA 3072 bits.
ECC 160 bit ≈ RSA 1024