Algebraic Codes for Error Control

Similar documents
Toric Varieties in Coding Theory. Math in the Mountains Tutorial

Coding Theory. Ruud Pellikaan MasterMath 2MMC30. Lecture 11.1 May

And for polynomials with coefficients in F 2 = Z/2 Euclidean algorithm for gcd s Concept of equality mod M(x) Extended Euclid for inverses mod M(x)

Error-Correcting Codes

Lecture 12: Reed-Solomon Codes

An Introduction to (Network) Coding Theory

Polynomial Codes over Certain Finite Fields

MATH3302. Coding and Cryptography. Coding Theory

Information redundancy

Lecture 12: November 6, 2017

Lecture 12. Block Diagram

An Interpolation Algorithm for List Decoding of Reed-Solomon Codes

Arrangements, matroids and codes

Error Correcting Codes Questions Pool

MSRI-UP 2009 PROJECT TOPIC IDEAS. 1. Toric Codes. A first group of project topics deals with a class of codes known as toric codes.

An Introduction to (Network) Coding Theory

The BCH Bound. Background. Parity Check Matrix for BCH Code. Minimum Distance of Cyclic Codes

Reed Muller Error Correcting Codes

A Combinatorial Bound on the List Size

Network Coding and Schubert Varieties over Finite Fields

New Steganographic scheme based of Reed- Solomon codes

Coding Theory: Linear-Error Correcting Codes Anna Dovzhik Math 420: Advanced Linear Algebra Spring 2014

CSCI 2570 Introduction to Nanocomputing

List Decoding of Reed Solomon Codes

Lecture Introduction. 2 Linear codes. CS CTT Current Topics in Theoretical CS Oct 4, 2012

Error Correction Review

ERROR CORRECTING CODES

Cyclic codes. I give an example of a shift register with four storage elements and two binary adders.

Lecture 3: Error Correcting Codes

Communications II Lecture 9: Error Correction Coding. Professor Kin K. Leung EEE and Computing Departments Imperial College London Copyright reserved

Lecture 19 : Reed-Muller, Concatenation Codes & Decoding problem

Some error-correcting codes and their applications

: Error Correcting Codes. October 2017 Lecture 1

MATH 291T CODING THEORY

Chapter 6 Reed-Solomon Codes. 6.1 Finite Field Algebra 6.2 Reed-Solomon Codes 6.3 Syndrome Based Decoding 6.4 Curve-Fitting Based Decoding

Know the meaning of the basic concepts: ring, field, characteristic of a ring, the ring of polynomials R[x].

Can You Hear Me Now?

Chapter 7. Error Control Coding. 7.1 Historical background. Mikael Olofsson 2005

Reed-Solomon Error-correcting Codes

Reed-Solomon codes. Chapter Linear codes over finite fields

4F5: Advanced Communications and Coding

Efficiently decodable codes for the binary deletion channel

Error-correcting codes and applications

MATH 291T CODING THEORY

MATH32031: Coding Theory Part 15: Summary

Code Based Cryptology at TU/e

VHDL Implementation of Reed Solomon Improved Encoding Algorithm

An Enhanced (31,11,5) Binary BCH Encoder and Decoder for Data Transmission

MATH 433 Applied Algebra Lecture 21: Linear codes (continued). Classification of groups.

Notes 10: Public-key cryptography

Error Correcting Codes: Combinatorics, Algorithms and Applications Spring Homework Due Monday March 23, 2009 in class

Coding Theory and Applications. Linear Codes. Enes Pasalic University of Primorska Koper, 2013

The Hamming Codes and Delsarte s Linear Programming Bound

Linear Algebra. F n = {all vectors of dimension n over field F} Linear algebra is about vectors. Concretely, vectors look like this:

ERROR-CORRECTING CODES AND LATIN SQUARES

Decoding Reed-Muller codes over product sets

Polynomial interpolation over finite fields and applications to list decoding of Reed-Solomon codes

Orthogonal Arrays & Codes

Algebraic Geometry Codes. Shelly Manber. Linear Codes. Algebraic Geometry Codes. Example: Hermitian. Shelly Manber. Codes. Decoding.

MATH3302 Coding Theory Problem Set The following ISBN was received with a smudge. What is the missing digit? x9139 9

Coset Decomposition Method for Decoding Linear Codes

Assume that the follow string of bits constitutes one of the segments we which to transmit.

MATH Examination for the Module MATH-3152 (May 2009) Coding Theory. Time allowed: 2 hours. S = q

Chapter 2. Error Correcting Codes. 2.1 Basic Notions

Lecture 4: Codes based on Concatenation

Section 3 Error Correcting Codes (ECC): Fundamentals

Lecture 03: Polynomial Based Codes

UNIT MEMORY CONVOLUTIONAL CODES WITH MAXIMUM DISTANCE

On Irreducible Polynomial Remainder Codes

Graph-based codes for flash memory

Notes 10: List Decoding Reed-Solomon Codes and Concatenated codes

Physical Layer and Coding

Error Detection, Correction and Erasure Codes for Implementation in a Cluster File-system

ECE 4450:427/527 - Computer Networks Spring 2017

channel of communication noise Each codeword has length 2, and all digits are either 0 or 1. Such codes are called Binary Codes.

Error Correction Methods

The Golay codes. Mario de Boer and Ruud Pellikaan

Berlekamp-Massey decoding of RS code

Chapter 6 Lagrange Codes

Computing Error Distance of Reed-Solomon Codes

Error-correcting codes and Cryptography

VLSI Architecture of Euclideanized BM Algorithm for Reed-Solomon Code

Optimization of the Hamming Code for Error Prone Media

An introduction to basic information theory. Hampus Wessman

9 THEORY OF CODES. 9.0 Introduction. 9.1 Noise

Errors, Eavesdroppers, and Enormous Matrices

: Coding Theory. Notes by Assoc. Prof. Dr. Patanee Udomkavanich October 30, upattane

Permanent is hard to compute even on a good day

Asymptotically good sequences of codes and curves

Lattices and Lattice Codes

List decoding of binary Goppa codes and key reduction for McEliece s cryptosystem

3. Coding theory 3.1. Basic concepts

Part I. Cyclic codes and channel codes. CODING, CRYPTOGRAPHY and CRYPTOGRAPHIC PROTOCOLS

Chapter 7 Reed Solomon Codes and Binary Transmission

Solutions of Exam Coding Theory (2MMC30), 23 June (1.a) Consider the 4 4 matrices as words in F 16

Definition 2.1. Let w be a word. Then the coset C + w of w is the set {c + w : c C}.

A Brief Encounter with Linear Codes

Lecture 7 September 24

Cyclic Redundancy Check Codes

Optimization of the Hamming Code for Error Prone Media

Transcription:

little -at- mathcs -dot- holycross -dot- edu Department of Mathematics and Computer Science College of the Holy Cross SACNAS National Conference An Abstract Look at Algebra October 16, 2009

Outline Coding Basics 1 Coding Basics 2 3

A bit of history Beginning of coding theory as a mathematical and engineering subject: a 1948 paper by Claude Shannon called A Mathematical Theory of Communication. Shannon lived from 1916 to 2001, and spent most of his working career at Bell Labs and MIT. He also made fundamental contributions to cryptography and the design of computer circuitry in earlier work coming from his Ph.D. thesis.

Shannon s conceptual communication set-up message noise encoder trans. channel rec. decoder message

Examples Coding Basics This is a very general framework, incorporating examples such as communication with deep space exploration craft (Mariner, Voyager, etc. the most important early application) storing/retrieving information in computer memory storing/retrieving audio information (CDs) storing/rerieving video information (DVD and Blu-Ray disks) wireless communication

Reliability, not (necessarily) secrecy! A main goal of coding theory is the design of coding schemes that achieve error control: ability to detect and correct errors in received messages.

Reliability, not (necessarily) secrecy! A main goal of coding theory is the design of coding schemes that achieve error control: ability to detect and correct errors in received messages. Reliability rather than secrecy

Reliability, not (necessarily) secrecy! A main goal of coding theory is the design of coding schemes that achieve error control: ability to detect and correct errors in received messages. Reliability rather than secrecy Cryptography is the science of designing communications for secrecy, security.

Reliability, not (necessarily) secrecy! A main goal of coding theory is the design of coding schemes that achieve error control: ability to detect and correct errors in received messages. Reliability rather than secrecy Cryptography is the science of designing communications for secrecy, security. Definitely related, but not our main focus in this talk!

Error correction Bienvenqdos a Daljas, SACNAS Cohferenke Atsendeef! If you can read this message, then you re doing error correction!

Error correction Bienvenqdos a Daljas, SACNAS Cohferenke Atsendeef! If you can read this message, then you re doing error correction! In all human languages, words are usually far enough apart that even if some of a message is corrupted, it may still be intelligible

Error correction Bienvenqdos a Daljas, SACNAS Cohferenke Atsendeef! If you can read this message, then you re doing error correction! In all human languages, words are usually far enough apart that even if some of a message is corrupted, it may still be intelligible Usually, only a few legal words that are close to what is contained in the received message.

Error correction Bienvenqdos a Daljas, SACNAS Cohferenke Atsendeef! If you can read this message, then you re doing error correction! In all human languages, words are usually far enough apart that even if some of a message is corrupted, it may still be intelligible Usually, only a few legal words that are close to what is contained in the received message. Robustness in the presence of noise is a very desirable feature that can be designed in using abstract algebra!

Mathematical setting Messages are divided into words or blocks of a fixed length, k, use symbols from a finite alphabet A with some number q of symbols, typically the finite field F q

Mathematical setting Messages are divided into words or blocks of a fixed length, k, use symbols from a finite alphabet A with some number q of symbols, typically the finite field F q Simplest case (also best adapted to electronic hardware) is an alphabet with two symbols: A = {0, 1}, identified with the finite field F 2 (addition and multiplication modulo 2 so 1 + 1 = 0), but we will see others later also.

Mathematical setting Messages are divided into words or blocks of a fixed length, k, use symbols from a finite alphabet A with some number q of symbols, typically the finite field F q Simplest case (also best adapted to electronic hardware) is an alphabet with two symbols: A = {0, 1}, identified with the finite field F 2 (addition and multiplication modulo 2 so 1 + 1 = 0), but we will see others later also. Usually, all strings or k-tuples in F k q are considered as possible words that can appear in a message.

Encoding and decoding To correct errors, redundancy must included in the encoded message. One way: encoded message consists of strings of fixed length n > k over the same alphabet.

Encoding and decoding To correct errors, redundancy must included in the encoded message. One way: encoded message consists of strings of fixed length n > k over the same alphabet. Then encoding and decoding are functions: E : F k q F n q D : F n q F k q where E is 1-1, and D E = I on F k q.

Encoding and decoding To correct errors, redundancy must included in the encoded message. One way: encoded message consists of strings of fixed length n > k over the same alphabet. Then encoding and decoding are functions: E : F k q F n q D : F n q F k q where E is 1-1, and D E = I on F k q. D might also take a FAIL value on some words in the complement of Im(E) containing too many errors to be decodable.

Encoding and decoding To correct errors, redundancy must included in the encoded message. One way: encoded message consists of strings of fixed length n > k over the same alphabet. Then encoding and decoding are functions: E : F k q F n q D : F n q F k q where E is 1-1, and D E = I on F k q. D might also take a FAIL value on some words in the complement of Im(E) containing too many errors to be decodable. C = Im(E) is the code. Any such C is a block code of length n.

Errors Coding Basics Channel errors replace a codeword c by a received word x c.

Errors Coding Basics Channel errors replace a codeword c by a received word x c. We can think of x = c + e, where e F n q is the error vector.

Errors Coding Basics Channel errors replace a codeword c by a received word x c. We can think of x = c + e, where e F n q is the error vector. The error weight wt(e) = {i e i 0} determines how many entries of x are corrupted.

Errors Coding Basics Channel errors replace a codeword c by a received word x c. We can think of x = c + e, where e F n q is the error vector. The error weight wt(e) = {i e i 0} determines how many entries of x are corrupted. Example: wt(11000101) = 4.

Errors Coding Basics Channel errors replace a codeword c by a received word x c. We can think of x = c + e, where e F n q is the error vector. The error weight wt(e) = {i e i 0} determines how many entries of x are corrupted. Example: wt(11000101) = 4. Decoding can be seen as finding e (somehow), then subtracting it off to recover c.

Hamming distance Definition (Hamming Distance) Let x, y F n q. Then d(x, y) = {i {1,..., n} : x i y i } = wt(x y). Theorem Let C be a code in F n q. If d(c, c ) 2t + 1 for all distinct c, c C, then all error vectors of weight t or less will be corrected by the nearest-neighbor decoding function: D(x) = E 1 (c C : d(x, c) is minimal).

Idea of the proof Notation: B(c, t) = {x F n q d(x, c) t} ( Hamming ball ) B(c, t) t t c c B(c, t) Condition on d(c, c ) implies B(c, t) B(c, t) = whenever c c C. If c is sent and wt(e) t, then c + e is still closer to c than it is to any other codeword c, and nearest neighbor decoding will correct the error.

Minimum distance Leads to... Definition Let C be a code in F n q. The minimum distance of C, denoted d or d(c), is d = min c c C d(c, c ). (That is, d gives the smallest separation between any two distinct codewords.) If d = 13, for instance, then any error of weight 6 in a received word can be corrected by nearest-neighbor decoding.

Reed-Solomon More History RS codes are named after Irving Reed and Gustave Solomon. Date to 1960, when Reed and Solomon worked at MIT s Lincoln Labs in Massachusetts. Reed, who is still living, earned his Ph.D. at Cal Tech and later taught at USC before retiring. Solomon, who died in 1996, earned his Ph.D. at MIT, and consulted for many years at JPL in Pasadena.

General Properties Reed-Solomon codes are codes over an alphabet F q (usually q = 2 r for some r = 4, 8, 16, etc.) with many good properties: They are linear set of codewords is a vector subspace of F n q for n = q 1, and cyclic set of codewords is closed under cyclic shifts

General Properties Reed-Solomon codes are codes over an alphabet F q (usually q = 2 r for some r = 4, 8, 16, etc.) with many good properties: They are linear set of codewords is a vector subspace of F n q for n = q 1, and cyclic set of codewords is closed under cyclic shifts Best possible d for their n and k meet the Singleton bound: d n k + 1

General Properties Reed-Solomon codes are codes over an alphabet F q (usually q = 2 r for some r = 4, 8, 16, etc.) with many good properties: They are linear set of codewords is a vector subspace of F n q for n = q 1, and cyclic set of codewords is closed under cyclic shifts Best possible d for their n and k meet the Singleton bound: d n k + 1 Good encoding method (via polynomial division)

General Properties Reed-Solomon codes are codes over an alphabet F q (usually q = 2 r for some r = 4, 8, 16, etc.) with many good properties: They are linear set of codewords is a vector subspace of F n q for n = q 1, and cyclic set of codewords is closed under cyclic shifts Best possible d for their n and k meet the Singleton bound: d n k + 1 Good encoding method (via polynomial division) Berlekamp-Massey, Sugiyama (Euclidean Algorithm) decoders efficiently correct all errors of weight t, heavily based on abstract algebra

General Properties Reed-Solomon codes are codes over an alphabet F q (usually q = 2 r for some r = 4, 8, 16, etc.) with many good properties: They are linear set of codewords is a vector subspace of F n q for n = q 1, and cyclic set of codewords is closed under cyclic shifts Best possible d for their n and k meet the Singleton bound: d n k + 1 Good encoding method (via polynomial division) Berlekamp-Massey, Sugiyama (Euclidean Algorithm) decoders efficiently correct all errors of weight t, heavily based on abstract algebra Widely used in applications (e.g. CD audio system, computer memory, etc.)

Constructing RS codes Start with the desired dimension k < q.

Constructing RS codes Start with the desired dimension k < q. Let L k = Span{1, u, u 2,..., u k 1 } F q [u].

Constructing RS codes Start with the desired dimension k < q. Let L k = Span{1, u, u 2,..., u k 1 } F q [u]. We can define a code of dimension k by evaluating polynomials f L k to get the codeword entries: ev : L k F q 1 q f (f (1), f (α), f (α 2 ),..., f (α q 2 )) (where α is a primitive element of F q, so α q 1 = 1).

Constructing RS codes Start with the desired dimension k < q. Let L k = Span{1, u, u 2,..., u k 1 } F q [u]. We can define a code of dimension k by evaluating polynomials f L k to get the codeword entries: ev : L k F q 1 q f (f (1), f (α), f (α 2 ),..., f (α q 2 )) (where α is a primitive element of F q, so α q 1 = 1). The image of ev is the RS code a vector subspace of dimension k in F n q for n = q 1.

d a basic fact for polynomials(!) Linearity in computation of d(x, y) = wt(x y), x y is another codeword.

d a basic fact for polynomials(!) Linearity in computation of d(x, y) = wt(x y), x y is another codeword. So, determining d asking how many zeroes can a nonzero polynomial in L k have?

d a basic fact for polynomials(!) Linearity in computation of d(x, y) = wt(x y), x y is another codeword. So, determining d asking how many zeroes can a nonzero polynomial in L k have? The answer is clear deg f (u) k 1 for all f (u) L k, so no more than k 1 roots(!) Proof: By division, β F q is a root of f (u) f (u) = (u β)q(x). Then deg(q(u)) = deg(f (u)) 1.

d a basic fact for polynomials(!) Linearity in computation of d(x, y) = wt(x y), x y is another codeword. So, determining d asking how many zeroes can a nonzero polynomial in L k have? The answer is clear deg f (u) k 1 for all f (u) L k, so no more than k 1 roots(!) Proof: By division, β F q is a root of f (u) f (u) = (u β)q(x). Then deg(q(u)) = deg(f (u)) 1. Moreover, some f (u) of degree k 1 have exactly k 1 distinct roots.

d a basic fact for polynomials(!) Linearity in computation of d(x, y) = wt(x y), x y is another codeword. So, determining d asking how many zeroes can a nonzero polynomial in L k have? The answer is clear deg f (u) k 1 for all f (u) L k, so no more than k 1 roots(!) Proof: By division, β F q is a root of f (u) f (u) = (u β)q(x). Then deg(q(u)) = deg(f (u)) 1. Moreover, some f (u) of degree k 1 have exactly k 1 distinct roots. So minimum weight in ev(l k 1 ) is d = (q 1) (k 1) = n k + 1.

A Recent Development List Decoding Analogy: Say a misprint occurs in something you are reading bawn

A Recent Development List Decoding Analogy: Say a misprint occurs in something you are reading bawn Possible corrections changing just one letter: bawl, fawn, lawn, pawn, barn, etc. not too many possibilities and maybe can correct from context...

A Recent Development List Decoding Analogy: Say a misprint occurs in something you are reading bawn Possible corrections changing just one letter: bawl, fawn, lawn, pawn, barn, etc. not too many possibilities and maybe can correct from context... Traditional decoding methods assume d = 2t + 1 and e with w(e) t occurs. By Theorem before,! closest codeword c to x and the decoder finds it. (But if an error of weight > t occurs, these often fail.)

A Recent Development List Decoding Analogy: Say a misprint occurs in something you are reading bawn Possible corrections changing just one letter: bawl, fawn, lawn, pawn, barn, etc. not too many possibilities and maybe can correct from context... Traditional decoding methods assume d = 2t + 1 and e with w(e) t occurs. By Theorem before,! closest codeword c to x and the decoder finds it. (But if an error of weight > t occurs, these often fail.) List decoding idea is to extend the error weights that can be handled by making decoder output a list of all codewords within some decoding radius τ t of x.

Algebraic Methods Interpolation List decoding algorithms developed by M. Sudan, V. Guruswami, and others.

Algebraic Methods Interpolation List decoding algorithms developed by M. Sudan, V. Guruswami, and others. Proceed in two steps after choice of decoding radius τ.

Algebraic Methods Interpolation List decoding algorithms developed by M. Sudan, V. Guruswami, and others. Proceed in two steps after choice of decoding radius τ. Interpolation First, a two-variable polynomial Q(u, v) is computed to interpolate the received word x: Q(α i, x i ) = 0 for all 0 i q 1 (possibly with an associated multiplicity m at all of the points).

Factorization Coding Basics Factorization Under suitable hypotheses, any polynomial Q(u, v) as in the first step must factor as Q(u, v) = (v f 1 (u)) (v f L (u))r(u) with deg f i (u) k 1. Once the factorization is found, each v f i (u) corresponds to an RS codeword c i and the algorithm returns the list {c 1,..., c L }.

Factorization Coding Basics Factorization Under suitable hypotheses, any polynomial Q(u, v) as in the first step must factor as Q(u, v) = (v f 1 (u)) (v f L (u))r(u) with deg f i (u) k 1. Once the factorization is found, each v f i (u) corresponds to an RS codeword c i and the algorithm returns the list {c 1,..., c L }. Again under suitable hypotheses, any RS codeword distance τ from the received word must appear in the list.

Factorization Coding Basics Factorization Under suitable hypotheses, any polynomial Q(u, v) as in the first step must factor as Q(u, v) = (v f 1 (u)) (v f L (u))r(u) with deg f i (u) k 1. Once the factorization is found, each v f i (u) corresponds to an RS codeword c i and the algorithm returns the list {c 1,..., c L }. Again under suitable hypotheses, any RS codeword distance τ from the received word must appear in the list. Efficient algorithms for both steps are known drawing on techniques from symbolic algebraic computation with polynomials in several variables!

Suggestions For Further Reading For More on Coding Theory Basics: W.C. Huffman and V. Pless, Fundamentals of error-correcting codes, Cambridge University Press, Cambridge, 2003. For More On List Decoding For RS Codes: V. Guruswami, List Decoding of Error Correcting Codes, Springer Lecture Notes in Computer Science 3282, Springer-Verlag, Berlin, 2004. T. Moon, Error Correction Coding, Wiley-Interscience, Hoboken, 2005. Thanks for your attention!