Racines Carrées dans les Extensions Quadratiques de Corps Finis

29 

Loading....

Loading....

Loading....

Loading....

Loading....

Texto completo

(1)

Racines Carrées dans les Extensions Quadratiques

de Corps Finis

Gora Adj

(2)

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

(3)

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;

(4)

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.

aFq est un résidu quadratique ssia q−1

(5)

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, bFpn.

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

(6)

Contenu

1 Extensions impaires

L’algorithme de Shanks pourq 3 (mod4) L’algorithme d’Atkin pour q5 (mod 8) L’algorithme de Kong pourq9 (mod 16) Algorithmes Généraux pourq 1 (mod16)

2 Extensions paires

Algorithme pour q3 (mod 4) Algorithme pour q1 (mod 4)

3 Comparaisons numériques

Comparaisons pour p3 (mod4) Comparaisons pour p1 (mod4)

(7)

·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

(8)

L’algorithme de Shanks pourq≡3 (mod4)

Si q=pm3 (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: a1a

q−3 4 . 2: a0a21a.

3: Sia0=−1Alors

4: Retourner faux. 5: Fin Si

6: xa1a. {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+hlog2(q)⌋ −1

i

(9)

L’algorithme d’Atkin pourq≡5 (mod8)

Quand q5 (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: t2q− 5 8 .

CALCUL

1: a1a

q−5 8 .

2: a0(a21a)2. 3: Sia0=1Alors 4: Retourner faux. 5: Fin Si

6: bta1. 7: i2(ab)b. 8: x(ab)(i1). 9: Retourner x.

La complexité de l’algorithme 2 est de :

1 2 h

⌊log2(q)⌋+ 11

i

Mq+hlog2(q)⌋ −1

i

(10)

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

(11)

L’algorithme de Kong pourq≡9 (mod16)

Algorithme 3 Algorithme de Kong pour q9 (mod 16)

Entrée: a∈F∗ q.

Sortie: xtel quex2 =a, s’il existe et

faux autrement. PRECALCUL

1: c01

2: Tant quec0= 1Faire

3: ChoisircF

q. 4: dcq−

9 8 . 5: c0(dc)4. 6: Fin Tant que

7: ec2,t2q− 9 16 .

CALCUL

1: a1a

q−9 16 . 2: a0(a21a)4.

3: Sia0=−1Alors

4: Retourner faux. 5: Fin Si

6: bta1. 7: i2(ab)b. 8: ri2. 9: Sir=−1Alors

10: x(ab)(i1). 11: Sinon

12: ubd. 13: i2u2ea. 14: xuca(i1). 15: Fin Si

(12)

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: Mettreq1sous la forme2st, avec

timpair.

2: c01.

3: Tant quec0= 1Faire

4: Selectionner aléatoirement c

F∗ q. 5: zct. 6: c0c21s−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: vs,x,b.

7: Tant queb6= 1Faire

8: Chercher le plus petit entier

r>0tel queb2r = 1.

9: ωz2v−r−1,zω2,bbz,

x←xω,v←r. 10: Fin Tant que

(13)

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

+ 3s12

+ 1

2s−1

i

Sq,

où s est défini tel queq1 = 2st, avec t impair.

(14)

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α22.

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 : hlog2(q)⌋ − 5 2

i

Mq+ h

⌊log2(q)⌋ − 3 2

i

(15)

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: t1.

5: a1(at24)

q−1 2 . 6: Tant quea1= 1Faire

7: Selectionner aléatoirement u

F∗ q\{1}. 8: tu

9: Siat24 = 0Alors 10: Retourner 2t−1.

11: Fin Si

12: a1(at24)

q−1 2 . 13: Fin Tant que

14: αat22. 15: xVq−1

4

(α,1)/t.

16: a0x2a. 17: Sia06= 0Alors

18: Retourner faux. 19: Fin Si

(16)

Algorithmes Généraux pourq≡1 (mod16)

Complexité de l’algorithme 6 :

Si (a4)q−21 =−1, en moyenne, on a

h

3

2⌊log2(q)⌋ −3

i

Mq+ h

2log2(q)⌋ − 3 2

i

Sq.

Si (a4)q−21 = 1, en moyenne, on a

h

5

2⌊log2(q)⌋ −3

i

Mq+h4log2(q)⌋ − 5 2

i

Sq+Iq.

En faisant la moyenne dans ces deux cas, on obtient une complexité moyenne de :

h

2log2(q)⌋ −3

i

Mq+ h

3log2(q)⌋ −2

i

(17)

Algorithme pourq≡3 (mod4)

Remarque

Soit K un corps fini et aK un résidu quadratique dansK. Soit bK tel qu’il existe un entier simpair vérifiant b2

as = 1, alors bas+12 est un racine carrée dea.

Supposons q=pn/23 (mod 4) etaFq2. 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.

(18)

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

2log2(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: a1a

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: x0a1a. {aq+14 } 8: Siα=−1Alors

9: xix0.

10: Sinon

11: b(1 +α)

q−1 2 . 12: xbx0.

13: Fin Si

(19)

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: c01.

2: Tant quec0= 1Faire

3: Sélectionner aléatoirement c

dansF∗

q.

4: dc

q−1 2 .

5: c0dqd. {cq2−1 2 } 6: Fin Tant que

7: e(dc)−1.

{(cq+12 )−1} 8: f(dc)2. {cq+1}

CALCUL

1: ba

q−1 4 .

2: a0(b2)qb2. {aq2−1 2 } 3: Sia0=−1Alors

4: Retourner faux. 5: Fin Si

6: Sibqb= 1Alors 7: x0SQRT

q(b

2a).

8: xx0bq. 9: Sinon

10: x0SQRT q(b

2af).

(20)

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

(21)

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,

(22)

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

(23)

Comparaisons pourp≡3 (mod4)

Posons

p1= 36u 4

+ 36u3+ 24u2+ 6u+ 1, avec u=(262

+ 255

+ 1)

et

p2= 2 256

−2224+ 2192+ 2961.

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

(24)

Comparaisons pourp≡1 (mod4)

Posons

p3 = 36u 4

+ 36u3+ 24u2+ 6u+ 1, avec u= 262254+ 244

et

p4= 36u 4

+ 36u3+ 24u2+ 6u+ 1, avec u= 263249

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

(25)

·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

(26)

Objectif futurs

Aprofondir les techniques utilisées pour application à l’exponentiation

(27)

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.

(28)

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.

(29)

Figure

Tableau 2: Nombre de multiplications dans Fp pour p = 1 (mod 4)
Tableau 2 Nombre de multiplications dans Fp pour p 1 mod 4 . View in document p.24

Referencias

Actualización...