# Coding Theory and Algebra

Why is Algebra so useful in Coding Theory?

I know a little bit of algebra and I just know what codes are. I appreciate it if someone can give a brief explanation of how/ in what sense is algebra useful in Coding Theory.

More specifically, I recently asked a question about Hensel's Lemma and it's use and got Coding Theory as answer. I read online that factorization of polynomials has something to do with it, but still am unable to firmly grasp the relation of Coding and Hensel's Lemma.

I appreciate some explanations or reference to any "good" source.

• While I remember Hensel's lemma coming up once, it certainly did not play an important role in 3 years of graduate study on coding theory. There are a lot of other connections that I do know about, though! – rschwieb Apr 17 '13 at 14:12
• I was editing for quite some time... hope you didn't overlook any of the later additions! – rschwieb Apr 17 '13 at 14:23
• I was the one pointing to coding theory in this discussion: math.stackexchange.com/questions/359287. Hensel's Lemma comes up for cyclic codes over certain rings, $\mathbb{Z}/4\mathbb{Z}$-linear codes being the most well-known ones. There is a chapter on them in the coding theory book of Huffamn and Pless. – azimut Apr 17 '13 at 14:35

The most basic thing is that requiring a code to be linear (making it a vector space) allows you to apply linear algebra to it. This gives you all sorts of convenient methods for doing things concerning dimensionality and construction of generator matrices and parity check matrices. Simply put, adding more structure to the code makes it more predictable and convenient to analyze. A code that is some random subset of $F^n$ does not enjoy such nice properties.

The study of cyclic linear codes is an even more interesting connection. You can easily prove that every length $n$ linear code is an ideal in the ring $R=F[x]/(x^n-1)$. Since $F[x]$ is a principal ideal domain, $R$ is a principal ideal ring, and therefore every ideal in it is generated by a single polynomial. But such a polynomial must be a divisor of $x^n-1$, and those divisors can be exhaustively computed. Moreover, once you do find the generator polynomial $g(x)$, you automatically have a "parity check polynomial" which generates the dual code: $(x^n-1)/g(x)$.

There is even a connection to be illustrated between the roots of such polynomials and the distance of the code. That is what is used when designing BCH codes.

Another really beautiful result is that of the McWilliams identities, which produce polynomials determining the distribution word weights in linear codes.

If you decided to study convolutional codes (sometimes introduced as codes produced by a linear-shift-register), you find out that (nonexotic ones at least) the shift-register can be encoded in a polynomial, and that certain properties of the code can be determined from the polynomial.

Coding theory and cryptography is a pretty good introduction to using algebra in coding theory.

For advanced learning, I think a very useful resource on coding theory is Huffman and Pless's Fundamentals of Error correcting codes.

Another one I used which had really cool parts on the discrete Fourier transform and linear complexity was in Blahut's Algebraic codes for data transmission.

As an addition to rschwieb's answer: Good codes often come with a lot of symmetries, which gives a connection to group theory. For example, the automorphism group of the binary extended Golay code is the Mathieu group $M_{24}$, which is one of the sporadic simple groups.

As textbooks on algebraic coding theory I recommend:

1. "The theory of error-correcting codes" by MacWilliams and Sloane. Written in the 1970s and mostly still state of the art, it is the classical book on coding theory.
2. For newer developments (already mentioned by rschwieb): "Fundamentals of error-correcting codes" by Huffman and Pless. Its chapter 12.4 is on cyclic codes over the ring $\mathbb Z/4$ and contains the application of Hensel's lemma mentioned in the question.