FFT Finite Field
FFT Finite Field
Anish Sharma
1 Intro to ECC
An ECC (Error Correcting Code) are redundant bits that are added to the
message to resolve errors in the corrupted message this forms a codeword.
A block code (n, k) where n is the blocklength and the size of this code is
2k .
For example, I have some message with data symbols (A, B, C , D) now
due to some noise the message gets corrupted changes to (X , Y , C , D)
now reed-solomon first encodes a redundant symbols say E & F and using
this detect the position of error and corrupted symbol.
We will be developing reed solomon code (n, k) algorithm over F2m , for
k
n ≥ 0.5 where n − k is a power of 2.
1 Intro to ECC
ωn = 1
n−1
X
ω jk = 0 for 1 ≤ k < n
j=0
ω = e −2πi/n
So we get,
n−1
X 2πi
fk = vj e − n
jk
j=0
When we have a Galois field .i.e F = GF (q) where q is a prime power, the
multiplicative order of each element must divide the size of the
multiplicative group of F , n divides q − 1. Moreover, if for some m, n
divides q m − 1 then there exists a Fourier transform of length n over
extension field GF (q m ).
Till now we were just discussing Discrete Fourier Transform, the time
complexity to compute is O(n2 ) by computing each element, Fast Fourier
Transforms are algorithms that have complexity of O(n log(n)) to compute
DFT some example are Cooley-Tucky algorithms.
m
Let X̄ = {Xj ¯(x)}∀j denote a basis in F2m [x]/(x 2 − x), Each Xi ¯(x) is
defined as Qm−1 ij
j=0 (sj (x))
Xi ¯(x) = Qm−1 ij
j=0 (sj (vj ))
where deg (Xi ¯(x)) = i and thus this basis can represent all elements in
m
F2m [x]/(x 2 − x).
We will evaluate D̄2k (Vk + β) for β ∈ F2m , the set of evaluation points
Vk + β can be broken into two cosets.
Lemma 1
For any β ∈ F2m and a ∈Vk
P k−1 sk−1 (β) ¯
D̄2k (Vk + β) = 2i=0 −1 d¯i + sk−1 (vk−1 ) di+2k−1 X̄i (a + β)
Hence,
2k−1
X−1 (0) (0)
gi X̄i (a + β) = D̄2k−1 (a + β) ∀a ∈ Vk
i=0
(0)
This converts D̄2k (Vk−1 + β) to D̄2k−1 (a + β) .
D̄2k (a + vk−1 + β) =
2k−1
X−1
sk−1 (vk−1 + β) ¯
= d¯i + di+2k−1 X̄i (a + vk−1 + β)
sk−1 (vk−1 )
i=0
2k−1
X−1
sk−1 (β) ¯
= d¯i + di+2k−1 + d¯i+2k−1 X̄i (a + vk−1 + β)
sk−1 (vk−1 )
i=0
2k−1
X−1
(0)
= gi + d¯i+2k−1 X̄i (a + vk−1 + β)
i=0
2k−1
X−1 (1) (1)
= gi X̄i (a + vk−1 + β) = D̄2k−1 (a + vk−1 + β) ∀a ∈ Vk−1
i=0
D̄2k (Vk + β)
(0) (1)
=D̄2k−1 (Vk−1 + β) ∪ D̄2k−1 (Vk−1 + vk−1 + β)
Now the time complexity to evaluate both the set has O(2k log(2k )). This
is the recursive approach in extended finite field to evaluate using some
points FFTX̄ (u, k, β) where u is the message.
1 Intro to ECC
Pk−1
Assume u(x) is in the basis X, and thus u(x) = i=0 ui X̄i (x). The vector
of coefficients is denoted as
u = (u0 , u1 , . . . , uk−1 , ω0 , ω0 , . . . , ω0 )
| {z }
T
ω0 are the redundant vectors we use for T- point FFT. The codeword v
can be computed by,
v = FFTX (u, m, ω0 )
But in this codeword is not systematic,
Hence the algorithm requires n/T-1 times T-point IFFT and T-point FFT,
the complexity of encoding algorithm is
n
O(T log(T )) + ( − 1)O(T log(T )) = O(n log(n − k))
T
where T = n − k
1 Intro to ECC
ri = u(ωi ) + ei
If ei 6= 0, ri is erroneous symbols. Suppose e contains v ≤ T /2 non-zero
symbols,
E = {ωi ∈ F2m | ei 6= 0}
and Error-locator polynomial defined as
Y
λ(x) = (x − ωi )
ωi ∈E
Now the key formula called forney’s formula for syndrome decoding is
where st (x) is the quotient of dividing sm (x) by Xk (x). Now we can apply
extended euclidean algorithm (The extended euclidean algorithm stops
when remainder degree is less that T /2) on st (x) and s(x) to find the
λ(x).
To find the location of errors E just find the set of roots of λ(x). The final
step is to calculate the error values for that just take the formal derivative
of the key equation, which yields
q (ωi )
u (ωi ) − r (ωi ) = , ∀ωi ∈ E
λ0 (ωi )