Mi è stato detto di venire qui da Stack Overflow perché stavo "cercando un algoritmo". Sto provando a implementarlo in Python, ma non c'è un posto in rete che fornisce un modo semplice per calcolare l'inversione moltiplicativa di un numero in un campo di Galois.
I requisiti dell'algoritmo sono piuttosto semplici:
- Input: un numero che rappresenta il polinomio di un campo GF (2 ^ n) (
p
) e un numero che rappresenta il polinomio di cui calcolare l'inverso di (a
). - Output: il numero che rappresenta il polinomio che è l'inverso moltiplicativo di
a
sup
.
Questo deve essere al volo. Non posso preoccuparmi di calcolare le tabelle log / anti-log perché quelle occupano troppo spazio quando il campo è grande. Ho provato a utilizzare l'algoritmo Euclideo esteso descritto qui su Wikipedia, ma non so come implementare (1/r)*t
e attiva la dichiarazione di errore quando imposto a
in 3
e p
in 0x11b
(campo AAL Galois). Questo è incredibilmente frustrante che non ci sia un codice semplice o una semplice spiegazione sugli inversi moltiplicativi nei campi di Galois. Qualche idea per questo algoritmo che sto cercando?