• Aucun résultat trouvé

Op´erations sur les corps finis

N/A
N/A
Protected

Academic year: 2022

Partager "Op´erations sur les corps finis"

Copied!
138
0
0

Texte intégral

(1)

Op´ erations sur les corps finis

Journ´ ee S´ ecurit´ e Num´ erique du GDR SoC-SiP

JC Bajard - LIP6 UPMC (Paris 6) France

16 Nov. 2011

(2)

Contexte

I

Koblitz en 1987 [Kob87] introduit l’utilisation des courbes elliptiques sur des corps finis en cryptographie.

I

Groupe des Points d’une courbe ` a coordonn´ ees dans un corps finis

I

Addition : Intersection d’une droite passant par deux points de la courbe avec la courbe

I

Op´ erations sur les corps finis : addition, multiplication,

division.

(3)

Contenu

Repr´ esentations sur les Corps Finis La multiplication dans GF (p )

Retour sur la multiplication de deux entiers R´ eduction modulaire sur les entiers

Pour des moduli particuliers Algorithmes g´en´eraux

Multiplication dans GF (2

n

) Approches polynomiales Approches li´ ees aux bases Inversion dans un corps fini

Another Approach: Residue Systems Introduction to Residue Systems Modular reduction in Residue Systems Applications to Cryptography

Annexes

R´ ef´ erences

(4)

Repr´ esentations sur les Corps Finis

(5)

Des g´ en´ eralit´ es [LN85]

Un corps fini F (+, ×) est un ensemble fini F muni de deux lois internes

I

F (+) est un groupe ab´ elien

I

F (+, ×) est un anneau o` u tout ´ el´ ement (sauf 0 pour ×) admet un inverse

Les corps finis les plus ´ el´ ementaires sont ceux dont le cardinal est un nombre premier p.

Le repr´ esentant le plus connu est le corps Z /p Z Z /p Z = {0, 1, 2, ..., p − 1}

Le calcul sur ces corps utilise l’arithm´ etique modulaire classique.

(6)

Extension de corps finis

Les autres corps finis sont de la forme GF (p

m

) avec p premier. p est la caract´ eristique, si u ∈ GF (p

m

) alors p × u = 0.

I

soit l’ensemble des restes des polynˆ omes ` a coefficients dans GF (p) modulo un polynˆ ome irr´ eductible P (X ) de degr´ e m (op´ erations modulaires sur les polynˆ omes)

I

soit l’ensemble des puissances d’un ´ el´ ement primitif g , GF (p

m

) = {0, g

0

, g

1

, ..., g

pm−2

}

I

soit l’ensemble des combinaisons lin´ eaires d’une base : canonique {1, α, α

2

, ..., α

m−1

} ou normale {α, α

p

, α

p2

..., α

pm−1

}

o` u α racine du polynˆ ome irr´ eductible

Un ´ el´ ement de GF (p

m

) est donc souvent repr´ esent´ e par un

m−uplet d’´ el´ ements de GF (p).

(7)

Exemple dans GF (4)

(AttentionGF(4)6=Z/4Z)

I

Repr´ esentation polynomiale ` a coefficient dans GF (2) : 0, 1, X , 1 + X .

I

L’addition se fait simplement sur GF (2) : 1 + (1 + X ) = X .

I

Par contre pour le produit nous devons faire une r´ eduction li´ ee au polynˆ ome irr´ eductible utilis´ e pour la repr´ esentation des

´

el´ ements du corps.

I X2+X+ 1 est irr´eductible surGF(2), GF(4) peut ˆetre assimil´e `aGF(2)[X]/X2+X+ 1.

I multiplication modulo le polynˆome irr´eductibleX2+X+ 1, exemple :

X∗(1 +X) = (X+X2) mod (X2+X+ 1) = 1

I Le choix du polynˆome irr´eductible n’est donc pas sans cons´equence sur la complexit´e de la multiplication.

(8)

La multiplication dans GF (p)

Multiplication de deux entiers

(9)

Produit de deux nombres

via les polynˆomes

I

Soient A =

k−1

X

i=0

a

i

β

i

et B =

k−1

X

i=0

b

i

β

i

deux nombres en base β

I

Soient A(X ) =

k−1

X

i=0

a

i

X

i

et B (X ) =

k−1

X

i=0

b

i

X

i

les polynˆ omes associ´ es

I

Calcul du produit P = A × B :

1. Evaluation du produit polynomial : P(X) =A(X)×B(X) 2. Evaluation de la valeur: P(β) =A(β)×B(β)

(10)

Produit de deux nombres

via les polynˆomes : remarques

I

A l’´ etape 1, les coefficients p

i

obtenus sont inf´ erieurs ` a k × β

2

I

A l’´ etape 2, le calcul de P (β) revient ` a r´ eduire les p

i

en

propageant des retenues.

(11)

Repr´ esentation d’un polynˆ ome

I

Un polynˆ ome de degr´ e k − 1 peut ˆ etre d´ efini par la donn´ ee :

I desesk coefficientsai

A(X) =

k−1

X

i=0

aiXi

I deses valeurs en k points diff´erentsei

pour,i= 0,k−1 : A(ei) =

k−1

X

j=0

ajeij

lesei sont choisis suivant deux crit`eres : un calcul simple des A(ei) et une taille respectable desA(ei).

(12)

Produit de polynˆ omes

d´efinis par leurs coefficients

I

P (X ) = A(X ) × B (X ) = (

k−1

X

i=0

a

i

X

i

) × (

k−1

X

i=0

b

i

X

i

) =

2k−2

X

i=0

p

i

X

i

 p0

p1 ... pk−1

... p2k−3 p2k−2

=

a0 0 0 . . . 0

a1 a0 0 . . . 0

... ... . . . ...

ak−1 ak−2 ak−3 . . . a0

0 ak−1 ak−2 . . . a1

... ... . . . ...

0 0 . . . 0 ak−1

 b0 b1 ... bk−2

bk−1

Soit k

2

produits.

(13)

Produit de polynˆ omes

d´efinis par leurs valeurs en des points

I

P (X ) = A(X ) × B (X ) = (

k−1

X

i=0

a

i

X

i

) × (

k−1

X

i=0

b

i

X

i

) =

2k−2

X

i=0

p

i

X

i

est ´ evalu´ e en 2k − 1 diff´ erents points :

 

 

 

 

 

 

P (e

0

) = A(e

0

) × B(e

0

) P (e

1

) = A(e

1

) × B(e

1

)

.. .

P (e

2k−3

) = A(e

2k−3

) × B(e

2k−3

) P (e

2k−2

) = A(e

2k−2

) × B(e

2k−2

)

Soit 2k − 1 produits.

(14)

Reconstruction des coefficients

M´ethode de Lagrange

I

La construction passe par une somme de k polynˆ omes tels que le i−i` eme vaut P (e

i

) en e

i

et 0 pour tous les autres e

j

, j 6= i .

P (X ) =

k−1

X

i=0

P (e

i

) Q

j6=i

(X − e

j

) Q

j6=i

(e

i

− e

j

)

(15)

Reconstruction des coefficients

M´ethode de Newton

I

L’id´ ee est d’´ ecrire le polynˆ ome comme dans un syst` eme de num´ eration en augmentant le degr´ e des polynˆ omes somm´ es.

P(X) =

k−1

X

i=0

ˆ pi

i−1

Y

j=0

(X−ej) = ˆp0+ ˆp1(X−e0) + ˆp2(X−e0)(X−e1) +. . .













 ˆ p0=p00 ˆ

p1= (p10 −pˆ0)/(e1−e0) . . .

ˆ

pi = (. . .(pi0−pˆ0)/(ei−e0)−pˆ1)/(ei−e1)−. . .−pˆi−1)/(ei−ei−1) . . .

ˆ

pk−1= (. . .(p0k−1−pˆ0)/(ek−1−e0)−pˆ1)/(ek−1−e1). . .−pˆk−2)/(ek−1−ek−2)

O` u, p

0i

= P(e

i

)

(16)

Produit de deux nombres

Algorithme Karatsuba (1)

I

Choix des points e

0

= 0, e

1

= −1 et e

2

= ∞

I

Nous avons :

A=

k−1

X

i=0

aiβi = (

k/2−1

X

i=0

ak/2+iβik/2+

k./2−1

X

i=0

aiβi=A1βk/2+A0

I

Point de vue polynomial : A(X ) = A

1

X + A

0

 

 

A(0) = A

0

A(−1) = A

0

− A

1

A(∞) = lim

X→∞

A

1

X

(17)

Produit de deux nombres

Algorithme Karatsuba (2)

I

Valeurs du polynˆ ome produit

P(0) =A0B0

P(−1) = (A0−A1)(B0−B1) P(∞) = lim

X→∞A1B1X2

I

Application de Newton

 ˆ

p0=P(0) =A0B0 ˆ

p1= (P(−1)−pˆ0)/(−1) = (A1−A0)(B0−B1) +A0B0 ˆ

p= lim

X→∞((P(∞)−pˆ0)/X −pˆ1)/(X+ 1) =A1B1

(18)

Produit de deux nombres

Algorithme Karatsuba (3)

I

Reconstruction





P(X) = pˆ0+ ˆp1X + ˆpX (X+ 1)

= A0B0

+((A1−A0)(B0−B1) +A0B0+A1B1)X +A1B1X2

I

Calcul

P(βk/2) = A0B0

+((A1−A0)(B0−B1) +A0B0+A1B1k/2 +A1B1βk

(19)

Produit de deux nombres

Algorithme Karatsuba (4) : Complexit´e

I

On note K (k ) le nombre d’op´ erations ´ el´ ementaires

I

On a la formule de r´ ecurrence K (k) = 3K (k/2) + αk en supposant les additions lin´ eaires

I

Nous obtenons, K (k) = O(k

log2(3)

)

(20)

Produit de deux nombres

Algorithme Toom Cook (1)

L’approche de Karatsuba se g´ en´ eralise, par exemple avec une d´ ecoupe en trois et donc 5 points diff´ erents

I

Choix des points e

0

= 0, e

1

= −1 , e

2

= 1, e

3

= 2 et e

4

= ∞

I

Nous avons :

A=A2β2k/3+A1βk/3+A0

I

Point de vue polynomial : A(X ) = A

2

X

2

+ A

1

X + A

0

 

 

 

 

 

 

A(0) = A

0

A(−1) = A

2

− A

1

+ A

0

A(1) = A

2

+ A

1

+ A

0

A(2) = 4A

2

+ 2A

1

+ A

0

A(∞) = lim

X→∞

A

2

X

2

(21)

Produit de deux nombres

Algorithme Toom Cook (2)

I

Comme pour Karatsuba nous appliquons Newton...













 ˆ

p0=P(0) =A0B0 ˆ

p1= (P(−1)−pˆ0)/(−1) ˆ

p2= ((P(1)−pˆ0)/(1)−pˆ1)/(2) ˆ

p3= (((P(2)−pˆ0)/(2)−pˆ1)/(3)−pˆ2)/(1) ˆ

p4= lim

X→∞((((P(∞)−pˆ0)/X−pˆ1)/(X+ 1)−pˆ2)/(X−1)−pˆ3)/(X−2)

=A2B2

I

Ici nous remarquons une division par 3 qui montre un peu les limites de cette approche lorsque l’on g´ en´ eralise

I

Reconstruction en calculant P (β

k/3

) avec :

P(X) = ˆp0+X( ˆp1+ (X+ 1)( ˆp2+ (X−1)( ˆp3+ ˆp4(X−2))))

(22)

Produit de deux nombres

Algorithme Toom Cook (3)

I

On note T

3

(k) le nombre d’op´ erations ´ el´ ementaires

I

On a la formule de r´ ecurrence T

3

(k ) = 5T

3

(k/3) + αk en supposant les additions lin´ eaires

I

Nous obtenons, T

3

(k) = O(k

log3(5)

)

(23)

Produit de deux nombres

Algorithme Toom Cook (4)

I

On g´ en´ eralise en d´ ecoupant en n

I

On note T

n

(k ) le nombre d’op´ erations ´ el´ ementaires

I

On a la formule de r´ ecurrence T

n

(k ) = (2n − 1)T

n

(k /n) + αk en supposant les additions lin´ eaires

I

Nous obtenons, T

n

(k ) = O(k

logn(2n−1)

)

I

Nous pouvons donc dire que la multiplication peut se faire

pour tout en O(k

1+

)

(24)

Transform´ ee de Fourier (Annexe 118)

Complexit´e Algorithme FFT

I

Les points consid´ er´ es sont des racines nieme de l’unit´e : ω

n

= 1, ω racine primitive.

I

Soit F (n) le nombre d’op´ erations ´ el´ ementaires pour une FFT de dimension n

I

Nous avons la r´ ecurrence : F (n) = 2F (n/2) + αn

I

D’o` u, F (n) = O(n log

2

n)

(25)

La multiplication dans GF (p)

R´ eduction modulaire sur les entiers

(26)

R´ eduction modulaire

pfix´e

Deux options :

I

p est choisi de fa¸con ` a rendre la r´ eduction simple p = β

n

− ξ avec ξ < β

n/2

I

p quelconque, choisi sur d’autres crit` eres, algorithmes

g´ en´ eraux

(27)

R´ eduction modulaire

p=βn−ξ avec 0≤ξ < βn/2etξ2≤βn−2βn/2+ 1

Nous avons C = A × B ≤ (p − 1)

2

I

On peut ´ ecrire C = C

1

β

n

+ C

0

I doncC=C1βn+C0≤(p−1)2nn−2(ξ+ 1)) + (ξ+ 1)2

I comme 0≤ξ < βn/2 nous avonsC1≤βn−2 et C0≤βn−1

I

Premi` ere passe de r´ eduction : C ≡ C

1

ξ + C

0

(mod p)

I C0 =C1ξ+C0≤(βn−2)ξ+ (βn−1)≤βnξ+ (βn−1)

I doncC0=C10βn+C00 avecC10 ≤ξetC00 ≤βn−1

I

Seconde passe de r´ eduction : C

0

≡ C

10

ξ + C

00

(mod p)

I C” =C10ξ+C00 ≤ξ2+ (βn−1) =βn+ (ξ2−1)

I nous avonsC” +ξ < βn+p

I

Derni` ere passe : si C ” + ξ ≥ β

n

alors R = C ” + ξ − β

n

sinon

R = C ”

(28)

R´ eduction modulaire

p=βn−ξ avec 0≤ξ < βn/2

I

Cette r´ eduction effectue deux produits par ξ, pour r´ eduire le coˆ ut nous avons deux options

I Choisirξtr`es petit par exempleξ < β pour avoir des produits chiffre×nombre

I Choisirξtr`es creux (peu de chiffres non nul et ´egaux `a un) pour remplacer les produits par des additions et des d´ecalages

I

On peut prendre ξ > β

n/2

mais dans ce cas le nombre de passes de r´ eduction augmente

I

On peut inclure une partie de la r´ eduction dans le produit

initial

(29)

R´ eduction modulaire

pfix´e de la formeβn−1

Le produit du point de vue matriciel le produit C = A × B s’´ ecrit :

1, β, β2, . . . β2n−2

a0 0 0 . . . 0

a1 a0 0 . . . 0

..

. ... . . . ...

an−1 an−2 an−3 . . . a0

0 an−1 an−2 . . . a1

..

. ... . . . ...

0 0 . . . 0 an−1

 b0

b1

.. . bn−2

bn−1

C≡ 1, β, β2, . . . βn−1 .M.

 b0

b1

.. . bn−2

bn−1

(modp)

avec β

n

≡ 1 (mod p)

(30)

R´ eduction modulaire

pfix´e de la formeβn−1

Le produit du point de vue matriciel avec β

n

≡ 1 (mod p), on a :

M=

a0 0 . . . 0 0

a1 a0 . . . 0 0

... ... . . . ...

an−2 an−3 . . . a0 0

an−1 an−2 . . . a1 a0

 +

0 an−1 an−2 . . . a1

0 0 an−1 . . . a2

... ... . . . ...

0 0 . . . 0 an−1

0 0 0 . . . 0

M =

a0 an−1 an−2 . . . a1

a1 a0 an−1 . . . a2

... ... . . . ...

an−2 an−3 . . . a0 an−1

an−1 an−2 . . . a1 a0

(31)

R´ eduction modulaire

pfix´e de la formeβn−1

I

Le point de vue matricielle pour

p = β

n

− 1 = (β − 1)(1 + ... + β

n−1

), donne un r´ esultat C < p × n × (β − 1) pour le coˆ ut d’un produit en O (n

2

)

I

On reprend la r´ eduction faite avec ξ = 1

I nous avonsC =C1βn+C0avecC1<n(β−1) etC0≤βn−1

I on poseC0 =C1+C0< βn+n(β−1)−1

I siC0+ 1≥βnalorsR=C0+ 1−βnsinonR=C0

(32)

R´ eduction modulaire

pfix´e de la formeβn−βt−1

Le produit du point de vue matriciel avec β

n

≡ β

t

+ 1 (mod p) Si t < n/2 alors la construction de M revient ` a une addition de deux matrices.

M=

a0 an−1 an−2 . . . a1

a1 a0 an−1 . . . a2

.. .

..

. . . .

.. . ..

. ..

. . . .

.. .

an−2 an−3 . . . a0 an−1

an−1 an−2 . . . a1 a0

+

0 0 0 . . . 0

.. .

..

. . . .

.. .

0 0 0 . . . 0

0 an−1 an−2 . . . a1

.. .

..

. . . .

.. .

0 . . . an−1 . . . an−t

+

0 . . . an−1 . . . an−t+1

.. .

..

. . . .

.. .

0 0 . . . 0 an−1

0 0 0 . . . 0

.. .

..

. . . .

.. .

0 0 0 . . . 0

+

0 0 0 . . . 0

.. .

..

. . . .

.. .

0 0 0 . . . 0

0 . . . an−1 . . . an−t+1

.. .

..

. . . .

.. .

0 0 . . . 0 an−1

(33)

R´ eduction modulaire

pfix´e de la formeβn−βt−1

I

L’approche matricielle pour p = β

n

− β

t

− 1, donne un r´ esultat C < 2p × n(β − 1)

2

pour le coˆ ut d’un produit en O(n

2

)

I

On reprend la r´ eduction faite avec ξ = β

t

+ 1

I C=C1βn+C0avecC1<2n(β−1)2 etC0≤βn−1

I on poseC0 =C1t+ 1) +C0< βn+n(β−1)2t+ 1)−1

I siC0+ 1 +βt ≥βnalorsR=C0+ 1 +βt−βnsinonR=C0

Ces approches s’inspirent de celles d´evelopp´ees pour GF(2k)dans la Th`ese de E. Mastrovito ”VLSI Architectures for Computation in Galois Fields.” PhD thesis, Linkoping University, Dept. Electr. Eng., 1991.

(34)

La multiplication dans GF (p)

R´ eduction modulaire sur les entiers

Cas plus g´ en´ eral

(35)

R´ eduction modulaire

Algorithme de P.Barrett

Nous d´ esirons r´ eduire A modulo P en ´ evaluant une approximation du quotient.

I

Conditions : β

n−1

≤ P < β

n

et A < P

2

< β

2n

I

On peut ´ ecrire que : A − P ×

AP

= 0 Ainsi, β

u+v

A − P ×

βn+uP

×

βn−vA

= 0

I βu+vAP× bβn+uP c × b A βn−vc= P

bβn+uP cf( A βn−v) +b A

βn−vcf(βn+uP ) +f( A βn−1)f(βP2n)

<P(βu+1+ (βn+v1) + 1) o`uf(.) la partie fractionnaire

SIun+ 1 etv2 alors (βu+1+βn+v)/βu+v<1

I

On en d´ eduit que A − P ×

$

bβ2n+1

P c×b A

βn−2c βn+3

%

< 2P

(36)

R´ eduction modulaire

Algorithme de P.Barrett

Barrett(A P )

Entr´ ees β

n−1

≤ P < β

n

et A < P

2

< β

2n

Sortie , R = A (mod P) et Q = b

AP

c Corps Q ←

$

bβ2n+1

P c×b A

βn−2c βn+3

%

R ← A − Q × P

Si R ≥ P Alors R ← R − P et Q ← Q + 1

Complexit´ e : 2 produits sur n + 1 chiffres

(37)

R´ eduction modulaire

Algorithme de P. Montgomery

Nous d´ esirons r´ eduire A modulo P .

I

Conditions : β

n−1

≤ P < β

n

et A < P β

n

I

Le principe de cette approche est d’ajouter ` a A un multiple de P tel que le r´ esultat soit un multiple de β

n

I

Ainsi, ce r´ esultat est divisible par β

n

qui repr´ esente dans la base β un simple d´ ecalage.

I

Cet algorithme donne en sortie A × β

−n

mod P

(38)

R´ eduction modulaire

Algorithme de P. Montgomery

Montgomery(A P)

Entr´ ees β

n−1

≤ P < β

n

et A < P β

n

< β

2n

Sortie , R = A × β

−n

mod P

Corps Q ← A × | − P

−1

|

βn

mod β

n

R ← (A + Q × P)

R est un multiple deβn

R ← R ÷ β

n la division parβnest un simple d´ecalage, on a(R<2P)

Si R ≥ P Alors R ← R − P

(op´eration facultative)

Complexit´ e : 2 produits sur n chiffres (en fait deux demi-produits)

(39)

R´ eduction modulaire

Notation de P. Montgomery

I

Pour ´ eviter l’accumulation de facteurs β

−n

mod P , nous utilisons la notation : A e = A × β

n

mod P

I

Elle s’obtient par A e = Montgomery(A × |β

2n

|

P

, P)

I

Elle est stable pour l’addition et la multiplication r´ eduite par Montgomery :

A e + B e = A ^ + B et AB f = Montgomery( A e × B e , P )

I

Retour ` a la notation standard : A = Montgomery( A, e P )

I

C’est l’algorithme le plus utilis´ e en cryptographie.

(40)

Multiplication modulaire interlac´ ee

Algorithme de P. Montgomery

Montgomery(A , B, P )

Entr´ ees β

n−1

≤ P < β

n

et AB < P β

n

< β

2n

et

B=

n−1

X

i=0

biβi

Sortie , R = A × B × β

−n

mod P avec (R < 2P ) Corps R ← 0

Pour i = 0 ` a i = n − 1 faire R ← (R + b

i

× A)

q

i

← r

0

× | − p

−10

|

β

mod β R ← (R + q

i

× P )

multiple deβ

R ← R ÷ β

on a(R<2P)en fin de boucle

Si R ≥ P Alors R ← R − P

(op´eration facultative)

(41)

Multiplication modulaire interlac´ ee en base deux

Algorithme de P. Montgomery

Montgomery(A , B, P )

Entr´ ees 2

n−1

≤ P < 2

n

et AB < 2

n

P < 2

2n

et

B=

n−1

X

i=0

bi2i

Sortie , R = A × B × 2

−n

mod P Corps R ← 0

Pour i = 0 ` a i = n − 1 faire R ← (R + b

i

• A)

q

i

← r

0 En fait| −p0−1|2= 1si P impair

R ← (R + q

i

• P )

multiple de2

R ← R >> 1

on a(R<2P)en fin de boucle

Si R ≥ P Alors R ← R − P

(op´eration facultative)

(42)

Multiplication modulaire Bipartite

M. Kaihara et N. Takagi 2007 IEEETC

I

Cet algorithme est bas´ e sur la remarque suivante :

On d´ efinit ∗ comme : X ∗ Y = (X × Y ) × R

−1

mod P On d´ ecompose Y = Y

h

× R + Y

l par exemple R=βn/2

donc X ∗ Y = (X × Y

h

mod P + X × Y

l

× R

−1

mod P) mod P

I

X × Y

h

mod P est calcul´ e via par exemple Barret.

I

X × Y

l

× R

−1

mod P est calcul´ e via Montgomery.

I

Ces deux calculs peuvent ˆ etre faits en parall` ele.

(43)

Multiplication dans GF (2

n

)

(44)

La multiplication dans GF (2

m

)

Dans la pratique la grande majorit´ e des implantations utilisent des corps de la forme GF (2

m

) o` u les op´ erations sur le corps de base GF (2) se r´ eduisent ` a des “et” et des “ou exclusif”.

Le produit sur un corps fini comprend une r´ eduction modulaire qui donne lieu ` a plusieurs types d’approches :

I

celles qui ne d´ ependent pas du corps choisi

I

celles qui au contraire exploitent les particularit´ es de ce dernier

I

celles utilisant des bases non canoniques...

(45)

Multiplication dans GF (2

n

)

Approches polynomiales

(46)

La multiplication dans GF (2

m

)

Le calcul de C (X ) = A(X ) × B(X ) mod P (X ) peut se faire en deux temps :

1. un produit de polynˆ omes C

0

(X ) = A(X ) × B (X ),

c00 c10 ...

cm−10

cm0

...

c2m−20

=

a0 0 ... 0 0

a1 a0 0 0 0

....

am−1 a1 a0

0 am−1 a1

...

0 0 0 am−1

×

b0

b1

...

bm−1

2. une r´ eduction modulo P (X ) : C (X ) = C

0

(X ) mod P(X )

(47)

Algorithme de Montgomery

I

Nous voulons le produit A(X ) ∗ B(X ) dans GF (2

m

) d´ efinie par P (X ) un polynˆ ome irr´ eductible de degr´ e m,

I

L’algorithme de Montgomery ´ evalue

A(X ) ∗ B(X ) ∗ R

−1

(X )modP(X ) o` u R(X ) est un ´ el´ ement fix´ e et R

−1

(X ) repr´ esente son inverse modP (X ).

Connaissant R(X), comme P(X)est irr´eductible il est possible de d´eterminer par avance R−1(X)et P0(X)tels que :

R−1(X)∗R(X) +P0(X)∗P(X) = 1

(48)

Algorithme de Montgomery (cas g´ en´ eral)

Entr´ ees : A(X ) et B(X ) deux polynˆ omes de degr´ es inf´ erieurs ` a m R´ esultat : T (X ) = A(X ) ∗ B(X ) ∗ R

−1

(X ) mod P(X )

Connues : P

0

(X ), R(X )

Produit : C (X ) = A(X ) ∗ B(X )

R´ eduction : Q(X ) = −C (X ) ∗ P

0

(X ) mod R(X ) T (X ) = C (X ) + Q(X ) ∗ P (X )

div R(X)

I La complexit´e de cet algorithme est due aux trois produits.

I La r´eduction moduloR(X) et la division par R(X) sont tr`es simples si R(X) =Xm.

(49)

Algorithme de Montgomery (d´ etails d’ex´ ecution)

I

Nous consid´ erons les repr´ esentations polynomiales,

A(X) = a0+a1X +a2X2+...+am−1Xm−1 B(X) = b0+b1X +b2X2+...+bm−1Xm−1 P(X) = p0+p1X +p2X2+...+pm−1Xm−1+Xm P0(X) = p00+p01X +p20X2+...+pm−10 Xm−1 I

Nous d´ ecomposons le calcul en calcul matriciel avec

I pour les parties basses, le calcul deQ(X)

I pour les parties hautes, le calcul du r´esultatT(X)

(50)

Algorithme de Montgomery (d´ etails d’ex´ ecution)

D´ ecomposition du calcul de Q(X ) :

(on int`egre la partie basse du produit)

Q(X) =

p00 0 ... 0 0

p01 p00 ... 0 0

p0m−2 p0m−3 ... p00 0 p0m−1 p0m−2 ... p01 p00

a0 0 ... 0 0

a1 a0 ... 0 0

am−2 am−3 ... a0 0 am−1 am−2 ... a1 a0

b0 b1 ...

bm−2 bm−1

D´ ecomposition du calcul de T (X ) :

(on int`egre la partie haute du produit)

0 am−1 ... a2 a1

0 0 ... a2 a1

0 0 ... am−1 am−2

0 0 ... 0 am−1

0 0 ... 0 0

b0 b1 ...

bm−3 bm−2 bm−1

+

1 pm−1 ... p2 p1

0 1 ... p2 p1

0 0 ... pm−1 pm−2

0 0 ... 1 pm−1

0 0 ... 0 1

q0 q1 ...

qm−3 qm−2 qm−1

(51)

Algorithme de Montgomery (complexit´ e du cas g´ en´ eral)

I

Complexit´ e en nombre d’op´ erations ´ el´ ementaires sur GF (2):

I m2+ (m−1)2multiplications (AND)

I (m−1)2+ (m−2)2+madditions (XOR).

I

Cet algorithme s’utilise g´ en´ eralement en repr´ esentation de Montgomery : A(X e ) = A(X ) × R(X ) (mod P )(X )

I

Cet algorithme se g´ en´ eralise facilement ` a GF (p

k

)

(52)

Montgomery it´ eratif dans GF (2

m

) avec R(X ) = X

m

Entr´ ees : A(X ) et B (X )

deux polynˆomes de degr´es inf´erieurs `a m

R´ esultat : T (X ) = A(X ) ∗ B(X ) ∗ R

−1

(X ) mod P (X ) Connues : P

0

(X ), R(X )

Initialisation T (X ) = 0

Boucle pour i = 0 ` a m − 1

T (X ) = T (X ) + a

i

∗ B(X )

T (X ) = (T (X ) + t

0

∗ P (X ))/X

(53)

Montgomery it´ eratif dans GF (2 ) avec R(X ) = X

I

A chaque it´ eration r´ eduction par X d’o` u au final r´ eduction par R(X ) = X

m

.

I

De plus, P(X ) est irr´ eductible donc son terme de degr´ e 0 vaut 1, idem pour P

0

(X ).

I

La complexit´ e en nombre de portes logiques :

I 2m2XOR(pour les sommes)

I et2m2AND(pour les produits)

(54)

M´ ethode de Mastrovito

Principe de l’approche

I GF(2m) est d´efinie par une racineαd’un polynˆome irr´eductibleP(X) de degr´em.

I Les ´el´ements deGF(2m) sont ´ecrit dans labase canonique

{1, α, α2, ..., αm−1}: A=

m−1

X

i=0

aiαi et B=

m−1

X

i=0

biαi.

I Le produitA×B dansGF(2m) est not´eC=

m−1

X

i=0

ciαi.

Mastrovito propose de construire Z , une matrice carr´ ee m × m d´ ependant de A, telle que :

C = Z × B

(55)

M´ ethode de Mastrovito

Construction de l’approche

Mastrovito donne un algorithme de construction de Z :

1. on construit la matrice (m−1)×m,Qcorrespondant `a l’´ecriture desXk pourk≥mmoduloP(X):

 Xm Xm+1 ...

X2m−2

=Q×

 X0 X1 ...

Xm−1

2. puis la matriceZ o`u :

zi,j=

ai pourj= 0, i= 0. . .m−1 u(i−j)∗ai−j+Pj−1

t=0qj−1−t,i∗am−1−t, sinon, o`uu(t) =

1 sit≥0 0 sinon

(56)

M´ ethode de Mastrovito

Coˆut de l’approche

I

La complexit´ e de cette m´ ethode vient en partie de la

construction de la matrice Z qui peut n´ ecessiter m

3

/2 And et Xor , le choix du polynˆ ome est donc fondamental.

I

Avec des polynˆ omes de la forme X

m

+ X + 1 le produit peut se faire avec m

2

− 1 XOR et m

2

AND.

I

Il existe des variantes pour des polynˆ omes

I compos´es que de 1 (all-one polynomial)

P(X) = 1 +X +X2+...+Xm,dans ce cas Xm+1≡1 (modP(X))

I ou encore r´eguli`erement espac´es

P(X) = 1 +X+X2∆+...+Xk∆=m, iciX(k+1)∆≡1 (modP(X)).

(57)

M´ ethode de Mastrovito I

Exemple avec un trinˆome

Consid´ erons GF (2

7

) muni d’une base canonique {1, α, α

2

, ..., α

6

} o` u α est une racine du polynˆ ome irr´ eductible P(X ) = X

7

+ X + 1.

Ainsi,

α7 =α+ 1 → (1,1,0,0,0,0,0) α82+α → (0,1,1,0,0,0,0) α932 → (0,0,1,1,0,0,0) α1043 → (0,0,0,1,1,0,0) α1154 → (0,0,0,0,1,1,0) α1165 → (0,0,0,0,0,1,1)

Q=

1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1

et

(58)

M´ ethode de Mastrovito II

Exemple avec un trinˆome

Z =

a0 a6 a5 a4 a3 a2 a1

a1 a0+a6 a6+a5 a5+a4 a4+a3 a3+a2 a2+a1

a2 a1 a0+a6 a6+a5 a5+a4 a4+a3 a3+a2

a3 a2 a1 a0+a6 a6+a5 a5+a4 a4+a3

a4 a3 a2 a1 a0+a6 a6+a5 a5+a4

a5 a4 a3 a2 a1 a0+a6 a6+a5

a6 a5 a4 a3 a2 a1 a0+a6

(59)

M´ ethode de Mastrovito

Exemple avec un All-One

Pour P (X ) = 1 + X + X

2

+ ... + X

m

la matrice Z peut se d´ ecomposer sous la forme Z = Z

1

+ Z

2

avec :

Z1=

a0 0 am−1 . . . a3 a2

a1 a0 0 am−1 a4 a3

. . . . . .

am−2 am−3 a0 0

am−1 am−2 a1 a0

et

Z2=

0 am−1 am−2 a1

0 am−1 am−2 a1

. . . 0 am−1 am−2 a1

(ie ligneXm)

(60)

Matrices de Toeplitz

Definition

Une n × n matrice de Toeplitz est de la forme [t

i,j

]

1≤i,j≤n

tels que t

i,j

= t

i−1,j−1

pour i, j ≥ 1.

T =

t

n

t

n+1

t

n+2

· · · t

2n−1

t

n−1

t

n

t

n+1

.. . t

n−2

t

n−1

t

n

.. .

.. . .. .

t

1

t

n−1

t

n

Note. Une addition de 2 Toeplitz demande seulement 2n − 1

additions.

(61)

Matrices de Toeplitz

Definition

Une n × n matrice de Toeplitz est de la forme [t

i,j

]

1≤i,j≤n

tels que t

i,j

= t

i−1,j−1

pour i, j ≥ 1.

T =

t

n

t

n+1

t

n+2

· · · t

2n−1

t

n−1

t

n

t

n+1

.. . t

n−2

t

n−1

t

n

.. .

.. . .. .

t

1

t

n−1

t

n

Note. Une addition de 2 Toeplitz demande seulement 2n − 1

additions.

Références

Documents relatifs

Sun Sufficient LMI Conditions for H 00 Output Feedback Stabilization of Linear Discrete-Time Systems,.. Shaked Optimal Linear Estimation and Data

Lai Distributed Nonlinear Power Control in Cellular Mobile Networks Witt Each User Communicating Witt Several Base.. Stations

Diehl A Feasible Moving Horizon Hoa Control Scheme for Constrained Uncertain Linear

Hou Multirate Output Feedback Based Robust Quasi-Sliding Mode Contrai of Discrete- Time

Middleton Invariant Manifold Based Reduced-Order Observer Design for Nonlinear Systems.... Boutat-Baddas Online Optimization of Data Transmission Polici~s for Wireless

´ Ecrire une fonction qui teste si deux arbres sont ´ egaux ` a rotation pr` es (on pourra dans un premier temps le faire dans le cas o` u tout noeud interne a exactement 2

[r]

PCSI5 Lyc´ ee Saint