introduction aux corps finis. intérêt les opérations sur lanneau des entiers classiques sont...

32
Introduction aux corps finis

Upload: jerome-fernandez

Post on 03-Apr-2015

112 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction aux corps finis. Intérêt Les opérations sur lanneau des entiers classiques sont relativement lentes. Les calculs dans les corps finis peuvent

Introduction aux corps finis

Page 2: Introduction aux corps finis. Intérêt Les opérations sur lanneau des entiers classiques sont relativement lentes. Les calculs dans les corps finis peuvent

Intérêt

• Les opérations sur l’anneau des entiers classiques sont relativement lentes.

• Les calculs dans les corps finis peuvent être fait beaucoup plus vite, surtout sur architectures dédiées.

• Pour cette raison, il existe des cryptogrammes utilisant les corps finis (ex: courbes elliptiques)

• De plus ils sont utilisés dans d’autres domaines des communications (codes en blocs, Reed-Solomon, BCH, codes de Goppa …)

Page 3: Introduction aux corps finis. Intérêt Les opérations sur lanneau des entiers classiques sont relativement lentes. Les calculs dans les corps finis peuvent

Notion de corps

• Un corps est un anneau où tous les éléments non nuls sont inversibles.

• Exemples: l’ensemble des réels, des complexes ou des quaternions sont des corps.

• L’ensemble des entiers ou des entiers relatifs sont des anneaux mais pas des corps.

• Z/2Z est un corps, Z/4Z n’en est pas un.• L’ensemble Q[2] formé des réels de la forme

a+b2 avec a,bQ est un corps.

Page 4: Introduction aux corps finis. Intérêt Les opérations sur lanneau des entiers classiques sont relativement lentes. Les calculs dans les corps finis peuvent

Polynômes irréductibles

• On dit qu’un polynôme P est irréductible s’il n’admet pas de factorisation.

• Cette notion dépend de l’ensemble où sont considérés les coefficients de P.

• Exemple: Prenons P(X)=X2-2. Si on considère ce polynôme comme un polynôme de R[X], alors il n’est pas irréductible (P(X)=(X+2)(X-2)).

• Par contre, si on considère P(X) comme un polynôme de Q[X], P est irréductible.

Page 5: Introduction aux corps finis. Intérêt Les opérations sur lanneau des entiers classiques sont relativement lentes. Les calculs dans les corps finis peuvent

Condition nécessaire

• Soit P un polynôme à coefficients dans K.• Si P est irréductible, alors P ne s’annule pas sur K. Par

contre on n’a pas la réciproque.• Preuve: Soit aK, tel que P(a)=0. On fait alors la division

euclidienne de P par (X-a) et on a P(X)=(X-a).Q(X)+R(X) avec deg(R)<deg(X-a)=1. R est donc réduit à une constante de K et donc P(X)=(X-a).Q(X)+b avec bK. Or P(a)=0 et donc b=0. Donc P(X)=(X-a).Q(X) et P n’est pas irréductible.

• Posons P(X)=X4-4X2+4=(X2-2)2. Ce polynôme n’est pas irréductible dans Q[X] et pourtant il ne s’annulle pas dans Q.

Page 6: Introduction aux corps finis. Intérêt Les opérations sur lanneau des entiers classiques sont relativement lentes. Les calculs dans les corps finis peuvent

Théorèmes principaux

• Théorème: Soit p un nombre premier et I(X) un polynôme irréductible de degré n1 dans Z/pZ[X]. Alors (Z/pZ[X])/I est un corps. Il possède pn éléments et il ne dépend pas de I (seulement du degré de I). Ce corps est appelé corps de Galois à pn éléments, noté CG(pn) (ou GF(pn) en anglais).

• Théorème: Les seuls corps finis qui existent sont les corps de Galois.

Page 7: Introduction aux corps finis. Intérêt Les opérations sur lanneau des entiers classiques sont relativement lentes. Les calculs dans les corps finis peuvent

Exemples

• Soit p=3 et P(X)=X3+2X+1. P(X) est bien irréductible dans Z/3Z[X] (on peut vérifier par exemple qu’aucun des polynômes de Z/3Z[X] de degré inférieur ou égal à 2 ne divise P(X)). (Z/3Z[X])/P est donc un corps.

• Soit p premier quelconque et P(X)=(X+a) avec aZ/pZ quelconque. Alors Z/pZ[X]/P est un corps. Il est formé des restes modulo P des polynômes de Z/pZ[X]. Or deg(P)=1 donc le reste modulo P d’un polynôme est de degré 0 (donc une constante). Ce corps est isomorphe à Z/pZ.

Page 8: Introduction aux corps finis. Intérêt Les opérations sur lanneau des entiers classiques sont relativement lentes. Les calculs dans les corps finis peuvent

Calculs dans un anneau quotient

• Soit A un anneau et I un idéal de A. La relation définie pour P,QA par PQ si et seulement si P-QI est une relation d’équivalence. L’ensemble des classes d’équivalence est appelé anneau quotient A/I et a une structure naturelle d’anneau quand on transporte l’addition et la multiplication de A par la relation d’équivalence .

Page 9: Introduction aux corps finis. Intérêt Les opérations sur lanneau des entiers classiques sont relativement lentes. Les calculs dans les corps finis peuvent

Exemple

• Soit Z l’anneau des entiers relatifs et 3Z={xZ | yZ, 3y=x}.• 3Z est l’ensemble des entiers de Z divisibles par 3. La relation est donc

définie par x1x2 si et seulement si yZ, x1-x2=3y.• Dans Z, 0, 1 et 2 sont envoyés dans trois classes différentes, que l’on notera 0,

1 et 2 respectivement.• Soit xZ quelconque alors parmi les nombres x,x-1 et x-2 un et un seul est

divisible par 3. Donc x0, 1 ou 2. Donc il y a seulement trois classes d’équivalence dans l’anneau quotient.

• Le théorème précédent dit en gros que pour calculer dans l’anneau quotient, on peut faire les calculs dans l’anneau et ramener ensuite le résultat dans l’anneau quotient par la relation d’équivalence.

• Exemple. Soit à calculer 22. On prend des représentants de chaque classe dans Z, par exemple 17 et 5. On a alors 175=85 dans l’anneau Z. Or 851 et donc 22=1 dans l’anneau quotient.

• Il s’agit en fait de l’anneau des entiers modulo 3.

Page 10: Introduction aux corps finis. Intérêt Les opérations sur lanneau des entiers classiques sont relativement lentes. Les calculs dans les corps finis peuvent

Cas des corps finis

• La relation d’équivalence est P-QI.• L’idéal est I={ RK[X] | S K[X],

R(X)=S(X).I(X) }.• Deux polynômes P et Q sont dans la même classe

si et seulement si P(X)-Q(X) = S(X).I(X) avec SK[X] donc P(X) = Q(X) mod I(X).

• Pour faire les calculs, on prend donc n’importe quel élément de la classe et on fait les calculs modulo I(X).

Page 11: Introduction aux corps finis. Intérêt Les opérations sur lanneau des entiers classiques sont relativement lentes. Les calculs dans les corps finis peuvent

Exemple

• Soit CG(27)Z/3Z[X]/X3+2X+1.• L’ensemble des classes d’équivalence est exactement

l’ensemble des restes des polynômes de Z/3Z[X] modulo X3+2X+1.

• Il s’agit donc de tous les polynômes de degré strictement inférieur à 3 dans Z/3Z[X].

• Soit à calculer (X2+X+2).(X2+2X+1).• On prend deux représentants dans l’anneau Z/3Z[X] et on les

multiplie. (X2+X+2).(X2+2X+1) =X4+2X2+2X+2.• On réduit modulo X3+2X+1: X4+2X2+2X+2 = X.(X3+2X+1) –

2X2 –X +2X2+2X+2 = X.(X3+2X+1) + X+2.• Donc (X2+X+2).(X2+2X+1)=X+2.

Page 12: Introduction aux corps finis. Intérêt Les opérations sur lanneau des entiers classiques sont relativement lentes. Les calculs dans les corps finis peuvent

Cas de la division

• On veut calculer des divisions dans les corps CG(pn).• En fait, on va définir l’inversion.• Soit donc A(X) Z/pZ[X]/I où I est un polynôme

irréductible de Z/pZ[X].• On cherche donc un polynôme B(X) Z/pZ[X]/I avec

A(X).B(X)=1.• Au niveau des équivalents dans Z/pZ[X], çà donne

rA(X).rB(X)=1+S(X).I(X).• On peut résoudre par l’algorithme de Bezout et on

revient à Z/pZ[X]/I par réduction modulo (cf. TP).

Page 13: Introduction aux corps finis. Intérêt Les opérations sur lanneau des entiers classiques sont relativement lentes. Les calculs dans les corps finis peuvent

Représentation linéaire

• Théorème: CG(pn) est un espace vectoriel de dimension n sur CG(p)Z/pZ.

• Cà veut dire que l’on peut représenter les éléments de CG(pn) comme des n-uplets d’éléments de CG(p).

• X2+X+2(1,1,2)• On parle de représentation linéaire du corps

CG(pn).

Page 14: Introduction aux corps finis. Intérêt Les opérations sur lanneau des entiers classiques sont relativement lentes. Les calculs dans les corps finis peuvent

Racines de polynômes

• Théorème: Soit P un polynôme irréductible de Z/pZ[Y] de degré égal à n. Alors P est entièrement décomposable dans GF(pn)[Y].

• Exemple: P(Y)=Y3+Y2+2Y+1 est irréductible dans Z/3Z[Y].

• Dans CG(27)Z/3Z[X]/X3+2X+1, P admet 2X2+2X+2, X2+2X et 2X+2 comme racines.

• On vérifie que l’on a bien Y3+Y2+2Y+1 = (Y-2X2-2X-2) . (Y-X2-2X) . (Y-2X-2) dans CG(27)Z/3Z[X]/X3+2X+1.

Page 15: Introduction aux corps finis. Intérêt Les opérations sur lanneau des entiers classiques sont relativement lentes. Les calculs dans les corps finis peuvent

Groupe multiplicatif

• Théorème: Soit p un nombre premier et n1. Alors (CG(pn)-{0},*) est un groupe. De plus il est monogène i.e. il existe CG(pn)-{0} tel que pour tout CG(pn)-{0}, k entier compris entre 0 et pn-2 tel que =k. On dit que est un générateur du groupe. On a de plus CG(pn)-{0}, pn-

1=1.

Page 16: Introduction aux corps finis. Intérêt Les opérations sur lanneau des entiers classiques sont relativement lentes. Les calculs dans les corps finis peuvent

Exemple

• Dans CG(27)Z/3Z[X]/X3+2X+1, on a 0, 26=1.

• Si =X, alors est un un générateur de CG(27)-{0}.

• De même X3 est un générateur.

• Par contre X2 n’en est pas un.

Page 17: Introduction aux corps finis. Intérêt Les opérations sur lanneau des entiers classiques sont relativement lentes. Les calculs dans les corps finis peuvent

Racines primitives

• Définition: Soit I un polynôme à coefficients dans CG(pn) et soit une racine de I. Si est un générateur de CG(pn)-{0}, on dit que est une racine primitive de I.

• Exemple: Dans CG(27)Z/3Z[X]/X3+2X+1, P admet 2X2+2X+2, X2+2X et 2X+2 comme racines. Toutes ses racines sont primitives.

• Y3+Y2+Y+2 admet X2, X2+X+1 et X2+2X+1 comme racines. Aucune n’est primitive.

Page 18: Introduction aux corps finis. Intérêt Les opérations sur lanneau des entiers classiques sont relativement lentes. Les calculs dans les corps finis peuvent

Nouvelle définition

• Théorème: Soit I un polynôme de degré n, irréductible sur Z/pZ[X]. Alors toutes les racines de I sont primitives. Soit l’une d’entre elles. CG(pn) est le plus petit anneau contenant 0 et et on a un isomorphisme d’anneau avec Z/pZ[X]/I, si on pose f()=X.

Page 19: Introduction aux corps finis. Intérêt Les opérations sur lanneau des entiers classiques sont relativement lentes. Les calculs dans les corps finis peuvent

Exemple

• Soit I(X)=X3+2X+1. I est irréductible dans Z/3Z[X] et admet au moins une racine primitive dans CG(27).

• Représentation linéaire: quel que soit CG(27), se représente de manière unique par =c22+c1+c0 avec ci{0,1,2}. Grâce à l’isomorphisme, les calculs se font comme précédemment modulo 3 et modulo I.

• On préfère généralement cette définition pour éviter les confusions entre les variables des polynômes sur GF(27)[Y] et Z/3Z[X]/I.

Page 20: Introduction aux corps finis. Intérêt Les opérations sur lanneau des entiers classiques sont relativement lentes. Les calculs dans les corps finis peuvent

Représentation exponentielle

• Soit I un polynôme de degré n, irréductible sur Z/pZ[X] et une racine primitive de I dans CG(pn).

• Alors pour tout élément non nul de CG(pn), on a = k, avec 0kpn-2.

• k est le logarithme discret de .• Conjecture: le problème du calcul du

logarithme discret est exponentiel.

Page 21: Introduction aux corps finis. Intérêt Les opérations sur lanneau des entiers classiques sont relativement lentes. Les calculs dans les corps finis peuvent

Multiplication et division

• Soit non nul dans CG(pn), alors pn-

1=1.• Soit 1= k1, alors 0. 1 =0.• Soit 2= k2, alors 1.2= k, avec

k=k1+k2 (mod pn-1).• De plus, 1/2= k’, avec k’=k1-k2 (mod

pn-1).

Page 22: Introduction aux corps finis. Intérêt Les opérations sur lanneau des entiers classiques sont relativement lentes. Les calculs dans les corps finis peuvent

Logarithme de Zech

• Soit un élément générateur de CG(pn).

• Soit k un entier quelconque tel que k-1, on pose =1+k.

• Alors 0, donc il existe Z(k) tel que =Z(k).

• Z(k) est le logarithme de Zech de k. Il dépend du choix de .

Page 23: Introduction aux corps finis. Intérêt Les opérations sur lanneau des entiers classiques sont relativement lentes. Les calculs dans les corps finis peuvent

Addition

• Soit un élément générateur de CG(pn).• Soit 1= k1 et 2= k2, alors 1 +2 =

k1+k2=k1(1+k2-k1).• Si k2-k1-1, alors 1 +2 = k1+Z(k2-k1).• Si k2-k1=-1, alors 1 +2 = 0.• On doit calculer des logarithmes discrets

pour calculer la table de Zech on doit se limiter à des petits corps finis.

Page 24: Introduction aux corps finis. Intérêt Les opérations sur lanneau des entiers classiques sont relativement lentes. Les calculs dans les corps finis peuvent

Table de Zech pour CG(27)

• I(X)=X3+2X+1, racine primitive de I

• Soit à calculer =20+2.=(18+1)2=(1+1/ 8 )2=(1+8 )-6

=Z(8).20=15.20=9

11 4 15 3 6

10 2 16

9 21 1 18 17

1 2 3 4 5

5

10

0

ik

Z(i+k) pour CG(27)

Page 25: Introduction aux corps finis. Intérêt Les opérations sur lanneau des entiers classiques sont relativement lentes. Les calculs dans les corps finis peuvent

Construction de petits corps finis

• Soit I(X) un polynôme de degré n à coefficients dans CG(p).

• Soit une racine de I(X).

• I(X) est irréductible si et seulement si la suite uk= k pour 0kpn-2 donne pn-1 éléments distincts non nuls.

Page 26: Introduction aux corps finis. Intérêt Les opérations sur lanneau des entiers classiques sont relativement lentes. Les calculs dans les corps finis peuvent

Construction de CG(16)

• Exemple: CG(16).• I(X)=X4+1 sur CG(2), racine primitive• On calcule récursivement uk=k

• Si I(X) est irréductible, on doit générer 15 éléments distincts (les éléments du groupe multiplicatif).

• On a u0=1, u1=, u2= 2, u3= 3, u4= 4=1.• On ne génère donc que 4 éléments et donc I n’est

pas irréductible (X4+1=(X+1).(X3+X2+X+1)).

Page 27: Introduction aux corps finis. Intérêt Les opérations sur lanneau des entiers classiques sont relativement lentes. Les calculs dans les corps finis peuvent

Construction de CG(16)

• I(X)=X4+X+1 sur CG(2), racine primitive

1

3

2

+1

2+3+2

3++12+13+

2++13+2+

3+2++13+2+1

3+1

Page 28: Introduction aux corps finis. Intérêt Les opérations sur lanneau des entiers classiques sont relativement lentes. Les calculs dans les corps finis peuvent

Construction de grands corps finis

• Soit I(X) un polynôme de degré n à coefficients dans CG(p).

• Soit une racine de I(X).• I(X) est irréductible si et seulement si

génère le groupe multiplicatif CG(pn)-{0}.• I(X) est irréductible si et seulement si on a

pn-1 = 1 et (pn-1)/d 1 pour tout diviseur d de pn-1.

Page 29: Introduction aux corps finis. Intérêt Les opérations sur lanneau des entiers classiques sont relativement lentes. Les calculs dans les corps finis peuvent

Construction de CG(2163)

• I(X)=X163+X7+X6+X3+1 sur CG(2), racine primitive

• On a 2163-1 = 1.• On factorise 2163-1=150287*704161*110211473

*27669118297* 36230454570129675721• On calcule (2163-1)/150287= 159+158+

157+155+152+…+5+3+ 2+1.• On continue avec 704161, etc …• On trouve finalement que I est bien irréductible.

Page 30: Introduction aux corps finis. Intérêt Les opérations sur lanneau des entiers classiques sont relativement lentes. Les calculs dans les corps finis peuvent

Codes de Reed-Solomon

• Soit CG(2k) un corps de Galois et une racine primitive

• Soit d un entier positif, on pose G(Y)=(Y- i0).(Y- i0+1).(Y- i0+2).(Y- i0+2d-1).

• Soit E={G(Y).A(Y) | ACG(2k)[Y], deg(A)<2k-2d-1}

• Alors deux polynômes distincts de E ont au moins 2d coefficients dans GF(2k) qui sont différents.

• De plus, si PCG(2k)[Y], deg(P)<2k-1, il existe un algorithme (ex: Berlekamp-Massey) qui permet de trouver QCG(2k)[Y], deg(Q)<2k-1, QE tel que les coefficients de Q et P diffèrent au plus de d valeurs dans CG(2k).

Page 31: Introduction aux corps finis. Intérêt Les opérations sur lanneau des entiers classiques sont relativement lentes. Les calculs dans les corps finis peuvent

Application aux télécoms

• Exemple: CG(256), RS(255,239), G(Y) est de degré 16.• On a 239 octets de données d0, …, d238.• On forme le polynôme D(Y)=d0.Y16+d1.Y17+…+d238.Y254.• On calcule dans GF(256)[Y], le reste R(Y) de D(Y) modulo G(Y).• Le polynôme C(Y)=D(Y)-R(Y) est un mot du code RS(255,239)

et ses 239 coefficients dominants sont exactement les données di.• On transmet ce polynôme sur une ligne bruitée qui peut induire

des erreurs.• A la réception, si au plus d octets sont faux, l’algorithme de

Berlekamp-Massey permet de retrouver C(Y) et donc les données.

Page 32: Introduction aux corps finis. Intérêt Les opérations sur lanneau des entiers classiques sont relativement lentes. Les calculs dans les corps finis peuvent

Autres applications

• Cryptographie sur courbes elliptiques.• Construction de fonctions fortement non linéaires

pour des fonctions de hachage.• Codes correcteurs: codes BCH, codes de Goppa,

codes à résidus quadratiques.• Construction de géométries projectives pour les

codes LDPC (Low Density Parity Check Codes).• Etc…