Reed-Solomon im GF(79) |
13.07.2016, 18:48 | Nenene | Auf diesen Beitrag antworten » | |||||||||||||||
Reed-Solomon im GF(79) Im Speziellen finden sich zur Kodierung von Zeichenketten mit Hilfe des Reed-Solomon Verfahrens genügend Beispiele und Algorithmen für . Gegeben sei aber ein Reed-Solomon Code über , dessen Symbole sich nicht mittels 8 bit ASCII sondern über ein Alphabet von 79 Zeichen definieren. Sei also mit p=79, m=1 ein Körper mit 79 Elementen und C ein [78,52,27]-RS-Code über . Der RS-Code ist also in der Lage t=13 (mit d=2t-1) Auslöschungen zu korrigieren. Die Elemente des Körpers F seien als Untermenge des ASCII-Zeichensatzes definiert, indiziert über die Zeichenkette
Das kleinste erzeugende Element von GF(79) ist , daraus und mit folgt das Generatorpolynom (mod 79) Will ich nun einen 52-Zeichen langen Klartext kodieren, multipliziere ich zunächst das Polynom N der Nachricht mit - verschiebe also die Koeffizienten des zugehörigen Polynoms nach links, um Platz für den Code zu machen. Daraus ergibt sich N' das ich durch das Generatorpolynom dividiere. Den Rest der Division subtrahiere ich von N' und erhalte somit die zu übermittelnde Zeichenfolge der Länge 78. Ausgehend von einer gegebenenen fehlerfreien Nachricht
was ohne den RS-Code über folgendes Polynom dargestellt werden kann (Koeffizienten korrelieren mit dem Index im gegebenen Alphabet): W=53, i=9, l=12, ... versuche ich nun, anhand der beschriebenen Vorgehensweise zum gleichen Ergebnis zu kommen. Ich erhalte aber
Der sich ergebende RS-Code unterscheidet sich also vom vorgegebenenen Code. Was mache ich also falsch bei der Berechnung? Meine Ideen: Ich könnte mir vorstellen, dass ich bei der Ermittlung der Koeffizienten des Nachrichtenpolynoms einen Denkfehler habe. Das Leerzeichen steht an erster Stelle des Alphabets und erhält also 0. Andererseits habe ich genau 79 Zeichen, deren Werte mod 79 0 bis 78 sind (und nicht 1 bis 79). Eine andere Fehlerquelle könnte im erzeugten Generatorpolynom stecken. Vielleicht steckt der Fehler aber in der Polynomendivision (mod 79) Zur Polynomdivision vielleicht noch auszugsweise die erste Zeile aus N'/g(x), auch wenn es ein wenig unübersichtlich sein sollte: 53x^77 + 9x^76 + 12x^75 + 12x^74 + ... + 14x^31 : x^26 + 46x^25 + 50x^24 + ... +52x^1 + 78 = 53x^51 53x^77 + 68x^76 + 43x^75 + 46x^74 + ... ----------------------------------------- 0 + 20x^76 + 48x^75 + 45x^74 + ... 9 - 68 = 20 (mod 79) 12 - 43 = 48 (mod 79) 12 - 46 = 45 (mod 79) So lange ich in GF(79) nicht erfolgreich einen RS-Code erzeugen kann, wage ich mich erst gar nicht an die Dekodierung fehlerhaft übermittelter Nachrichten (um das es ja eigentlich geht). |
|||||||||||||||||
14.07.2016, 17:16 | Nenene | Auf diesen Beitrag antworten » | |||||||||||||||
RE: Reed-Solomon im GF(79) Mittels einer einfachen Brute-Force-Attacke auf die einzige mir sinnvoll erscheinende Ursache des Problems konnte das Problem gelöst werden: b=1 war als Annahme nicht wirklich fixiert und bei b=52 ergab sich die gesuchte RS-Code. Das Generatorpolynom lautet also |
|
Verwandte Themen
Die Beliebtesten » |
Die Größten » |
Die Neuesten » |