Reed-Solomon code. Berlekamp-Welsh Algorithm Finding Q ( x ) and E ( x ) ? Problem: Communicate n packets m 1 ,..., m n P ( x ) : degree n − 1 polynomial. on noisy channel that corrupts ≤ k packets. Send P ( 1 ) ,..., P ( n + 2 k ) Receive R ( 1 ) ,..., R ( n + 2 k ) Reed-Solomon Code: At most k i ’s where P ( i ) � = R ( i ) . ◮ E ( x ) has degree k ... 1. Make a polynomial, P ( x ) of degree n − 1, Idea: that encodes message: coefficients, p 0 ,..., p n − 1 . E ( x ) = x k + b k − 1 x k − 1 ··· b 0 . E ( x ) is error locator polynomial. 2. Send P ( 1 ) ,..., P ( n + 2 k ) . Root at each error point. Degree k . = ⇒ k (unknown) coefficients. Leading coefficient is 1. Q ( x ) = P ( x ) E ( x ) or degree n + k − 1 polynomial. After noisy channel: Recieve values R ( 1 ) ,..., R ( n + 2 k ) . ◮ Q ( x ) = P ( x ) E ( x ) has degree n + k − 1 ... Set up system corresponding to Q ( i ) = R ( i ) E ( i ) where Properties: Q ( x ) is degree n + k − 1 polynomial. Coefficients: a 0 ,..., a n + k − 1 (1) P ( i ) = R ( i ) for at least n + k points i , Q ( x ) = a n + k − 1 x n + k − 1 + a n + k − 2 x n + k − 2 + ··· a 0 E ( x ) is degree k polyonimal. Coefficients: b 0 ,..., b k − 1 , 1 (2) P ( x ) is unique degree n − 1 polynomial Matrix equations: modulo p ! that contains ≥ n + k received points. = ⇒ n + k (unknown) coefficients. 1 1 · 1 1 · 1 b 0 Matrix view of encoding: modulo p . a 0 R ( 1 ) · 0 2 n + k − 1 2 k 1 2 · 1 · b 1 Total unknown coefficient: n + 2 k . a 1 0 · 0 3 n + k − 1 3 k 1 3 · 1 · . 1 2 1 1 · 1 . = . . . P ( 1 ) p 0 . . . . . . . . . . 2 2 2 n − 1 P ( 2 ) 1 2 · . . . . . . 0 . . . p 1 . · . . . . . b k − 1 P ( 3 ) 3 2 3 n − 1 a n + k − 1 0 · R ( n + 2 k ) 1 3 · ( n + 2 k ) n + k − 1 ( n + 2 k ) k 1 = . ( mod p ) 1 ( n + 2 k ) · 1 · . . . . . . . . . . . Solve. Then output P ( x ) = Q ( x ) / E ( x ) . . · . . p n − 1 P ( n + 2 k ) ( n + 2 k ) 2 · ( n + 2 k ) n − 1 1 ( n + 2 k ) Solving for Q ( x ) and E ( x ) ...and P ( x ) Example. Example: finishing up. Received R ( 1 ) = 3 , R ( 2 ) = 1 , R ( 3 ) = 6 , R ( 4 ) = 0 , R ( 5 ) = 3 Q ( x ) = x 3 + 6 x 2 + 6 x + 5. For all points 1 ,..., i , n + 2 k , Q ( x ) = E ( x ) P ( x ) = a 3 x 3 + a 2 x 2 + a 1 x + a 0 E ( x ) = x − 2. 1 xˆ2 + 1 x + 1 E ( x ) = x − b 0 Q ( i ) = R ( i ) E ( i ) ( mod p ) ----------------- Q ( i ) = R ( i ) E ( i ) . Gives n + 2 k linear equations. x - 2 ) xˆ3 + 6 xˆ2 + 6 x + 5 xˆ3 - 2 xˆ2 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 3 + a 2 + a 1 + a 0 ≡ 3 ( 1 − b 0 ) ( mod 7 ) 1 xˆ2 + 6 x + 5 . 1 xˆ2 - 2 x . a 3 + 4 a 2 + 2 a 1 + a 0 ≡ 1 ( 2 − b 0 ) ( mod 7 ) . --------------- a n + k − 1 ( m ) n + k − 1 + ... a 0 R ( m )(( m ) k + b k − 1 ( m ) k − 1 ··· b 0 ) ( mod p ) 6 a 3 + 2 a 2 + 3 a 1 + a 0 ≡ 6 ( 3 − b 0 ) ( mod 7 ) ≡ x + 5 a 3 + 2 a 2 + 4 a 1 + a 0 ≡ 0 ( 4 − b 0 ) ( mod 7 ) x - 2 ..and n + 2 k unknown coefficients of Q ( x ) and E ( x ) ! 6 a 3 + 4 a 2 + 5 a 1 + a 0 ≡ 3 ( 5 − b 0 ) ( mod 7 ) ----- Solve for coefficients of Q ( x ) and E ( x ) . 0 P ( x ) = x 2 + x + 1 a 3 = 1, a 2 = 6, a 1 = 6, a 0 = 5 and b 0 = 2. Find P ( x ) = Q ( x ) / E ( x ) . Message is P ( 1 ) = 3 , P ( 2 ) = 0 , P ( 3 ) = 6. Q ( x ) = x 3 + 6 x 2 + 6 x + 5. What is x − 2 x − 2 ? 1 Except at x = 2? Hole there? E ( x ) = x − 2.
Error Correction: Berlekamp-Welsh Check your undersanding. Hmmm... Message: m 1 ,..., m n . Sender: 1. Form degree n − 1 polynomial P ( x ) where P ( i ) = m i . You have error locator polynomial! 2. Send P ( 1 ) ,..., P ( n + 2 k ) . Where oh where can my bad packets be?... Is there one and only one P ( x ) from Berlekamp-Welsh procedure? Receiver: Factor? Sure. Existence: there is a P ( x ) and E ( x ) that satisfy equations. Check all values? Sure. 1. Receive R ( 1 ) ,..., R ( n + 2 k ) . Efficiency? Sure. Only n + k values. 2. Solve n + 2 k equations, Q ( i ) = E ( i ) R ( i ) to find Q ( x ) = E ( x ) P ( x ) See where it is 0. and E ( x ) . 3. Compute P ( x ) = Q ( x ) / E ( x ) . 4. Compute P ( 1 ) ,..., P ( n ) . Unique solution for P ( x ) Last bit. Fact: Q ′ ( x ) E ( x ) = Q ( x ) E ′ ( x ) on n + 2 k values of x . Uniqueness: any solution Q ′ ( x ) and E ′ ( x ) have Proof: Construction implies that Q ′ ( x ) E ′ ( x ) = Q ( x ) Q ( i ) = R ( i ) E ( i ) E ( x ) = P ( x ) . (1) Proof: Q ′ ( i ) = R ( i ) E ′ ( i ) We claim Berlekamp-Welsh algorithm decodes correctly when k errors! for i ∈ { 1 ,... n + 2 k } . Q ′ ( x ) E ( x ) = Q ( x ) E ′ ( x ) on n + 2 k values of x . (2) 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. = Equation 2 implies 1: When E ′ ( i ) and E ( i ) are not zero Q ′ ( x ) E ( x ) and Q ( x ) E ′ ( x ) are degree n + 2 k − 1 and agree on n + 2 k points Q ′ ( i ) E ′ ( i ) = Q ( i ) E ( x ) and E ′ ( x ) have at most k zeros each. E ( i ) = R ( i ) . Can cross divide at n points. Q ′ ( x ) E ′ ( x ) = Q ( x ) Cross multiplying gives equality in fact for these points. = ⇒ E ( x ) equal on n points. Both degree ≤ n = ⇒ Same polynomial! Points to polynomials, have to deal with zeros! Example: dealing with x − 2 x − 2 at x = 2.
Summary: polynomials. Farewell to modular arithmetic... Next up: how big is infinity. Set of d + 1 points determines degree d polynomial. Modular arithmetic modulo a prime. Encode secret using degree k − 1 polynomial: Add, subtract, commutative, associative, inverses! Can share with n people. Any k can recover! Allow for solving linear systems, discussing polynomials... Encode message using degree n − 1 polynomail: Why not modular arithmetic all the time? n packets of information. 4 > 3 ? Yes! Send n + k packets (point values). ◮ Countable Can recover from k losses: Still have n points! 4 > 3 ( mod 7 ) ? Yes...maybe? ◮ Countably infinite. Send n + 2 k packets (point values). − 3 > 3 ( mod 7 ) ? Uh oh.. − 3 = 4 ( mod 7 ) . Can recover from k corruptionss. ◮ Enumeration Another problem. Only one polynomial contains n + k 4 is close to 3. Efficiency. But can you get closer? Sure. 3.5. Closer. Sure? 3.25, 3.1, Magic!!!! 3.000001. ... Error Locator Polynomial. For reals numbers we have the notion of limit, continuity, and Relations: derivative....... Linear code. Almost any coding matrix works. ....and Calculus. Vandermonde matrix (the one for Reed-Solomon).. For modular arithmetic...no Calculus. Sad face! allows for efficiency. Magic of polynomials. Other Algebraic-Geometric codes. How big are the reals or the integers? Same size? Isomorphism principle. Given a function, f : D → R . One to One: Same number? For all ∀ x , y ∈ D , x � = y = ⇒ f ( x ) � = f ( y ) . Make a function f : Circles → Squares. or Infinite! f ( red circle ) = red square ∀ x , y ∈ D , f ( x ) = f ( y ) = ⇒ x = y . Is one bigger or smaller? f ( blue circle ) = blue square Onto: For all y ∈ R , ∃ x ∈ D , y = f ( x ) . f ( circle with black border ) = square with black border One to one. Each circle mapped to different square. f ( · ) is a bijection if it is one to one and onto. One to One: For all x , y ∈ D , x � = y = ⇒ f ( x ) � = f ( y ) . Isomorphism principle: Onto. Each square mapped to from some circle . If there is a bijection f : D → R then | D | = | R | . Onto: For all s ∈ R , ∃ c ∈ D , s = f ( c ) . Isomorphism principle: If there is f : D → R that is one to one and onto, then, | D | = | R | .
Recommend
More recommend