3.4 G´ en´ eralisation des syst` emes de repr´ esentation adapt´ es
3.4.3 Utilisation de tables m´ emoire
Nous pouvons maintenant utiliser LLL pour minimiser cette base B en une seconde base B0.
B0 = LLL(B) = −3497 −1562 1332 9 −306 −3191 1629 −297 297 −306 −3191 1629 −1629 297 −306 −3191 (3.49)
Nous nous proposons d’utiliser le premier vecteur de la base retourner par LLL comme vecteur de Minkowski. Il est `a noter que mˆeme si celui-ci n’est peut ˆetre pas le plus court, il a quand mˆeme tous ces coefficients inf´erieurs `a 212, en valeur absolue. Cette “qualit´e” nous suffira amplement.
M [X] = −3497X3− 1562X2+ 1332X + 9
3.4.3 Utilisation de tables m´emoire
Le th´eor`eme 5 est central pour les syst`emes de repr´esentation adapt´es.
Premi`erement, le fait que la repr´esentation utilis´ee ne soit que tr`es l´eg`erement redondante rend possible son utilisation. Deuxi`emement, nous utilisons ce th´eor`eme pour cr´eer des algorithmes efficaces et g´en´eralistes sur les syst`emes de repr´esentation adapt´es.
Dans cette partie, nous utilisons des tables m´emoires pour pouvoir effectuer la r´eduction des coefficients (RedCoef) qui manque aux syst`emes de repr´esentation adapt´es g´en´eralistes pour pouvoir avoir une arithm´etique compl`ete. Nous rappelons qu’il ne manque `a l’algorithmique propos´e dans la section 3.2 qu’un algorithme pour effectuer la r´eduction interne RedInt. Grˆace `a l’algorithme RedCoef propos´e dans la section 3.2, nous savons que notre besoin correspond exactement `a un algorithme qui r´eduit un vecteur u tel que kuk∞< 2keen un vecteur v ´equivalent tel que kvk∞< 2ks
avec ks < ke.
Nous proposons de reprendre l’id´ee du premier algorithme RedInt en s´eparant le polynˆome U de la partie haute du polynˆome L de la partie basse des coefficients.
Cette fois ci, nous m´emorisons pour chaque polynˆome U 2ks−1 un polynˆome ´equivalent V mais
dont les coefficients sont plus petit que 2ks−1. Ainsi apr`es addition, nous retournons un vecteur s
L ... U ks− 1 an−1an−2 a1 ke− ks+ 1 a0
Fig. 3.4 – La d´ecomposition des coefficients du vecteur a.
Nous proposons l’algorithme 36 utilisant une table m´emoire MEM. Algorithme 36 : RedInt avec M´emorisation
Input : a ∈ Zn avec kak∞< 2ke
Data : B = (p, n, γ, ρ)
MEM avec MEM[u] = v tel que u2ks−1 B≡v et kuk
∞< 2ke−ks+1, kvk∞< 2ks−1
Output : s≡a avec kskB ∞< 2ks
begin
a = u2ks−1+ l
s ← MEM(u) + l end
La remarque capitale pour la suite est qu’il faut imp´erativement que pour tout vecteur u, il existe bien un vecteur v correspondant. Or ceci est possible uniquement si le syst`eme de repr´esentation adapt´e B est tel que 2ks−1≤ ρ
min. Nous voyons l’importance du th´eor`eme 5 qui donne directement
la valeur minimum pour ksqui est capitale pour la rapidit´e et le coˆut de la r´eduction des coefficients
RedCoef.
ks=
1
nlog2p + log2(|a| + |b|) + 1
(3.50) Or puisque nous avons ρ = 2ks, nous pouvons ´evaluer la qualit´e des syst`emes de repr´esentation
qui utilisent l’algorithme 36.
π = 2 + 2 log2(|a| + |b|)
La complexit´e de l’algorithme 36 est d’un appel m´emoire et d’une addition vectorielle (2eligne de
l’algorithme). La premi`ere ligne de l’algorithme ne n´ecessite qu’un simple d´ecalage. Cet algorithme a donc un tr`es faible coˆut. Il nous faut aussi analyser la contrepartie de cette grande rapidit´e : la m´emorisation. La table m´emoire MEM a en entr´ee des vecteurs de n chiffres sign´es de ke− ks+ 1
bits et en sortie des vecteurs de n chiffres sign´es de ks− 1 bits. Au total, la taille #MEM de la table
m´emoire MEM est donn´ee par l’´equation 3.51.
Cette m´emorisation peut sembler trop coˆuteuse mˆeme si ke peut ˆetre choisi tr`es proche de ks.
Ceci ralentit la r´eduction mais n’utilise qu’une petite table m´emoire MEM.
Dans l’id´ee de diminuer le nombre d’entr´ees de la table m´emoire afin de limiter sa taille, nous utilisons la forme polynomiale des syst`emes de repr´esentation adapt´es. Le vecteur u `a m´emoriser peut s’´ecrire sous la forme d’un polynˆome U avec deg(U ) < n. Nous d´ecomposons le polynˆome U de degr´e < n en l = dnde polynˆomes Ui de degr´e < d.
d d d L U l Ui U0 Ul−1 a0 a1 ... an−2 ks− 1 ke− ks+ 1 an−1
Fig. 3.5 – Une seconde d´ecomposition des coefficients du vecteur a.
La d´ecomposition suit l’´equation 3.52.
U =
l−1
X
i=0
Ui(Xd)i (3.52)
Nous d´eduisons de cette premi`ere ´equation une deuxi`eme qui nous sert pour limiter le nombre de valeurs `a m´emoriser (Voir ´Equation 3.53).
MEM(U ) ≡
l−1
X
i=0
MEM(Ui)(Xd)imod (Xn− aX + b) (3.53)
Grˆace `a cette ´equation, nous aurons en entr´ee de la table m´emoire uniquement des ´el´ements de d chiffres sign´es de ke− ks+ 1 bits. Nous pouvons maintenant proposer l’algorithme 37.
Algorithme 37 : RedInt avec Faible M´emorisation Input : A et (p, n, γ, ρ) avec kAk∞< 2ke
Data : MEM avec MEM[U ] = V tel que U 2ks−1 B≡V et kU k
2 < 2ke−ks+1, kV k2 < 2ks−1 Output : S ∈ (p, n, γ, ρ) avec kSk∞< 2ks et S B ≡A begin A = U 2ks−1+ L U = U0+ U1Xd+ U2X2d+ ... + U2X(l−2)d+ U2X(l−1)d S ← L for i ← 0 to l − 1 do S ← S + MEM(Ui) S ← SXdmod E end end
La taille #MEM de la table m´emoire MEM est fortement diminu´ee (Voir ´Equation 3.54).
#MEM = nks2d(ke−ks+2) bits. (3.54)
´
Evidement, la contre-partie cette fois ci du gain sur la m´emorisation est l’augmentation de la complexit´e. Nous effectuons maintenant l appels `a MEM avec l additions vectorielles, auxquels il faut encore ajouter une addition vectorielle pour la r´eduction externe.
Enfin, il faut r´e´evaluer ks. Sa valeur d´epend maintenant du polynˆome V =
Pl−1
i=0MEM(Ui)(Xd)i mod E. Celui-ci doit ˆetre tel que kvk∞ < 2ks
−1 pour ksk < 2ks. Apr`es trans-
formation, nous obtenons l’´equation 3.55.
ks =
1
nlog2p + 2 log2(|a| + |b|) + log2l + 1
(3.55) Nous pouvons r´esumer les solutions propos´ees dans le tableau 3.7.
RedInt avec Matrice avec M´emorisation avec Faible M´emorisation π ≤ 2 ≤ 2 + log2(|a| + |b|) ≤ 2 + log2l + 2 log2(|a| + |b|)
Addk φ(M) n n(l + 1)
#MEM - nks2n(ke−ks+2) nks2d(ke−ks+2)
Tab. 3.7 – R´ecapitulatifs des solutions pour RedInt.
3.4.4 Transcription d’algorithmes connus dans les syst`emes de repr´esentation