Racines Carrées dans les Extensions Quadratiques
de Corps Finis
Gora Adj
Institution
Centre de Recherche et d’Etudes Avançées de l’Institut Polytechnique National du Mexique
◮ Département d’Informatique, Mexico
◮ Environ 100 publications par an
Groupe :
Ensemble non videGmuni d’une loi de composition interne·tels que : (associativité)∀ x, y, z∈G,(x·y)·z=x·(y·z) (=x·y·z); (élément neutre) ∃e∈G:x∈G, x·e=e·x=x;
(inverse)∀x∈G,∃x′∈Gtel quex·x′=x′·x=e.
Anneau :
EnsembleA muni de deux lois de composition interne(+,∗)tels que :
+définit un groupe abélien surA, d’élément neutre0, et l’inverse d’un élémentxest noté−x;
Corps :
Un anneau dans lequel seul l’élément nul est non inversible pour la multiplication. (F∗
q=Fq\{0})
Corps fini ou groupe de Galois :
Un corps à qéléments notéFq ouGF(q). Dans ce cas,qest une puissance d’un nombre premier appelé caractéristiquedu corps.
Résidu quadratique
Un élément d’un corps admettant une racine carrée dans ce corps. Si le corps est Fq, il existe q−
1
2 résidus quadratiques dans F∗q.
a∈Fq est un résidu quadratique ssia q−1
Courbe elliptique sur un corps Fpn (p >3) :
L’ensemble des points(x, y)∈F2pn vérifiant l’équation
E :y2 =x3+ax+b,
où a, b∈Fpn.
Compression de point
Pour transmettre un point (x, y)∈Fpn, on envoie la coordonnée x et un bit pour le signe de y.
Puis retrouver y en calculant y0=
√
x3
+ax+bselon le bit de signe reçu.
Hachage vers un point
h ∈Fpn, lehaché d’un message M.
Si h est un résidu quadratique dansFpn,on calcule
y =√x3
Contenu
1 Extensions impaires
L’algorithme de Shanks pourq ≡3 (mod4) L’algorithme d’Atkin pour q≡5 (mod 8) L’algorithme de Kong pourq≡9 (mod 16) Algorithmes Généraux pourq ≡1 (mod16)
2 Extensions paires
Algorithme pour q≡3 (mod 4) Algorithme pour q≡1 (mod 4)
3 Comparaisons numériques
Comparaisons pour p≡3 (mod4) Comparaisons pour p≡1 (mod4)
√
·dansFpm p premier impair
mimpair
pm
≡1 mod 4
pm≡1 mod 8
pm
≡1 mod 16
Alg. de Müller ou alg. de Tonelli-Shanks
pm
≡9 mod 16
Alg. de Kong
pm
≡5 mod 8
Alg. d’Atkin
pm≡3 mod 4
L’algorithme de Shanks pourq≡3 (mod4)
Si q=pm≡3 (mod 4). En intégrant le test de résidu quadratique à l’algorithme de Shanks [5], on obtient l’algorithme 1.
Algorithme 1 Algorithme de Shanks pourq ≡3 (mod4)
Entrée: a∈F∗ q.
Sortie: xtel quex2 =a, s’il existe et
faux autrement. 1: a1←a
q−3 4 . 2: a0←a21a.
3: Sia0=−1Alors
4: Retourner faux. 5: Fin Si
6: x←a1a. {aq+14 } 7: Retourner x.
Avec la méthode binaire pour l’exponentiation ont obtient une complexité de :
1 2 h
⌊log2(q)⌋+ 1
i
Mq+h⌊log2(q)⌋ −1
i
L’algorithme d’Atkin pourq≡5 (mod8)
Quand q≡5 (mod 8), on peut employer la méthode d’Atkin [1] .
Algorithme 2 Algorithme d’Atkin
Entrée: a∈F∗ q.
Sortie: xtel quex2 =a, s’il existe et
faux autrement. PRECALCUL
1: t←2q− 5 8 .
CALCUL
1: a1←a
q−5 8 .
2: a0←(a21a)2. 3: Sia0=−1Alors 4: Retourner faux. 5: Fin Si
6: b←ta1. 7: i←2(ab)b. 8: x←(ab)(i−1). 9: Retourner x.
La complexité de l’algorithme 2 est de :
1 2 h
⌊log2(q)⌋+ 11
i
Mq+h⌊log2(q)⌋ −1
i
L’algorithme de Kong pourq≡9 (mod16)
L’algorithme de Kong et al.[2] est une généralisation de la méthode d’Atkin pourq ≡9 (mod16), avec une complexité moyenne egale à :
1 2 h
⌊log2(q)⌋+ 16
i
Mq+ h
⌊log2(q)⌋+ 1
i
L’algorithme de Kong pourq≡9 (mod16)
Algorithme 3 Algorithme de Kong pour q≡9 (mod 16)
Entrée: a∈F∗ q.
Sortie: xtel quex2 =a, s’il existe et
faux autrement. PRECALCUL
1: c0←1
2: Tant quec0= 1Faire
3: Choisirc∈F∗
q. 4: d←cq−
9 8 . 5: c0←(dc)4. 6: Fin Tant que
7: e←c2,t←2q− 9 16 .
CALCUL
1: a1←a
q−9 16 . 2: a0←(a21a)4.
3: Sia0=−1Alors
4: Retourner faux. 5: Fin Si
6: b←ta1. 7: i←2(ab)b. 8: r←i2. 9: Sir=−1Alors
10: x←(ab)(i−1). 11: Sinon
12: u←bd. 13: i←2u2ea. 14: x←uca(i−1). 15: Fin Si
Algorithmes Généraux pourq≡1 (mod16)
Algorithme 4 Algorithme de Tonelli-Shanks
Entrée: a∈F∗ q
Sortie: xtel quex2 =a, s’il existe et
faux autrement. PRECALCUL
1: Mettreq−1sous la forme2st, avec
timpair.
2: c0←1.
3: Tant quec0= 1Faire
4: Selectionner aléatoirement c ∈
F∗ q. 5: z←ct. 6: c0←c21s−1. 7: Fin Tant que
COMPUTATION
1: ω←at− 1 2 . 2: a0←(ω2a)2s−1. 3: Sia0=−1Alors
4: Retourner faux. 5: Fin Si
6: v←s,x←aω,b←xω.
7: Tant queb6= 1Faire
8: Chercher le plus petit entier
r>0tel queb2r = 1.
9: ω←z2v−r−1,z←ω2,b←bz,
x←xω,v←r. 10: Fin Tant que
Algorithmes Généraux pourq≡1 (mod16)
L’Algorithme 4 de Tonelli-Shanks [6] a une complexité moyenne de :
1 2 h
⌊log2(q)⌋+s+ 3
i
Mq+ h
⌊log2(q)⌋+
1 4 s
2
+ 3s−12
+ 1
2s−1
i
Sq,
où s est défini tel queq−1 = 2st, avec t impair.
Algorithmes Généraux pourq≡1 (mod16)
Soient α et β ∈Fq. La suite de Lucas Vk(α, β)
k>0 est :
V0 = 2, V1=α and Vk=αVk−1−βVk−2, pourk >1.
L’algorithme 5 calcule Vk(α,1) pourα etk >1donnés,
Algorithme 5 Evaluation de terme d’une suite de Lucas
Entrée: α∈Fq etk>2.
Sortie: Vk(α,1).
1: Ecrire k sous la forme binaire
Pl−1
j=0bj2j. 2: d0←α. 3: d1←α2−2.
4: Pourjdécroissant del−2vers 1
Faire
5: d1
−bj ← d0d1 − α,
dbj ←d
2 1−bj −2.
6: Fin Pour
7: if b0= 1 thenv←d0d1−αelse v←d2
0−2.
8: Retourner v.
Sa complexité est : h⌊log2(q)⌋ − 5 2
i
Mq+ h
⌊log2(q)⌋ − 3 2
i
Algorithmes Généraux pourq≡1 (mod16)
Algorithme 6 Algorithme de Müller [4]
Entrée: a∈F∗ q.
Sortie: xtel quex2 =a, s’il existe et
faux autrement. 1: Sia= 4Alors
2: Retourner 2. 3: Fin Si
4: t←1.
5: a1←(at2−4)
q−1 2 . 6: Tant quea1= 1Faire
7: Selectionner aléatoirement u∈
F∗ q\{1}. 8: t←u
9: Siat2−4 = 0Alors 10: Retourner 2t−1.
11: Fin Si
12: a1←(at2−4)
q−1 2 . 13: Fin Tant que
14: α←at2−2. 15: x←Vq−1
4
(α,1)/t.
16: a0←x2−a. 17: Sia06= 0Alors
18: Retourner faux. 19: Fin Si
Algorithmes Généraux pourq≡1 (mod16)
Complexité de l’algorithme 6 :
Si (a−4)q−21 =−1, en moyenne, on a
h
3
2⌊log2(q)⌋ −3
i
Mq+ h
2⌊log2(q)⌋ − 3 2
i
Sq.
Si (a−4)q−21 = 1, en moyenne, on a
h
5
2⌊log2(q)⌋ −3
i
Mq+h4⌊log2(q)⌋ − 5 2
i
Sq+Iq.
En faisant la moyenne dans ces deux cas, on obtient une complexité moyenne de :
h
2⌊log2(q)⌋ −3
i
Mq+ h
3⌊log2(q)⌋ −2
i
Algorithme pourq≡3 (mod4)
Remarque
Soit K un corps fini et a∈K un résidu quadratique dansK. Soit b∈K tel qu’il existe un entier simpair vérifiant b2
as = 1, alors bas+12 est un racine carrée dea.
Supposons q=pn/2≡3 (mod 4) eta∈Fq2. En posant
b= (1 +aq−21)
q−1
2 et i=√−1,
on a :
x= (
iaq+14 sia
q−1
2 =−1;
baq+14 autrement.
Algorithme pourq≡3 (mod4)
L’équation 1 se traduit facilement en l’algorithme 7 avec une complexité de :
h
⌊log2(q)⌋+ 2
i
Mq2+
h
2⌊log2(q)⌋ −3
i
Sq2.
Algorithme 7 Racine carrée dansFq2, avec q ≡3 (mod4)
Entrée: a ∈ F∗
q2 et i ∈ Fq2 tel que
i=√−1.
Sortie: xtel quex2 =a, s’il existe et
faux autrement. 1: a1←a
q−3 4 .
2: α←a1(a1a). {aq−1 2 }
3: a0←αqα. {aq2−1 2 } 4: Sia0=−1Alors
5: Retourner faux.
6: Fin Si
7: x0←a1a. {aq+14 } 8: Siα=−1Alors
9: x←ix0.
10: Sinon
11: b←(1 +α)
q−1 2 . 12: x←bx0.
13: Fin Si
Algorithme pourq≡1 (mod4)
Algorithme 8 Racine carrée dansFq2, avec q ≡1 (mod4)
Entrée: a∈F∗ q2.
Sortie: xtel quex2 =a, s’il existe et
faux autrement. PRECALCUL
1: c0←1.
2: Tant quec0= 1Faire
3: Sélectionner aléatoirement c
dansF∗
q.
4: d←c
q−1 2 .
5: c0←dqd. {cq2−1 2 } 6: Fin Tant que
7: e←(dc)−1.
{(cq+12 )−1} 8: f←(dc)2. {cq+1}
CALCUL
1: b←a
q−1 4 .
2: a0←(b2)qb2. {aq2−1 2 } 3: Sia0=−1Alors
4: Retourner faux. 5: Fin Si
6: Sibqb= 1Alors 7: x0←SQRT
q(b
2a).
8: x←x0bq. 9: Sinon
10: x0←SQRT q(b
2af).
Algorithme pourq≡1 (mod4)
Dans l’algorithme 8, SQRTq(·) désigne l’opération d’extraire une racine carrée d’un résidu quadratique dans Fq en utilisant la méthode la plus appropriée.
Si n(Fq2 =Fpn) est divisible par 4,
c.-à-d., Fq est aussi extension de degré paire deFp,
on peut alors réutiliser l’algorithme 8 ou faire appel à l’algorithme 7 pour avoir une racine carrée de b2
aou b2
Algorithme pourq≡1 (mod4)
La complexité moyenne de l’algorithme 8 est de :
h
⌊log2(q)⌋+ 1
i
Sq2 +
h1
2⌊log2(q)⌋+ 19
6 i
Mq2 + #SQRTq,
Pour illustrer la compétitivité de nos algorithmes nous avons choisi :
pourq =p3
≡3 (mod 4),n= 6 = 2×3 et l’extension est construit selon le schéma
Fp ⊂Fp3 ⊂Fp6;
pourq =p6
≡1 (mod 4),n= 12 = 22
×3 et l’extension est construit selon le schéma
Comparaisons pourp≡3 (mod4)
Posons
p1= 36u 4
+ 36u3+ 24u2+ 6u+ 1, avec u=−(262
+ 255
+ 1)
et
p2= 2 256
−2224+ 2192+ 296−1.
Tableau 1:Nombre de multiplications dansFp pourp= 3 (mod4)
Paramètre Algo 3mod4 Algo Kong Algo T-Shanks Algo Muller
p1[254bits] 11379 46635 46374 71263
Comparaisons pourp≡1 (mod4)
Posons
p3 = 36u 4
+ 36u3+ 24u2+ 6u+ 1, avec u= 262−254+ 244
et
p4= 36u 4
[image:24.363.25.351.43.260.2]+ 36u3+ 24u2+ 6u+ 1, avec u= 263−249
Tableau 2:Nombre de multiplications dansFp pourp= 1 (mod4)
Paramètre Algo 1mod4 Algo Kong Algo T-Shanks Algo Muller
p3[254bits] 13751 —– 305616 428628
√
·dansFpn p premier impair
n pair
pn/2
≡1 mod 4
Nouv. alg. 1 mod 4
pn/2
≡3 mod 4
Nouv. alg. 3 mod 4
n impair
p≡1 mod 4
p≡1 mod 8
p≡1 mod 16
Alg. de Müller ou alg. de Tonelli-Shanks
p≡9 mod 16
Alg. de Kong
p≡5 mod 8
Alg. d’Atkin
p≡3 mod 4
Objectif futurs
Aprofondir les techniques utilisées pour application à l’exponentiation
A.O.L. Atkin.
Probabilistic primality testing, summary by F. Morain.
Research Report 1779, INRIA, pages 159–163, 1992.
F. Kong, Z. Cai, J. Yu, and D. Li.
Improved generalized atkin algorithm for computing square roots in finite fields.
Information Processing Letters, vol. 98, no. 1 :1–5, 2006.
S. Lindhurst.
An analysis of shanks’s algorithm for computing square roots in finite fields.
CRM Proc. and Lecture Notes, Vol. 19 :231–242, 1999.
S. Müller.
On the computation of square roots in finite fields.
D. Shanks.
Five number-theoretic algorithms.
Proceedings of the second Manitoba conference on numerical mathematics, pages 51–70, 1972.
A. Tonelli.
Bemerkung uber die auflosung quadratischer congruenzen.