Für das symmetrische Verschlüsselungsverfahren AES wird der Erweiterungskörper
Eine andere Bezeichnung für
Ein Erweiterungskörper kommt dadurch zustande, dass ein vorhandener Körper K zu einem größeren Körper erweitert wird.
Die Elemente des Erweiterungskörpers lassen sich auffassen als Polynome mit Koeffizienten aus dem Körper K. Dabei entsprechen die Polynome vom Grad 0 den Elementen des ursprünglichen Körpers K; dieser bildet somit einen Teilkörper des Erweiterungskörpers.
Beispiel: Ist beispielsweise der Körper K der endliche Körper mit zwei Elementen ℤ2 = {0,1}, dann besteht der Erweiterungskörper
p(x) = a7 x7 + a6 x6 + ... + a1 x + a0 mit ai ∈ ℤ2
Beispielsweise ist x4 + x3 + 1 ein Polynom mit Koeffizienten aus ℤ2.
Bemerkung: Beachten Sie, dass die in den Polynomen auftretenden Zeichen + und · sich auf den zugrunde liegenden Körper beziehen – in dem Beispiel mit dem zugrunde liegenden Körper ℤ2 sind dies also Addition modulo 2 und Multiplikation modulo 2.
Die Darstellung als Polynom ist lediglich erforderlich, um in sinnvoller Weise die Addition und Multiplikation von Elementen des Erweiterungskörpers zu ermöglichen. Es geht also jetzt darum, Polynome so zu addieren und Polynome so miteinander zu multiplizieren, dass wieder Elemente des Erweiterungskörpers herauskommen.
Die Addition zweier Polynome führen Sie durch, indem Sie die Koeffizienten gleicher Potenzen von x addieren. Die Addition der Koeffizienten erfolgt in ℤ2, also modulo 2, das heißt 1 + 1 = 0.
Beispiel: Beispielsweise ist
(x7 + x3 + x + 1) + (x3 + x2) = x7 + x2 + x + 1
Die Multiplikation führen Sie durch, indem Sie die Polynome zunächst in gewohnter Weise miteinander multiplizieren. Beachten Sie dabei aber, dass sich zwei gleiche Potenzen von x gegenseitig aufheben, wegen 1 + 1 = 0 in ℤ2.
Beispiel: Beispielsweise ist
(x7 + x3 + x + 1) · (x3 + x2) = x10 + x6 + x4 + x3 + x9 + x5 + x3 + x2
= x10 + x9 + x6 + x5 + x4 + x2
In diesem Beispiel haben Sie ein Polynom vom Grad ≥ 8 erhalten. Das Ergebnis der Multiplikation liegt außerhalb des Erweiterungskörpers
z = x8 + x4 + x3 + x + 1
Mittels einer Polynomdivision ermitteln Sie also den Rest, der sich bei Division des Produktes durch das Polynom z ergibt. Dies geht bei Polynomen über dem Körper ℤ2 am besten mit Bitvektoren – warten Sie noch zwei, drei Absätze ...
Das Polynom z ist irreduzibel, es lässt sich nicht in Faktoren zerlegen. Dagegen können Sie beispielsweise das Polynom x5 + x über ℤ2 folgendermaßen in Faktoren zerlegen, daher ist dieses Polynom nicht irreduzibel:
x5 + x = (x3 + x) · (x2 + 1)
Das oben genannte Polynom z ist dagegen irreduzibel.
Definition: Die Multiplikation • in dem Erweiterungskörper
Für alle Polynome p, q ∈
p • q = p · q mod z
wobei z das festgelegte irreduzible Polynom vom Grad 8 ist.
Es fehlt noch der Beweis, dass der gebildete Erweiterungskörper mit den so definierten Verknüpfungen Addition und Multiplikation tatsächlich die Körperaxiome erfüllt. Die meisten dieser Axiome folgen aus den Axiomen des zugrunde liegenden Körpers ℤ2.
Dass es zu jedem Polynom p ∈
Da z irreduzibel ist, gilt ggt(p, z) = 1. Den größten gemeinsamen Teiler, hier 1, können Sie darstellen als Linearkombination
1 = u·p + v·z
Modulo z gerechnet erhalten Sie
1 ≡ u·p (mod z)
Damit ist u mod z das inverse Element zu p. Mithilfe des erweiterten euklidischen Algorithmus können Sie es auch ausrechnen.
Das Rechnen im Erweiterungskörper
Ein Polynom aus
So stellen Sie etwa das Polynom
p = x4 + x3 + 1
durch den Bitvektor
P = 0 0 0 1 1 0 0 1
dar.
Ob Sie die Elemente des Körpers
Die Addition von Elementen aus
| 1 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | |
| + | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 1 |
| = | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 |
Die Multiplikation von Elementen aus
Eine Multiplikation eines Polynoms p mit dem Polynom q = x1 hat ja zur Folge, dass alle Potenzen von p um 1 erhöht werden. In der Darstellung des Polynoms p als Bitvektor P hat dies zu Folge, dass P um eine Position nach links geschoben wird, wobei rechts eine 0 nachgezogen wird.
Die links herausgeschobene Stelle fällt weg, sodass der Bitvektor die Länge 8 behält.
Um die Schiebeoperation darzustellen und um festzustellen, ob links eine 1 oder eine 0 herausgeschoben wird, benutzen Sie am besten die folgenden kurzen Definitionen:
Mithilfe dieser Definitionen können Sie jetzt ausdrücken, was einem Bitvektor P aus
| x • P = | ![]() |
|
Es ist Zeit für ein Beispiel. Der Bitvektor P = 1 0 0 0 1 1 1 0 wird mit dem Polynom x multipliziert. Er wird nach links geschoben, rechts wird eine 0 nachgezogen, links wird eine 1 herausgeschoben:
| 1 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 |
Das herausgeschobene Bit fällt weg; es ist aber eine 1, daher ist eine Reduktion modulo z erforderlich und darum wird noch Z' addiert:
| 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | |
| + | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 1 |
| = | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
Jetzt sind Sie in der Lage, einen Bitvektor P mit x zu multiplizieren – und damit auch mit x2. Denn Sie brauchen ihn lediglich ein weiteres Mal mit x zu multiplizieren: x2 • P = x • (x • P).
Können Sie auch mit x0 = 1 multiplizieren? Na klar. Aber dann können Sie auch mit x +1 multiplizieren, denn (x+1) • P = x • P + P.
Und Sie können mit x·(x +1) multiplizieren, mit x2 + 1 usw.
Um die Notation noch weiter zu vereinfachen, stellen Sie Polynome aus
Aus dem Polynom x und damit dem Bitvektor 0 0 0 0 0 0 1 0 wird das Byte 02. Aus dem Polynom 1 wird 01, aus dem Polynom x+1 wird 03, aus x2 wird 04.
Die folgenden Produkte kommen bei der Ver- und Entschlüsselung mit dem AES-Verschlüsselungsverfahren vor:
| 01 • P | = | P |
| 02 • P | = | die oben angegebene Multiplikation x • P |
| 03 • P | = | 02 • P + P |
| 04 • P | = | 02 • (02 • P) |
| 08 • P | = | 02 • (04 • P) |
| 09 • P | = | 08 • P + P |
| 0B • P | = | 08 • P + 03 • P |
| 0D • P | = | 08 • P + 04 • P + P |
| 0E • P | = | 08 • P + 04 • P + 02 • P |
Wenn Sie Produkte in dieser Notation darstellen, geben Sie zugleich auch den Gang der Berechnung wieder: Bei jeder Multiplikation mit 02 nehmen Sie ja, wenn nötig, eine Reduktion modulo z vor. Multiplikationen und Reduktionen modulo z verlaufen also ineinander verschränkt.
Die so dargestellten Berechnungen werden im Computer sehr schnell durch Schiebeoperationen (bei der Multiplikation mit 02) und bitweise Exklusiv-Oder-Operationen (bei Additionen) durchgeführt.
Sie haben jetzt drei Darstellungen der Elemente des Körpers
Sie müssen sich nicht für eine Darstellung entscheiden, sondern Sie dürfen je nach Anwendungsfall die Darstellungen auch vermischen, so etwa wie oben 02 • P oder x • P.
Berechnen Sie 03 • C4 auf zwei Arten:
Überführen Sie zunächst die Bytes in die entsprechenden Polynome und multiplizieren Sie diese modulo des festgelegten Polynoms z. Überführen Sie dann das Ergebnis wieder zurück in die Byte-Darstellung.
Multiplizieren Sie 03 und C4 nach der Methode
03 • P = 02 • P + P
wobei P = C4 ist.