Reed-Solomon im GF(79)

Neue Frage »

Nenene Auf diesen Beitrag antworten »
Reed-Solomon im GF(79)
Meine Frage:
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
code:
1:
" abcdefghijklmnopqrstuvwxyzäöüßABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ0123456789,.:-!°'()"


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
code:
1:
Willkommen bei der Light-Version des unlösbaren     Ib6Me)QYpMTPuuSÄ,B8Ä:qjAMc

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
code:
1:
Willkommen bei der Light-Version des unlösbaren     NnqPWQaHjGCEBI51:ocl6ödRk'


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).
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
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »