Vous êtes sur la page 1sur 34

Le Problème du Logarithme Discret

Applications

Guénaël Renault

SALSA - LIP6/UPMC
Part I

Evaluer la difficulté du DLP

UPMC - Licence Math/Info - AAEA - 2007/08 2/31


Le DLP : vision générale

Définition
Soit G un groupe d’opération ◦ 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 - Licence Math/Info - AAEA - 2007/08 3/31


Le DLP : vision générale

Définition
Soit G un groupe d’opération ◦ 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 est défini par

k = logg (h) avec h = [k ]g

UPMC - Licence Math/Info - AAEA - 2007/08 3/31


Part II

Résolution du DLP

UPMC - Licence Math/Info - AAEA - 2007/08 4/31


Exemples ou DLP est facile
Groupe additif modulaire
Le groupe modulaire additif : G = H = Z /nZ et donc pgcd(α, n) = 1.
Groupe additif : β = k · α mod n
La seule opération est la multiplication par k : [k]a = ka mod n
⇒rapide.
Ici on peut calculer facilement logα (β).

Preuve de la résolution du DLP dans ce cas


1 pgcd(α, n) = 1 ⇒ on peut calculer α−1 mod n par Bézout
2 on retrouve k facilement : logα (β) = β · α−1 mod n
La complexité binaire de cette attaque est quadratique en la taille de la
clé publique.

⇒Pour résoudre facilement le DLP On peut essayer de se ramener à


cet exemple.
UPMC - Licence Math/Info - AAEA - 2007/08 5/31
Résolution du DLP par transfert additif

Transfert additif
Soit H le groupe cyclique choisit pour support au DLP.
Isomorphisme H et Z/|H|Z
Il faut expliciter cet isomorphisme (i.e. construire le morphisme
explicitement).
Le DLP sera facile dans H si l’on peut calculer facilement cet
isomorphisme (algorithme de complexité polynomiale) : par transfert le
DLP devient facile.

UPMC - Licence Math/Info - AAEA - 2007/08 6/31


Complexité générique

⇒Un groupe générique peut être vu comme une boite noire.

Théorème[Shoup 97]
La p
résolution du DLP dans un groupe générique nécessite au moins
O( |H|) opérations dans H

⇒Simplification : connaissance de n = |H|.


Une première analyse

Application du CRT et brute force


Soit n = p1 p2 · · · pk la décomposition en facteurs premiers de n. Si
pi < pj pour i ≤ j alors le DLP se résout en
O(p1 + p2 + · · · + pk ) = O(pk ) opérations dans H.

⇒Si |H| est le produit de petits facteurs premiers simples, le DLP est
”facile”.
UPMC - Licence Math/Info - AAEA - 2007/08 7/31
Complexité générique

⇒Et dans le cas général où n = p1e1 p2e2 · · · pkek ?

Théorème
Si on connait un algorithme prenant Sp étapes pour résoudre le DLP
dans un groupe d’ordre p premier alors on peut résoudre le DLP dans
un groupe d’ordre q = pe en O(eSp) étapes.

UPMC - Licence Math/Info - AAEA - 2007/08 8/31


Baby-Step Giant-Step de Shanks
Input : Le générateur g du groupe H d’ordre n et h ∈ H.
Output : Un entier t < n tel que h = [t]g.

s : = b nc + 1 ;

f o r i : = 0 to s − 1 do / / Baby−Step
H [ h ◦ [−i]g ] : = i ; / / Table de Hachage
end f o r ;

i : = 0 ; γ : = 0G ;
while t r u e do / / Giant−Step
i f not ( H [ γ ] = NULL ) then
r e t u r n is + H [ γ ] ;
else
i := i + 1
γ : = γ ◦ [s]g
end i f
done
UPMC - Licence Math/Info - AAEA - 2007/08 9/31
Baby-Step Giant-Step de Shanks
Preuve
Euclide !

Propriétés
Algorithme issu de la théorie algorithme des nombres (Shanks
1971, Gelfond 1962).

Le premier algorithme générique de complexité optimale : 2 n
opérations.

Nécessite une place mémoire de taille n pour la table de
hachage.
Nécessite la connaissance de n = |H|.

Remarque : Ils existent plusieurs autres algorithmes de complexité


équivalente ayant des comportements pratiques plus efficaces (Brent,
Kangourous de Pollard...)
UPMC - Licence Math/Info - AAEA - 2007/08 10/31
Conclusion : complexité DLP groupe générique

⇒Le BSGS est optimal !

Conclusion
Dans le cas d’un groupe générique G ⊃ H avec H d’ordre
n =Pp1e1 p2e2 · · · pkek il est possible de résoudre le DLP dans H en

O( ei pi ) calculs dans G.

Remarques
Si n = |H| n’est pas connu, on peut utiliser l’ordre de G et intuiter
des diviseurs.
Si l’on souhaite que le DLP soit difficile il faut choisir un groupe H
possédant un très grand facteur premier, sa puissance
n’augmentant pas réellement la difficulté.

UPMC - Licence Math/Info - AAEA - 2007/08 11/31


Part III

DLP sur les corps finis

UPMC - Licence Math/Info - AAEA - 2007/08 12/31


Corps finis et DLP

Exemple de base
G est le groupe multiplicatif d’un corps fini Fpk .
G = F×
pk
est cyclique (on peut donc prendre G = H).
Exponentiation modulaire est rapide (vue en TD/TME)
Il n’existe pas d’algorithme polynomial pour le DLP
(sous-exponentiel pour le calcul d’index).

Transfert additif et grand facteur premier


1 Isomorphisme φ : F×
pk
→ Z/(pk − 1)Z
2 Pas d’algo connu pour l’expliciter : aussi difficile que le DLP.
3 pk − 1 doit posséder un grand facteur premier (attaque par CRT).

UPMC - Licence Math/Info - AAEA - 2007/08 13/31


Corps finis et DLP : 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 - Licence Math/Info - AAEA - 2007/08 14/31
Corps finis et DLP : Index Calculus

⇒Algorithme le plus efficace pour résoudre le DLP dans les corps finis
(sous exponentiel et moins gourmand en mémoire).

Calcul d’indice
Décomposition selon une base finie de facteurs premiers
Recherche de relations à support dans cette base
Résolution de systèmes linéaires gigantesques

⇒1024 bits est le minimum pour un bon niveau de sécurité.


⇒Étudié dans le parcours Calcul Scientifique Master STL.

UPMC - Licence Math/Info - AAEA - 2007/08 15/31


Part IV

DLP comme base de cryptosystèmes

UPMC - Licence Math/Info - AAEA - 2007/08 16/31


Echanger des clés : Diffie-Hellman

UPMC - Licence Math/Info - AAEA - 2007/08 17/31


Chiffrement à clé publique

El Gammal 1985
Ce cryptosystème est basé sur le DLP.
L’espace des messages est représenté par le groupe G.
Alice publie β et α et conserve secrètement k (β = [k ]α).
Chiffrement : Pour envoyer g ∈ G, Bob choisit t ∈ {1, . . . , |H|}
aléatoirement et ne le publie pas. Il calcule

y1 = [t]α et y2 = g ◦ [t]β

et les envoie à Alice.


Déchiffrement : Alice calcule

y2 ◦ [−1]([k]y1 )

et retrouve g.

UPMC - Licence Math/Info - AAEA - 2007/08 18/31


Equivalence DLP, Diffie-Hellman, El Gamal ?

Attention !
Le DLP est, a priori, plus fort que les problèmes de Diffie-Hellman et El
Gamal.
La résolution du DLP entraine la résolution de Diffie-Hellman
La résolution du DLP entraine la résolution de El Gamal
Aucune des deux réciproques n’est connue !

⇒Il existe peut être des algorithmes qui résolvent plus efficacement
Diffie-Hellman et El Gamal que le DLP !

UPMC - Licence Math/Info - AAEA - 2007/08 19/31


El Gammal sur les corps finis
Exemple d’échange El Gammal :
Alice choisit G = H = Z/pZ× avec p = 2579 et α = 2 (racine primitive
p-eme de l’unité) qu’elle publie. Elle garde secret t = 765 et publie
aussi

β = 2275 mod 2579 = 949


Bob veut transmettre x = 1299 à Alice. Il choisit k aléatoirement
k = 853 et calcule

y1 = 2853 mod p = 435 puis y2 = 1299 × (435765 )−1 mod p = 2396

Alice reçoit (435, 2396) et calcule alors :

x = 2396 × (435765 )−1 mod 2579 = 1299


pour retrouver le message de Bob !
UPMC - Licence Math/Info - AAEA - 2007/08 20/31
Part V

DLP, El Gammal sur les courbes elliptiques

UPMC - Licence Math/Info - AAEA - 2007/08 21/31


Courbes elliptiques

⇒Lieu géométrique !

Sur K = Fpk avec p > 3


Pour a et b fixés dans K. Une courbe elliptique Ea,b sur K est
représentée par l’ensemble des points (x, y) ∈ K2 vérifiant l’équation:

y 2 = x 3 + ax + b

où a, b ∈ K tq
∆ := −16(4a3 + 27b2 ) 6= 0

⇒Définition équivalente dans le cas de la caractéristique 3 et 2.

UPMC - Licence Math/Info - AAEA - 2007/08 22/31


Courbes elliptiques sur R2

UPMC - Licence Math/Info - AAEA - 2007/08 23/31


Courbes elliptiques sur Fp , p = 389, y 2 = x 2 − x + 1

UPMC - Licence Math/Info - AAEA - 2007/08 24/31


Structure de groupe

UPMC - Licence Math/Info - AAEA - 2007/08 25/31


Structure de groupe

Ea,b en tant que groupe abélien


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
3x12 +a y2 −y1
et λ = 2y1 si P = Q et λ = x2 −x1 sinon.

⇒Définition équivalente dans le cas de la caractéristique 3 et 2.


UPMC - Licence Math/Info - AAEA - 2007/08 25/31
Structure de groupe pour K = Fpk avec p > 3
Exemple sur K = F11 , E1,6 : y 2 = x 3 + x + 6.
Pour chaque x ∈ {0, . . . , 10} on cherche à résoudre une équation
quadratique modulo 11.
z
z = x 3 + x + 6 mod 11

x 11 y
0 6 -1
1 8 -1
2 5 1 ±4
3 3 1 ±5
4 8 -1
5 4 1 ±9
6 8 -1
7 4 1 ±9
8 9 1 ±3
9 7 -1
10 4 1 ±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 - Licence Math/Info - AAEA - 2007/08 26/31
Structure de groupe pour K = Fpk avec p > 3
Exemple sur 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 λ


λ = (7 − 2)(2 − 5)−1 mod 11
= 5 × 8−1 mod 11
= 5 × 7 mod 11
= 2

[3]P = (22 − 5 − 2 mod 11, 2(5 − 8) − 2 mod 11) = (8, 3)


UPMC - Licence Math/Info - AAEA - 2007/08 27/31
Carrés modulo p, symbole de Legendre

⇒Etant donné un entier a on cherche a savoir s’il existe un entier b tel


que a = b2 mod p ?

Symbole de Legendre

1
  
a
si a est un résidu quadratique (mod p)
= −1 si a n’est pas un résidu quadratique (mod p)
p 
0 si p divise a

Propriétés
        
a1 a2 a1 a2 a a (mod p)
= =
p p p p p

UPMC - Licence Math/Info - AAEA - 2007/08 28/31


Carrés modulo p, symbole de Legendre
⇒Etant donné un entier a on cherche a savoir s’il existe un entier b tel
que a = b2 mod p ?

Réciprocité quadratique
Pour p et q des entiers premiers distincts > 2 on a
 
   q
p p  si p ≡ 1 (mod 4) ou q ≡ 1 (mod 4)
= q
q − si p ≡ 3 (mod 4) et q ≡ 3 (mod 4)
p

  (
2 1 si p ≡ ±1 (mod 8)
=
p −1 si p ≡ ±3 (mod 8)
 
   q si p ≡ 1 (mod 4) ou q ≡ 1 (mod 4)
p p 
q =
− q si p ≡ 3 (mod 4) et q ≡ 3 (mod 4)
p

UPMC - Licence Math/Info - AAEA - 2007/08 28/31


Calcul de racines carrées modulo p
Algorithme de Cornachia.
Input : Soit p > 2 un entier premier et a ∈ Z.
Output : Avec p − 1 = 2e q avec q impair. On renvoie x t.q.
x 2 = a(modp) s’il existe, NULL sinon
n
1 Choose numbers n at random until = −1. Then set z = nq
p
mod p.
2 Set y = z, r = e, x = a(q−1)/2 mod p, b = ax 2 mod p, x = ax
mod p.
3 If b = 1 mod p then output x and terminate the algorithm.
m
Otherwise, find the smallest m > 1 such that b2 = 1 mod p.
r −m−1
4 Set t = y 2 , y = t 2 , r = m, x = xt, b = by (all operations done
modulo p), and go to step 3.
⇒Algorithme heuristique : si on suppose GRH l’algorithme est en
O(log4 p)
⇒Sans GRH la premiere opération est exponentielle.
UPMC - Licence Math/Info - AAEA - 2007/08 29/31
Structure de groupe pour K = Fpk avec 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 q − 1.

⇒On a un sous-groupe cyclique support pour El Gammal !


⇒Comment calculer |Ea,b | et les points rationnels ? (Schoof ...)

UPMC - Licence Math/Info - AAEA - 2007/08 30/31


Avantages des courbes elliptiques

L’arithmétique peut être rendue très rapide


Pas d’équivalent au calcul d’index (Base de facteurs ?)
Clés plus petites pour des sécurités équivalentes
Sert aussi à la factorisation (première application connue, ECM
Lenstra 1983).

UPMC - Licence Math/Info - AAEA - 2007/08 31/31