3 ms·
Do you still have that bruteforce code? I've been trying on and off to reverse engineer the RS ECC in Chirp, a (now discontinued) app for sharing tokens over sp
by moreati 10y ago
Do you still have that bruteforce code? I've been trying on and off to reverse engineer the RS ECC in Chirp, a (now discontinued) app for sharing tokens over speaker/microphone.
My current progress is summarised in https://math.stackexchange.com/questions/663643/discover-parameters-of-a-reed-solomon-code-from-its-output https://math.stackexchange.com/questions/663643/discover-par... and https://github.com/moreati/chirppy/blob/master/trials.py https://github.com/moreati/chirppy/blob/master/trials.py
- userbinator 10y agoA few references I've found suggest that is RS(9,5) and might not actually be using GF(32); although you have 18 "symbols" of 90 bits total, with 50 bits of data and 40 parity, I doubt those are the actual RS symbols. In fact, those parameters line up with 9 * 10-bit symbols in each block, 5 10-bit data and 4 10-bit ECC. I would try a shortened RS(1023,1019) in GF(1023), taking pairs of the 5-bit "symbols". Here is the code I originally used. I was bruteforcing a non-shortened RS(511,503) in GF(511) which had a somewhat complex transformation between bytes and symbols, fortunately partly documented at the time: http://pastebin.com/6nK2GSBh http://pastebin.com/6nK2GSBh (partly anonymised. public domain.)
- userbinator 10y agoSomething else you may find useful, more Python code for bruteforcing RS parameters: https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders/Additional_information#Autodetecting_the_Reed-Solomon_parameters https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_f...