Un campo finito (o campo di Galois) è un campo con un numero finito di elementi. Il numero di elementi è sempre una potenza di un primo: |K| = p^n con p primo e n \geq 1.
Vedi anche: Strutture Algebriche.
Caratteristica di un Campo
La caratteristica di un campo K è il minimo intero positivo p tale che:
\underbrace{1 + 1 + \cdots + 1}_{p \text{ volte}} = 0
Se tale intero non esiste, la caratteristica è 0 (campi \mathbb{Q}, \mathbb{R}, \mathbb{C}). Per un campo finito la caratteristica è sempre un numero primo.
Campo \mathbb{Z}_p
Il campo più semplice con p elementi (p primo) è \mathbb{Z}_p = \{0, 1, \ldots, p-1\} con somma e prodotto modulo p. La caratteristica è p.
Esempi:
- \mathbb{Z}_2 = \{0, 1\}: aritmetica binaria, base dell’informatica digitale.
- \mathbb{Z}_3 = \{0, 1, 2\}: usato in alcuni schemi crittografici.
- \mathbb{Z}_5, \mathbb{Z}_7, \ldots
Campi di Galois GF(p^n)
Per n > 1 il campo con p^n elementi si costruisce come anello quoziente:
GF(p^n) \cong \mathbb{Z}_p[x] / \langle f(x) \rangle
dove f(x) è un polinomio irriducibile di grado n su \mathbb{Z}_p. Vedi: Polinomio.
Il campo GF(2^8) (256 elementi) è alla base dell’algoritmo AES.
Unicità
Per ogni potenza di primo q = p^n esiste un unico campo (a meno di isomorfismo) con q elementi. Il gruppo moltiplicativo GF(q)^* = GF(q) \setminus \{0\} è ciclico di ordine q - 1: esiste un elemento primitivo g tale che ogni elemento non nullo è una potenza di g.
Confronto con i Campi Infiniti
| Campo | Elementi | Caratteristica | Algebricamente chiuso |
|---|---|---|---|
| \mathbb{Q} | \infty | 0 | No |
| \mathbb{R} | \infty | 0 | No |
| \mathbb{C} | \infty | 0 | Sì |
| GF(p) | p | p | Solo per p=2,3 (casi banali) |
| GF(p^n) | p^n | p | No |
Applicazioni ingegneristiche
- Crittografia: RSA usa \mathbb{Z}_p; le curve ellittiche su GF(p) o GF(2^n) sono alla base di ECC (Elliptic Curve Cryptography).
- Codici correttori di Reed-Solomon: operano su GF(2^m), usati in CD, DVD, QR code e trasmissioni spaziali.
- AES: il byte-field di AES è GF(2^8); le operazioni MixColumns e SubBytes sono moltiplicazioni e inversioni in questo campo.
- LFSR (Linear Feedback Shift Register): genera sequenze pseudocasuali sfruttando la struttura di GF(2^n).