Mathematik lernen · Studium
Endliche Körper und Codierungstheorie: Hamming und Reed-Solomon
Wie findet ein Rechner ein einzelnes gekipptes Bit in einer Nachricht und korrigiert es? Die Antwort liefern endliche Körper. Du lernst sie zu konstruieren, rechnest mit ihnen und baust daraus fehlerkorrigierende Codes wie den Hamming-Code.
Beim Übertragen und Speichern kippen manchmal einzelne Bits: durch Rauschen im Funk, durch einen Kratzer auf einer CD, durch einen Fehler im Arbeitsspeicher. Ein fehlerkorrigierender Code fügt der Nachricht gezielt Redundanz hinzu, sodass der Empfänger Fehler nicht nur bemerkt, sondern behebt. Die Mathematik dahinter sind lineare Algebra und endliche Körper, also Körper mit nur endlich vielen Elementen.
Auf dieser Seite lernst du, wie man mit endlichen Körpern rechnet, wie man sie konstruiert und wie daraus Codes entstehen. Die Grundlagen stehen in Ringe und Körper und in der modularen Arithmetik. Die tiefere Struktur erklärt die Galois-Theorie.
Primkörper
Der Restklassenring ist ein Körper genau dann, wenn eine Primzahl ist. Beweis. Ist mit , dann ist in , und ein Körper hat keine Nullteiler. Ist prim und , dann ist , und der erweiterte euklidische Algorithmus liefert mit , also : Das Inverse existiert. Für ist zum Beispiel , denn .
In einem endlichen Körper ist irgendwann . Die kleinste Anzahl von Einsen, die ergibt, heißt die Charakteristik, und sie ist eine Primzahl: Ein Produkt würde Nullteiler erzeugen. Damit enthält den Körper und ist ein Vektorraum über . Hat dieser Vektorraum die Dimension , dann hat genau Elemente.
Körper mit Elementen
Die Rechenregeln in passen nicht zu einem Körper (). Einen Körper mit Elementen erhältst du anders: Nimm und das Polynom . Es hat keine Nullstelle in (, ) und ist deshalb irreduzibel. Rechne mit Polynomen modulo : Sei die „Nullstelle“ von , also . Der Körper hat die Rechenregel und die folgende Multiplikationstabelle.
Es ist und . Jedes Element außer hat ein Inverses, und erzeugt die multiplikative Gruppe: .
Existenz und Eindeutigkeit beweist man mit Zerfällungskörpern: ist der Zerfällungskörper von über und besteht genau aus den Nullstellen dieses Polynoms. Weil eine endliche Untergruppe der Einheiten eines Körpers ist, ist sie zyklisch. Ein erzeugendes Element heißt primitives Element. In ist primitiv: . Wichtig ist auch die Frobenius-Abbildung . Weil alle Binomialkoeffizienten mit teilt, gilt in Charakteristik . Sie ist ein Automorphismus von und erzeugt dessen Galoisgruppe über , die zyklisch von der Ordnung ist.
Ein Körper mit Elementen entsteht mit über , denn ein Polynom vom Grad ist genau dann irreduzibel, wenn es keine Nullstelle hat, und . Die Elemente sind die Polynome mit , und man rechnet mit .
Fehlerkorrigierende Codes
Ein Code ist eine Menge von Wörtern der Länge über einem Alphabet, meist oder . Der Sender verschickt nur Codewörter. Die Hamming-Distanz ist die Zahl der Positionen, an denen sich und unterscheiden, und die Mindestdistanz des Codes ist die kleinste Distanz zweier verschiedener Codewörter.
Beweis. Wird ein Codewort an höchstens Stellen verändert, entsteht kein anderes Codewort. Der Fehler fällt also auf. Die Kugeln mit Radius um verschiedene Codewörter sind disjunkt, denn läge ein Wort in zwei Kugeln um , dann wäre nach der Dreiecksungleichung der Hamming-Distanz. Ein Wort in einer Kugel hat deshalb ein eindeutiges nächstes Codewort.
Das einfachste Beispiel ist der Wiederholungscode: Jedes Bit wird dreimal gesendet, und . Die Mindestdistanz ist , ein Fehler wird per Mehrheit korrigiert. Der Preis: Für ein Datenbit werden drei Bits übertragen, die Rate ist nur . Gesucht sind Codes mit großer Distanz und hoher Rate.
Lineare Codes
Ein linearer Code der Länge und Dimension ist ein -dimensionaler Unterraum von . Er hat Codewörter, man nennt ihn einen -Code. Man beschreibt ihn durch eine Prüfmatrix mit Zeilen: genau dann, wenn . Für ein empfangenes Wort ist das Syndrom. Es ist genau dann, wenn ein Codewort ist. Die Mindestdistanz eines linearen Codes ist das kleinste Gewicht (Zahl der von verschiedenen Stellen) eines Codeworts , und sie ist die kleinste Zahl von Spalten von , die linear abhängig sind.
Der Hamming-Code
Richard Hamming ordnete die Spalten der Prüfmatrix so an, dass die Spalte die Zahl im Dualsystem ist, für :
Die sieben Spalten sind alle von verschiedenen Vektoren aus . Je zwei Spalten sind verschieden, also unabhängig, aber drei sind abhängig, zum Beispiel . Daher ist , und der Code hat Codewörter. Er korrigiert jeden Einzelfehler: Das Syndrom ist die Binärzahl der Fehlerposition.
Der Hamming-Code ist perfekt: Die Kugeln mit Radius um die Codewörter enthalten je Wörter, und füllt den ganzen Raum aus. Jedes empfangene Wort ist daher entweder ein Codewort oder hat genau ein Codewort im Abstand . Der Hamming-Code nutzt von Bits für Daten, die Rate ist , deutlich besser als beim Wiederholungscode. Hängt man ein weiteres Paritätsbit an, erhält man den erweiterten Hamming-Code mit : Er korrigiert einen und erkennt zwei Fehler, wie im Arbeitsspeicher von Servern.
Reed-Solomon-Codes
Die Idee: Ein Polynom vom Grad kleiner als ist durch Werte festgelegt. Man fasst Datensymbole aus als Koeffizienten eines Polynoms auf und sendet seine Werte an verschiedenen Stellen . Zwei verschiedene Polynome vom Grad kleiner als haben höchstens gemeinsame Werte, denn ihre Differenz hat höchstens Nullstellen. Deshalb unterscheiden sich zwei Codewörter an mindestens Stellen, und die Mindestdistanz ist . Das ist der größtmögliche Wert (Singleton-Schranke), die Codes sind „optimal“. Sie korrigieren Fehler. Weil sie Symbolfehler korrigieren und nicht einzelne Bits, bewältigen sie auch Bündelfehler wie einen Kratzer auf einer CD.
Irving Reed und Gustave Solomon beschrieben die Codes 1960 in der Arbeit „Polynomial Codes over Certain Finite Fields“. Sie stecken in CDs und DVDs, in DSL, im digitalen Fernsehen und in QR-Codes. Dasselbe Prinzip steht hinter dem Teilen von Geheimnissen: Ein Polynom vom Grad wird durch Punkte festgelegt, aber nicht durch weniger.
Endliche Körper in der Kryptographie
Das Potenzieren in ist leicht, das Umkehren (der diskrete Logarithmus) im Allgemeinen schwer. Darauf beruht der Schlüsselaustausch nach Diffie und Hellman: Zwei Parteien einigen sich auf eine Primzahl und ein primitives Element , wählen geheime Zahlen und und tauschen und aus. Beide berechnen . Weiteres steht auf der Seite Kryptologie.
Übungen
Geschichte: von Galois zur Compact Disc
Évariste Galois verwendete 1830 „imaginäre“ Lösungen von Kongruenzen modulo einer Primzahl und konstruierte damit die endlichen Körper mit Elementen. Eliakim Hastings Moore bewies 1893, dass es zu jeder Primzahlpotenz bis auf Isomorphie genau einen endlichen Körper gibt, und führte den Namen „Galois field“ ein. Die Anwendung auf die Fehlerkorrektur begann nach dem Zweiten Weltkrieg. Claude Shannon zeigte 1948 in „A Mathematical Theory of Communication“, dass sich mit geeigneten Codes jede Übertragungsrate unterhalb der Kanalkapazität mit beliebig kleiner Fehlerwahrscheinlichkeit erreichen lässt. Sein Beweis war nicht konstruktiv, er sagte nicht, wie die Codes aussehen. Richard Hamming entwickelte sein Verfahren bei den Bell Labs, weil der Rechner Bell Model V Fehler beim Lesen von Lochkarten selbst beheben sollte, und veröffentlichte es 1950. Reed und Solomon folgten 1960. Heute stecken beide Ideen in Speicherchips, Satellitenverbindungen, CDs und QR-Codes.
Häufige Fragen
Gibt es einen Körper mit 6 Elementen?
Nein. Die Elementzahl eines endlichen Körpers ist immer eine Primzahlpotenz, und ist keine.
Wozu braucht man ?
Ein Byte hat Bits, also mögliche Werte. In mit einem irreduziblen Polynom vom Grad lässt sich jedes Byte als Körperelement auffassen, und man kann Bytes addieren, multiplizieren und teilen. Das nutzen Reed-Solomon-Codes und die Verschlüsselung AES.
Warum nimmt man nicht einfach den Wiederholungscode?
Er korrigiert zwar, aber seine Rate ist niedrig: Für ein Datenbit werden drei übertragen. Der Hamming-Code liefert bei gleicher Korrekturleistung eine Rate von .
Quellen und weiterführende Literatur
- Wikipedia: Endlicher Körper
- Wikipedia: Hamming-Code
- Wikipedia (englisch): Reed–Solomon error correction
- Rudolf Lidl, Harald Niederreiter: Finite Fields, Cambridge University Press.
- Jürgen Bierbrauer: Introduction to Coding Theory, Chapman and Hall/CRC.
Fehler entdeckt oder einen Wunsch? Schreib uns eine kurze Nachricht, wir kümmern uns darum.


