Rechnen mit Polynomen in Körpern

Werbung
Theoretische
Nachrichtentechnik
Fakultät Elektrotechnik und Informationstechnik –
Institut für Nachrichtentechnik –
Lehrstuhl Theoretische Nachrichtentechnik
Prof. Eduard A. Jorswieck, Dr. Anne Wolf
21.11.2016
Der Text auf den folgenden Seiten ist im Wintersemester 2008/2009 als Ergänzung zu den Darstellungen in der Vorlesung entstanden. Er ersetzt keine Definitionen und Beweise, sondern versucht, den
behandelten Stoff nochmals anders aufzuarbeiten und zu strukturieren, Kommentare und Hinweise zu
geben, Zusammenhänge zu erläutern, um das ganze Themengebiet etwas zu veranschaulichen und mit
Leben zu erfüllen.
Rechnen mit Polynomen in Körpern
Irreduzible Polynome sind auch nur „Primzahlen“!
Ein Polynom p(x) vom Grad m mit Koeffizienten aus Fp heißt irreduzibel (über einem Körper Fp ),
wenn es sich (in diesem Körper) nicht weiter zerlegen lässt, d. h. das Polynom kann nicht als Produkt
von zwei Polynomen mit Koeffizienten aus Fp geschrieben werden, die einen Grad größer 0 und kleiner
m besitzen.
Der Nachweis der Irreduzibilität erfolgt, indem man eine Polynomdivision im Körper Fp (d. h. für
alle Koeffizienten gilt mod p) mit allen möglichen Polynomen durchführt. Praktisch kann man dabei
folgende Vereinfachungen vornehmen:
• Überprüfung, ob sich Linearfaktoren abspalten lassen (Nullstellensuche durch Einsetzen der Elemente aus Fp ),
m
• Polynomdivision nur mit Polynomen bis zum Grad m
2 (ein Polynom mit Grad größer 2 erfordert
als „Partner“ bei der Multiplikation ein Polynom mit Grad kleiner m
2 , wenn das Produkt den Grad
m haben soll),
• Polynomdivision nur mit irreduziblen Polynomen.
Anmerkung: Die irreduziblen Polynome kann man sich als Primzahlen vorstellen. Der Test auf Irreduzibilität entspricht dem Versuch der Primzahlzerlegung einer Zahl oder dem Test, ob diese Zahl
eine Primzahl ist.
Primitive Polynome
Ein über Fp irreduzibles Polynom p(x) vom Grad m heißt primitiv, wenn es in Fp
• xn − 1 für n = pm − 1 (ohne Rest) teilt, aber
• xn − 1 für n < pm − 1 und n ∈ N nicht teilt.
Der Nachweis erfolgt durch die Ausführung der Polynomdivisionen für die verschiedenen Potenzen.
Einige Aussagen:
• Für jeden Körper Fp und jede Zahl m ∈ N existiert mindestens ein primitives Polynom p(x) mit
grad p(x) = m.
• Jedes primitive Polynom ist irreduzibel, aber nicht jedes irreduzible Polynom ist primitiv.
Technische Universität Dresden, Lehrstuhl Theoretische Nachrichtentechnik
Lehrveranstaltung Codierungstheorie, Wintersemester 2016 / 2017
„Kochrezepte“ für Prim- und Erweiterungskörper
Was erwarten wir von dem Primkörper Fp ?
• p verschiedene Elemente,
• zwei geeignete Operationen (nennen wir sie „Addition“ und „Multiplikation“), die so definiert
sind, dass sie alle von einem Körper geforderten Eigenschaften (siehe Tabelle „Übersicht zu einigen
algebraischen Strukturen“) aufweisen.
Wie konstruieren wir den Primkörper Fp ?
Wir gehen von einer unendlichen (aber abzählbaren) Menge aus, nämlich der Menge der ganzen Zahlen
Z. Wir wählen eine Primzahl p ∈ Z. Wir klassifizieren alle Elemente in Z gemäß ihrer Reste bei der
Division durch p, d. h. alle Zahlen mit gleichem Rest (bei Division durch p) landen im gleichen „Topf“.
Wir haben also jetzt p „Töpfe“, denen wir als „Namen“ (oder Repräsentanten) jeweils die betragsmäßig
kleinste Zahl darin zuordnen, d. h. wir „beschriften“ unsere „Töpfe“ mit den Zahlen 0, 1, . . . , p − 1.
Damit haben wir mit unseren „Töpfen“ nun die gewünschte Menge mit p verschiedenen Elementen.
Die beiden geeigneten Operationen, die die Körpereigenschaften zusammen mit dieser Menge erfüllen,
können wir durch entsprechend konstruierte Additions- und Multiplikationstabellen angeben. Für die
praktische Berechnung können wir auf das Arbeiten mit den beiden Operationstabellen verzichten,
wenn wir sie durch einfache Rechenregeln vollständig charakterisieren können. In diesem Fall können
wir das: Die beiden Operationen sind nämlich genau die Addition und die Multiplikation mod p.
Menge mit p Elementen
zwei Operationen
Operationstabellen
0
1
...
p−1
oder
Rechenregeln
+
0 ... p − 1
0
..
.
p−1
·
0 ... p − 1
0
..
.
p−1
... = ...
Anmerkung: Wir haben jetzt einen Körper mit p Elementen beschrieben. Alle anders aussehenden
Körper mit p Elementen lassen sich auf diesen Körper zurückführen. Durch entsprechende Umbenennung der Elemente (und evtl. Umsortierung der Zeilen und Spalten der Operationstabellen) können
wir den einen Körper aus dem anderen erhalten. Man sagt, die Körper sind isomorph zueinander.
Man kann also sagen: Es gibt beliebig viele Darstellungen für einen Primkörper mit p Elementen, aber
am schönsten rechnet es sich mit dem oben beschriebenen!
Was erwarten wir von dem Erweiterungskörper Fpm ? – Fast das gleiche wie von Fp !
• pm verschiedene Elemente,
• zwei geeignete Operationen („Addition“ und „Multiplikation“), die so definiert sind, dass sie alle
von einem Körper geforderten Eigenschaften aufweisen.
Wie konstruieren wir den Erweiterungskörper Fpm ? – Fast genau so wie Fp !
Leider lässt sich der Erweiterungskörper nicht einfach aus Z mit der Division durch pm und den
Operationen mod pm erzeugen. Das demonstriert Fall (1) in Aufgabe 3, wo die Additions- und Multiplikationstabelle mod pm für den Fall p = 2 und m = 2 (also mod 4) dargestellt sind.
Wir können bei der Erstellung des Erweiterungskörper Fpm aber das gleiche Prinzip anwenden wie
bei der Erzeugung des Primkörpers Fp : Wir gehen wieder von einer unendlichen (aber abzählbaren)
Menge aus, wählen diesmal aber die Menge aller Polynome mit Koeffizienten aus Fp und nennen diese
Menge Fp [x]. Wir wählen wieder eine „Primzahl“, nämlich ein in Fp irreduzibles (und am besten
Technische Universität Dresden, Lehrstuhl Theoretische Nachrichtentechnik
Lehrveranstaltung Codierungstheorie, Wintersemester 2016 / 2017
auch primitives) Polynom p(x) ∈ Fp [x] vom Grad m. Wir wollen auch wieder die unendliche Anzahl
von Elementen unserer Grundmenge Fp [x] auf eine endliche Anzahl „Töpfe“ aufteilen. Dazu sortieren
(oder klassifizieren) wir die Polynome gemäß ihrem Rest bei der Division durch p(x). Die Polynome
haben nur Koeffizienten aus Fp , die Polynomdivision erfolgt (wie beim Test auf Irreduzibilität eines
Polynoms) für die Koeffizienten in Fp , d. h. man rechnet bei den Koeffizienten mod p. Alle Polynome
gleichen Rests landen im gleichen „Topf“. Als „Beschriftung“ für die „Töpfe“ wählen wir jeweils das
Polynom kleinsten Grades in jedem „Topf“, weil dieses Polynom jeweils alle anderen in diesem „Topf“
repräsentiert. Wir erhalten also pm „Töpfe“, die als Bezeichnung alle möglichen Reste bei Division
durch ein Polynom vom Grad m tragen: Das sind (analog zum Primkörper) genau alle Polynome vom
Grad kleiner m. Damit haben wir nun die gewünschte Menge mit pm verschiedenen Elementen.
Wie beim Primkörper können wir die beiden geeigneten Operationen („Addition“ und „Multiplikation“), die die Körpereigenschaften zusammen mit der Menge der Restpolynome erfüllen, durch entsprechend konstruierte Additions- und Multiplikationstabellen angeben. Für die praktische Berechnung
wünschen wir uns allerdings wieder einfache Rechenregeln, die die beiden Operationstabellen ersetzen. Die Addition für den Erweiterungskörper können wir einfach als die komponentenweise Addition
der Polynome darstellen, wobei für die Koeffizienten aus Fp wiederum die Addition mod p verwendet
wird. Bei der Multiplikation für den Erweiterungskörper ist etwas Vorsicht angebracht: Wir verwenden
die Multiplikation der Polynome miteinander (für die Koeffizienten aus Fp gilt wieder die Multiplikation mod p), die (so definiert) allerdings zu Ergebnissen führen kann, die aufgrund ihres höheren
Grades nicht in der Menge unseres Erweiterungskörpers liegen. Diese Multiplikationsergebnisse müssen also noch dem richtigen „Topf“ zugeordnet werden. Dies geschieht (analog zum Primkörper und
dem Rechnen mod p) durch die Klassifizierung mod p(x), d. h. durch die Bestimmung des Restes bei
Polynomdivision durch p(x). Das Rechnen in Erweiterungskörpern geht noch etwas einfacher, aber
dazu kommen wir später, denn wir brauchen dafür ein primitives Element in diesem Körper.
Anmerkung: Wir haben jetzt einen Körper mit pm Elementen beschrieben. Alle anders aussehenden
Körper mit pm Elementen sind isomorph zu diesem und lassen sich (durch Umbenennung der Elemente, ...) auf diesen Körper zurückführen. Die Fälle (2) und (3) in Aufgabe 3 verdeutlichen diesen
Sachverhalt für den Fall p = 2 und m = 2: (3) ist der Erweiterungskörper F4 = F22 , der mit dem
Polynom p(x) = x2 + x + 1 erzeugt worden ist, in Polynomdarstellung; (2) ist eine andere Repräsentation dieses Erweiterungskörpers (ausgedrückt mit den Zahlen 0, 1, 2, 3), in der man allerdings auf die
Operationstabellen angewiesen ist, da die Rechenregeln nicht offensichtlich sind.
Man kann also wieder sagen: Es gibt beliebig viele Darstellungen für einen Primkörper mit pm Elementen, aber am schönsten rechnet es sich mit dem eben beschriebenen!
Einige Aussagen:
• Für ein beliebiges Polynom p(x) ist die aus den Polynomen Fp [x] mod p(x) gebildete Menge zusammen mit der Polynomaddition und -multiplikation mod p(x) ein Ring.
• Wenn p(x) irreduzibel über Fp ist, dann ist die aus den Polynomen Fp [x] mod p(x) gebildete Menge
zusammen mit der Polynomaddition und -multiplikation mod p(x) genau ein Körper.
Primitive Elemente in Prim- und Erweiterungskörpern
Mit Hilfe des primitiven Elements α eines Primkörpers Fp kann man alle p − 1 Elemente (außer 0)
von Fp erzeugen, denn αj durchläuft für j = 0, . . . , p − 2 alle Elemente des Primkörpers.
In einem Erweiterungskörper gilt sinngemäß das gleiche: Das primitive Element α ∈ Fpm erzeugt mit
αj und j = 0, . . . , pm − 2 alle pm − 1 Elemente (außer 0) des Erweiterungskörpers.
Man vereinbart außerdem α−∞ = 0.
Einige Aussagen:
• Jeder Körper hat mindestens ein primitives Element.
• Im Erweiterungskörper Fpm ist α eine Nullstelle des primitiven Polynoms p(x), d. h. p(α) =
0 mod p(x). (Und weil uns das künftig beim Rechnen hilft, am besten immer ein primitives Polynom
zur Erzeugung des Erweiterungskörpers verwenden!)
Technische Universität Dresden, Lehrstuhl Theoretische Nachrichtentechnik
Lehrveranstaltung Codierungstheorie, Wintersemester 2016 / 2017
Rechnen mit primitiven Elementen im Prim- und Erweiterungskörper
Mit einem primitiven Polynom p(x) und p(α) = 0 mod p(x) können wir die Erzeugung von Fpm und
das Rechnen im Erweiterungskörper etwas vereinfachen: Man kann damit Potenzen vom Grad größer
oder gleich m „runtertransformieren“, d. h. durch entsprechende Ausdrücke kleineren Grades ersetzen.
Es gilt
p(α) = αm + pm−1 · αm−1 + . . . + p1 · α + p0 = 0 mod p(x)
αm = −pm−1 · αm−1 − . . . − p1 · α − p0 mod p(x)
mit pi ∈ Fp und −pi als inversen Elementen zu pi bezüglich der Addition in Fp für i = 1, . . . , m − 1.
Um die folgende Aussage etwas kompakter zu formulieren, schreiben wir Fq und setzen q = p für den
Primkörper sowie q = pm für den Erweiterungskörper. Wegen α0 = αq−1 = 1 gilt:
αi = αi mod(q−1)
αi · αj = αi+j mod(q−1)
Rechnen mit „Töpfen“ – ein Beispiel
p(x) = x3 + x + 1 ist ein irreduzibles und primitives Polynom über F2 .
Wir wollen damit den Erweiterungskörper F8 = F23 konstruieren, d. h. p = 2 und m = 3.
Es gilt:
p(α) = 0 = α3 + α + 1
α3 = −α − 1 = α + 1
(mit Koeffizienten aus F2 rechnen wir mod 2).
Für die Elemente des Erweiterungskörpers F23 erhält man folgende Schreibweisen:
Exponent
j
Potenz
αj
−∞
α−∞
0
=0
0
0
0
0
1
2
3
4
5
6
α0
α2
α3
α4
α5
α6
1
α
α2
α3
α4
α5
α6
=1
=α
= α2
=1+α
= α + α2
= 1 + α + α2
= 1 + α2
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
7
α7
α7
=1
1
0
0
α1
Polynom
= α+1
= α · α3
= α · α4
= α · α5
= α · α6
α · (α + 1)
α · (α2 + α)
α · (α2 + α + 1)
= α3 + α2
= α3 + α2 + α
α · (α2 + 1)
= α3 + α
Zyklus wiederholt sich
Binär
1 α α2
Die folgenden Aussagen gelten für die Tabellendarstellung unter Vernachlässigung der letzten Zeile,
die nur demonstrieren soll, dass αj die Elemente des Erweiterungskörpers (ohne 0) zyklisch durchläuft.
Die 23 = 8 Elemente des Erweiterungskörpers sind
•
•
•
•
in der ersten Spalte über die Exponenten des primitiven Elements α,
in der zweiten Spalte als Potenzen des primitiven Elements α,
in der dritten Spalte in Polynomschreibweise (Umformung mittels α3 = α + 1) und
in der vierten Spalte in der binären Kurzschreibweise für die Polynome (kleine Potenzen links,
große Potenzen rechts)
dargestellt.
Technische Universität Dresden, Lehrstuhl Theoretische Nachrichtentechnik
Lehrveranstaltung Codierungstheorie, Wintersemester 2016 / 2017
Herunterladen