Le module sympy.GF Python pour les les corps finis

étudier les corps finis en python avec le module sympy GF

Ce tutoriel couvre l'utilisation du module sympy pour travailler avec des corps finis (GF(p) ou GF(p^n)) via la fonction GF et la classe Poly.
Nous aborderons la création, les opérations arithmétiques, le calcul d'inverses, les polynômes et les extensions de corps. Ce tutoriel vous présentera les bases de sympy.GF pour les corps finis qui vous permettera ainsi d'explorer des sujets avancés comme la factorisation de polynômes, les codes correcteurs, ou la cryptographie etc...

1. A propos de sympy.GF et des corps finis

sympy est une bibliothèque de calcul symbolique en Python. Elle permet de travailler avec des corps finis (aussi appelés Galois Fields) via la classe GF et les objets Poly.

Un corps fini noté GF(p) ou GF(p^n) est un ensemble fini d'éléments sur lequel l'addition, la soustraction, la multiplication et la division (sauf par zéro) sont définies.
p est un nombre premier (caractéristique), et n est le degré d'extension.

Dans ce tutoriel, nous utiliserons sympy 1.12+. La fonction GF permet de créer un corps fini, et Poly permet de manipuler des polynômes sur ce corps.

2. Installation et importation de sympy

Avant de commencer, assurez-vous que sympy est installé. Utilisez pip pour l'installer si ce n'est pas déjà fait.

Ensuite, importez les modules nécessaires :

3. Création d'un corps fini GF(p)

Pour créer un corps fini GF(p) où p est un nombre premier, on utilise GF(p).

Sortie :

On peut alors créer des polynômes sur ce corps en utilisant Poly avec l'argument domain=F7.

Sortie :

4. Arithmétique de base dans GF(p)

Les opérations +, -, *, / (avec inverse) sont possibles directement sur les coefficients grâce au domaine GF.

5. Calcul d'inverse modulaire dans GF(p)

Pour calculer l'inverse d'un élément non nul dans GF(p), on utilise la méthode inv de la classe Poly ou l'opérateur **-1.

6. Polynômes irréductibles et extension de corps GF(p^n)

Pour créer une extension de corps GF(p^n), on spécifie un polynôme irréductible de degré n.
Sympy permet de travailler avec des polynômes modulo ce polynôme.

Sortie :

7. Opérations dans GF(p^n) avec les éléments du corps

Les éléments du corps d'extension peuvent être additionnés, multipliés, et inversés.

Sortie :

8. Réduction polynomiale et division

La division de polynômes dans un corps fini peut être effectuée avec div ou quo/rem.

Sortie :

9. Fonctions utiles : degré, coefficients, évaluation

On peut extraire des informations sur les polynômes, comme le degré, les coefficients, et évaluer en un point.

Sortie :

10. Exemple complet : construction d'un code correcteur d'erreurs (simplifié)

Voici un exemple d'utilisation de GF(2^3) pour simuler un code de Reed-Solomon miniature.

Sortie :

 


 


Auteur : Younes Derfoufi
Lieu de travail : CRMEF OUJDA
Site Web : www.tresfacile.net
Chaine YouTube : https://www.youtube.com/user/InformatiquesFacile
Me contacter : https://www.tresfacile.net/me-contacter/


Leave a Reply

Your email address will not be published. Required fields are marked *