Error Correction. Satellite. GPS device. 3 packet message. Send 5. 3 D 2 B 1 A 1 E. Corrupts 1 packets. 3 D 2 B 1 E 1 A

Similar documents
Reed-Solomon code. P(n + 2k)

3x + 1 (mod 5) x + 2 (mod 5)

Today. Wrapup of Polynomials...and modular arithmetic. Coutability and Uncountability.

Discrete Mathematics for CS Spring 2007 Luca Trevisan Lecture 11. Error Correcting Codes Erasure Errors

Discrete Mathematics and Probability Theory Fall 2013 Vazirani Note 6

Lecture 21: Midterm 2 Review.

Modular Arithmetic Inverses and GCD

Great Theoretical Ideas in Computer Science

CS 70 Discrete Mathematics and Probability Theory Summer 2016 Dinh, Psomas, and Ye Discussion 8A Sol

Lecture 14. Outline. 1. Finish Polynomials and Secrets. 2. Finite Fields: Abstract Algebra 3. Erasure Coding

Decoding Reed-Muller codes over product sets

Discrete Mathematics and Probability Theory Spring 2016 Rao and Walrand Discussion 6B Solution

Discrete Mathematics and Probability Theory Spring 2016 Rao and Walrand Discussion 6A Solution

4. What is the probability that the two values differ by 4 or more in absolute value? There are only six

2. Polynomials. 19 points. 3/3/3/3/3/4 Clearly indicate your correctly formatted answer: this is what is to be graded. No need to justify!

1 Operations on Polynomials

Discrete Mathematics and Probability Theory Fall 2017 Ramchandran and Rao Midterm 2 Solutions

Error Detection & Correction

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

Error Correcting Codes Questions Pool

Cosc 412: Cryptography and complexity Lecture 7 (22/8/2018) Knapsacks and attacks

Discrete Mathematics and Probability Theory Spring 2015 Vazirani Midterm #2 Solution

Convolutional Coding LECTURE Overview

Lecture B04 : Linear codes and singleton bound

Midterm 2. Your Exam Room: Name of Person Sitting on Your Left: Name of Person Sitting on Your Right: Name of Person Sitting in Front of You:

Lecture 12: November 6, 2017

An introduction to basic information theory. Hampus Wessman

Polynomial Codes over Certain Finite Fields

Information redundancy

Discrete Mathematics and Probability Theory Summer 2014 James Cook Midterm 1

Physical Layer and Coding

Secure Computation. Unconditionally Secure Multi- Party Computation

Today. Polynomials. Secret Sharing.

Benny Pinkas. Winter School on Secure Computation and Efficiency Bar-Ilan University, Israel 30/1/2011-1/2/2011

Error Correction Review

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

: Error Correcting Codes. October 2017 Lecture 1

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

CS151 Complexity Theory. Lecture 9 May 1, 2017

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

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

1 Maintaining a Dictionary

Discrete Mathematics and Probability Theory Fall 2014 Anant Sahai Midterm 2

Lecture 7 September 24

Block Codes :Algorithms in the Real World

Discrete Mathematics and Probability Theory Spring 2016 Rao and Walrand Note 8

Lecture 12. Block Diagram

Efficiently decodable codes for the binary deletion channel

1. Prove that the number cannot be represented as a 2 +3b 2 for any integers a and b. (Hint: Consider the remainder mod 3).

Notes 10: Public-key cryptography

Optical Storage Technology. Error Correction

Locally Decodable Codes

Section 4.3. Polynomial Division; The Remainder Theorem and the Factor Theorem

1 Reed Solomon Decoder Final Project. Group 3 Abhinav Agarwal S Branavan Grant Elliott. 14 th May 2007

Discrete Mathematics and Probability Theory Fall 2014 Anant Sahai Note 7

Lecture 4: Codes based on Concatenation

CS173 Strong Induction and Functions. Tandy Warnow

CSCI-B609: A Theorist s Toolkit, Fall 2016 Oct 4. Theorem 1. A non-zero, univariate polynomial with degree d has at most d roots.

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

Lecture 15 and 16: BCH Codes: Error Correction

An Introduction to (Network) Coding Theory

Notes for Lecture 18

18.310A Final exam practice questions

ECE Information theory Final (Fall 2008)

The number of message symbols encoded into a

Lecture 03: Polynomial Based Codes

Error Correcting Codes Prof. Dr. P Vijay Kumar Department of Electrical Communication Engineering Indian Institute of Science, Bangalore

A Brief Encounter with Linear Codes

Lecture on Sensor Networks

Midterm 1. Name: TA: U.C. Berkeley CS70 : Algorithms Midterm 1 Lecturers: Anant Sahai & Christos Papadimitriou October 15, 2008

An Introduction to (Network) Coding Theory

Linear-algebraic list decoding for variants of Reed-Solomon codes

The Golay codes. Mario de Boer and Ruud Pellikaan

Communication Engineering Prof. Surendra Prasad Department of Electrical Engineering Indian Institute of Technology, Delhi

Continuing discussion of CRC s, especially looking at two-bit errors

On Irreducible Polynomial Remainder Codes

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

Local correctability of expander codes

Code-Based Cryptography Error-Correcting Codes and Cryptography

Quantum Information Theory and Cryptography

CS 70 Discrete Mathematics and Probability Theory Summer 2016 Dinh, Psomas, and Ye Final Exam

Lecture 3: Error Correcting Codes

Cyclic Codes. Saravanan Vijayakumaran August 26, Department of Electrical Engineering Indian Institute of Technology Bombay

ECEN 604: Channel Coding for Communications

Solutions to the Midterm Test (March 5, 2011)

Notes for the Hong Kong Lectures on Algorithmic Coding Theory. Luca Trevisan. January 7, 2007

Algorithms lecture notes 1. Hashing, and Universal Hash functions

Low-Density Parity-Check Codes

Discrete Mathematics and Probability Theory Spring 2017 Rao Midterm 2 Solutions

Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY Fall Quiz II.

COMPSCI 650 Applied Information Theory Apr 5, Lecture 18. Instructor: Arya Mazumdar Scribe: Hamed Zamani, Hadi Zolfaghari, Fatemeh Rezaei

Outline. EECS Components and Design Techniques for Digital Systems. Lec 18 Error Coding. In the real world. Our beautiful digital world.

Example: sending one bit of information across noisy channel. Effects of the noise: flip the bit with probability p.

Introduction to Wireless & Mobile Systems. Chapter 4. Channel Coding and Error Control Cengage Learning Engineering. All Rights Reserved.

On Syndrome Decoding of Chinese Remainder Codes

Cryptography and Security Midterm Exam

ECE 4450:427/527 - Computer Networks Spring 2017

Bridging Shannon and Hamming: List Error-Correction with Optimal Rate

Discrete Mathematics and Probability Theory Fall 2014 Anant Sahai Homework 7. This homework is due October 20, 2014, at 12:00 noon.

X 1 : X Table 1: Y = X X 2

Transcription:

Error Correction Satellite 3 packet message. Send 5. 1 A 2 B C 3 D 1 E 2 1 A 2 B C 3 D 1 E 2 Corrupts 1 packets. GPS device

The Scheme. Problem: Communicate n packets m 1,...,m n on noisy channel that corrupts k packets. Reed-Solomon Code: 1. Make a polynomial, P(x) of degree n 1, that encodes message. P(1) = m 1,...,P(n) = m n. Comment: could encode with packets as coefficients. 2. Send P(1),...,P(n + 2k). After noisy channel: Recieve values R(1),...,R(n + 2k). Properties: (1) P(i) = R(i) for at least n + k points i, (2) P(x) is unique degree n 1 polynomial that contains n + k received points.

Properties: proof. P(x): degree n 1 polynomial. Send P(1),...,P(n + 2k) Receive R(1),...,R(n + 2k) At most k i s where P(i) R(i). Properties: (1) P(i) = R(i) for at least n + k points i, (2) P(x) is unique degree n 1 polynomial that contains n + k received points. Proof: (1) Sure. Only k corruptions. (2) Degree n 1 polynomial Q(x) consistent with n + k points. Q(x) agrees with R(i), n + k times. P(x) agrees with R(i), n + k times. Total points contained by both: 2n + 2k. P Pigeons. Total points to choose from : n + 2k. H Holes. Points contained by both : n. P H Collisions. = Q(i) = P(i) at n points. = Q(x) = P(x).

Example. Message: 3,0,6. Reed Solomon Code: P(x) = x 2 + x + 1 (mod 7) has P(1) = 3,P(2) = 0,P(3) = 6 modulo 7. Send: P(1) = 3,P(2) = 0,P(3) = 6,P(4) = 0,P(5) = 3. (Aside: Message in plain text!) Receive R(1) = 3,R(2) = 1,R(3) = 6,R(4) = 0,R(5) = 3. P(i) = R(i) for n + k = 3 + 1 = 4 points.

Slow solution. Brute Force: For each subset of n + k points Fit degree n 1 polynomial, Q(x), to n of them. Check if consistent with n + k of the total points. If yes, output Q(x). For subset of n + k pts where R(i) = P(i), method will reconstruct P(x)! For any subset of n + k pts, 1. there is unique degree n 1 polynomial Q(x) that fits n of them 2. and where Q(x) is consistent with n + k points = P(x) = Q(x). Reconstructs P(x) and only P(x)!!

Example. Received R(1) = 3,R(2) = 1,R(3) = 6,R(4) = 0,R(5) = 3 Find P(x) = p 2 x 2 + p 1 x + p 0 that contains n + k = 3 + 1 points. All equations.. p 2 + p 1 + p 0 3 (mod 7) 4p 2 + 2p 1 + p 0 1 (mod 7) 2p 2 + 3p 1 + p 0 6 (mod 7) 2p 2 + 4p 1 + p 0 0 (mod 7) 1p 2 + 5p 1 + p 0 3 (mod 7) Assume point 1 is wrong and solve..no consistent solution! Assume point 2 is wrong and solve...consistent solution!

In general.. P(x) = p n 1 x n 1 + p 0 and receive R(1),...R(m = n + 2k). p n 1 + p 0 R(1) (mod p) p n 1 2 n 1 + p 0 R(2) (mod p) p n 1 i n 1 + p 0 R(i) (mod p) p n 1 (m) n 1 + p 0 R(m) (mod p) Error!!... Where??? Could be anywhere!!!...so try everywhere. Runtime: ( n+2k) k possibilitities. Something like (n/k) k...exponential in k!. How do we find where the bad packets are efficiently?!?!?!

Ditty... Where oh where can my bad packets be... Today.

Where oh where can my bad packets be? E(1)(p n 1 + p 0 ) R(1)E(1) (mod p) 0 E(2)(p n 1 2 n 1 + p 0 ) R(2)E(2) (mod p) E(m)(p n 1 (m) n 1 + p 0 ) R(n + 2k)E(m) (mod p) Idea: Multiply equation i by 0 if and only if P(i) R(i). All equations satisfied!!!!! But which equations should we multiply by 0? Where oh where...?? We will use a polynomial!!! That we don t know. But can find! Errors at points e 1,...,e k. (In diagram above, e 1 = 2.) Error locator polynomial: E(x) = (x e 1 )(x e 2 )...(x e k ). E(i) = 0 if and only if e j = i for some j Multiply equations by E( ). (Above E(x) = (x-2).) All equations satisfied!!.

Example. Received R(1) = 3,R(2) = 1,R(3) = 6,R(4) = 0,R(5) = 3 Find P(x) = p 2 x 2 + p 1 x + p 0 that contains n + k = 3 + 1 points. Plugin points... (1 e)(p 2)(p 2 + p 1 + p 0 ) (3)(1 2) e) (mod 7) (2 e)(4p 2)(4p 2 + 2p 1 + p 0 ) (1)(2 e) 2) (mod 7) (3 e)(2p 2)(2p 2 + 3p 1 + p 0 ) (6)(3 (3)(3 e) 2) (mod 7) (4 e)(2p 2)(2p 2 + 4p 1 + p 0 ) (0)(4 e) 2) (mod 7) (5 e)(4p 2)(4p 2 + 5p 1 + p 0 ) (3)(5 e) 2) (mod 7) Error locator polynomial: (x 2). Multiply equation i by (i 2). All equations satisfied! But don t know error locator polynomial! Do know form: (x e). 4 unknowns (p 0,p 1,p 2 and e), 5 nonlinear equations.

..turn their heads each day, E(1)(p n 1 + p 0 ) R(1)E(1) (mod p) E(i)(p n 1 i n 1 + p 0 ) R(i)E(i) (mod p) E(m)(p n 1 (n + 2k) n 1 + p 0 ) R(m)E(m) (mod p)...so satisfied, I m on my way. m = n + 2k satisfied equations, n + k unknowns. But nonlinear! Let Q(x) = E(x)P(x) = a n+k 1 x n+k 1 + a 0. Equations:.. Q(i) = R(i)E(i). and linear in a i and coefficients of E(x)!

Finding Q(x) and E(x)? E(x) has degree k... E(x) = x k + b k 1 x k 1 b 0. Q(x) = P(x)E(x) has degree n + k 1... Q(x) = a n+k 1 x n+k 1 + a n+k 2 x n+k 2 + a 0

Solving for Q(x) and E(x)...and P(x) For all points 1,...,i,n + 2k, Q(i) = R(i)E(i) (mod p) Gives n + 2k linear equations. a n+k 1 +...a 0 R(1)(1 + b k 1 b 0 ) (mod p) a n+k 1 (2) n+k 1 +...a 0 R(2)((2) k + b k 1 (2) k 1 b 0 ) (mod p). a n+k 1 (m) n+k 1 +...a 0 R(m)((m) k + b k 1 (m) k 1 b 0 ) (mod p)..and n + 2k unknown coefficients of Q(x) and E(x)! Solve for coefficients of Q(x) and E(x). Find P(x) = Q(x)/E(x).

Example. Received R(1) = 3,R(2) = 1,R(3) = 6,R(4) = 0,R(5) = 3 Q(x) = E(x)P(x) = a 3 x 3 + a 2 x 2 + a 1 x + a 0 E(x) = x b 0 Q(i) = R(i)E(i). a 3 + a 2 + a 1 + a 0 3(1 b 0 ) (mod 7) a 3 + 4a 2 + 2a 1 + a 0 1(2 b 0 ) (mod 7) 6a 3 + 2a 2 + 3a 1 + a 0 6(3 b 0 ) (mod 7) a 3 + 2a 2 + 4a 1 + a 0 0(4 b 0 ) (mod 7) 6a 3 + 4a 2 + 5a 1 + a 0 3(5 b 0 ) (mod 7) a 3 = 1, a 2 = 6, a 1 = 6, a 0 = 5 and b 0 = 2. Q(x) = x 3 + 6x 2 + 6x + 5. E(x) = x 2.

Example: finishing up. Q(x) = x 3 + 6x 2 + 6x + 5. E(x) = x 2. 1 xˆ2 + 1 x + 1 ----------------- x - 2 ) xˆ3 + 6 xˆ2 + 6 x + 5 xˆ3-2 xˆ2 ---------- 1 xˆ2 + 6 x + 5 1 xˆ2-2 x --------------- x + 5 x - 2 ----- 0 P(x) = x 2 + x + 1 Message is P(1) = 3,P(2) = 0,P(3) = 6. What is x 2 x 2? 1 Except at x = 2? Hole there?

Error Correction: Berlekamp-Welsh Message: m 1,...,m n. Sender: 1. Form degree n 1 polynomial P(x) where P(i) = m i. 2. Send P(1),...,P(n + 2k). Receiver: 1. Receive R(1),...,R(n + 2k). 2. Solve n + 2k equations, Q(i) = E(i)R(i) to find Q(x) = E(x)P(x) and E(x). 3. Compute P(x) = Q(x)/E(x). 4. Compute P(1),...,P(n).

Check your undersanding. You have error locator polynomial! Where oh where can my bad packets be?... Factor? Sure. Check all values? Sure. Efficiency? Sure. Only n + k values. See where it is 0.

Hmmm... Is there one and only one P(x) from Berlekamp-Welsh procedure? Existence: there is a P(x) and E(x) that satisfy equations.

Unique solution for P(x) Uniqueness: any solution Q (x) and E (x) have Proof: We claim Q (x) E (x) = Q(x) = P(x). (1) E(x) Equation 2 implies 1: Q (x)e(x) = Q(x)E (x) on n + 2k values of x. (2) Q (x)e(x) and Q(x)E (x) are degree n + 2k 1 and agree on n + 2k points = Q (x)e(x) = Q(x)E (x). Cross divide.

Last bit. Fact: Q (x)e(x) = Q(x)E (x) on n + 2k values of x. Proof: Construction implies that for i {1,...n + 2k}. Q(i) = R(i)E(i) Q (i) = R(i)E (i) If E(i) = 0, then Q(i) = 0. If E (i) = 0, then Q (i) = 0. = Q(i)E (i) = Q (i)e(i) holds when E(i) or E (i) are zero. When E (i) and E(i) are not zero Q (i) E (i) = Q(i) E(i) = R(i). Cross multiplying gives equality in fact for these points. Points to polynomials, have to deal with zeros! Example: dealing with x 2 x 2 at x = 2.

Berlekamp-Welsh algorithm decodes correctly when k errors!

Summary. Error Correction. Communicate n packets, with k erasures. How many packets? n + k How to encode? With polynomial, P(x). Of degree? n 1 Recover? Reconstruct P(x) with any n points! Communicate n packets, with k errors. How many packets? n + 2k Why? k changes to make diff. messages overlap How to encode? With polynomial, P(x). Of degree? n 1. Recover? Reconstruct error polynomial, E(X), and P(x)! Nonlinear equations. Reconstruct E(x) and Q(x) = E(x)P(x). Linear Equations. Polynomial division! P(x) = Q(x)/E(x)! Reed-Solomon codes. Welsh-Berlekamp Decoding. Perfection!