32
Introduction aux corps finis

Introduction aux corps finis

  • Upload
    lavey

  • View
    57

  • Download
    5

Embed Size (px)

DESCRIPTION

Introduction aux corps finis. 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. - PowerPoint PPT Presentation

Citation preview

Page 1: Introduction aux corps finis

Introduction aux corps finis

Page 2: Introduction aux corps finis

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 610 2 16

9 21 1 18 171 2 3 4 5

510

0

ik

Z(i+k) pour CG(27)

Page 25: Introduction aux corps finis

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

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

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

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

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

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

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

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…