• Aucun résultat trouvé

4.2 Attaques g´ en´ eriques

4.3.1 Description g´ en´ erale

En vue des applications pr´esent´ees dans les chapitres suivants, on consid`ere dans cette section

le probl`eme du logarithme discret sur un groupe commutatif fini G not´e additivement : soient

h, g ∈G, trouver – si possible – le secret x tel que h = [x]g. On suppose sans perte de g´en´eralit´e

que le sous-groupe engendr´e par g∈G est d’ordre premierr.

Pour faire un calcul d’indices, on d´efinit d’abord une base de factorisation F = {g

1

, . . . , g

N

}

constitu´ee de certains ´el´ements du groupeG, qui engendrent tout le groupe. On cherche ensuite `a

obtenir suffisamment de relations faisant intervenir les ´el´ements de cette base ainsi que des multiples

de geth, de fa¸con `a pouvoir en d´eduire par des techniques d’alg`ebre lin´eaire (type Wiedemann ou

Lanczos, voir ci-dessous) le logarithme discret de h en base g. Pour simplifier, on supposera que

#G= mr o`u m∧r = 1 ; en particulier, [m]G ={[m]f :f ∈G} est un sous-groupe isomorphe `a

Z/rZ.

On pr´esente ici deux variantes : la variante 1, introduite en premier historiquement, ne permet

de calculer qu’un seul logarithme discret, alors que la variante 2 est `a utiliser lorsque l’on souhaite

calculer l’ensemble des logarithmes discrets de la base de factorisation. En particulier dans cette

deuxi`eme variante, il est possible avec une phase de descente de retrouver le logarithme de n’importe

quel ´el´ement h∈ hgi.

Variante 1

1. Phase de recherche de relations :pour un choix d’entiersa

i

, b

i

al´eatoires dansZ/rZ, d´ecomposer

l’´el´ement [a

i

]g+ [b

i

]h dansF afin d’obtenir des relations de la forme

[a

i

]g+ [b

i

]h=

N

X

j=1

[c

ij

]g

j

, o`u c

ij

Z. (4.2)

2. Phase d’alg`ebre lin´eaire : une fois que k relations de la forme (4.2) sont obtenues, constuire

les matricesA= a

i

b

i

1≤i≤k

etM = c

ij

1≤i≤k

1≤j≤N

dans le noyau `a gauche de M tel que vA 6= 0 0 mod r. Un tel vecteur v existe et peut

ˆetre calcul´e facilement avec de l’alg`ebre lin´eaire ´el´ementaire d`es que k ≥ N et que les

relations sont lin´eairement ind´ependantes. Le logarithme discret de h en base g est alors

x=−(P

i

a

i

v

i

)/(P

i

b

i

v

i

) mod r.

Variante 2

1. Phase de recherche de relations :pour un choix d’entiera

i

al´eatoire dansZ/rZ, d´ecomposer –

lorsque cela est possible – l’´el´ement [a

i

]gdans la base de factorisation, autrement dit trouver

une relation de la forme

[a

i

]g=

N

X

j=1

[c

ij

]g

j

, o`uc

ij

Z. (4.3)

2. Phase d’alg`ebre lin´eaire : une fois que l’on a obtenu k relations ind´ependantes de la forme

(4.3), constuire le vecteur A= (a

i

)

1≤i≤k

ainsi que la matrice M = (c

ij

)

1≤i≤k

1≤j≤N

, puis r´esoudre

le syst`eme lin´eaireM X =A mod r. D`es lors quek≥N relations ind´ependantes, ce syst`eme

admet une unique solution qui peut ˆetre calcul´ee en utilisant de l’alg`ebre lin´eaire ´el´ementaire.

Le vecteurXsolution du syst`eme contient alors tous les logarithmes en base [m]gdes ´el´ements

de la forme [m]g

j

,g

j

∈ F.

3. Phase de descente : trouver une ´equation de la forme

[a]g+ [b]h=

N

X

j=1

[c

j

]g

j

, o`ub∧r= 1. (4.4)

En d´eduire le logarithme dehen calculantP

N

j=1

c

j

α

j

−ab

1

modr, o`uα

j

est le logarithme

discret de [m]g

j

en base [m]g.

Dans certains cas, il est ´eventuellement possible de ne consid´erer que des relations de la forme

N

X

j=1

[c

ij

]g

j

= 0, o`u c

ij

Z. (4.5)

(Ces deux formes (4.3) et (4.5) sont en fait similaires.) On cherche alors un vecteur non nul dans

le noyau de la matriceM = c

ij

1≤i≤k

1≤j≤N

mod r, qui donne les logarithmes des ´el´ements de la forme

[m]g

j

,g

j

∈ F, `a une constante multiplicative pr`es. On a ensuite besoin de deux relations du type

(4.4) pour la phase de descente.

L’exemple fondamental est celui o`u G= (Z/pZ)

avec ppremier. On prend pour base de

facto-risation l’ensemble des classes d’´equivalence des nombres premiers plus petits qu’une certaine borne

Bfix´ee. Un ´el´ement est alors d´ecomposable dans cette base de factorisation si son repr´esentant dans

{1;. . .;p−1}estB-lisse. Pour rendre la m´ethode efficace, on doit trouver le meilleur compromis :

en effet, si B est grand, alors la plupart des ´el´ements sont d´ecomposables ; en contrepartie, on a

besoin de beaucoup de relations, et les matrices intervenant dans la phase d’alg`ebre lin´eaire sont

d’autant plus grandes. D’un autre cˆot´e, si la base de factorisation est petite, alors on a besoin de

peu de relations et la phase d’alg`ebre lin´eaire est rapide ; par contre, la probabilit´e d’obtenir une

relation est beaucoup plus faible. Dans tous les cas, la matriceM est toujours tr`es peu dense ; en

particulier, on a int´erˆet `a appliquer des techniques appropri´ees pour pouvoir calculer des ´el´ements

de son noyau rapidement. On note que pour rendre cet exemple efficace, il est n´ecessaire d’utiliser

des techniques de crible pour acc´el´erer la phase de recherche de relations.

Pour l’analyse dans les sections suivantes, on aura souvent besoin de supposer que l’´el´ement

[a

i

]g (ou [a

i

]g+ [b

i

]h) `a d´ecomposer est uniform´ement r´eparti dans G. Si le sous-groupe engendr´e

par g n’est pas ´egal `a G, cette propri´et´e peut s’obtenir en consid´erant g

1

, . . . , g

t

∈ F tels que

hg, g

1

, . . . , g

t

i=G; on essaie alors de d´ecomposer des ´el´ements de la forme

[a

i

]g(+[b

i

]h) + [λ

i,1

]g

1

+. . .+ [λ

i,t

]g

t

,

o`u les a

i

, b

i

, λ

i,j

sont choisis al´eatoirement dans Z/rZ.

Alg`ebre lin´eaire

En g´en´eral, chaque d´ecomposition ne comporte que tr`es peu d’´el´ements de la base de

facto-risation. La matrice M qui intervient durant la phase d’alg`ebre lin´eaire est par cons´equent tr`es

creuse, ce qui permet d’utiliser des techniques adapt´ees pour la r´esolution du syst`eme lin´eaire

as-soci´e. L’id´ee est que la multiplication d’un vecteur par une matrice creuse est peu coˆuteuse et

requiert seulement C multiplications, o`u C est le nombre de coefficients non nuls de M. Il existe

principalement deux familles d’algorithmes it´eratifs de r´esolution de syst`emes lin´eaires, bas´ees sur

les techniques de Lanczos et de Wiedemann (voir [CFA

+

06, §20.3.3] pour une introduction sur le

sujet). Dans les deux cas, la complexit´e de la r´esolution est en O(CN) op´erations

3

dansZ/rZ, o`u

N est la taille de la base de factorisation (i.e. la taille deM). En utilisant des variantes “par blocs”,

il est possible de distribuer en partie ces algorithmes mais de fa¸con nettement moins efficace que

durant la phase de recherche de relations o`u la parall´elisation est imm´ediate.

La tr`es grande taille de la matrice M est en g´en´eral l’obstacle principal `a l’implantation des

algorithmes de calcul d’indices. Une solution partielle consiste `a calculer beaucoup plus de relations

que n´ecessaire, et de se servir de cette information redondante pour dans un premier temps diminuer

la taille de M avant de proc´eder `a la r´esolution du syst`eme associ´e : c’est le principe derri`ere les

variations “large primes” (voir section suivante) et l’´elimination gaussienne structur´ee, que l’on

pr´esente maintenant.

Quand G est le groupe multiplicatif d’un corps fini, on constate que la matrice M est non

seulement creuse, mais aussi structur´ee dans la mesure o`u les petits ´el´ements de F apparaissent

beaucoup plus fr´equemment que les grands dans les d´ecompositions. Certaines colonnes de M

sont donc plus denses que d’autres. De plus, comme d´ej`a remarqu´e la plupart des coefficients

sont ´egaux `a ±1. L’´elimination gaussienne structur´ee [LO91] commence par regarder si certains

facteurs n’apparaissent qu’une seule fois (i.e. une colonne ne contient qu’un seul coefficient non

nul) ; on supprime dans ce cas la colonne et la ligne correspondante. On supprime de mˆeme toutes

les colonnes ne contenant que des z´eros. On s´electionne ensuite les colonnes les plus denses, et on

cherche des lignes ne contenant qu’un seul coefficient non nul ´egal `a±1 dans les colonnes restantes ;

on se sert de ce coefficient comme pivot pour annuler tous les entr´ees non nulles de sa colonne,

puis on supprime la ligne et la colonne du pivot. Si certaines lignes deviennent trop denses dans ce

processus, on les supprime. On recommence alors `a la premi`ere ´etape et on ´elargit l’ensemble des

colonnes denses. On diminue ainsi la taille de la matrice, tout en pr´eservant la faible densit´e.

Dans cette th`ese, on consid`ere principalement des groupesGassoci´es `a des courbes alg´ebriques,

et les matrices M intervenant dans le calcul d’indices sont en g´en´eral peu structur´ees : les

co-3. Ces op´erations sont en pratique majoritairement des additions/soustractions, puisque les coefficients de la

matrice des relations sont presque toujours±1.

efficients sont plus uniform´ement r´epartis que dans le cas de (Z/pZ)

. Il est cependant possible

d’utiliser dans ce contexte l’´elimination gaussienne structur´ee, dont les performances restent

cor-rectes (cf. section 8.3). Pour l’´etude des complexit´es, on pr´ef´erera n´eanmoins utiliser les techniques

pr´esent´ees en section suivante, d’analyse plus ais´ee.