Reed Solomon Blues

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Reed Solomon Blues

Robert Withers
Hi Good morning,

I am trying to port java code implementing Reed-Solomon encoding with a
GaloisField and polynomial system. I am currently testing the easiest
Mode, which is 9 data symbols, 15 code symbols and 3 symbols of error.  
Theer's 2 nibbles to a byte, so a split and join is needed. This all has
to do with iteration where the base indexing changes from 0 to 1. I
screwed it up in there somewhere and I am struggling to find teh issue.
It looks like a complete code review...

Since this is core crypto code, it would be an extra blessing if someone
else's eyes were on this code in detail.More tests always help too.
Would someone be willing to crawl into the java and squeak code to
review, learn and qualify/validate? Also, you would be helping me
understand all this polynomial math and where my indexing issue may be.

The failure in Squeak is in the GenericGFPoly>>#divide: method. It runs
forever and the quotient/remainder never reduces it's degree. So one of
teh math operations is broken & failing. You can run the EncodingTests

I am including a zip of the Java classes I use. This core Reed-Solomon
code was written at Google and released open-source. I wrote a test and
they pass, so code is working. The latest Cryptography package in the
crypto repo is version 48. Please load that and run the
CryptoReedSolomonTest to see the infiniteLoop of the polynomial divide.

Let me know if you can help.

Thanks,
Robert




reedsolomon-java.zip (32K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Reed Solomon Blues

Robert Withers
Sorry, forgot to mentionthe test I am using is
CryptoReedSolomonTest>>#testEncodeAndDecodeRS_15_9. The other 2
encodeAnd Decode tests have teh wrong sized data at the level they are
testing. This data needs to be the size of an interleaved block of 4
chunks that fit the algorithm.

Just to inform you, in RS(9)(15) ,the data block is 4 times 9 nibbles or
36 nibbles/18 bytes. Foir some reason I am adding 4 bytes of lenght in
there, I think to differentiate use of different sized RS algorithms.

Robert

On 12/07/2015 07:20 AM, Robert Withers wrote:

> Hi Good morning,
>
> I am trying to port java code implementing Reed-Solomon encoding with
> a GaloisField and polynomial system. I am currently testing the
> easiest Mode, which is 9 data symbols, 15 code symbols and 3 symbols
> of error.  Theer's 2 nibbles to a byte, so a split and join is needed.
> This all has to do with iteration where the base indexing changes from
> 0 to 1. I screwed it up in there somewhere and I am struggling to find
> teh issue. It looks like a complete code review...
>
> Since this is core crypto code, it would be an extra blessing if
> someone else's eyes were on this code in detail.More tests always help
> too. Would someone be willing to crawl into the java and squeak code
> to review, learn and qualify/validate? Also, you would be helping me
> understand all this polynomial math and where my indexing issue may be.
>
> The failure in Squeak is in the GenericGFPoly>>#divide: method. It
> runs forever and the quotient/remainder never reduces it's degree. So
> one of teh math operations is broken & failing. You can run the
> EncodingTests
>
> I am including a zip of the Java classes I use. This core Reed-Solomon
> code was written at Google and released open-source. I wrote a test
> and they pass, so code is working. The latest Cryptography package in
> the crypto repo is version 48. Please load that and run the
> CryptoReedSolomonTest to see the infiniteLoop of the polynomial divide.
>
> Let me know if you can help.
>
> Thanks,
> Robert
>