Bisher wurde gezeigt, dass sich ein geeigneter BCH-Code in vier Schritten problemlos bestimmen lässt.
Für diesen Zweck wurden drei Programme entwickelt. Das Programm „Ber_wur“ erzeugt aus einer Eingabe n, die sämtlich möglichen fiktiven BCH-Codes der Länge n. Als Beispiele dienen die ersten 3 Blätter der Datei „BCH-Code.pdf“. Das Programm benötigt 10 Sekunden zur Berechnung von 4114 fiktiven Polynomen (n = 65535). Das zweite Programm „Ber_minpol_wur“ berechnet das Minimalpolynom der Wurzel ai und benötigt als Eingabe ein Minimalpolynom und die Potenz der Wurzel des Minamalpolynoms, das berechnet werden soll. Dieses Programm bildet eigentlich den Kern dieses Verfahrens und ist relativ komplex. Das Programm ist extrem Arbeitsspeicherintensiv und benötigt zur Bildung von einem Galois-Feld GF(221) für die Polynome 21ten Grades 150 Sekunden (Arbeitsspeicherbedarf 3,2 GB). Danach können beliebig viele Minimalpolynome blitzschnell berechnet werden. Das Programm ist kurzfristig entstanden und hat noch Optimierungspotentiale. Als Ziel ist die Bearbeitung von 32-Bit Polynomen angestrebt. Die Rechenzeit Angaben sind für eine 3,6 GHz CPU. Das dritte Programm ist relativ einfach und bildet das Produkt von l Minimalpolynomen.
Das hier vorgestellte Verfahren ist sehr effizient und erlaubt eine extrem schnelle Suche mit anschließender Bestimmung eines geeigneten Polynoms mit den gewünschten Eigenschaften. Das Ergebnis erscheint im ersten Augenblick etwas enttäuschend, da das gefundene Polynom einen überdurchschnittlich hohen Grad aufweist. Sicherlich findet man gleichwertige Polynome mit einem geringeren Grad als eines BCH-Codes. Dies erfordert jedoch eine intensive Nachforschung von mehreren Monaten wenn nicht sogar Jahren. [5] Dennoch bietet das vorgestellte Verfahren zwei entscheidende Vorteile, die nicht außer Acht gelassen werden sollten.
Zum Schluss soll noch bemerkt werden, dass der technologische Fortschritt zunehmend höhere Integrationsdichte ermöglicht. Der Einsatz von 64-Bit CRC gehört schon lange zur gängigen Praxis. Somit dürfte die Realisierung von 100 oder Mehr-Bit CRC kein Problem darstellen. Viel mehr ist es eine Herausforderung an Asic-Designer. Das Verfahren eignet sich besonders gut für die sicherheitsrelevanten Applikationen, wo wenige Bytes zum Einsatz kommen. Für diese Daten wird jedoch der Nachweis einer extrem geringen Restfehlerwahrscheinlichkeit gefordert. Es kann nämlich mit einem Polynom 98ten bzw. 105ten Grades 29 bzw. 22 Informationsbits mit einer Hamming-Distanz von 43 bzw. 47 gesichert werden. Die exakte Berechnung der Restfehlerwahrscheinlichkeit mit so hoher Hamming-Distanz ist nicht mehr trivial und erfordert große mathematische Sorgfalt.
[1] | Codierung zur Fehlererkennung und Fehlerkorrektur Peter Sweeny, Hanser Verlag |
[2] | Error Control Coding: Fundamentals and Applications Shu Lin, Daniel J. Costello, Prentice-Hall |
[3] | CRC-Test einmal ganz anders betrachtet Kamal Merchant, Elektronik 23/2003, Seite 86 |
[4] | Informations- und Kodierungstheorie Herbert Klimant, Rudi Piotrascheke, Dagmar Schönfeld; Teubner Verlag |
[5] | 32-Bit Cyclic Redundancy Codes for Internet Applications Philip Koopman, The International Conference on Dependable Systems and Networks 2002 |