### 1.31.18 Κατασκευή σώματος Galois : GF

GF παίρνει σαν όρισμα έναν πρώτο ακέραιο p και έναν ακέραιο n>1.
GF επιστρέφει ένα σώμα Galois χαρακτηριστικής p με pn στοιχεία .
Τα στοιχεία του σώματος και το ίδιο το σώμα παρίστανται με GF(...) όπου ... είναι η παρακάτω ακολουθία:

- η χαρακτηριστική p (px=0),
- ένα ανάγωγο αρχικό , ελάχιστο πολυώνυμο που παράγει ένα ιδεώδες I στο ℤ/pℤ[X], όπου το σώμα Galois είναι το πηλίκο του ℤ/pℤ[X] με το I,
- το όνομα της μεταβλητής του πολυωνύμου, από προεπιλογή x,
- ένα πολυώνυμο (ένα υπόλοιπο modulo το ελάχιστο πολυώνυμο) για ένα στοιχείο του σώματος (τα στοιχεία του σώματος παρίστανται με την προσθετική αναπαράσταση ) ή undef για το ίδιο το σώμα.

Θα πρέπει να δώσετε ένα όνομα σε αυτό το σώμα (για παράδειγμα G:=GF(p,n)), για να δημιουργήσετε στοιχεία του σώματος από ένα πολυώνυμο στο ℤ/pℤ[X], για παράδειγμα G(x`^`3+x). Σημειώσατε ότι το G(x) είναι ένας γεννήτορας της πολλαπλασιαστικής ομάδας G*.
Είσοδος :

G:=GF(2,8)

Έξοδος :

GF(2,x`^`8-x`^`6-x`^`4-x`^`3-x`^`2-x-1,x,undef)

Το σώμα G έχει 28=256 στοιχεία και το x κάνει την πολλαπλασιαστική ομάδα του σώματος ({ 1,x,x2,...x254 }).
Είσοδος :

G(x`^`9)

Έξοδος :

GF(2,x`^`8-x`^`6-x`^`4-x`^`3-x`^`2-x-1,x,x`^`7+x`^`5+x`^`4+x`^`3+x`^`2+x)

πράγματι x8=x6+x4+x3+x2+x+1, και επομένως x9=x7+x5+x4+x3+x2+x.
Είσοδος :

G(x)`^`255

Έξοδος θα πρέπει να είναι η μονάδα, πράγματι:

GF(2,x`^`8-x`^`6-x`^`4-x`^`3-x`^`2-x-1,x,1)

Όπως μπορεί να δει κανείς σε αυτά τα παραδείγματα, η έξοδος περιέχει πολλές φορές τις ίδιες πληροφορίες που θα προτιμούσατε να μην τις βλέπετε εάν δουλεύατε πολλές φορές με το ίδιο σώμα. Γι’ αυτό το λόγο, ο ορισμός του σώματος Galois μπορεί να έχει ένα προαιρετικό όρισμα, το όνομα μιας μεταβλητής που μπορεί να χρησιοποιηθεί μετά για να παριστάνουμε στοιχεία του σώματος. Επιπλέον, επειδή μάλλον θα θέλετε να αλλάξετε το όνομα της μεταβλητής, το όνομα του σώματος μαζί με το όνομα της μεταβλητής δίδονται σε μια λίστα σαν το τρίτο όρισμα του GF. Σημειώστε πως αυτά τα δύο ονόματα των μεταβλητών πρέπει να αναφέρονται.
Παράδειγμα, εισάγετε :

G:=GF(2,2,[’w’,’G’]):; G(w`^`2)

Έξοδος :

Done, G(w+1)

Είσοδος :

G(w`^`3)

Έξοδος :

G(1)

Έτσι, τα στοιχεία του GF(2,2) είναι G(0),G(1),G(w),G(w`^`2)=G(w+1).

Μπορούμε επίσης να καθορίσουμε εμείς το ανάγωγο αρχικό πολυώνυμο που επιθυμούμε να χρησιμοποιήσουμε, βάζοντάς το σαν δεύτερο όρισμα (αντί για n), για παράδειγμα :

`G:=GF(2,w^8+w^6+w^3+w^2+1,`[’w’,’G’])

Εάν το πολυώνυμο δεν είναι αρχικό, το Xcas θα το αντικαταστήσει αυτόματα με ένα αρχικό πολυώνυμο, για παράδειγμα :

`G:=GF(2,w^8+w^7+w^5+w+1,`[’w’,’G’])

Έξοδος :

`G:=GF(2,w^8-w^6-w^3-w^2-1,`[’w’,’G’],undef)