Existe um código semelhante a Reed-Salomão sobre símbolos decimais?

8

Um código de correção de erros da Reed-Solomon que consiste em N símbolos é garantido para detectar até N substituições de um único símbolo em uma entrada arbitrariamente longa mais o próprio ECC, além de garantir a correção de um único símbolo até o piso (N / 2) substituições no mesmo.

Não posso afirmar que compreendo a matemática por trás do Reed-Solomon ECC, mas noto que todas as implementações que pude encontrar operam com símbolos nas bases 16, 64 ou 256. Isso parece sugerir que 1024 etc. também são bases nas quais esse O esquema pode operar com o polinômio correto.

É possível ter um esquema ECC com exatamente as propriedades acima que opera com símbolos decimais? Reed-Solomon pode ser trivialmente adaptado para esse fim?

(esta pergunta é solicitada pela minha resposta a uma pergunta intrigante.SE )

Roman Starkov
fonte

Respostas:

5

A propriedade dos códigos Reed-Solomon que você menciona é conhecida como Separação de distância máxima e os códigos com essa propriedade são conhecidos como códigos MDS . Na teoria da codificação, o tipo mais popular de código é um código linear, e estes são definidos apenas sobre alfabetos que são potências primárias. No entanto, na literatura, você pode encontrar alguns documentos sobre códigos MDS em alfabetos arbitrários; Vou deixar você pesquisar isso sozinho.

Para o caso específico N=1, existe um código MDS muito simples, ou seja, soma de verificação: você adiciona aos dados originais um novo dígito cujo valor é a soma negada dos outros dígitos (para que todos os novos dígitos sejam zero). Este código pode detectar qualquer erro único.

Yuval Filmus
fonte
Compare com o caso dos números de cartão de crédito: en.wikipedia.org/wiki/Luhn_algorithm
Aaron Brick
Isso também se vincula ao algoritmo Verhoeff e Damm, que aprimora o Luhn, detectando todas as transposições em dígitos adjacentes usando apenas um único dígito de verificação decimal. Impressionante! Luhn só detecta alguns, enquanto o simples mod 10 soma de verificação detecta nenhum (mas para números curtos mod 10 de checksum pode ser verificado mentalmente, o que poderia ser útil)
Roman Starkov