Table Of ContentRalph-Hardo Schulz
Codiemngstheorie
___ --Aus dem Programm ___________
Mathematik
Albrecht Beutelspacher
Kryptologie
Gerd Fischer
Lineare Algebra
Gerhard Frey
Elementare Zahlentheorie
Manfred Knebusch und Claus Scheiderer
Einfiihrung in die reelle Algebra
Ulrich Krengel
Einfiihrung in die Wahrscheinlichkeitstheorie und Statistik
Ernst Kunz
Algebra
Wolfram Luther und Martin Ohsmann
Mathematische Grundlagen der Computergraphik
Alexander Prestel
Einfiihrung in die Mathematische Logik und Modelltheorie
__ \1eweg __________________
~ ~
Ralph-Hardo Schulz
Codierungstheorie
Eine Einführung
IJ
Vleweg
Prof. Dr. Ralph-Hardo Schulz
Institut rur Mathematik 11 (WE 2)
Freie Universität Berlin
Arnimallee 3
D-I000 Berlin
Alle Rechte vorbehalten
© Friedr. Vieweg & Sohn Verlagsgesellschatt mbH, BraunschweiglWiesbaden 1991
Der Verlag Vieweg ist ein Unternehmen der Verlagsgruppe Bertelsmann International.
Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede
Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist
ohne Zustimmung des Verlags unzulässig und strafbar. Das gilt insbesondere
für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspei
cherung und Verarbeitung in elektronischen Systemen.
ISBN 978-3-528-06419-8 ISBN 978-3-322-91939-7 (eBook)
DOI 10.1007/978-3-322-91939-7
Vorwort
Codierungstheorie ! Mein Interesse an ihr wurde schon während meiner Assistenten
Zeit geweckt, als wir in einem Seminar von Peter Dembowski die Lecture Notes von
van Lint lasen. Beeindruckte der Stoff doch durch eleganten Aufbau und geschickte
Schlußweisen und versah darüberhinaus die von den Studenten als allzu theoretisch emp
fundene Reine Mathematik mit einem unbestreitbaren Anwendungsbezug. Inzwischen
hat die eng mit der Codierungstheorie verbundene digitale Signalverarbeitung auch für
den Laien sichtbar Einzug in das Alltagsleben gefunden, etwa durch Computerkassen,
Compact-Disc, Glasfaser-Telefonleitungen, Fernseher mit digitaler Technik.
Demgemäß ist der vorliegende Text inhaltlich etwas breiter angelegt: Außer den Kompres
sionsmethoden der Quellencodierung und der algebraischen Theorie der Kanalcodierung
werden unter anderem auch Prüfzeichenverfahren und Themen aus der Kryptographie
angesprochen. Es handelt sich dabei stets um eine Einführung in diese Teilgebiete mit
vielen Literaturhinweisen für selbständiges Weiterlesen; so wird man den einen oder an
deren Begriff, Satz oder Algorithmus erst beim Selbststudium entdecken.
Zielgruppe des Buches sind Studenten und Lehrer der Mathematik und der Informatik und
alle anderen, die Vorkenntnisse haben in mathematischer Nomenklatur, in elementarer
Wahrscheinlichkeitsrechnung und den Anfängen der Algebra und der Linearen Algebra.
Nur in einigen (besonders gekennzeichneten und überschlagbaren) Paragraphen werden
verstärkt Kenntnisse der Algebra herangezogen, nicht ohne die verwandten Tatsachen
noch einmal explizit aufzuführen. (Man beachte auch die Zusammenstellung im Anhang.)
Dieses Buch ist entstanden aus einer Vorlesung, die ich während eines" Streik" -Semesters
an der Freien Universität Berlin gehalten habe, jedenfalls zu Anfang des Semesters. Um
sich nicht unsolidarisch mit ihren streikenden Kommilitonen zu zeigen, hatten dann die
Teilnehmer ein" autonomes Seminar" mit mir als Berater gegründet; nach häuslichem
Studium meiner Notizen wurde in diesem Seminar dann über evtl. Verständnislücken
diskutiert, ein Umstand, der mich manchen Mangel des Textes erkennen ließ und Abhilfe
ermöglichte. Den Studenten dieser für alle Teile anstrengenden Veranstaltung danke ich
für viele wertvolle Diskussionsbeiträge, u. a. den Damen B. Damman, S. Gebhardt,
U. Minne. Für Erklärungen und weitere Hinweise vor oder nach Erstellen des Skripts
bin ich den Herren Prof. H. Lenz, Dr. H.-J. Matt, Dr. B. Schomburg und Chr. Tismer
verbunden. Frau M. Thoelldte vom 2. Mathematischen Institut der Freien Universität gilt
mein besonderer Dank für die schwierige Arbeit des Schreibens des Manuskripts in Latex,
außerdem Herrn M. Wilhelm für das Lösen von Layout-Problemen und das Anfertigen
einiger Figuren in diesem System.
Berlin, im Mai 1991 Ralph-Hardo Schulz
Inhaltsverzeichnis
( ~ kennzeichnet Paragraphen, in denen verstärkt Kenntnisse aus der Algebra einfließen)
I Einleitung
1 Wörter über einem Alphabet: Definitionen und Beispiele . . . . . .. 1
2 Erste Strukturierungen . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 9
A) Binäre Wörter als Teilmengen . . . . 9
B) Klassenbildung nach Anfangsstücken 11
3 Exkurs: Graphen und Bäume . . . . 16
A) Definitionen und Beispiele .. . 16
B) Die Kraftsche Ungleichung .. . 24
C) Wege in Netzen, Spaliergraphen 26
11 Quellencodierung
4 Codierungen, insbesondere direkte Quellencodierungen 31
5 Präfixcodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
6 Datenkompression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Huffman-, Fano-, Wort codierung
7 Information, Entropie und Codierungsaufwand . . . . . . . . . . .. 49
Fundamentalsatz über die Quellencodierung von Shannon
111 Fehlererkennende und fehlerkorrigierende Codes
8 Prüfzeichenverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 56
A) Einführung ........... 56
B) Elementare Methoden ........................... . 59
C) Verallgemeinerung auf Gruppen . . . . . . . . . . . . . . . . . . . . . . . 61
D) Prüfzeichen-Codierung über Quasigruppen bzw. Lateinischen Quadraten 68
9 Nachrichtenübertragung bei gestörten Kanälen ....... . 74
Paritätskontrolle, Binäre Kanäle, Maximum-Likelihood-Decodierung
10 Der Sequenzraum: Codes und Kugelpackungen ... . ..... 83
Hamming-Abstand, Perfekte Codes, Äquivalenz von Codes,
Wörter als Vektoren, duale Codes
11 Lineare Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Grundlegende Eigenschaften, Darstellung durch Basis- bzw. Kontrollmatrix,
Syndrom, Gewichtsverteilung und MacWilliams Gleichungen
12 Hamming-Codes und erweiterte Hamming-Codes ............ 111
13~ Weitere Strukturierung von Wörtern . . . . . . . . . . . . . . . . . . . .116
Wörter als Polynome, als Elemente eines Erweiterungskörpers
14~ Definitionen und Eigenschaften zyklischer Codes . . .......... 126
A) Einführung und Generatorpolynom . 126
B) Kontrollpolynom und Kontrollmatrix 133
C) Codieren mit zyklischen Codes. . . . 138
15~ Körpererweiterungen und zyklische Codes ................ 142
A) Codes und erzeugende Elemente eines Körpers ................ 142
B) Codes und primitive n-te Einheitswurzeln . . . . . . . . . . . . . . . . . . 151
BCH-Schranke, BCH-, RS-Codes, binärer Golay-Code
16~ Diskrete Fouriertransformation . . . . . . . . . . . . . . . . . . . . . . . 161
17~ Spektraltheorie bei zyklischen Codes . . . . . . . . . . . . . . . . . . . . 168
A) Paritätsfrequenzen ....................... 168
B) Urbild-Beschränkung und spektrale Form der BCH-Schranke 171
C) Spektrales Codieren . . . . . . . . . . . . . . . . . . . . . . 175
Anhang zu Kapitel III
18 Codes und endliche Geometrien . . . . . . . . . . . . . . . . . . . . . . . 181
A) Konstruktion von Steinersystemen aus perfekten Codes 181
B) Codes, Ovale und kubische Kurven ...................... 187
IV Kryptographie
19 Verschlüsselungsverfahren ........................... 190
A) Klassische Chiffriersysteme . . . . . . . . . . . . . . . . . . . . 190
B) Öffentliche Chiffrierverfahren ......................... 197
Anhang: Ausgewählte Definitionen und Sätze aus den Gebieten:
A) Wahrscheinlichkeitsrechnung · 201
B) Algebra ..... · 203
C) Lineare Algebra ...... . · 206
Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Bezeichnungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Stichwortverzeichnis ................................. 222
Kap. I: EINLEITUNG
1 Wörter über einem Alphabet: Definitionen und
Beispiele
Wir behandeln hier unter anderem die Darstellung von Nachrichten, die von einem Sender
(-der Quelle -) zu einem Empfänger übertragen werden (vgl. das Schema von Figur 1.1).
Sender Mitteilung
Empfänger
(Quelle)
Figur 1.1: Einfachstes Schema der Nachrichtenübertragung
Die Mitteilungen können z. Bsp. in folgende Form gekleidet sein:
- gesprochene oder geschriebene Wörter
- Pantomime-Gesten
- Signale (elektrische oder elektromagnetische Impulse beim Telefonieren, Funken,
Morsen; Flaggenzeichen der Marine; Zeigerstellungen beim optischen Telegraphen).
Sie setzen sich aus einer Folge von Zeichen zusammen. Wir nehmen hier meist an, daß
die Menge A der von einer Quelle benutzten Zeichen endlich ist. Wir nennen A dann
den Zeichenvorrat, das Alphabet der Quelle. Falls keine Reihenfolge (Anordnung) der
Zeichen vorgegeben ist, so legen wir eine willkürlich fest.
1.1 Beispiele eines Alphabets
{A,B,C, ... , Y, Z} gewöhnliches Alphabet
{0,1, ... ,8,9} Dezimalziffern
{O, 1, ... ,8,9, A, B, C, D, E, F} Hexadezimalziffern.
Diese Ziffern werden benutzt, um Zahlen im "hexadezimalen Positionssystem" dar
zustellen. Dabei steht A für 10, B für 11 usw. Es gilt definitionsgemäß:
n
=
an· .. ao H (hexadezimal) Lai' 16i (dezimal)
i=o
Beispiel: 2AIH = 2 . 162 + 10 . 16 + 1 . 1 (wegen AH = 10)
alphanumerischer Zeichenvorrat: Alphabet, das die Buchstaben des gewöhnlichen
Alphabets und die Ziffern 0 bis 9 enthält.
2 Kap. I: EINLEITUNG
Zeichensatz des ASCII-Codes (s.u. 1.2(i))
{ . , -, Pause} Zeichen des Morse-Codes
{A, G, C, T, U} U {0} Zeichen für die Nukleotiden (Adenin, Guanin, Cyto
sin, Thymin, Uracil) des Genetischen Codes im DNS
Molekül einschließlich einer "dummy-Variablen" für
Auslassungen (----t Molekularbiologie; s. auch 1.2 (iv))
{O, 1, 2} ternäres Alphabet
{O, I} binäres Alphabet
Anmerkung: Jedes Zeichen des letztgenannten Alphabets heißt" Bit" (binary digit).
Mit Folgen aus 0 und 1 lassen sich Zahlen und Wörter "dual" darstellen (s.u.). Für ein
Schriftzeichen (inclusive der Markierung als solches) benutzt man dabei oft 8 Bit (= 1
Byte).
Statt {O, I} kann man auch {O, L} benutzen oder {+1, -I} ("Spin up" oder "Spin down"
bei Elementarteilchen in der Physik) oder { "Strom fließt", "Strom fließt nicht" }
{"Laser-Impuls", "kein Laser-Impuls"} oder {"Schalteroffen", "Schalter geschlossen"}.
Weitere Beispiele von Zeichenvorräten s. etwa BAUER & GOOS [1971].
1.2 Beispiele eines Wechsels des Alphabets
Oft ist es aus technischen oder anderen Gründen notwendig, von dem ursprünglichen
Alphabet der Quelle zu einem anderem Alphabet überzugehen. Wir behandeln
dazu exemplarisch einige Beispiele.
(i) Beispiel 1: ASCII-Code
Der heute übliche Standard zur binären Darstellung von Buchstaben, Zahlen und Zei
chen in einem Computer ist der ASCII-Code (American Standard Code for Information
Interchange) bzw. seine deutsche Ausprägung (s. Tabelle 1.1). Hier werden 128 (= 27)
alphanumerische Zeichen (große und kleine Buchstaben, Umlaute, Satz-, Sonder- und
Steuerzeichen) durch 7- bzw. 8-Bit Codewörter dargestellt (wobei oft die 8. Position 0
oder 1 gesetzt wird derart, daß die Gesamtzahl der mit 1 besetzten Positionen gerade ist.)
Ein erweiterter Zeichensatz setzt sich aus 256 Zeichen zusammen.
Beispiele
(a) K Dezimale Nummer des Zeichens: 75
Hexadezimale Nummer des Zeichens: 4B
(wegen 75 : 16 = 4 Rest 11/16 und 11 = BH)
direkte binäre Codierung der Ziffern: 10011011 wegen 4H = 100 (binär)
= =
und EH 11 1011 (binär); rückwärts gelesen: 1101 001.
1 Wörter über einem Alphabet 3
(b) S Dezimale Nummer: 83
+ =
Hexadezimale Nummer: 53 (wegen 5 ·16 3 83)
=
Binäre Darstellung: 1100101 (wegen 513 10110011 )
(S.z.Bsp. HEISE & QUATTROCCHI [1983] p. 21, A. SCHULZ [1973] p.69-79, aber auch
Tabelle 4.1 letzte Spalte, s. u.)
D Z H C D Z H C D Z H C
48 0 30 0000 110 64 @ 40 0000 001 80 P 50 0000 101
49 1 31 1000 110 65 A 41 1000 001 81 Q 51 1000 101
50 2 32 0100 110 66 B 42 0100 001 82 R 52 0100 101
51 3 33 1100 110 67 C 43 1100 001 83 S 53 1100 101
52 4 34 0010 110 68 D 44 0010 001 84 T 54 0010 101
53 5 35 1010 110 69 E 45 1010 001 85 U 55 1010 101
54 6 36 0110 110 70 F 46 0110 001 86 V 56 0110 101
55 7 37 1110 110 71 G 47 1110 001 87 W 57 1110 101
56 8 38 0001 110 72 H 48 0001 001 88 X 58 0001 101
57 9 39 1001 110 73 I 49 1001 001 89 Y 59 1001 101
58 : 3A 0101 110 74 J 4A 0101 001 90 Z 5A 0101 101
59 ; 3B 1101 110 75 K 4B 1101 001 91 [ 5B 1101 101
60 < 3C 0011 110 76 L 4C 0011 001 92 \ 5C 0011 101
61 = 3D 1011 110 77 M 4D 1011 001 93 ] 5D 1011 101
62 > 3E 0111 110 78 N 4E 0111 001 94 • 5E 0111 101
63 ? 3F 1111 110 79 0 4F 1111 001 95 - 5F 1111 101
Tabelle 1.1: Auszug aus der ASCII-Code-Tabelle
D: Dezimale Nummer, H: Hexadezimale Nummer,
Z: Zeichen vor der Codierung,
C: Codewort (H ziffernweise binär geschrieben)
(ii) Beispiel 2: Tonverarbeitung
Eine Tonquelle liefert i.a. ein kontinuierliches (sogenanntes analoges) Signal; aus Kapa
zitäts- und Qualitätsgründen wird dieses neuerdings oft in Signale über einem endlichen
Alphabet umgewandelt (zum Beispiel bei der Compact-Disc-Platte, CD, und dem Digital
Audio-Tape, DAT). Dazu ist die Amplitudenskala in endlich viele Intervalle eingeteilt,
also quantisiert; bei der Umwandlung wird in sehr kurzen Zeitabständen abgetastet, in
welchem dieser Intervalle gerade der Amplitudenmeßwert liegt, (s. Figur 1.2). So entsteht
eine Folge von Zeichen aus einem endlichen Alphabet. Diese Analog-Digital-Umwandlung
besteht also aus zwei " Diskretisierungen" ,der Abtastung und der Quantisierung. Bei
genügend großer Abtastfrequenz (z. Bsp. 44100 mal in der Sekunde) ist eine sehr gute
Rekonstruktion des analogen Signals aus der digitalen Folge erreichbar.