誤り訂正の計算例(example.pdf, 7/20) - Kobe

情報数学特論: Reed-Solomon 符号の誤り訂正例
担当:桔梗 宏孝
q 元体 Fq の原始元 α をとり,RS(q, 2) を考える。すなわち,
Cy + D ≡ (Ay 2 + By + 1)S(y) (mod y 4 )
誤り訂正能力 2 の場合を考える。
A, B, C, D ∈ F8 ,Cy + D と Ay 2 + By + 1 は互いに素
f ∈ RS(q, 2) ⇐⇒ f (α) = f (α2 ) = f (α3 ) = f (α4 ) = 0
が成り立つとき,
E(y) = ea y a + eb y b (誤り箇所は 2 つ),
である。
Ay 2 + By + 1 = (1 − αa y)(1 − αb y),
Reed-Solomon 符号 f に対し誤り E が加わって,f1 になった
Cy + D = ea αa (1 − αb y) + eb αb (1 − αa y).
とする。
と書ける。
シンドローム多項式 S(y) は次の通りである。
S(y) = f1 (α4 )y 3 + f1 (α3 )y 2 + f1 (α2 )y + f1 (α)
4
3
3
2
例 1.Fq = F8 = F2 [x]/(1011) = {0, 1, 10, 11, 100, 101, 110, 111}
2
= E(α )y + E(α )y + E(α )y + E(α).
で考える。1011 は x3 + x + 1 のこと (係数ベクトル) である。
誤り位置が 2 箇所以内の誤り訂正には,次の鍵方程式の解
F8 の要素は係数ベクトルで表現された 2 次以下の F2 係数
Ω(y),Λ(y) を求めればよい。
多項式である。和 + は F2 係数多項式としての和 (桁ごとの
4
Ω(y) ≡ Λ(y)S(y) (mod y )
mod 2 の和) で,積 · は F2 係数多項式としてかけた後に 1011
deg Ω(y) < deg Λ(y) ≤ 2
で割った余りをとる演算とする。α = 10 とすると,α のべきは
Ω(y) と Λ(y) は互いに素
次の表で表される。下の段が上の式の値である。
α2
α3
α4
α5
α6
α7
10 100
11
110 111
101
1
α
誤り箇所が誤り訂正能力以下の場合は,この鍵方程式の解は定
数倍を除いて一意的である。
さて,RS(8, 2) の Reed-Solomon 符号を受信したところ,
さて,E(y) の y a の係数が ea = 0 だったとする。
f1 = (α, α, α6 , α, 0, 0, α5 )
Sa (y) = ea αa (1 + αa y + α2a y 2 + α3a y 3 )
とおいて両辺を αa y 倍すると
αa ySa (y) = ea αa (αa y + α2a y 2 + α3a y 3 + α4a y 4 )
であったとする。シンドローム多項式の係数を計算すると
f1 (α) = α · α6 + α · α5 + α6 · α4 + α · α3 + α5
= 1 + α6 + α3 + α4 + α 5
両辺をそれぞれ引くと
(1 − αa y)Sa (y) = ea αa (1 − α4a y 4 )
= 1 + 101 + 11 + 110 + 111
となるので
= α4 ,
ea αa ≡ (1 − αa y)Sa (y) (mod y 4 ).
f1 (α2 ) = α2 ,
(i) 誤り箇所が 1 つの場合,E(y) = ea y a ,S(y) = Sa (y) と書
f1 (α3 ) = 1,
けるので,鍵方程式の解は定数倍を除いて
f1 (α4 ) = α5
ea αa ≡ (1 − αa y)S(y) (mod y 4 )
となる。ユークリッドの互除法により,鍵方程式の解を求める。
だけである。
(1) y 4 ≡ 0 · S(y) (mod y 4 )
事実 1.
(2) α5 y 3 + y 2 + α2 y + α4 ≡ 1 · S(y) (mod y 4 )
誤り箇所が 2 つ以内で,
(3) α ≡ (α2 y + α4 ) · S(y) (mod y 4 )
C ≡ (1 − Ay)S(y) (mod y 4 ) (A, C ∈ Fq )
(3) は (1) − (2) × 多項式 で得られる。
が成り立つとき,
(α4 )−1 を (3) の両辺にかけると
E(y) = ea y a (誤り箇所は 1 つ),
α4 ≡ (α5 y + 1)S(y) (mod y 4 )
C = ea αa ,A = αa と書ける。
事実 1 より,誤り多項式は E(y) = ea y a と書け,a = 5 である。
(ii) 誤り箇所が 2 つの場合,E(y) = ea y a + eb y b ,
また,事実 1 より,α4 = ea αa なので,ea = α6 である。した
S(y) = Sa (y) + Sb (y) と書ける。
がって,もとの符号 f は
ea αa ≡ (1 − αa y)Sa (y) (mod y 4 ),
f = (α, α5 , α6 , α, 0, 0, α5 )
eb αb ≡ (1 − αb y)Sb (y) (mod y 4 )
と推測される。
より,
ea αa (1 − αb y) + eb αb (1 − αa y)
≡ (1 − αa y)(1 − αb y)S(y) (mod y 4 )
鍵方程式の解は定数倍を除いてこれだけである。
事実 2.
誤り箇所が 2 つ以内で,
1
よって,誤り位置は,y 3 (3 次) の係数。
再び Reed-Solomon 符号を受信したところ,
f1 = (α, 1, α6 , 0, 0, 0, α5 )
4 = e3 · 33 .
であった。シンドローム多項式の係数を計算すると
33 = 6 = −1 より,e3 = 4 · (−1)−1 = −4 = 3.
f1 (α) = α,f1 (α2 ) = 0,f1 (α3 ) = α2 ,f1 (α4 ) = α4 である。
よって,元の符号は f1 (y) − 3y 3 で
(2, 4, 0, 1, 6, 3).
ユークリッドの互除法により,鍵方程式の解を求める。
y 4 ≡ 0 · S(y) (mod y 4 )
(1)
4 3
と推測される。
2 2
4
(2)
α y + α y + α ≡ 1 · S(y) (mod y )
(3)
α3 y 2 + α4 y + α2 ≡ (α3 y + α) · S(y) (mod y 4 )
再び Reed-Solomon 符号を受信したところ,
f1 = (2, 5, 0, 0, 6, 3)
であった。シンドローム多項式の係数を計算すると
((3) は (1) − (2) × 多項式 による)
f1 (3) = 2,f1 (32 ) = 5,f1 (33 ) = 0,f1 (34 ) = 2 である。
α6 y + α4 ≡ (α4 y 2 + α5 y + α3 ) · S(y) (mod y 4 )
(4)
ユークリッドの互除法により,鍵方程式の解を求める。
(1) y 4 ≡ 0 · S(y) (mod y 4 )
((4) は (2) − (3) × 多項式 による)
α
3 −1
を (4) の両辺にかけると
3
2
(2) 2y 3 + 5y + 2 ≡ 1 · S(y) (mod y 4 )
2
4
α y + α ≡ (αy + α y + 1)S(y) (mod y )
2
2
(3) y 2 + 6y ≡ −4y · S(y) (mod y 4 )
2
を得る。y = α とすると,αy + α y + 1 = 0 である。
((3) は (1) − (2) × 多項式 による)
よって,
(4) 2 ≡ (y 2 + y + 1) · S(y) (mod y 4 )
αy 2 + α2 y + 1 = (α5 y + 1)(α3 y + 1)
((4) は (2) − (3) × 多項式 による)
y = 2 とすると、mod 7 で、22 + 2 + 1 = 0. 2−1 = 4 なので、
事実 2 より,E(y) = ea y a + eb y b ,a = 5,b = 3,
(a = 3, b = 5 でもよい)
1 − 4y(= 1 + 3y) を因数にもつ。よって,
α3 y + α = ea αa (αb y + 1) + eb y b (αa y + 1)
y 2 + y + 1 = (1 − 4y)(1 − 2y) = (1 − 34 y)(1 − 32 y)
と書ける。よって,
事実 2 より,誤り多項式は E(y) = ea y 4 + eb y 2 で,
E(y) = α4 y 5 + αy 3
2 = e4 · 34 (1 − 32 y) + e2 y 2 (1 − 34 y)
であり,もとの符号は
と書ける。よって,y = 4, y = 2 と代入してみることにより,
f = (α, α5 , α6 , α, 0, 0, α5 )
E(y) = y 4 + 6y 2 = y 4 − y 2
と推測される。
であり,もとの符号は f1 (y) − E(y) で,
例 2.Fq = F7 = Z/(7) = {0, 1, 2, 3, 4, 5, 6}
(2, 4, 0, 1, 6, 3)
で考える。3 が 1 つの原始元である。標数が 2 でないので,符
と推測される。
号に注意が必要。
3 32
33
34
35
36
3
6
4
5
1
2
さて,RS(7, 2) の Reed-Solomon 符号を受信したところ,
f1 = (2, 4, 3, 1, 6, 3)
であったとする。シンドローム多項式の係数を計算 (mod 7 の
計算) すると
f1 (3) = 2 · 35 + 4 · 34 + 3 · 33 + 32 + 6 · 3 + 3 = 4
f1 (32 ) = 3, f1 (33 ) = 4,f1 (34 ) = 3.
ユークリッドの互除法により,鍵方程式の解を求める。
(1)
y 4 ≡ 0 · S(y) (mod y 4 )
(2) 3y 3 + 4y 2 + 3y + 4 ≡ 1 · S(y) (mod y 4 )
(3) 1 ≡ −(5y + 5) · S(y) (mod y 4 )
≡ (2y + 2) · S(y) (mod y 4 )
(3) は (1) − (2) × 多項式 で得られる。
2−1 = 4 (in F7 ) を (3) の両辺にかけると
4 ≡ (y + 1)S(y) (mod y 4 )
係数は F7 なので,1 + y = 1 − 6y = 1 − 33 y .
2