Error correcting codes: local testing, list decoding, and applications

This dissertation is a study of special types of error correcting codes and their applications. It consists of three parts. First, we study Generalized Reed-Muller codes (over prime fields), aka low-degree polynomials. Specifically, we show that these codes are locally testable. Locally testable codes are a class of error-correcting codes with the property that given (black-box access to) a word, it is possible to determine with high probability whether the given word is close to a codeword by querying randomly at a sublinear number of places. Such codes are known to be useful for efficient constructions of probabilistically checkable proofs. Our analysis also enables us to obtain a self-corrector for the given function, in case the function is reasonably close to a codeword. Specifically, we show that the value of the function at any given point may be obtained with good probability by querying the function on a few random points. Utilizing pairwise-independence an even higher probability can be achieved by querying the function on slightly more random points and using majority logic decoding. Our result implies that if the acceptance probability is low, then the function is far from low-degree polynomials. Is it possible to estimate the distance even when the received word is far from low-degree polynomials? We could achieve only a conditional result on this front. Specifically, we observe that under certain condition the Gowers uniformity norm estimates the proximity of a function to a low-degree polynomial. Second, we study efficient constructions of optimal list decodable codes. List decodable codes are error-correcting codes that can deal with highly noisy channels. When a received word has too many errors, unambiguous decoding is no longer possible. A plausible alternative in such a circumstance is to output a small list of possible codewords, each having some minimum agreement with the received word. This is known as the list decoding problem. It is known that good list decodable codes exist. We construct a new family of error-correcting codes based on algebraic curves over finite fields and present efficient list decoding algorithms for the family. These codes extend the class of algebraic-geometric (AG) codes via a generalization of the approach in the recent breakthrough work of Parvaresh and Vardy. Third, we develop a new technique to lower-bound the minimum distance of certain types of quasi-cyclic codes with large dimension by reducing the problem to lower-bounding the minimum distance of a few significantly smaller dimensional codes. Using this technique, we prove that a code similar to the SHA-1 (Secure Hash Algorithms) message expansion code has minimum distance at least 82, and that too in just the last 64 of the 80 expanded words. We use this new code to propose an improvement upon the widely used cryptographic hash function SHA-1. This is particularly important in wake of the recent breakthrough result of Wang et al. that finds collisions in time much smaller than the naive birthday attack. We expect our technique to be helpful in designing future practical collision-resistant hash functions. We also use this technique to find the minimum weight of the SHA-1 code (25 in last 60 words).