ネットワーク時代の符号理論

ネットワーク時代の符号理論
和田山正
名古屋工業大学
符号理論:おすすめの理由
▶
デジタル通信・記録システムにおいて誤り訂正技術は不可欠
な基幹技術。基本アイデアを知っておいて損はない。
▶
理論計算機科学との関係 (代数的手法、確率的手法)
▶
数理パズル的な面白さ、を味わえる !
講義の内容
パート1
▶
有限体
▶
線形符号
▶
リード・ソロモン符号の性質
▶
リード・ソロモン符号の消失訂正
▶
局所復号可能符号 (locally decodable/correctable code)
パート2
▶
ネットワーク符号
▶
インデックス符号
有限体
有限体は、実数体や複素数体と同様に加減乗除の定義された代数
的構造である。
ある集合 K とその上で定義されている和と呼ばれる 2 項演算 +
と積と呼ばれる 2 項演算 · が体の公理を満足する場合、組
(K , +, ·) は体 (field) であるという。
ここでは、実数体と同様に加減乗除が矛盾なく定義されていて、
交換則、結合則、分配則が成り立つ代数ルールが導入されている
集合として話を進める。
素体
△
p 元の集合 K = {0, 1, 2, . . . , p − 1} を考える。ここで、加算 + と
乗算 · を
△
a + b = a + b mod p
△
a · b = a · b mod p
と定義する (a, b ∈ K )。
p 元の要素を持つ素体を以降では Fp と表記する。Fp の加法単位
元は 0、乗法単位元は 1 である。
拡大体
符号理論において特に重要なのが素体を拡大して得られる拡大体
(extension field) である。拡大体を定義するために Fp 上の既約多
項式がその基礎となる。
多項式の除算
素体 Fp 上の m 次多項式 (fi ∈ Fp (i ∈ [0, m]))
f (z) = f0 + f1 z + f2 z 2 + · · · + fm z m
を Fp 上で定義された k 次 (k ≤ m) 多項式 g (z) で割ったときの商
を q(z) とするとき、
f (z) = q(z)g (z) + r (z)
となる。
1. q(z)(商) は次数 m − k の多項式
2. r (z)(剰余) は次数 k 未満の多項式
余り r (x) が 0 となる場合、g (x) は f (x) を割り切るといい、f (x)
は g (x) により割り切られるという。
多項式の除算の例
F2 上で定義された f (z) = z 3 + z 2 + z を g (z) = z + 1 で割る。通
常の除算の筆算と同様にして次のようにして計算する。
z2
+1
3
2
z + 1 z +z +z
z 3 +z 2
z
z +1
1
この計算の結果、z 3 + z 2 + z = (z 2 + 1)(z + 1) + 1 が成り立つこ
とが分かる。
Fp 上の既約多項式
既約多項式
素体 Fp 上の m 次多項式 f (x) が定数ではない m − 1 次以下の多項
式 g (x) により割り切られることがない場合、f (x) は既約である
といい、f (x) を既約多項式と呼ぶ。
既約多項式の例
F2 上の多項式 f (z) = z 3 + z + 1 は既約である。
既約多項式は、素体の構成における素数と似た働きをする。
拡大体の構成
素体 Fp 上の m 次既約多項式 f (z) のひとつの根を α とする。
1. このとき、f (α) = 0 が成り立つ。
2. f (z) は Fp 上で既約多項式であるから、α は Fp には含まれな
い。もし含まれるとすれば
f (z) = (z − α)g (z)
(α ∈ Fp , g (z) は m − 1 次多項式) と因子分解できることから
f (z) が既約多項式であるという仮定に矛盾する。
拡大体の構成の方針
既約多項式の根 α を Fp に付け加え、加法と乗法を適切に定義す
ると新しい体を構成する。
拡大体
拡大体の要素
素体 Fp 上の m 次既約多項式の根 α を Fp に付加することにより
得られる体を Fp の拡大体と呼ぶ。拡大体の元は
am−1 αm−1 + am−2 αm−2 + · · · + a1 α1 + a0
という形を持つ。ここで、ai ∈ Fp (i ∈ [0, m − 1]) である (拡大体
の加法と乗法については後述する)。
拡大体のサイズ (要素数) は p m となるため、拡大体は Fp m と表記
される。
拡大体の考え方は、実数体に (実数体上の) 既約多項式 z 2 + 1 の根
i(虚数単位) を付加して複素数を構成する場合と同様である。
拡大体の例
F2 上の既約多項式 f (z) = z 3 + z + 1 を考える。この場合、m = 3
であり、f (z) の根 α は
f (α) = α3 + α + 1 = 0
を満たす。根 α の付加により得られる有限体 F32 の元は
{0, 1, α, α + 1, α2 , α2 + 1, α2 + α, α2 + α + 1}
となる。α3 + α + 1 = 0 より、α3 = α + 1 が成り立つ (F2 におい
ては、−1 = 1 となることに注意) ため、α の 3 次以上の多項式は
この関係式により F32 の元に簡単化される。
拡大体上の計算
乗算
拡大体 Fp m の元
A(α) = am−1 αm−1 + am−2 αm−2 + · · · + a1 α1 + a0
B(α) = bm−1 αm−1 + bm−2 αm−2 + · · · + b1 α1 + b0
の積を A(α) · B(α) = R(α) と定義する。ここで、R(α) は
A(α) · B(α) = Q(α)f (α) + R(α)
を満たす m − 1 次以下の α の多項式である。
すなわち、多項式の積 A(α)B(α) を既約多項式 f (α) で割った余り
が Fp m 上での積となる。
拡大体上の計算
加算
和は A(α), B(α) のそれぞれの多項式の係数同士の和で定義され
る。すなわち、
△
A(α) + B(α) =
m−1
∑
(ai + bi )αi
i=0
である。
計算例
F2 上既約多項式 f (z) = z 2 + z + 1 により定義される有限体 F22 に
おいて、A(α) = α + 1, B(α) = α とするとき、その積は
(α + 1) · α = α2 + α mod α2 + α + 1
= α + 1 + α mod α2 + α + 1
= 1
となる。一方、その和 A(α) + B(α) は (α + 1) + α = 1 となる。
F22 における加算 (既約多項式 z 2 + z + 1 の根を α とする)
+
0
1
α
α+1
0
0
1
α
α+1
1
1
0
α+1
α
α
α
α+1
0
1
α+1
α+1
α
1
0
F22 における乗算 (既約多項式 z 2 + z + 1 の根を α とする)
·
0
1
α
α+1
0
0
0
0
0
1
0
1
α
α+1
α
0
α
α+1
1
α+1
0
α+1
1
α
非ゼロ元の位数
有限体 Fp m (p は素数) の非ゼロ元 γ について、γe = 1 を満たす最
小の正整数 e を γ の位数と呼び、ord(γ) と表記する。すなわち、
ord(γ) = min{e ∈ N+ : γe = 1}
である。
例えば、F2 上の既約多項式 f (z) = z 2 + z + 1 の根を α とする場
合、α1 = α, α2 = α + 1, α3 = 1 となるため、ord(α) = 3 である。
原始元と原始多項式
原始元
素体 Fp 上で定義される m 次既約多項式 f (z) の一つの根を α とす
る。α の位数が p m − 1 に等しい、すなわち、
ord(α) = p m − 1
が成り立つとき、根 α を原始元と呼ぶ。
また、原始元 α を根として持つ既約多項式を原始多項式と呼ぶ。
8 次以下の F2 上の原始多項式
m
3
4
5
6
7
8
原始多項式
1 + z + z3
1 + z + z4
1 + z2 + z5
1 + z + z6
1 + z3 + z7
1 + z2 + z3 + z4 + z8
拡大体のべき表現
f (z) を原始多項式とし、その根を α とするとき、
α0 (= 1), α1 , α2 , α3 , . . . , αp
n −2
は全て相異なる。この理由は次のとおりである。もし、
αi = αj (1 ≤ i < j ≤ p n − 2) が成り立つならば、αj−i = 1 が成り
立つが、j − i < p n − 1 となるため、仮定 ord(α) = p n − 1 と矛盾
する。
拡大体 Fp m は 0 を含めて p m 個の元を持つことと
αk (k ∈ [0, p m − 2])
がすべて相異なることを考え合わせると次の拡大体の表現が自然
に導かれる。
拡大体のベキ表現
αi (i ∈ [0, p m − 2]) は拡大体 Fpm のすべての非ゼロ元と 1 対 1 対応
する。この Fp m の元の表現法をベキ表現と呼ぶ。
原始多項式 f (z) = z 3 + z + 1 により定義される F23 の元
の多項式表現、ベクトル表現、ベキ表現の対応表
F2 上の原始多項式 f (z) = z 3 + z + 1 の根を α とする。
多項式表現 ベクトル表現 ベキ表現
0
(0, 0, 0)
1
(0, 0, 1)
α0
α
(0, 1, 0)
α1
α+1
(0, 1, 1)
α3
α2
(1, 0, 0)
α2
2
α +1
(1, 0, 1)
α6
2
α +α
(1, 1, 0)
α4
α2 + α + 1
(1, 1, 1)
α5
3
(注)α + α + 1 = 0 が成立する。
多項式表現とべき表現
多項式表現された元については加算が容易であり、一方、ベキ表
現された元同士については乗算が容易である。
例えば、f (z) = z 3 + z + 1 で定義される F23 において α2 α3 + α
を簡単化してみよう。前ページの表を利用することにより
α2 α3 + α = α5 + α = (α2 + α + 1) + α
= α2 + 1 = α6
と計算することができる。
線形符号
以下では、q は素数のベキであるとする。
線形符号
集合
C ⊂ Fnq
が Fnq の線形部分空間 (linear subspace) となっているとき、C を
Fq 上の線形符号と呼ぶ。
すなわち、任意の 2 つの符号 c1 , c2 ∈ C とスカラー a1 , a2 ∈ Fq に
対して
a1 c1 + a2 c2 ∈ C
が成り立つ。
例:
C = {000, 011, 110, 101}
は F2 上の線形符号 (2 元線形符号) である。
次元
線形符号 C ⊂ Fnq の次元を k と表記する。このとき、C を [n, k] 符
号と表記する場合がある。
問題
ベクトル中の非ゼロ元の個数をそのベクトルの重みと呼ぶ。Fn2 に
含まれる偶数重みベクトル全体は、Fn2 の線形部分空間を成す (=
線形符号となる)。
1. なぜ部分空間を成すのか。
2. 奇数重みベクトル全体は、線形部分空間にならない。なぜか。
3. n = 3 とする。次元 k はいくらになるか。
4. 基底の例を挙げよ。
1. なぜ部分空間を成すのか。
偶重みの語と偶重みの語を足すと偶重みの語が得られるため。
2. 奇数重みベクトル全体は、線形部分空間にならない。なぜか。
ゼロベクトルが入っていない。
3. n = 3 とする。次元 k はいくらになるか。
k = 2 となる。
4. 基底の例を挙げよ。
例えば、g1 = (101), g2 = (011) の 2 つのベクトルの組は基底
を成す。
生成行列
Fq 上の [n, k] 線形符号 C (符号長 n, 次元 k) のひとつの基底を
{g1 , g2 , . . . , gk }
とする。ここで、gi ∈ Fnq (i ∈ [1, k]) である。
これらの基底ベクトルを行とする行列 G ∈ Fk×n
:
q



G =

g1
g2
..
.





gk
を生成行列と呼ぶ。
例: F2 上 n = 3 の偶重み符号の生成行列
(
)
1 0 1
G=
1 1 0
線形符号の符号化
[n, k] 線形符号 C の任意の符号語 c は、基底が定まると一意に
c = a1 g1 + a2 g2 + · · · + ak gk
と表現できる。ここで、ai ∈ Fq (i ∈ [1, k]) である。
符号化写像
メッセージを符号語に変換する符号化写像 E : Fkq → C を
E : u 7→ uG
と定義する。
▶
Fq -[n, k] 線形符号の符号語数は、q k 個
▶
符号化写像の時間計算量 O(n2 )
▶
空間計算量 O(n2 )
検査行列
符号 C を Fq -[n, k] 線形符号とする。
Fq 上の r × n 行列 H が与えられている。任意の符号語 c ∈ C に対
して
Hc T = 0
が成り立つならば、H を C の検査行列と呼ぶ。
▶
rank(H) = n − k が成り立つ。
▶
もし、H の行が一次独立であれば、r = n − k となる。
▶
H を Fnq → Frq の線形写像と見るとき、その核空間 (kernel) と
して、線形符号を表現する流儀。
▶
HG T = 0 が成り立つ。
検査行列による線形符号の表現
C = {x = (x1 , x2 , . . . , xn ) ∈ Fnq | Hx T = 0}
例:
(
H=
(
(
1 0 1 0
1 1 1 1
1 0 1 0
1 1 1 1

0
(
 0 
 =
 0 
0
 
) 0
(
 1 
 =
 0 
1
)

1 0 1 0
1 1 1 1
)
 
) (
) 1
(
0
1 0 1 0 
0 


,
=
0
1 1 1 1  1 
0
 
) (
) 1
(
0
1 0 1 0 
1 


,
=
0
1 1 1 1  1 
1
0
0
0
0
)
)
リード・ソロモン符号
リード・ソロモン符号は拡大体上で定義される線形符号の一種で
ある。リード・ソロモン符号の代数的な特徴を生かした効率の良
い代数的復号法がいくつも知られている。CD、DVD における誤
り訂正符号に利用されるなど非常に広い分野で活用されている。
リード・ソロモン符号の例
最小距離 3 のリード・ソロモン符号
有限体 Fq (q は素数のベキ) 上で定義される次の検査行列
△
(n = q − 1 とする)
(
H =
1 α α2 · · ·
1 α2 α4 · · ·
αn−1
α2(n−1)
で定まる Fq 上の線形符号
△
C = {x ∈ Fqn : Hx T = 0}
を考える。ここで α は Fq の原始元である。
符号 C は、
▶
符号長 n = q − 1
▶
次元 k = n − 2
というパラメータを持つ。
)
このリード・ソロモン符号に対する代数的復号法
符号 C は任意の 1 シンボルの誤りが訂正可能である。
ここでは、次のような状況を考える。送信側は C の符号語
X ∈ Fnq を送信したものとする。受信側は受信語
Y =X +E
を受け取る。ここで、E は長さ n の Fq 上のベクトルであり、その
第 i 成分 (i ∈ [1, n]) だけが誤り値 e ∈ Fq を持ち、他の成分はゼロ
であるものと仮定する。
復号手順 (1) シンドロームの計算
受信語に対してシンドロームを
S = HY T
と計算する。 符号語 X について HX T = 0 が成り立つことから、
S = HY T = H(X + E )t = HE T
となる。シンドローム HE T を計算すると
(
) (
)
eαi−1
s1
S=
=
s2
eα2(i−1)
となる。
検査行列再掲
(
H =
1 α α2 · · ·
1 α2 α4 · · ·
αn−1
α2(n−1)
)
復号手順 (2) 誤り箇所・誤り値の計算
1. シンドロームから、s2 /s1 を計算すると
s2
eα2(i−1)
=
= αi−1
s1
eαi−1
が得られる。この結果から第 i シンボルに誤りが生起したこ
とが明らかになる。
2. s12 /s2 を計算すると
s12
e 2 α2(i−1)
=
=e
s2
eα2(i−1)
となるため、誤り位置に加えて誤り値も計算することがで
きる。
復号手順 (3) 推定値の算出
これらの情報を総合すると第 i シンボルに誤り e が生じたことが
分かり、E が正しく推定できたことが分かる。
得られた推定誤り E^ を受信語から引くことにより
X^ = Y − E^
推定語 X^ を得る。
行列式に関する基礎事項
行列式
有限体 Fq を要素として持つ n × n 行列 A = {aij } について、その
行列式は、
△
|A| =
∑
sgn(σ)aσ(1),1 aσ(2),1 · · · aσ(n),1
σ∈Π
と定義される。ここで、Π は集合 [1, n] 上での置換全体、sgn(σ)
は、置換の符号を表す。
例: 2 × 2 行列
△
A=
(
a b
c d
)
について行列式 |A| は |A| = ad − bc となる。
行列式の性質 (1)
性質 1 n × n 行列 (a1 a2 · · · an ) に対して
|a1 a2 · · · aai · · · an | = a|a1 a2 · · · ai · · · an |
が成り立つ。
性質 2 n × n 行列 (a1 a2 · · · an ) について
|a1 a2 · · · ai + aj · · · an |
= |a1 a2 · · · ai · · · an | + |a1 a2 · · · aj · · · an |
が成り立つ。
性質 3 n × n 行列の転置行列の行列式は元の行列式の行列
式と等しい。すなわち、|AT | = |A| が成り立つ。
行列式の性質 (2)
性質 4 2 つの n × n 行列の積の行列式はそれぞれの行列の
行列式の積に等しい。すなわち、
|AB| = |A||B|
が成り立つ。
性質 5 n × n 行列 A = (a1 a2 · · · an ) について
|a1 a2 · · · an | ̸= 0
は a1 a2 · · · an が一次独立であるための必要十分条件
である。
ヴァンデルモンドの行列式
リード・ソロモン符号に関する議論には次の形をした行列が頻繁
に登場する。


1
1
1
···
1
 x1
x2
x3 · · ·
xn 


△ 
2
2
2
x2
x3
···
xn2 
X =  x1

 ..
..
..
.. 
 .
.
.
···
. 
x1n−1 x2n−1 x3n−1 · · ·
xnn−1
この形の行列をヴァンデルモンド行列と呼ぶ。
ヴァンデルモンドの行列式
行列 X の行列式について、下記の等式が成り立つ。
1
1
1
·
·
·
1
x1
x2
x3 · · ·
xn ∏
x2
x22
x32 · · ·
xn2 =
(xi − xj )
1
..
..
..
.. i>j
.
.
.
···
. n−1
x
x n−1 x n−1 · · · x n−1 1
2
3
n
1. もし、相異なる任意の i, j について xi ̸= xj ならば、上式の右
辺はゼロではない
2. 有限体では、非ゼロの元同士の積がゼロになることはない。
3. その場合、行列式の性質 5 より行列 X の列ベクトルは一次独
立となり、X は正則行列となる。
リード・ソロモン符号の定義
リード・ソロモン符号
Fq 上の検査行列




H=


△
α
α2
α3
..
.
α2
α4
α6
..
.
···
···
···
..
.
αn−1
α2(n−1)
α3(n−1)
..
.
1 α2t
α4t
···
α2t(n−1)
1
1
1
..
.







で定められる Fq 上の線形符号
△
C = {c ∈ Fnq : Hc T = 0}
をリード・ソロモン符号と呼ぶ。リード・ソロモン符号は
[n, k] = [q − 1, q − 1 − 2t] というパラメータを持つ。
リード・ソロモン符号の次元
いま、検査行列 H の任意の 2t 列を取り出して得られる行列を
Hsub とする。
 j

α1
αj2 · · · αj2t
 2j1 α2j2 · · · α2j2t 
△  α

Hsub =  .
..
..
.. 
 ..
.
.
. 
2tj
2tj
2tj
1
2
α
α
· · · α 2t
ここで、ji ∈ [0, n − 1](i ∈ [1, 2t]) であり、
jk ̸= jl (k, l ∈ [1, 2t], k ̸= l) である。
リード・ソロモン符号の次元
この Hsub の行列式を考えると
j
j2
j2t α1
α
·
·
·
α
α2j1 α2j2 · · · α2j2t |Hsub | = .
..
..
.. ..
.
.
. 2tj
α 1 α2tj2 · · · α2tj2t 1
1
j
1
α
αj2
= αj1 αj2 · · · αj2t ..
..
.
.
α(2t−1)j1 α(2t−1)j2
···
···
..
.
1
αj2t
..
.
···
α(2t−1)j2t
を得る。この変形では、行列式の性質 1 を利用した。ヴァンデル
モンドの行列式の性質を利用すると |Hsub | ̸= 0 が結論される。こ
の結果は H のランクが 2t であることを示している。したがって、
C の次元 k は k = n − 2t となる。
リード・ソロモン符号に使える誤り訂正アルゴリズム
▶
ピーターソン法
▶
バーレカンプ・マッシィ法
▶
ユークリッド法
▶
スーダン法
リード・ソロモン符号を利用した消失訂正
リード・ソロモン符号は消失訂正符号としても広く利用されてい
る。例えば、インターネットなどのパケット交換型ネットワーク
のルーターにおいて生じるパケットロスの補償においては消失訂
正が必要となる場合がある。
消失誤りの例: リード・ソロモン符号の符号語
(α2 , α, α0 )
を送ったのに
(?, α, α0 )
を受信した (? は消失シンボルを表す)。一シンボル目が見えない
状況に対応する。
今後の議論における前提
1. Fq 上で定義される符号長 n = q − 1, k = n − 2t のリード・ソ
ロモン符号の符号語 (c0 , c1 , . . . , cn−1 ) を送信。
2. 受信語を (y0 , y1 , . . . , yn−1 ) とする。
3. 消失位置集合を E ⊂ [0, n − 1] とする。ただし、|E | ≤ 2t と仮
定する。このとき、
{
ci , i ∈
/E
yi =
?, i ∈ E
となる。
部分行列
また、h̃i を


αi
α2i
..
.


h̃i = 



,

i ∈ [0, n − 1]
α|E |i
˜ } はリード・ソロモン符号を定
で定義すると H̃ = {h˜0 , h˜1 , . . . , hn−1
義する 2t × n 行列 H の部分行列となる (上から |E | 行取り出した
もの)。
このとき、パリティ検査条件 H̃(c0 , c1 , . . . , cn−1 )T = 0 から、
∑
i∈[0,n−1]\E
ci h̃i +
∑
ei h̃i = 0
i∈E
が成り立つ (消失位置の値を未知変数 ei で表現した)。
連立方程式
消失位置のシンボルを復元するためには、下記の連立方程式を解
けばよい。



αj1
αj2 · · ·
αj|E |
ej1
 α2j1 α2j2 · · · α2j|E |  
∑

  ej2 
 .
 . 
.
.
.
= −
ci h̃i
..
..
..
 ..
  .. 



i∈[0,n−1]\E
..
ej|E |
α|E |j1 α|E |j2
. α|E |j|E |
ここで、E = {j1 , j2 , . . . , j|E | } としている。
係数行列の正則性は?
リード・ソロモン符号の消失訂正能力
さきほどの連立方程式の係数行列等式の左辺に表れる行列を A と
する。行列 A の行列式はヴァンデルモンド行列式に帰着でき、
|A| ̸= 0 であることを示すことができる。したがって、この連立方
程式は唯一の解を持つ。
▶
求解には、ガウス消去法などが利用できる。
▶
|E | ≤ 2t の場合に正しく動く (解の唯一性が保証される)。し
たがって、符号長 n = q − 1、次元 k = n − 2t のリード・ソ
ロモン符号は 2t 個までの消失を正しく訂正できる。
▶
計算量は O(n3 ) である。
局所復号可能符号
局所復号可能符号 (locally decodable/correctable codes)
▶
受信語の一部のシンボル (sublinear 個) を読
み取ることで、メッセージ (あるいは符号
語) のあるシンボルが推定できる。
▶
復号計算量が定数時間 (符号長に依らない)
または符号長に対して sublinear
▶
雑音耐性を持つランダムアクセスデータ構
造を可能とする
応用分野:
c(i)
Decoding
function
▶
▶
ĉ(i)
▶
▶
▶
Private information retrieval
セキュアマルチパーティ計算
Average-case complexity
PCP 定理との関わり
定義など
▶
∆(x, y ): 正規化ハミング距離 (通常のハミング距離を長さで
割る)
▶
ベクトル w ∈ Fnq に対して、w (l) で w の l 番目の要素を示す。
局所復号可能符号
以下の条件が満たす、乱択復号アルゴリズム A が存在するとき、
符号 C は (r , δ, ϵ)-局所復号可能符号 (locally correctable code) で
ある。
(1) 任意の c ∈ C , i ∈ [1, n] に対して、また、
∆(c, y ) ≤ δ を満たす任意の y ∈ Fnq に対して、
Prob[A(y , i) = c(i)] ≥ 1 − ϵ
(2) A は高々r 個の受信語 y のシンボルを読む。
多変数多項式の全次数
判定多項式の次数について議論する多変数多項式において、各項
の次数はその項に現れる変数のすべての指数を足したものであ
り、全次数 (total degree) は、各項の次数の最大値である。
x12 x2 x34 + x12 x22 x32
の場合は、全次数は 7 である。
リード・マラー符号
▶
n: 変数の数
▶
全次数の上限: d
▶
Pn,d : 多項式環 Fq [z1 , z2 , . . . , zn ] に含まれる全次数が高々d の
多項式の集合
▶
Fnq = {p1 , p2 , . . . , pq n } とする。
リード・マラー符号
RMq (n, d) = {(f (p1 ), f (p2 ), . . . , f (pq n )) | f ∈ Pn,d }
(注) 1 変数多項式環の場合、リード・ソロモン符号と一致する。
リード・マラー符号を利用した局所復号アルゴリズム
▶
符号語の第 i シンボルについて復号を行いたい。
1. v ∈ Fnq を一様ランダムに選択。
2. 直線 L = {pi + λv | λ ∈ Fq } 上の pi 以外の任意の d + 1 個の点
を ℓ(λ1 ), ℓ(λ2 ), . . . , ℓ(λd+1 ) とする。
3. 多項式
g (λ) = f (pi + λv )
を考える。g は次数 d 以下の λ の一変数多項式となってい
る。前のステップにより、
g (λi ) = y (ℓ(λi )),
i ∈ [1, d + 1]
が成立する。多項式補間により g (λ) を求める。
4. g (0) = f (pi ) を求める。
*シャミアの秘密情報分散法にちょっと似ている。
多項式補間について
補間の対象となる多項式 g の次数を仮に d とする:
g (x) = ad x d + ad−1 x d−1 + · · · + a2 x 2 + a1 x + a0
ここで、組 g (xi ) = yi (i ∈ [0, d]) を知っているものとする。





1 x0 · · ·
1 x1 · · ·
.. ..
. .
1 xd · · ·
x0d
x1d
..
.
xdd





a0
a1
..
.
ad


 
 
=
 
y0
y1
..
.





yd
左辺に現れる行列は、ヴァンデルモンド行列であるので正則であ
る。したがって、この状況で多項式 g は唯一定まる。具体的に多
項式補間を行うには、この連立方程式を解けばよい。
復号成功確率について
▶
受信語の中で nδ 個の受信シンボルは誤っている。
▶
任意のひとつのサンプルは一様ランダムに選択されている。
▶
すべてのサンプル値 {e1 , e2 , . . . , ed+1 } が誤っていない確率は?
Psuccess
1−δ
δ
(A) no errors
(B)
= Prob[All d + 1 samples come from A]
= 1 − Prob [(e1 ∈ B) ∪ (e2 ∈ B) ∪ · · · ∪ (ed+1 ∈ B)]
≥ 1−
d+1
∑
Prob [(ei ∈ B)]
i=1
= 1 − (d + 1)δ
したがって、RMq (n, d) は、(r , δ, ϵ) = (d + 1, δ, (d + 1)δ)-局所復
号可能符号である。
前半のサマリー
次の項目について説明を行った。
▶
有限体
▶
線形符号
▶
リード・ソロモン符号の性質
▶
リード・ソロモン符号の消失訂正
▶
局所復号可能符号 (locally decodable/correctable code)