![]() |
---|
Hallo, ich beschäftige mich gerade mit dem AES oder eher Rijndael. In dem Algorithmus finden in einer Funktion namens mixColumns() Matrizenmultiplikationen statt. Also immer ein 4 er Spaltenvektor multipliziert mit einer Matrix. Die Multiplikation findet jedoch auf dem Galois-Körper GF statt. Nun ist meine Frage wie diese Multiplikation im Galois Körper definiert ist. Ich versteh die Beispiele im Internet nicht. folgendes Beispiel kann mir hier jemand erklären wie man auf das Ergebnis kommt? Ich weiß, dass die Werte in den Vektoren bzw. in der Matrix Hex-Werte sind und jeder Wert ein Byte darstellt. Man kann also mit einem Byte ein Polynom 7ter Ordnung aus dem GF darstellen. Für alle, die mir helfen möchten (automatisch von OnlineMathe generiert): "Ich möchte die Lösung in Zusammenarbeit mit anderen erstellen." |
Hierzu passend bei OnlineMathe: Online-Übungen (Übungsaufgaben) bei unterricht.de: |
![]() |
![]() |
Da ein 8-dimensionaler -Vektorraum ist, kann man bezüglich einer geeigneten Basis 8 bit als Darstellung wählen. Die Addition im Körper ist dann auch die Addition im Vektorraum, also XOR Die Multiplikation hängt von der Basis ab. Konstruiert man den Körper als Quotientenkörper des Polynomringes mit einem irreduziblen Polynom . bietet es sich an, die offensichlich linear unabhängigen Elemente (genauer: deren Restklassen) als Basis zu wählen. Das Produkt von 2 Bytes entsprechend . und entsprechend . liefert zunächst einmal ein Polynom . also einen 15-Bit-Wert (indem einige um 0 bis 7 Stellen geshiftete Kopien von per XOR addiert werden) Die höherwertigen Bits sind modulo zu gewissen vorberechenbaren Polynomen vom Grad kongruent, die (wenn das jeweilige hohe Bit gesetzt ist) zum "lower Byte" geXORt werden. |
![]() |
Vielen Dank für Deine ausführliche Erklärung. Ich hab jetzt nur noch ne Verständnisfrage zweck der Modulo Operation. Wenn ich jetzt durch die Multiplikation mein Polynom bekomme. zum Beispiel dann muss ich das dem irreduziblen Polynom rechnen. Das ist . Also nun habe ich auf Wikipedia gesehen, dass wenn die Polynome in binärer Schreibweise angegeben sind, die Modulo Operation ersetzt wird mit der Addition. also Diesen Schritt versteh ich nicht. Ich weiß, dass die Addition, im als XOR ausgeführt wird, so wie Du es ja am Ende auch beschreibst. Das ist alles einleuchtend, jedoch nicht das Ersetzen von mit einer Addition. |
Diese Frage wurde automatisch geschlossen, da der Fragesteller kein Interesse mehr an der Frage gezeigt hat.
|