DLP – sa cryptanalyse – son utilisation - PolSys

publicité
DLP – sa cryptanalyse – son utilisation
Guénaël Renault
Sorbonne Universités UPMC, INRIA, CNRS LIP6
Part I
Motivation : L’échange des clés à l’essor
de l’informatique et... plus tard
UPMC – SFPN –CryptoM2
2/45
Réseaux de communication se mettent en place
1950 Les premiers ordinateurs commerciaux, cryptographie
basée sur la taille des clés, Théorie de Shannon.
1970 Réseaux numériques, standardisation du DES (chiffrement
symétrique) par la NSA
1970 L’ordinateur devient un outil pour toutes les entreprises
Problème : l’échange des clés
UPMC – SFPN –CryptoM2
3/45
Problématique
Un nombre énorme de clés à gérer et échanger !
Bob
Alice
Henry
Fred
Gil
Eve
Ines
Dan
Jean
Carl
Ken
+Il faut un moyen sûr d’échanger chaque clé au préalable !
UPMC – SFPN –CryptoM2
4/45
Directions !in Cryptogra
Échanger une clé sans jamais New
se rencontrer
Invited
+En 1976, Diffie, Hellman et Merkle publient le premier
schPaper
éma de
d’échange de clés à l’aide de la notion de cl
é
publique
qu’ils
Whitfield Diffie and Martin E. Hellm
énoncèrent.
Abstract Two kinds of contemporary developments in cryptography are examined. Widening applications of teleprocessing have given rise to a need for new types of cryptographic
systems, which minimize the need for secure key distribution
channels and supply the equivalent of a written signature. This
paper suggests ways to solve these currently open problems.
It also discusses how the theories of communication and computation are beginning to provide the tools to solve cryptographic
problems of long standing.
1 INTRODUCTION
We stand today on the brink of a revolution in cryptography.
The development of cheap digital hardware has freed it from
the design limitations of mechanical computing and brought
the cost of high grade cryptographic devices down to where
UPMC – SFPN –CryptoM2
communications o
raphy to insure pri
communicating pa
one else. This is do
secure channel su
private conversatio
tance is a common
unrealistic to expe
long enough for ke
The cost and dela
is a major barrier
to large teleproces
Section III prop
information over p
mising the security
enciphering and d
and D, such that5/45
co
Échanger une clé sans jamais se rencontrer !
Soit p un premier et g un élément de Z/pZ bien choisi. Ces deux
éléments sont connus de tous. Les entiers a et b doivent être tenus
secrets
+Nécessite deux transactions sur un canal non sécurisé pour
l’échange de la clé commune K .
UPMC – SFPN –CryptoM2
5/45
Coût de la mise en pratique (cryptographie)
+En tout, les deux entités ont à calculer 4 exponentiations mod p.
En utilisant un algorithme d’exponentiation modulaire rapide, le coût
total dépend de la taille du module p.
Complexité échange de clé par Diffie-Hellman
Si l’on souhaite échanger une clé de taille ` il faudra faire
O(4 log3 (`))
opérations binaires.
UPMC – SFPN –CryptoM2
6/45
Sécurité de cette échange (cryptanalyse)
Etant donné y = ex ∈ R
Il est facile de calculer x (il suffit de calculer un log dans R)
UPMC – SFPN –CryptoM2
7/45
Sécurité de cette échange (cryptanalyse)
Etant donné 192 = g x mod 449 (g = 3 générateur du groupe
cyclique)
Il est difficile de calculer x
UPMC – SFPN –CryptoM2
7/45
Sécurité de cette échange (cryptanalyse)
Etant donné 192 = g x mod 449 (g = 3 générteur du groupe cyclique)
Il est difficile de calculer x
+Il s’agit du problème du calcul du logarithme discret (DLP).
UPMC – SFPN –CryptoM2
7/45
DLP actuel
+Repose sur des mathématiques récemment étudiés ( ˜ 40 ans)
+Nécessité de bien les comprendre pour éviter les trous de sécurité !
UPMC – SFPN –CryptoM2
8/45
Preuve récente sur l’utilité de bien comprendre...
+En janvier 2011, une équipe de hackers allemands
ont
démontré qu’une très grand entreprise informatique utilisait des
cryptosystèmes sans les comprendre... ERROR!
UPMC – SFPN –CryptoM2
9/45
Preuve récente sur l’utilité de bien comprendre...
+En janvier 2011, une équipe de hackers allemands
ont
démontré qu’une très grand entreprise informatique utilisait des
cryptosystèmes sans les comprendre... ERROR!
UPMC – SFPN –CryptoM2
9/45
Preuve récente sur l’utilité de bien comprendre...
+Affaire Snowden, un générateur aléatoire dû à la NSA pas très
convainquant !
UPMC – SFPN –CryptoM2
10/45
Part II
Le DLP en toute généralité
UPMC – SFPN –CryptoM2
11/45
Le DLP : vision générale
Définition
Soit (G, ◦) un groupe fini et g ∈ G. Le problème du logarithme discret
(noté DLP) dans le sous-groupe H = hgi de G est défini comme suit:
Étant donné h ∈ H
Comment retrouver k ∈ N tel que h = g ◦ · · · ◦ g (k fois) ?
Notations
Pour g ∈ G et t ∈ N on notera l’opération d’exponentiation de g en t
par :
[t]g = g ◦ · · · ◦ g, t fois
On peut généraliser à t ∈ Z en posant [−t]g l’inverse de [t]g.
UPMC – SFPN –CryptoM2
12/45
Le DLP : vision générale
Définition
Soit (G, ◦) un groupe fini et g ∈ G. Le problème du logarithme discret
(noté DLP) dans le sous-groupe H = hgi de G est défini comme suit:
Étant donné h ∈ H
Comment retrouver k ∈ N tel que h = g ◦ · · · ◦ g (k fois) ?
Notations

Pour g ∈ G et t ∈ N on notera l’opération d’exponentiation de g en t
par [t]g = g ◦ · · · ◦ g, t fois. Cette notations permet d’homogénéiser
les notations, par exemple :
Si (G, ×) on a [t]g = g × · · · × g = g t
Si (G, +) on a [t]g = g + · · · + g = t · g
UPMC – SFPN –CryptoM2
12/45
Le DLP : vision générale
Définition
Soit (G, ◦) un groupe fini et g ∈ G. Le problème du logarithme discret
(noté DLP) dans le sous-groupe H = hgi de G est défini comme suit:
Étant donné h ∈ H
Comment retrouver k ∈ N tel que h = g ◦ · · · ◦ g (k fois) ?
Définition
Le logarithme discret en base g de h est défini par
k = logg (h) avec h = [k ]g
UPMC – SFPN –CryptoM2
12/45
Part III
Résolution du DLP en toute généralité
UPMC – SFPN –CryptoM2
13/45
Brute force attack
Problématique
Étant donnés :
un groupe fini cyclique H = hgi dans lequel on peut calculer
facilement;
un élément h dans H.
On cherche un entier t tel que h = [t]g.
+On peut se limiter à t ∈ {1, . . . , #H}.
Recherche exhaustive
On testera 2log(#H) valeurs de t différentes.
 La complexité de résolution du DLP s’exprime en
fonction de la taille de #H (la taille en bit de la
représentation d’un élément).
UPMC – SFPN –CryptoM2
14/45
Exemples ou le DLP est facile
Groupe additif modulaire
Ici H = (Z/nZ, +) le groupe modulaire additif. On a H = hgi et donc
pgcd(g, n) = 1.
Groupe additif : h = [t]g = t · g mod n
Ici on peut calculer facilement logg (h).
Preuve de la résolution du DLP dans ce cas
1
pgcd(g, n) = 1 ⇒ on peut calculer g −1 mod n par Bézout
2
on retrouve t facilement : logg (h) = h · g −1 mod n
La complexité binaire de cette attaque est quadratique en la taille de n
(qui est bien la taille de #H).
+Pour résoudre facilement un DLP, on peut essayer de se ramener à
cet exemple.
UPMC – SFPN –CryptoM2
15/45
Résolution du DLP par transfert additif
Transfert additif
Soit H le groupe cyclique choisi pour support au DLP. Il faut pour un tel
transfert:
Isomorphisme entre H et Z/|H|Z
qu’il soit explicite
et que l’on puisse calculer efficacement l’image/image inverse
d’un élément par ce dernier
Le DLP sera facile dans H si l’on connait un tel isomorphisme. (On
envoie le problème dans Z/nZ avec l’isomorphisme, on le résout grâce
à Bézout et on remonte le résultat dans H toujours grâce à
l’isomorphisme.)
UPMC – SFPN –CryptoM2
16/45
Complexité générique
Définition
On appelle groupe générique (ou en boite noire) un groupe dont on ne
connaı̂t pas la structure mais avec lequel on peut réaliser des calculs.
En particulier, si (H = hgi, ◦) et h ∈ H sont donnés en boite noire, tous
les calculs de la forme
[a]h ◦ [b]g
sont possibles et on peut tester les égalités.
Théorème [Shoup 97]
La résolution du DLP dans un groupe générique nécessite au moins
p
|H| opérations dans H
Existe-t-il un algorithme optimal dans le cas générique?
+Simplification : connaissance de n = |H|.
UPMC – SFPN –CryptoM2
17/45
Baby-Step Giant-Step de Shanks : idée générale
Soit n l’ordre du groupe H = hgi et h ∈ H.
+l’entier t = logg (h) vérifie 1 < t < n.
√
Division euclidienne par s = b nc + 1;
t = q·s+r avec 0 6 q, r < s
Recherche exhaustive sur q et r d’une collision
h = [t]g = [q ·s +r ]g ⇒ h ◦[−q ·s]g = [r ]g et h ◦[−r ]g = [q ·s]g
+Le principe reste le même si l’on sait mieux encadrer t
(1 < t < m << n)
UPMC – SFPN –CryptoM2
18/45
BSGS dans (Z/77Z, +) avec g = 2, h = 11, s = 9
h
g
e
UPMC – SFPN –CryptoM2
19/45
BSGS dans (Z/77Z, +) avec g = 2, h = 11, s = 9
h
9 8
76
UPMC – SFPN –CryptoM2
5
4
3
2
1
g
e
19/45
BSGS dans (Z/77Z, +) avec g = 2, h = 11, s = 9
h
9 8
76
5
4
3
2
1
g
e
[−1 · s]g ◦ h
[−2 · s]g ◦ h
UPMC – SFPN –CryptoM2
19/45
BSGS dans (Z/77Z, +) avec g = 2, h = 11, s = 9
[−4 · s]g ◦ h
h
9 8
76
[−3 · s]g ◦ h
5
4
3
2
1
g
e
[−1 · s]g ◦ h
UPMC – SFPN –CryptoM2
19/45
BSGS : deux tableaux
Input : Le générateur g du groupe H d’ordre n et h ∈ H \ {e}.
Output : Un entier 0 < t < n tel que h = [t]g.
√
s := b nc + 1;
for i := 1 to s do
BS[i] := [i]g; // Tableau de Baby-Steps
GS[i] := [i]([−s]g) ◦ h; // Tableau de Giant-Steps
end for;
//Recherche Collision
T := Sort(BS cat GS);
for i := 1 to s do
if T [i] == T [i + 1] then break end if;
end for;
return s× Index(T [i],GS) + Index(T [i],BS)
UPMC – SFPN –CryptoM2
20/45
BSGS : table de hachage
Input : Le générateur g du groupe H d’ordre n et h ∈ H \ {e}.
Output : Un entier 0 < t < n tel que h = [t]g.
√
s := b nc + 1;
for i := 1 to s do
Hash[[i]g] := i; // Table de hachage des Baby-Steps
end for;
i := 0; γ := h;
while true do //Giant-Steps
if not(Hash[γ] == NULL) then
return i × s+ Hash[γ];
else
i := i + 1
γ := γ ◦ [−s]g
end if
end while
UPMC – SFPN –CryptoM2
21/45
BSGS : complexités
+Complexité donnée en fonction de log(#H) = log(n)
Deux tableaux vs Table de hachage
√
√
1
Complexité calcul : O( nlog( n)) = O(2 2 log(n) log(n)) vs
1
O(2 2 log(n) )
√
Complexité mémoire : O( n)
Remarques
Le premier algorithme générique de complexité optimale
√
Nécessite une place mémoire de taille n pour la table de
hachage
Nécessite la connaissance de n = |H| mais on peut s’en passer
Ils existent des variantes de cet algorithme qui permettent de
descendre la complexité en mémoire mais pas en calcul (rho de
Pollard en particulier)
UPMC – SFPN –CryptoM2
22/45
Attaque par CRT et par écriture p-adique
Pohlig-Hellman
Dans le cas d’un groupe générique H d’ordre
= p1e1 p2e2 · · · pkek il est
P n√
possible de résoudre le DLP dans H en O( ei pi ) calculs dans G.
+Au tableau
Corollaire important
Si l’on souhaite que le DLP soit difficile, il faut choisir un groupe H
d’ordre possédant au moins un très grand facteur premier.
UPMC – SFPN –CryptoM2
23/45
Application CTF
Crypto-5 – HackingWeek 2014
Afin d’établir une communication sécurisée, Alice et Bob procèdent à un échange de clef Diffie-Hellman. Pour cela ils utilisent le
nombre premier p:
p:=792936869162503088675628465772053403364000392906151396078658735156365298207001526858084303505657
Et l’entier g:
g:=731141113522952887744628147981293740784599336915130972113272170588929032940457604906740698587866
Alice choisit en secret un nombre x, calcule X = g x
le canal, Charlie récupère la valeur de X et de Y:
mod p et envoie X sur un canal non sécurisé à Bob. blabla En espionnant
X:=537106952043235135093377339090215625473507408450283231952255920597624359552971105918480198780508
Y:=175484627423381555519844295880083858644289209731698473897305632688527764218191302125210590414633
La clef de cette épreuve est le md5sum de la valeur de Z .
+Seuls 9 candidats ont trouvé la solution. Le problème peut être
résolu en quelques secondes avec Magma!
UPMC – SFPN –CryptoM2
24/45
Part IV
DLP sur les corps finis
UPMC – SFPN –CryptoM2
25/45
Corps premiers et corps finis : Propriétés
Groupe multiplicatif d’un corps fini
L’ensemble F×
des inversibles de Fpk muni de la multiplication est un
pk
groupe. Il est d’ordre pk − 1.
Groupe cyclique et son générateur
Le groupe F×
est cyclique. Il existe donc α ∈ F×
tel que αi 6= 1 pour
pk
pk
tout 0 < i < pk − 1 et vérifiant
hαi = {1 = α0 , α1 , α2 , . . . , αp
k −1
= 1} = F×
.
pk
Un tel élément α est appelé élément primitif du corps Fpk .
UPMC – SFPN –CryptoM2
26/45
Corps finis et DLP
Exemple important en Crypto : DLP sur Fpk
G est le groupe multiplicatif d’un corps fini Fpk .
G = F×
est cyclique (on peut donc prendre G = H).
pk
Il n’existe pas d’algorithme de complexité polynomiale pour
résoudre ce DLP pour les corps premiers
Transfert additif et grand facteur premier
1
2
→ Z/(pk − 1)Z. Mais pas d’algo connu pour
Isomorphisme φ : F×
pk
l’expliciter : aussi difficile que le DLP.
pk − 1 doit posséder un grand facteur premier (attaque par CRT).
UPMC – SFPN –CryptoM2
27/45
Corps finis et DLP : BSGS de Shanks
p = 809 on veut calculer log3 525. Ici H ' Z/(p − 1)Z et donc s = 29.
Baby-steps: (j, 525 × (3j )−1 mod p) (j = 0, . . . , 28):
( 0 , 525 ) ( 1 , 175 ) ( 2 , 328 ) ( 3 , 379 ) ( 4 , 396 )
( 5 , 132 ) ( 6 , 44 ) ( 7 , 554 ) ( 8 , 724 ) ( 9 , 511 )
( 10 , 440 ) ( 11 , 686 ) ( 12 , 768 ) ( 13 , 256 ) ( 14 , 355 )
( 15 , 388 ) ( 16 , 399 ) ( 17 , 133 ) ( 18 , 314 ) ( 19 , 644 )
( 20 , 754 ) ( 21 , 521 ) ( 22 , 713 ) ( 23 , 777 ) ( 24 , 259 )
( 25 , 356 ) ( 26 , 658 ) ( 27 , 489 ) ( 28 , 163 )
Giant-steps: (j, 3j∗s mod p) (j = 0, . . . , 28):
( 0 , 1 ) ( 1 , 99 ) ( 2 , 93 ) ( 3 , 308 ) ( 4 , 559 )
( 5 , 329 ) ( 6 , 211 ) ( 7 , 664 ) ( 8 , 207 ) ( 9 , 268 )
( 10 , 644 ) ( 11 , 654 ) ( 12 , 26 ) ( 13 , 147 ) ( 14 , 800 )
( 15 , 727 ) ( 16 , 781 ) ( 17 , 464 ) ( 18 , 632 ) ( 19 , 275 )
( 20 , 528 ) ( 21 , 496 ) ( 22 , 564 ) ( 23 , 15 ) ( 24 , 676 )
( 25 , 586 ) ( 26 , 575 ) ( 27 , 295 ) ( 28 , 81 )
+t = s × 10 + 19 = 309
UPMC – SFPN –CryptoM2
28/45
Part V
Index Calculus
UPMC – SFPN –CryptoM2
29/45
Calcul d’indice (Kraitchik ˜ 1930)
+Dans la pratique le groupe G n’est pas si générique que ça !
+Introduit pour les corps finis
Existent ils des algorithmes de complexité O(|G|C ) avec C < 1/2?
Si oui, quels sont les groupes permettant cela ?
Que dois-je savoir calculer en plus dans G ?
On veut pouvoir obtenir facilement des relations de la forme
⊕si=1 [ki ]gi = eG
UPMC – SFPN –CryptoM2
30/45
Calcul d’indice
L’idée clé dans G = hgi
Soit une base B = {π1 , . . . , πnB } d’éléments privilégiés
B
⊕nj=1
[ej ]πj
= eG ⇒
nB
X
ej logg (πj ) = 0
mod |G|
j=1
Les ei sont “faciles”à calculer
ZnB /L ' G
UPMC – SFPN –CryptoM2
(Φ : (e1 , . . . , enB ) 7→ [e1 ]π1 ⊗ · · · [enB ]πnB )
31/45
Calcul d’indice
Principe : résolution du DLP
+On cherche α, β tel que [α]g ⊕ [β]h = eG
Supposons que l’on connaisse une base B = {π1 , . . . , πnB } tel que
ai logg (g) + bi logg (h) =
nB
X
ej logg (πj )
mod |G|
j=1
On a au moins nB telles relations indépendantes ;
les ei sont faciles à calculer en fonctions des ai , bi .
Alors on peut résoudre un système linéaire en les ei et trouver une
relation de dépendance entre les ai logg (g) + bi logg (h) !
UPMC – SFPN –CryptoM2
32/45
Calcul d’index : algorithme
Input : Le générateur g du groupe G d’ordre n et h ∈ G.
Output : Un entier t < n tel que h = [t]g.
1
On construit i = 1, . . . , nB relations indépendantes
B
[ai ]g ⊕ [bi ]h = ⊕nj=1
[ei,j ]πj
2
On forme la matrice


e1,1 . . . e1,nB


..
..
A =  ...

.
.
enB ,1 . . . enB ,nB
3
et les vecteurs a = (ai ), b = (bi ), π = (πi ).
On résoud le système
xA = 0
4
mod |G|
(on trouve au moins un élément dans le noyau)
On obtient t le résultat à partir de x, a et b
UPMC – SFPN –CryptoM2
33/45
Calcul d’indice : algorithme
Les solutions
On a par définition
(at , bt ) × (g, h)t = A × π t
et donc en posant α = xat et β = xbt on a :
xAπ = eG ⇒ (α, β) × (g, h)t = eG ⇒ [α]g ⊕ [β]h = eG
On obtient finalement
logg (h) = −
UPMC – SFPN –CryptoM2
α
β
mod |G|
34/45
Calcul d’indice : applications
+Il faut trouver une base de facteurs et une décomposition efficaces
Corps premiers : on remonte dans Z et on factorise selon de
petits premiers
Corps non premiers : on remonte dans Fp [x] et on factorise selon
de petits polynômes irréductibles
UPMC – SFPN –CryptoM2
35/45
Calcul d’indice : analyse
Propriétés
nB trop petit ⇒ difficile de trouver les relations.
nB trop grand ⇒ étape d’algèbre linéaire prohibitif.
La matrice A est très creuse ⇒ Wiedemann, Lancsoz.
+On cherche une borne B pour avoir de bonnes propriétés.
Théorème récent
Dans le cas de corps finis de petites caractéristique Barbulescu,
Gaudry, Joux, Thomé ont montré en 2014 que cette approche pouvait
être rendue de complexité quasi-polynomiale.
+Cette approche pour les corps premiers est sous-exponentielle
+Ces résultats récents reposent sur l’étude des bases de Gröbner
UPMC – SFPN –CryptoM2
36/45
Part VI
Groupes des points rationnels sur
courbes elliptiques
UPMC – SFPN –CryptoM2
37/45
Courbes elliptiques
+Lieu géométrique !
Sur K = Fpk avec p > 3
Pour a et b dans K vérifiant
∆ := −16(4a3 + 27b2 ) 6= 0
On définit la courbe elliptique Ea,b sur K par l’ensemble des points
(x, y) ∈ K2 vérifiant l’équation:
y 2 = x 3 + ax + b
+Définition équivalente dans le cas de la caractéristique 3 et 2.
UPMC – SFPN –CryptoM2
38/45
Courbes elliptiques sur R2
UPMC – SFPN –CryptoM2
39/45
Courbes elliptiques sur Fp , p = 389, y 2 = x 3 − x + 1
UPMC – SFPN –CryptoM2
40/45
Structure de groupe Ea,b = Ea.b ∪ O
UPMC – SFPN –CryptoM2
41/45
Structure de groupe Ea,b = Ea.b ∪ O
Groupe additif commutatif de la courbe
Soit P1 = (x1 , y1 ), Q = (x2 , y2 ) ∈ Ea,b
Point à l’infini O est l’élément neutre :
P +O =O+P =P
Si x2 = x1 et y2 = −y1 alors P + Q = O
P + Q = (x3 , y3 ) avec
x3 = λ2 − x1 − x2
y3 = λ(x1 − x3 ) − y1
et λ =
3x12 +a
2y1
si P = Q et λ =
y2 −y1
x2 −x1
sinon.
+Ne pas oublier de rajouter le point à l’infini pour former le groupe !
UPMC – SFPN –CryptoM2
41/45
Un exemple concret
On étudie le groupe construit avec K = F11 et E1,6 : y 2 = x 3 + x + 6.
Pour chaque x ∈ {0, . . . , 10} on cherche à résoudre une équation
quadratique modulo 11. Pour faciliter ce travail, on peut commencer
par lister l’ensemble des carrés dans K.
y
0
±1
±2
±3
±4
±5
z = y 2 mod 11
0
1
4
9
5
3
UPMC – SFPN –CryptoM2
42/45
Un exemple concret
On étudie le groupe construit avec K = F11 et E1,6 : y 2 = x 3 + x + 6.
Pour chaque x ∈ {0, . . . , 10} on cherche à résoudre une équation
quadratique modulo 11. Pour faciliter ce travail, on peut commencer
par lister l’ensemble des carrés dans K.
y
0
±1
±2
±3
±4
±5
z = y 2 mod 11
0
1
4
9
5
3
UPMC – SFPN –CryptoM2
x
0
1
2
3
4
5
6
7
8
9
10
z = x 3 + x + 6 mod 11
6
8
5
3
8
4
8
4
9
7
4
z
11
-1
-1
1
1
-1
1
-1
1
1
-1
1
y
±4
±5
±9
±9
±3
±9
42/45
Un exemple concret
On étudie le groupe construit avec K = F11 et E1,6 : y 2 = x 3 + x + 6.
Pour chaque x ∈ {0, . . . , 10} on cherche à résoudre une équation
quadratique modulo 11. Pour faciliter ce travail, on peut commencer
par lister l’ensemble des carrés dans K.
y
0
±1
±2
±3
±4
±5
z = y 2 mod 11
0
1
4
9
5
3
x
0
1
2
3
4
5
6
7
8
9
10
z = x 3 + x + 6 mod 11
6
8
5
3
8
4
8
4
9
7
4
z
11
-1
-1
1
1
-1
1
-1
1
1
-1
1
y
±4
±5
±9
±9
±3
±9
+12 points rationnels + le point à l’infini = un groupe d’ordre 13, donc
cyclique engendré par tout élément autre que le neutre.
UPMC – SFPN –CryptoM2
42/45
Exemple concret
Calculons explicitement avec K = F11 , E1,6 : y 2 = x 3 + x + 6.
Soit P = (2, 7) on veut calculer [2]P = P + P et [3]P.
λ
(3 × 22 + 1)(2 × 7)−1 mod 11
2 × 3−1 mod 11
2 × 4 mod 11
8
=
=
=
=
[2]P = (82 − 2 − 2
mod 11, 8(2 − 5) − 7
mod 11) = (5, 2)
Pour [3]P on a [3]P = [2]P + P, on calcule l’autre λ
λ
=
=
=
=
[3]P = (22 − 5 − 2
UPMC – SFPN –CryptoM2
(7 − 2)(2 − 5)−1 mod 11
5 × 8−1 mod 11
5 × 7 mod 11
2
mod 11, 2(5 − 8) − 2
mod 11) = (8, 3)
43/45
Structure de groupe pour K = Fq avec q = pk et p > 3
Théorème de Hasse
Soit q = pk .
√
√
q + 1 − 2 q 6 |Ea,b | 6 q + 1 + 2 q
Théorème de structure
(Ea,b , +) ' (Z/d1 Z × Z/d2 Z, +)
où d1 divise d2 et d1 divise q − 1. En d’autres termes, le groupe
construit à partir d’une courbe elliptique est soit cyclique (le cas
d1 = 1), soit le produit de deux groupes cycliques.
+Pour la cryptographie on choisit des courbes elliptiques telles que
(Ea,b , +) soit cyclique (le cas d1 = 1) ou au moins contient un grand
groupe cyclique (Pohlig-Hellman).
UPMC – SFPN –CryptoM2
44/45
Avantages des courbes elliptiques
+Pas d’adaptation efficace connue du calcul d’indice!
Pas d’attaque connue de complexité sous-exponentielle
L’arithmétique peut être rendue très efficiace
Clés plus petites pour des sécurités équivalentes
UPMC – SFPN –CryptoM2
45/45
Téléchargement