Multiplikative Inverse in ${GF}(2^4)$

Aug 26 2020

Ich möchte eine erstellen $4\times4$ multiplikative inverse Tabelle in $GF(2^4)$. Das angegebene primitive Polynom ist$P(x)= x^4+x+1$

(HINWEIS: Die Werte in der Tabelle müssen im Hexadezimalformat vorliegen, daher werde ich in der Frage von nun an sowohl Polynom- als auch Hexadezimalnotationen verwenden.)

Jetzt konnte ich die multiplikative Inverse für die erste Zeile der Matrix berechnen, dh (00,01,02,03). Die Umkehrung von 03oder$(x+1)$kommt heraus, um zu sein 0Eoder$(x^3+x^2+x)$.

Wenn ich jedoch versuche, die Umkehrung von 10oder zu berechnen$x^4$kommt es wieder raus 0Eoder$(x^3+x^2+x)$. Ist es möglich, dass zwei Polynome genau die gleiche Umkehrung haben? Wenn nicht, kann ich nicht herausfinden, wo ich falsch liege. Bitte helfen Sie.

Antworten

2 kelalaka Aug 26 2020 at 11:57

Das Galois-Feld $\operatorname{GF}(2^4)$ (auch vertreten $\mathbb{F_{2^4}}$) enthält $16 = 2 ^4$Elemente. Die formale Definition ist;

$\mathbb{F_{2^4}}$ ist der Quotientenring $\mathbb{F_{2}}[X]/(x^4 = x + 1)$ des Polynomrings $\mathbb{F_{2}}[X]$ durch das Ideal erzeugt durch $(x^4 = x + 1)$ ist ein Ordnungsfeld $2^4$.

Wir können die Elemente von auflisten $\operatorname{GF}(2^4)$ auf die Polynomdarstellung mit dem definierenden primitiven Polynom, nämlich $$a_3 x^3+a_2 x^2+a_1 x+a_0$$ wo $a_i \in \operatorname{GF}(2)$ zum $i=0,1,2,3$.

$\operatorname{GF}(2^4)$ ist ein Feld, daher hat jedes Element eine eindeutige multiplikative Inverse mit Ausnahme der Null.

$x^4$Wie wir sehen können, ist dies kein Element des Feldes, wir können es jedoch mit Hilfe der definierenden Polynomgleichung reduzieren $x^4 = x + 1$. Daher hat es die gleiche Darstellung mit$x+1$ auf dem Feld ist also die Umkehrung dieselbe.

Auch die Multiplikation inverse Tabelle hat $2\times 16$ Größe, so dass nur eine Zeile (oder Spalte) berechnet werden muss.

\ begin {array} {| c | c |} \ hline p (x) \ in GF (2 ^ 4) & inverse \\ \ hline 1 & 1 \\\ hline x & x ^ 3 + 1 \\\ hline x + 1 & x ^ 3 + x ^ 2 + x \\\ hline x ^ 2 & x ^ 3 + x ^ 2 + 1 \\\ hline x ^ 2 + 1 & x ^ 3 + x + 1 \\\ hline x ^ 2 + x & x ^ 2 + x + 1 \\\ hline x ^ 2 + x + 1 & x ^ 2 + x \\\ hline x ^ 3 & x ^ 3 + x ^ 2 + x + 1 \\\ hline x ^ 3 + 1 & x \\\ hline x ^ 3 + x & x ^ 3 + x ^ 2 \\\ hline x ^ 3 + x + 1 & x ^ 2 + 1 \\\ hline x ^ 3 + x ^ 2 & x ^ 3 + x \\\ hline x ^ 3 + x ^ 2 + 1 & x ^ 2 \\\ hline x ^ 3 + x ^ 2 + x & x + 1 \\\ hline x ^ 3 + x ^ 2 + x + 1 & x ^ 3 \\\ hline \ end {array}

Die Nicht-Null-Elemente des Feldes, die normalerweise durch Hinzufügen eines Sterns oben rechts dargestellt werden $\mathbb{F}^*_{2^4} = \mathbb{F}_{2^4}- \{0\}$ bilden eine multiplikative zyklische Gruppe. $\mathbb{F}^*_{2^4}$ kann generiert werden von $x$dh $\mathbb{F}^*_{2^4} = \langle x \rangle$. Die Leistungen des Generators;

\ begin {array} {| c | c |} \ hline i & x ^ i \\ \ hline x ^ 1 & x \\ \ hline x ^ {2} & x ^ 2 \\ \ hline x ^ {3} & x ^ 3 \\ \ hline x ^ {4} & x + 1 \\ \ hline x ^ {5} & x ^ 2 + x \\ \ hline x ^ {6} & x ^ 3 + x ^ 2 \ \ \ hline x ^ {7} & x ^ 3 + x + 1 \\ \ hline x ^ {8} & x ^ 2 + 1 \\ \ hline x ^ {9} & x ^ 3 + x \\ \ hline x ^ {10} & x ^ 2 + x + 1 \\ \ hline x ^ {11} & x ^ 3 + x ^ 2 + x \\ \ hline x ^ {12} & x ^ 3 + x ^ 2 + x + 1 \\ \ hline x ^ {13} & x ^ 3 + x ^ 2 + 1 \\ \ hline x ^ {14} & x ^ 3 + 1 \\ \ hline x ^ {15} & 1 \\ \ hline x ^ {16} & x \\ \ hline \ end {array} $p(x) = 0$ ist nicht enthalten, da es keine multiplikative Inverse hat.


Unten finden Sie den in dieser Antwort verwendeten SageMath-Code.

#Base field
R.<y> = PolynomialRing(GF(2), 'y')

#Defining polynomial
G = y^4+y+1

#The field extension
S.<x> = QuotientRing(R, R.ideal(G))
S.is_field()

for p in S:
    if ( p != 0 ):
        print( p, " - ", 1/p )