Couplages sur courbes elliptiques et applications en cryptographie

Transcription

Couplages sur courbes elliptiques et applications en cryptographie
Couplages sur courbes elliptiques et applications en
cryptographie
Sous la direction de Louis Goubin
Présoutenance de stage du Master Algèbre Appliquée
V. Vitse
Université Versailles Saint-Quentin - Laboratoire PRISM
11 juin 2008
V. Vitse (UVSQ-PRISM)
Couplages sur courbes elliptiques
11 juin 2008
1 / 16
Usage des courbes elliptiques en cryptographie
Plan
Usage des courbes elliptiques en cryptographie
La cryptographie basée sur les couplages
Courbes bien couplées
Travail fait et perspectives
V. Vitse (UVSQ-PRISM)
Couplages sur courbes elliptiques
11 juin 2008
2 / 16
Usage des courbes elliptiques en cryptographie
Logarithme discret
Définition (Problème du Logarithme discret (LD))
Soit G = hg i un groupe cyclique.
Etant donnés g et g a , trouver a.
Complexité algorithmique :
I G = Z/nZ : O (log n)2 (algorithme d’Euclide)
1
2
I G = F∗
(méthode de calcul
q : O exp c(log q) 3 (log log q) 3
d’index)
√
I G groupe générique : O( #G ) (Baby Step Giant Step)
Conséquence : pour une sécurité croissante, la taille de clé pour un
groupe générique croı̂t comme la racine cubique de la taille de clef pour un
corps fini.
V. Vitse (UVSQ-PRISM)
Couplages sur courbes elliptiques
11 juin 2008
3 / 16
Usage des courbes elliptiques en cryptographie
Intérêt des courbes elliptiques en cryptographie
asymétrique
I
I
Les courbes elliptiques sur Fq induisent des groupes qui se comportent
a priori comme des groupes génériques vis à vis du problème LD
Miller & Koblitz (1985) : transformer les protocoles fondés sur
l’exponentielle modulaire en leur analogue elliptique, afin d’obtenir à
sécurité égale des clés et des signatures plus courtes.
V. Vitse (UVSQ-PRISM)
Couplages sur courbes elliptiques
11 juin 2008
4 / 16
La cryptographie basée sur les couplages
Plan
Usage des courbes elliptiques en cryptographie
La cryptographie basée sur les couplages
Courbes bien couplées
Travail fait et perspectives
V. Vitse (UVSQ-PRISM)
Couplages sur courbes elliptiques
11 juin 2008
5 / 16
La cryptographie basée sur les couplages
Particularité des courbes elliptiques : les couplages
On dispose sur E (Fq ) d’applications bilinéaires et non dégénérées,
appelées couplages.
Exemple (Couplage de Tate)
E (Fq )[l] × E (Fqk ) → µl ⊂ F∗qk
(P, Q) 7→ hP, Qil = fP (DQ )
q k −1
l
où
I
E (Fq )[l] points de l-torsion (l|#E (Fq ), l premier)
I
µl est le groupe des racines l-ièmes de l’unité
I
k est le degré de plongement de la courbe, i.e. le plus petit entier e
tel que µl ⊂ F∗qe .
I
fP ∈ Fq (E ) telle que div fP = l(P) − l(O)
I
DQ ∈ DivFqk (E ) tel que DQ ∼ (Q) − (O) et supp(DQ ) ∩ supp(fP ) = ∅
V. Vitse (UVSQ-PRISM)
Couplages sur courbes elliptiques
11 juin 2008
6 / 16
La cryptographie basée sur les couplages
Algorithme de Miller
I
Calcul du couplage de Tate requiert celui de la fonction fP
I
Implémentation efficace rendue possible grâce à l’algorithme de Miller
qui calcule de façon incrémentale l’évaluation de fP en un point
Q∈
/ supp(fP ) en utilisant la loi de groupe géométrique.
I
Complexité polynomiale en
O (log q)µ+1 (log l + k µ+1 )
En particulier, pour pouvoir calculer le couplage de Tate rapidement,
le degré de plongement k ne doit pas être trop grand.
V. Vitse (UVSQ-PRISM)
Couplages sur courbes elliptiques
11 juin 2008
7 / 16
La cryptographie basée sur les couplages
Echange tripartite de Joux
Protocole Diffie-Hellman généralisé à 3 parties, permettant à Alice, Bob et
Charlie de s’échanger un secret.
Idée naı̈ve en 2 tours :
round 1 :
Alice
(secret a)
[a]P
Bob
[c]P
(secret b)
[b]P
Charlie
(secret c)
Après 2 tours, Alice, Bob et Charlie peuvent calculer le secret commun :
K = [a]([bc]P) = [b]([ac]P) = [c]([ab]P)
V. Vitse (UVSQ-PRISM)
Couplages sur courbes elliptiques
11 juin 2008
8 / 16
La cryptographie basée sur les couplages
Echange tripartite de Joux
Protocole Diffie-Hellman généralisé à 3 parties, permettant à Alice, Bob et
Charlie de s’échanger un secret.
Idée naı̈ve en 2 tours :
round 2 :
Alice
(secret a)
[c]P
[a]([c]P)
Bob
[a]P
[c]([b]P)
(secret b)
[b]([a]P)
Charlie
(secret c)
[b]P
Après 2 tours, Alice, Bob et Charlie peuvent calculer le secret commun :
K = [a]([bc]P) = [b]([ac]P) = [c]([ab]P)
V. Vitse (UVSQ-PRISM)
Couplages sur courbes elliptiques
11 juin 2008
8 / 16
La cryptographie basée sur les couplages
Echange tripartite de Joux
Protocole Diffie-Hellman généralisé à 3 parties, permettant à Alice, Bob et
Charlie de s’échanger un secret.
Idée de Joux en 1 tour (2004) :
round 1 :
Alice
[a]P
Bob
(secret a)
[b]P
[c]P
[a]P
[c]P
(secret b)
[b]P
Charlie
(secret c)
Alice, Bob et Charlie peuvent alors calculer
K = h[b]P, [c]Pia = h[a]P, [c]Pib = h[a]P, [b]Pic = hP, Piabc
V. Vitse (UVSQ-PRISM)
Couplages sur courbes elliptiques
11 juin 2008
9 / 16
La cryptographie basée sur les couplages
Hypothèses de sécurité classiques
Les cryptosystèmes utilisant le log discret basent leur sécurité sur les
problèmes suivants :
I
DDH (Decisional Diffie-Hellman problem) :
étant donnés P, [a]P, [b]P et [c]P, déterminer si ab = c.
I
CDH (Computational Diffie-Hellman problem) :
étant donnés P, [a]P et [b]P, calculer [ab]P.
I
DL (Discrete Log problem) :
étant donnés P et [a]P, trouver a.
V. Vitse (UVSQ-PRISM)
Couplages sur courbes elliptiques
11 juin 2008
10 / 16
La cryptographie basée sur les couplages
Hypothèses de sécurité liées aux couplages
Nouveaux critères de sécurité induits par les couplages :
I
DBDH (Decisional Bilinear Diffie-Hellman problem) :
étant donnés P, [a]P, [b]P et [c]P dans G1 et hP, Pid , déterminer si
d = abc.
I
BDH (Bilinear Diffie-Hellman problem) :
étant donnés P, [a]P, [b]P et [c]P dans G1 , calculer hP, Piabc .
I
Inversion problem :
étant donnés P et h[a]P, Pi, trouver [a]P.
V. Vitse (UVSQ-PRISM)
Couplages sur courbes elliptiques
11 juin 2008
11 / 16
Courbes bien couplées
Plan
Usage des courbes elliptiques en cryptographie
La cryptographie basée sur les couplages
Courbes bien couplées
Travail fait et perspectives
V. Vitse (UVSQ-PRISM)
Couplages sur courbes elliptiques
11 juin 2008
12 / 16
Courbes bien couplées
La problématique du choix des courbes
Quelles courbes choisir en pratique ?
I
Rappel : le degré de plongement k est le plus petit entier tel que
l | q k − 1. En pratique, pour que les couplages soient calculables q k ne
doit pas être trop grand.
I
Problème : Pour une courbe aléatoire, k est grand de l’ordre de l
[Balasubramanian-Koblitz]
I
1ère idée : prendre des courbes supersingulières qui ont
nécessairement un degré de plongement k ≤ 6 ([Vanstone])
(k ≤ 2 si p > 3)
V. Vitse (UVSQ-PRISM)
Couplages sur courbes elliptiques
11 juin 2008
13 / 16
Courbes bien couplées
Attaque sur LD
Attaque MOV/Frey-Rück :
Soient P ∈ E (Fq )[l] d’ordre l, et Q ∈ E (Fqk ) tel que hP, Qi =
6 1 (non
dégénérescence de Tate), alors
hmP, Qi = hP, Qim ∈ µl ⊂ F∗qk
⇒ le problème LD dans E (Fq ) se réduit au problème LD dans F∗qk
(algorithme sous-exponentiel)
Conséquence : |q k |2 ≥ 1024 bits pour une sécurité convenable.
V. Vitse (UVSQ-PRISM)
Couplages sur courbes elliptiques
11 juin 2008
14 / 16
Courbes bien couplées
La problématique du choix des courbes
Quelles courbes choisir en pratique ?
I
prendre des courbes supersingulières avec p > 3 et donc k = 2 et
|q|2 ' 512
I
prendre des courbes supersingulières avec p = 2 ou 3 et k = 4 ou 6,
mais il existe des attaques spécifiques du LD sur les corps finis ayant
cette caractéristique.
I
Autre solution : utiliser la méthode de multiplication complexe
(Miyaji, Nakabayashi, Takano) qui permet d’obtenir des courbes
ordinaires avec un degré de plongement petit (dites “courbes MNT”).
I
sujet de recherche ouvert...
V. Vitse (UVSQ-PRISM)
Couplages sur courbes elliptiques
11 juin 2008
15 / 16
Travail fait et perspectives
Plan
Usage des courbes elliptiques en cryptographie
La cryptographie basée sur les couplages
Courbes bien couplées
Travail fait et perspectives
V. Vitse (UVSQ-PRISM)
Couplages sur courbes elliptiques
11 juin 2008
16 / 16
Travail fait et perspectives
Déjà fait :
I
Module de calcul du couplage de Tate en caractéristique > 3 (langage
C++) : utilisation de la bibliothèque NTL pour les calculs dans les corps
finis appuyée sur GMP pour l’implémentation des grands nombres
I
Module d’analyse de courbes : à partir de l’équation de Weierstrass
d’une courbe, calcul de la cardinalité avec SEA (utilisant la librairie
ZEN de Lercier) et de sa factorisation pour la recherche des points de
l-torsion (module ECM-GMP de Zimmerman), calcul du degré de
plongement et recherche d’un générateur des points de l-torsion
Travail restant :
I
Etude de la méthode CM pour la construction de courbes ayant un
petit degré de plongement, et implémentation en C++
I
Application des couplages aux protocoles de transferts sécurisés liés
aux objets portables sans contact (passeport électronique)
I
Relèvement du LD sur des corps locaux en caractéristique nulle.
V. Vitse (UVSQ-PRISM)
Couplages sur courbes elliptiques
11 juin 2008
16 / 16

Documents pareils