Introduction aux corps finis

Slides:



Advertisements
Présentations similaires
Calculs de complexité d'algorithmes
Advertisements

Equations différentielles
III. Fonctions numériques et modélisation (intégration,équations différentielles,…) II. Nombres entiers, rationnels, réels et complexes ; suites de réels.
I. Bases de logique , théorie des ensembles
CHAPITRE 2 Nombres entiers, initiation à l’arithmétique- Nombres rationnels.
Nombres réels et propriétés de R CHAPITRE 3. Fractions : développements décimaux le point de vue « concret » (hérité de lenseignement primaire)
Algorithme des différences Fraction irréductible
INTRODUCTION.
Chapitre II.Rappels mathématiques et complexité
Cours du 20 septembre Exceptionnellement, le cours prévu pour le mercredi 20 septembre se donnera Mardi le 19 septembre de 13h30 à 15h20 à la salle 1112.
Résoudre graphiquement une équation ou une inéquation simple
Continuité Introduction Continuité Théorème des valeurs intermédiaires
Initiation à la programmation et algorithmique
Introduction à l’algorithmique
Concepts de base : la Classe Pour faire une comparaison simple, une classe serait a priori, une structure C avec des variables et des fonctions.
La fonction quadratique
ASI 3 Méthodes numériques pour l’ingénieur
Remarque :Tu devrais visionner toutes les présentations sur la factorisation avant de visionner celle-ci. Multiplication et division de fractions rationnelles.
1.2 COMPOSANTES DES VECTEURS
12- Calcul du PGCD Algorithme des différences
Continuité Montage préparé par : André Ross
Equation du second degré
Équations différentielles.
Chapitre 1 PGCD de deux nombres.
Examen partiel #2 Mercredi le 15 novembre de 13h30 à 15h20
Division euclidienne - décimale
Densité des N-uplets pythagoriciens
Espaces vectoriels Montage préparé par : S André Ross
Exemple en dynamique de population
LES NOMBRES Articulation CM2-SIXIÈME
Chapitre 5 : Etude de la Stabilité des systèmes dynamiques
IFT Complexité et NP-complétude
CALCUL FRACTIONNAIRE.
1.2 FONCTIONS Cours 2.
Eléments de théorie anthropologique
Les fractions rationnelles
Multiplication et division de fractions rationnelles
Présentation dans le cadre du congrès mathématique
Dénombrements.
Les fractions rationnelles
8.3 THÉORÈME FONDAMENTAL DE LALGÈBRE cours 27. Au dernier cours nous avons vus La définition des nombres complexes Les opérations sur les nombres complexes.
Sous-espaces vectoriels engendrés
Les Définition + =.
Modélisation géométrique de base
ASI 3 Méthodes numériques pour l’ingénieur
Eléments d’arithmétique dans l’ensemble des naturels
O-notation 1. Introduction 2. O-notation 3. Opérations 3.1 Somme 3.2 Produit 4. Règles générales 5. Exemple 6.Analyse des algorithmes récursifs 6.1 Dilatation.
Théorie algébrique des nombres
TAI Nombres et structures
Le calcul algébrique.
Résolution d’un problème de diffusion 1D
Expression algébrique Variable Coefficient Terme algébrique ,constant & semblables Polynôme , monôme, binôme & trinôme.
Calendrier (sur MathSV)
Nom: GAUTIER prénom : Christian laboratoire: Biométrie et Biologie évolutive Thème.
201-NYCALGÈBRE LINÉAIREET GÉOMÉTRIE VECTORIELLE
Factorisation par division
Algorithme des différences Fraction irréductible
Structure de groupe Def: un groupe est un ensemble (G,*) où
Relations et fonctions
Cours 5 - Trois algorithmes de tri d'un tableau
Chapitre 4b La représentation des nombres.
1.1 LES VECTEURS GÉOMÉTRIQUES
Fiabilité et défaillance
L’INFINI UNE HISTOIRE SANS FIN
Pierre Joli Cours de Mathématique Pierre Joli
Chap. 3 Récursion et induction. Les définitions par récurrence consistent à construire des objets finis, à partir d'autres, selon certaines règles. Les.
Chap.V RSA. I. Rappels Mathématiques La congruence Définition 1 a et b sont congrus modulo n s’ils ont même reste par la division par n. On note a≡b[n]
Novembre 2003 Simulation numérique en vibro-acoustique par couplage de deux codes parallèles Unité de Recherche Calcul à Haute Performance François-Xavier.
Introduction Le mathématicien
Transcription de la présentation:

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 …)

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+b2 avec a,bQ est un corps.

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.

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 aK, 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 bK. 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.

Théorèmes principaux Théorème: Soit p un nombre premier et I(X) un polynôme irréductible de degré n1 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.

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 aZ/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.

Calculs dans un anneau quotient Soit A un anneau et I un idéal de A. La relation  définie pour P,QA par PQ si et seulement si P-QI 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 .

Exemple Soit Z l’anneau des entiers relatifs et 3Z={xZ | yZ, 3y=x}. 3Z est l’ensemble des entiers de Z divisibles par 3. La relation  est donc définie par x1x2 si et seulement si yZ, 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 xZ quelconque alors parmi les nombres x,x-1 et x-2 un et un seul est divisible par 3. Donc x0, 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 22. On prend des représentants de chaque classe dans Z, par exemple 17 et 5. On a alors 175=85 dans l’anneau Z. Or 851 et donc 22=1 dans l’anneau quotient. Il s’agit en fait de l’anneau des entiers modulo 3.

Cas des corps finis La relation d’équivalence est P-QI. L’idéal est I={ RK[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 SK[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).

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.

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).

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).

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.

Groupe multiplicatif Théorème: Soit p un nombre premier et n1. 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.

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.

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.

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.

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 =c22+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.

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 0kpn-2. k est le logarithme discret de . Conjecture: le problème du calcul du logarithme discret est exponentiel.

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).

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 .

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.

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 i 1 2 3 4 5 k 9 21 1 18 17 5 11 4 15 3 6 10 10 2 16 Z(i+k) pour CG(27)

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 0kpn-2 donne pn-1 éléments distincts non nuls.

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)).

Construction de CG(16) I(X)=X4+X+1 sur CG(2),  racine primitive 1  3 2 +1 2+ 3+2 3++1 2+1 3+ 2++1 3+2+ 3+2++1 3+2+1 3+1

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.

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.

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) | ACG(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 PCG(2k)[Y], deg(P)<2k-1, il existe un algorithme (ex: Berlekamp-Massey) qui permet de trouver QCG(2k)[Y], deg(Q)<2k-1, QE tel que les coefficients de Q et P diffèrent au plus de d valeurs dans CG(2k).

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.

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…