Zyklische Codes & CRC

Ähnliche Dokumente
Zyklische Codes Rechnernetze Übung SS2010

Themen. Sicherungsschicht. Rahmenbildung. Häufig bereitgestellte Dienste. Fehlererkennung. Stefan Szalowski Rechnernetze Sicherungsschicht

31 Polynomringe Motivation Definition: Polynomringe

Error detection and correction

Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Mai 2011

Übungen zur Vorlesung Grundlagen der Rechnernetze. Zusätzliche Übungen

Fehlererkennende und fehlerkorrigierende Codes

Technische Informatik - Eine Einführung

Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Mai 2012

Codierungsverfahren SS Reed-Solomon-Codes zur Mehrblock-Bündelfehler-Korrektur

Fehlererkennung. Fehlererkennung

Fehlererkennung und -behandlung. Paritätsverfahren

Formelsammlung Kanalcodierung

Galoiskörper GF(2 n ) (Teschl/Teschl 4)

Galoiskörper GF(2 n ) (Teschl/Teschl 4)

Übungen zu Architektur Eingebetteter Systeme. Teil 1: Grundlagen. Blatt : Grundlagen des Cyclic redundancy code (CRC)

Empfänger. Sender. Fehlererkennung und ggf. Fehlerkorrektur durch redundante Informationen. Längssicherung durch Paritätsbildung (Blockweise)

Gegeben ist ein systematischer (7,3)-Cod. Die drei seiner Codewörter lauten:

Kongruenz modulo g definiert auf K[x] eine Äquivalenzrelation g : h g f h f ist durch g teilbar, und [f] g ist die Äquivalenzklasse von f.

Rechnernetze Übung 5. Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Mai Wo sind wir?

Cyclic Redundancy Code (CRC)

Grundlagen der Technischen Informatik. Hamming-Codes. Kapitel 4.3

Codierung zur Fehlerkorrektur und Fehlererkennung

CRC Einführung. Version: Datum: Autor: Werner Dichler

Codierungstheorie Teil 1: Fehlererkennung und -behebung

a i x i, (1) Ein Teil der folgenden Betrachtungen gilt auch, wenn man den Körper durch einen Ring ersetzt.

WS 2009/10. Diskrete Strukturen

Diskrete Mathematik. Sebastian Iwanowski FH Wedel. Kap. 4: Zahlentheorie

Lineare Schieberegisterfolgen

Übung zu Drahtlose Kommunikation. 7. Übung

Vorlesung. Inhalt. Lineare Algebra und Wahrscheinlichkeitsrechnung für Informatik Gunter Ochs, Nico Rompos Sommersemester 2016

6.2. Ringe und Körper

Ganzrationale Funktionen

Kapitel III Ringe und Körper

13. Algorithmus der Woche Fehlererkennende Codes Was ist eigentlich ISBN?

6. Lösungsblatt

KANALCODIERUNG AUFGABEN. Aufgabe 1. Aufgabe 2

Kapitel 3 Kanalcodierung

Rechnernetze 1 Vorlesung im SS 07

Vorkurs: Mathematik für Informatiker

Die Mathematik in der CD

Endliche Körper Seminar: Diskrete Mathematik Leitung: Prof. Dr. Rainer Lang Von: Steffen Lohrke (ii5105) SS2005

Informationstheorie und Codierung

8. Musterlösung zu Mathematik für Informatiker II, SS 2004

Klausur Informationstheorie und Codierung

Netzwerkprozessoren und CRC-Zeichen

Einführung in die linearen Funktionen. Autor: Benedikt Menne

Bemerkungen. Gilt m [l] n, so schreibt man auch m l mod n oder m = l mod n und spricht. m kongruent l modulo n.

Verschlüsselungs- und Codierungstheorie PD Dr. Thomas Timmermann Westfälische Wilhelms-Universität Münster Sommersemester 2017

Quadrate und Wurzelziehen modulo p

Dieses Kapitel vermittelt:

Einführung in die Algebra

CODIERUNGSTHEORIE KURS ZELL AN DER PRAM, FEBRUAR 2005

Information und Codierung

CRC Cyclic Redundancy Check Analyseverfahren mit Bitfiltern

Fehlerkorrektur. Gliederung Kanalstörungen Einfache Verfahren Hamming-Abstand Technische Schaltungen Binäre Arithmetik Matrizenrechnung Typische Codes

Kodierungstheorie: Lineare Kodes

Übungen zur Vorlesung Diskrete Strukturen

Fehlerschutz durch Hamming-Codierung

Einführung in die Informatik I

Gleichungen und Ungleichungen

Gleichungen und Ungleichungen

Gleichungen und Ungleichungen

WURZEL Werkstatt Mathematik Polynome Grundlagen

2 Polynome und rationale Funktionen

Definition 131 Sei R ein (kommutativer) Ring. Ein Polynom über R in der Variablen x ist eine Funktion p der Form

(Prüfungs-)Aufgaben zur Codierungstheorie

Kryptographie. Vorlesung 7: Der AES Algorithmus. Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca

Primzahlen im Schulunterricht wozu?

Was ist eine Funktion?

Codes (6) Fehlererkennende (EDC) bzw. fehlerkorrigierende Codes (ECC)

GF(2 2 ) Beispiel eines Erweiterungskörpers (1)

Einführung in die Codierungstheorie

2 Rechentechniken. 2.1 Potenzen und Wurzeln. Übersicht

Partialbruchzerlegung für Biologen

Grundbegrie der Codierungstheorie

4 Kryptologie. Übersicht

Lösung zur Klausur zu Krypographie Sommersemester 2005

Grundlagen der Technischen Informatik. Codierung und Fehlerkorrektur. Kapitel 4.2. Codewörter. Codewörter. Strukturierte Codes

Vorkurs Mathematik 2016

Kongruenzen und Restklassenringe. 2. Kongruenzen und Restklassenringe

5. Übung - Kanalkodierung/Programmierung

$Id: integral.tex,v /05/05 14:57:29 hk Exp hk $ ln(1 + t) 2 = ln 2 ln 3 + ln 2 = ln

Einführung in die Informatik I

Angewandte Informationstechnik

Lineare Algebra I. Prof. Dr. M. Rost. Übungen Blatt 6 (WS 2010/2011) Abgabetermin: Donnerstag, 27. November

Nullstellen von Polynomen und Erweiterungskörper Vortrag im Modul Kommunikation über Mathematik

Fehlerkorrektur. Einzelfehler besitze die Wahrscheinlichkeit p. Es gelte Unabhängigkeit der Fehlereinflüsse Für ein Wort der Länge n gelte noch:

Blockmatrizen. Beispiel 1 Wir berechnen das Produkt von A R 4 6 mit B R 6 4 :

Student: Alexander Carls Matrikelnummer: Aufgabe: Beschreibung des euklidischen Algorithmus Datum:

Kanonische Primfaktorzerlegung

Einführung in die Zahlentheorie

Folie 1 Heute möchte ich einen Vortrag über Schieberegister und ihre Anwendungen halten.

Transkript:

Zyklische Codes & CRC Copyright 2003 2011 Ralf Hoppe Revision : 257 Inhaltsverzeichnis 1 Einführung 2 2 Grundlagen 2 3 Erzeugung zyklischer Codes 2 4 Verifikation 3 4.1 Prinzip....................................... 3 4.2 Fehlererkennende Eigenschaften......................... 4 4.2.1 Erkennung von Einfachfehlern...................... 5 4.2.2 Erkennung von Burstfehlern....................... 5 4.3 Fehlerkorrigierende Eigenschaften........................ 6 5 Realisierung 6 5.1 Bitweise Verarbeitung............................... 6 5.2 Byteweise Verarbeitung.............................. 7 Abbildungsverzeichnis 1 Divisions-Schieberegister............................. 6 2 LFSR mit Vormultiplikation........................... 7 Symbolverzeichnis CRC(x) Cyclic Redundancy Check (CRC) von x 1

1 Einführung Oft besteht die Forderung den Verlust (oder auch die Manipulation) von Daten mit relativ einfachen Mitteln nachzuweisen. Einer der häufigsten Anwendungsfälle ist die Datenübertragung, bei welcher die Informationen meist blockweise strukturiert sind. Ein bevorzugtes Verfahren für diese Aufgabe ist das sogenannte CRC (Cyclic Redundancy Check), welches häufig als Frame Check Sequence (FCS) oder Error Detection Code (EDC) angewendet wird. Das CRC-Verfahren ist eine relativ leistungsfähige (als auch einfach zu implementierende) Methode zur Fehlererkennung. Grundlage bilden sogenannte zyklische Codes (ein Spezialfall der linearen Block-Codes), welche aus theoretischer Sicht mittlerweile hinreichend untersucht sind. Dieser Beitrag wird die wesentlichen Eigenschaften solcher Codes präsentieren sowie den Zusammenhang mit dem häufig zitierten Begriff CRC herstellen [3, 2, 1]. 2 Grundlagen Eine grundlegende Vorbetrachtung für alle folgenden Ausführungen ist die, daß man einem beliebigen Bitstring der Länge n ein äquivalentes Polynom P(x)=a n 1 x n 1 +a n 2 x n 2 + +a 2 x 2 + a 1 x+a 0 zuordnen kann. Setzt man nun für x Elemente eines KörpersF(im binären FallF 2 ) ein, so erhält man ein Polynom, daß auf dem KörperF 2 n definiert ist 1. Die Koeffizienten a 0,...,a n 1 sind ebenfalls Elemente des KörpersF 2 und nehmen deshalb nur die Werte 0 oder 1 an 2. Ein solches Polynom heißt irreduzibel überf 2 n, wenn es sich nicht als Produkt von Polynomen kleineren Grades darstellen läßt. 3 Erzeugung zyklischer Codes Der zu sichernde Datenblock mit einer Länge von n Bit wird zur Bildung eines zyklischen Codes als erstes um k Bit nach links verschoben. Dies bedeutet für das zugeordnete Polynom M(x) eine Multiplikation mit x k. Danach wird M(x) durch ein sogenanntes Generatorpolynom G(x)= g k x k + g k 1 x k 1 + +g 2 x 2 + g 1 x+g 0 vom Grad k im Körper GF(2) dividiert. x k M(x) G(x) = F(x)+ R(x) G(x) (1) Der dabei entstehende Divisionsrest 1 In der Sprachweise der Mathematiker auch Galois-Feld genannt (vgl. insbesondere Anhang?? zur heorie). 2 Bei Berechnungen muß im KörperF 2 muß in diesem Zusammenhang immer berücksichtigt werden, daß statt der üblichen Addition eine modulo-2 Addition (entspricht Exklusiv-Oder) ausgeführt wird. 2

R(x)=CRC{M(x)}= x k M(x) mod G(x) (2) dessen Grad k 1 ist, wird zur Kontrolle des Informationsblockes M(x) verwendet 3. Dazu wird der entstandene CRC-Rest R(x) einfach an den Datenblock M(x) angehängt und so ein (gültiges) Codewort C(x) des zu G(x) gehörigen zyklischen Codes gebildet. C(x)= x k M(x)+R(x) (3) Zyklische Codes gehören zu den linearen Block-Codes. Sie haben die bemerkenswerte Eigenschaft, daß man ausgehend von einem bekannten Codewort alle anderen durch zyklische Verschiebung und Addition bestimmen kann [3]. G(x) definiert alle Codeworte des zugeordneten Alphabets eindeutig und wird deshalb auch das erzeugende Polynom bzw. auch Generatorpolynom genannt. 4 Verifikation 4.1 Prinzip Das Prinzip der Fehlererkennung besteht nun darin, daß sich jedes gültige Codewort als C(x) = F(x)G(x) darstellen läßt, also ohne Rest durch G(x) teilbar sein muß. Ein Nachweis dieser Eigenschaft ist recht schnell durch Kombination der Gleichungen 1 und 3 erbracht, wenn man die spezielle modulo-2 Addition H + H = 0 berücksichtigt. C(x)= x k M(x)+R(x) = F(x)G(x)+R(x)+R(x) = F(x)G(x) Die eilbarkeit des Codewortes C(x) durch das Generatorpolynom G(x) kann somit als Prüfkriterium für die Fehlerfreiheit der Übertragung verwendet werden. C(x) mod G(x)=0 Wird im Fehlerfall C(x) durch ein Fehlerpolynom E(x) überlagert, dann ist die Summe mit hoher Wahrscheinlichkeit nicht mehr ohne Rest durch G(x) teilbar 4. 3 F(x) als ganzer Anteil, der bei der Division entsteht, ist für das Prüfverfahren nicht von Bedeutung. 4 C(x)+ E(x) gehört mit hoher Wahrscheinlichkeit nicht mehr zum Codealphabet. 3

[C(x)+ E(x)] mod G(x) 0 (4) An dieser Stelle soll noch darauf hingeweisen sein, daß bei echten zyklischen Codes die Blocklänge m=n+k nicht frei wählbar ist. Statt dessen ist sie die kleinste Zahl m, für die (x m + 1) mod G(x)=0 gilt, also x m + 1 ohne Rest durch G(x) teilbar ist. m ist also ein vom Generatorpolynom abhängiger Wert, der dann seinen Maximalwert von m=2 k 1 erreicht, wenn G(x) ein nicht weiter reduzierbares (also irreduzibles) Polynom ist 5. 4.2 Fehlererkennende Eigenschaften Da ja bekanntlich kein System ideal ist, muß man auch hier einräumen, daß es eine gewisse Anzahl nicht erkennbarer Fehler gibt die sogenannte Restfehlerwahrscheinlichkeit. Sie entsteht dadurch, daß manchmal auch E(x) ohne Rest durch G(x) teilbar sein kann und so genau wieder ein gültiges Codewort entsteht. [C(x)+ E(x)] mod G(x)= C(x) mod G(x)+ E(x) mod G(x) = F(x)G(x) mod G(x) + E(x) mod G(x) = E(x) mod G(x) (5) Praktisch wählt man bei der Verifikation üblicherweise das gleiche Verfahren wie auf der Senderseite, d. h. man muß noch die Vormultiplikation mit x k berücksichtigen. { [C(x)+ E(x)]x k } mod G(x)= [ E(x) x k] mod G(x) Die wichtigsten fehlererkennenden Eigenschaften der (verkürzten) zyklischen Codes sind: 1. Es werden grundsätzlich alle Einfachfehler (1 Bit verändert) erkannt. 2. Es werden alle Fehler erkannt, bei denen Anfang und Ende des Störmusters nicht weiter als k Bit auseinanderliegen (Burstfehler). 3. Statistisch gesehen ist die Restfehlerwahrscheinlichkeit für Bitfehler höchstens 2 k. 4. Für bestimmte Generatorpolynome G(x) lassen sich außerdem noch weitere Spezialisierungen angeben: Generatorpolynome G(x), die durch 1+ x teilbar sind, erkennen grundsätzlich jeden Fehlerburst, der eine ungerade Anzahl von Bit verändert 6. 5 Aus praktischen Gründen wird m allerdings oft kleiner gewählt man nennt diese Codes dann verkürzte zyklische Codes. Sie besitzen die gleichen fehlererkennenden Eigenschaften wie echte zyklische Codes [2, 8.10]. 6 Schon allein diese Eigenschaft läßt einen Mathematiker gewöhnlich immer ein Generatorpolynom wählen, welches als G(x) = (1 + x)p(x) darstellbar ist. 4

Alle Polynome G(x) erkennen bis zu einer maximalen Blocklänge m alle Zweifachfehler (für CRCs mit k=16 ist m meist 32767). Polynome, für die beide erstgenannten Punkte zutreffen, erkennen jeden Dreifachfehler. Bestimmte Klassen von Generatorpolynomen weisen in Bezug auf bestimmte Fehlerarten unter Umständen noch günstigere fehlererkennende Eigenschaften auf. Vor allem zwei ypen von linearen Gruppencodes seien für Interessierte noch erwähnt: die Fire-Codes und die Bose- Chaudhuri-Hocquenghem (BCH) Codes [2]. Mit Hilfe von Fire-Codes ist nicht nur eine Fehlererkennung sondern sogar eine Korrektur von Fehlern bis zu einer definierten Anzahl von Bits möglich. 4.2.1 Erkennung von Einfachfehlern Wir wollen nun den Nachweis erbringen, daß zyklische Codes jeden Einfachfehler erkennen können. Das Fehlerpolynom kann bei dieser Art von Störung (eines einzelnen Bits) als E(x)= x r modelliert werden. Es gilt also, die allgemeine Erkennbarkeitsbedingung nach Gleichung 5 auf diesen Spezialfall des Fehlerpolynoms E(x) anzuwenden. E(x) mod G(x)= x r mod G(x) (6) Für r<k ist sofort ersichtlich, daß der Divisionsrest E(x) selbst ist, also x r mod G(x)= x r gilt. Im anderen Fall (r k) ist E(x) mod G(x) 0 dadurch gegeben, daß es sich bei G(x) um ein irreduzibles Polynom und insgesamt um einen sogenannten Restklassenkörper handelt (vgl. Anhang??). 4.2.2 Erkennung von Burstfehlern Wir wollen nun untersuchen, welche Burstfehler unter Benutzung eines zyklischen Codes erkennbar sind. Das Fehlerpolynom soll dabei die Form E(x)= x l [e r x r + e r 1 x r 1 + +e 2 x 2 + e 1 x+1] besitzen, d. h. l soll so gewählt sein, daß e 0 = 1 gilt. Die Fragestellung lautet also: Welche Polynome E(x) sind im Sinne von Formel 5 ohne Rest durch G(x) teilbar? Zur Beantwortung gehen wir von E(x) mod G(x)= { x l[ e r x r + e r 1 x r 1 + +e 2 x 2 + e 1 x+1 ]} mod G(x) aus und bedenken, daß E(x) ein Codewort des Alphabets sein müßte, um einen solchen Fehler nicht zu erkennen. E(x)= x l[ e r x r + e r 1 x r 1 + +e 2 x 2 + e 1 x+1 ] = F(x)G(x) Eine derartige Darstellung ist aber ausgeschlossen, solange r<k gilt. 5

g 0 g 1 g k 1 g k x k M(x) F(x) Abbildung 1: Divisions-Schieberegister 4.3 Fehlerkorrigierende Eigenschaften Geht man davon aus, daß es sich bei E(x) um einen Einfachfehler handelt, so ist mit E(x)= x r entsprechend Formel 6 das folgende CRC (auf der Empfangsseite) zu gewinnen. CRC{C(x)+ E(x)}= { [C(x)+ E(x)]x k} mod G(x)= x r+k mod G(x) Je nachdem an welcher Stelle C(x) nun gestört wird, ergeben sich (wegen 0 r<n) genau n mögliche Fehlerpolynome. Für alle diese E(x) kann man das sogenannte Syndrom CRC[E r (x)]= x r+k mod G(x) vorab berechnen. Ein Vergleich dieser Werte mit dem aktuellen CRC{C(x)+ E(x)}=CRC{E(x)} führt zum Bitfehler, also zur Position r des gestörten Bits in E(x)= x r. Sollte keine Übereinstimmung mit einem der vorberechneten Werte zu finden sein, dann muß ein Mehrfachfehler vorliegen. Solche Fehlermuster für E(x) können ganz genauso wie Einzelfehler korrigiert werden 7, nur wird statt der Position r nun das gesamte Fehlerpolynom E(x) von Interesse sein. Die Korrektur erfolgt in diesem Fall durch modulo-2 Addition von E r (x) zu C(x), falls dessen CRC in der Syndrom-abelle zu finden war. 5 Realisierung 5.1 Bitweise Verarbeitung Die bitorientierten Realisierungsvarianten sind insbesondere bei Hardware-Implementierungen sehr effizient, können aber auch softwaretechnisch emuliert werden. Die Verarbeitung erfolgt dabei mittels rückgekoppelter Schieberegister (Linear Feedback Shift Register, LFSR), dessen Inhalt nach der letzten Verschiebung den (modulo-2) Divisionsrest darstellt [4]. In Abbildung 1 ist das Grundprinzip eines solchen Divisions-Schieberegisters, welches M(x) mod G(x) berechnet, dargestellt 8. Die Stellung der XOR-Gatter (Symbol g i = 1 gilt, bestimmt. ) wird durch die Koeffizienten g i von G(x), für die 7 Wobei der Maximalzahl korrigierbarer Fehler sowohl theoretische als auch praktische Grenzen gesetzt sind. 8 Eine Bedingung für diese Realisierung ist immer g 0 = g k = 1, was praktisch keine wesentliche Einschränkung darstellt. 6

g 0 g 1 g k 1 g k F(x) M(x) Abbildung 2: LFSR mit Vormultiplikation Nachteil dieser Variante ist, daß die Multiplikation x k M(x), also das Nachstellen von k Null-Bits vor der Verarbeitung im LFSR notwendig ist. Eine Alternative dazu zeigt Abbildung 2, in der diese Operation durch Einspeisen von M(x) an der Stelle x k durch das Schieberegister selbst vorgenommen wird. An dieser Stelle soll noch geklärt werden, welchen Einfluß ein bestimmter Start- bzw. Anfangsrest, auf den das LFSR in Abbildung 1 voreingestellt wird, auf den ursprünglich nach Gleichung 1 berechneten CRC-Wert hat 9. Dazu kann der Anfangswert R 0 (x) als der Nachricht M(x) vorangestellt aufgefaßt werden. M (x)= x m R 0 (x)+ M(x) Bildet man nun den CRC-Rest für die Gesamtnachricht M (x), also CRC{M (x)} = x k[ x m R 0 (x)+ M(x) ] mod G(x) = x k x m R 0 (x) mod G(x)+ x k M(x) mod G(x) = CRC { x m R 0 (x) } + CRC{M(x)}, dann ist sofort erkennbar, daß der ohne Anfangsrest entstehende Rest R(x)=CRC{M(x)} durch Modulo-2-Addition mit CRC{x m R 0 (x)} modifiziert wird 10. In der Praxis ist das Verfahren außerdem noch in bestimmten Modifikationen anzutreffen, z. B. Anhängen des invertierten CRC-Restes beim HDLC-Protokoll. 5.2 Byteweise Verarbeitung Nimmt man wieder an, daß M(x) die zu sichernde Nachricht ist, dann wird bei der Bildung des CRC{M(x)}=R(x) folgende Restklassendivision durchgeführt 9 Oftmals werden alle Register auf 1 gesetzt, so daß auch wenn M(x) das Nullpolynom ist, ein von Null verschiedener CRC-Rest entsteht 10 Man kann den Fall ohne Anfangsrest (R 0 (x)=0) jetzt auch als Spezialfall dieser verallgemeinerten Darstellung auffassen. 7

R(x)= x k M(x) mod G(x). Es wird also der Polynomrest R(x) so bestimmt, daß x k M(x)= F(x)G(x)+R(x) unter der Nebenbedingung R(x)< G(x) erfüllt ist. Nimmt man zur Nachricht M(x) nun ein weiteres Byte B(x) hinzu, bildet also einen neue Nachricht M (x)= x 8 M(x)+ B(x), dann gilt für den zugehörigen CRC-Rest R (x)=crc{m (x)}: R (x)= x k M (x) mod G(x) = [x 8 x k M(x)+ x k B(x)] mod G(x) = [x 8 R(x)+ x k B(x)] mod G(x). (7) Zerlegt man jetzt R(x) so in zwei eile R(x)= x k 8 R 1 (x)+r 0 (x), daß dessen höherwertiger eil R 1 (x) durch 8 Bit und der niederwertige eil R 0 (x) entsprechend durch k 8 Bit repräsentiert wird, dann gilt x 8 R 0 (x) mod G(x)= x 8 R 0 (x) und Gleichung 7 vereinfacht sich zu: R (x)=[x k R 1 (x)+ x k B(x)] mod G(x)+ x 8 R 0 (x) = x k [R 1 (x)+ B(x)] mod G(x)+ x 8 R 0 (x) = CRC{R 1 (x)+ B(x)}+ x 8 R 0 (x). Für die durch 8 Bit darstellbaren 256 Werte ist es grundsätzlich kein Problem den CRC-Rest vorauszuberechnen und auf dieser Grundlage den erm CRC{R 1 (x)+ B(x)} über einen abellenzugriff sehr schnell zu ermitteln. 8

Literatur [1] Born, Günter: CRC-Sicherung per Software. oolbox, Juli 1989. [2] Peterson, W. Wesley und E. J. Weldon, Jr.: Error-Correcting Codes. he MI Press, Cambridge Massachusetts and London, England, 2. Auflage, 1972. [3] Sweeney, P.: Codierung zur Fehlererkennung und Fehlerkorrektur. Carl Hanser Verlag, München, Wien, 1992. [4] Zaks, R. und A. Lesea: Mikroprozessor Interface echniken. SYBEX, 1982. 9

Index Galois Field, 2 Körper, 2 Polynom, 2 10