KNM XVI
3-6 Juli 2012
UNPAD, Jatinangor
ANALISIS KONSTRUKSI DAN SIFAT BCH CODE ACHMAD FAHRUROZI, M.SI1,2, SRI MARDIYATI, M.KOM2 1
Universitas Gunadarma Depok,
[email protected] 2 Universitas Indonesia Depok,
[email protected]
Abstract Pada makalah ini, akan dibahas suatu metode pengkodean, dimana ketika pesan-pesan yang berbentuk k-tuple akan dikirim, maka pesan-pesan tersebut diubah menjadi code yang merupakan kumpulan n-tuple codeword, dengan n > k . Codeword tersebut terdiri dari k simbol yang merupakan pesan yang berkorespondensi dengan codeword tersebut, dan (n-k) simbol yang disebut bit parity check. Simbol yang digunakan adalah elemen-elemen dari suatu lapangan hingga GF (q ), q = 2m , m ∈ N . Untuk memperoleh bit parity check ini, digunakan algoritma BCH code, dimana code yang dihasilkan mampu mendeteksi dan mengkoreksi error yang terjadi pada proses pengiriman pesan-pesan. Kemampuan suatu code dalam mengontrol error (mendeteksi dan atau mengkoreksi error) tergantung pada jarak minimum antar codeword dalam code tersebut. Kata kunci: pesan, lapangan hingga, codeword, code, jarak minimum. 1. Pendahuluan Pengkodean informasi adalah suatu cara yang digunakan untuk melindungi informasi yang dikirim dari gangguan yang mungkin terjadi pada media pengiriman. Untuk melakukan ini, sebelum dikirim, informasi yang berupa huruf, karakter ataupun suara diubah terlebih dahulu menjadi pesan-pesan yang berbentuk k-tuple, dimana komponenkomponennya adalah anggota lapangan hingga. Pesan-pesan tersebut kemudian diubah menjadi kumpulan n-tuple yang disebut codeword melalui proses encoding. Hasil dari metode pengkodean informasi tersebut disebut code. Gagasan mengenai cara
pengkodean informasi sehingga suatu kesalahan dapat dideteksi dan juga dapat diperbaiki pertama kali dikembangkan oleh ilmuwan bernama R.W. Hamming. Dalam perkembangannya, muncul berbagai cara pengkodean informasi yang berbedabeda, yang memiliki proses konstruksi dan sifat yang berbeda satu dengan lainnya. Berbagai jenis code yang dihasilkan tersebut tidak hanya diaplikasikan pada komputer saja, tetapi bermanfaat untuk berbagai aspek kehidupan sehari-hari, khususnya teknologi komunikasi digital. Salah satu jenis atau kelompok code yang mempunyai nilai kegunaan yang baik adalah cyclic code. Pada makalah ini akan dibahas mengenai konstruksi BCH code yang termasuk ke dalam kelompok cyclic code.
Fahrurozi A., Mardiyati S.
Analisis BCH Code
2. Teori Coding Untuk membahas kemampuan suatu code dalam mendeteksi sekaligus mengkoreksi error yang terjadi, diperlukan beberapa pengertian yang berkaitan dengan suatu code C. Berikut diberikan pengertian tentang jarak Hamming dan bobot Hamming dalam suatu code C. (i) Jarak Hamming antara dua codeword berbentuk n-tuple x = ( x1 , x2 , …, xn ) dan
y = ( y1 , y2 ,…, yn ) dalam C, dilambangkan d ( x, y ) , adalah banyaknya koordinat (ii)
dalam x dan y yang berbeda. Bobot Hamming dari codeword berbentuk n-tuple x = ( x1 , x2 , …, xn ) dalam C, dilambangkan w( x ) , adalah banyaknya koordinat xi yang tak-nol.
Jarak minimum suatu code C, dilambangkan d min (C ) , atau juga sering disingkat d min , didefinisikan sebagai [5]
d min = min d (u , v) u ,v∈C u ≠v
Misal C adalah code dengan d min = d . Maka C memiliki kemampuan kontrol error: mengkoreksi maksimum t = ⎢ d − 1⎥ error dan mendeteksi maksimum d − 1 error [5]. ⎢⎣ 2 ⎥⎦ Suatu code C yang merupakan (n,k)-blok code disebut grup code jika C merupakan subruang dari GF (q) n , dimana GF (q ) n menyatakan suatu ruang vektor berdimensi n atas lapangan hingga GF ( q ) sekaligus merupakan lapangan perluasan dari lapangan GF (q) . Sehingga proses encoding suatu grup code secara umum dapat juga dipandang sebagai sebuah transformasi dari ruang vektor GF (q ) k ke ruang vektor GF (q ) n . Sehingga proses encoding suatu code dapat melibatkan matriks generator G yang berukuran nxk . Berikut ini adalah sifat yang dimiliki oleh suatu grup code: Teorema 1: Misalkan d min adalah jarak minimum dari suatu grup code C. Maka d min adalah minimum dari bobot Hamming semua codeword tak-nol dalam C. Ditulis d min = min w ( x ) | 0 ≠ x ∈ C [7]
{
}
Suatu code dapat pula dibangun dengan mencari solusi dari persamaan Hx = 0 , dimana H disebut matriks parity check yang berbentuk H = ( A | I n − k ) , dimana A adalah T
sebarang matriks berukuran n − k x k dan I n − k adalah matriks identitas berukuran
n − k x n − k . Code yang dibangun tersebut disebut linier code. Suatu linier code juga merupakan suatu grup code. Suatu linier (n,k) code C dikatakan suatu cyclic code jika untuk setiap codeword (a1 , a2 ,...., an ) dalam C, maka pergantian secara siklik menjadi n-tuple
(a2 , a3 ,...., an , a1 ) juga merupakan codeword dalam C [5]. Suatu cyclic code dapat dibangun dari suatu polinomial generator g ( x ) membagi x n − 1 dalam GF (q )[ x ] . Berikut adalah sifat yang dimiliki oleh suatu cyclic code C: Teorema 2: Misal C = g ( x) adalah cyclic code dan misalkan α adalah akar primitif ke-n dari unit atas Z 2 . Jika s buah pangkat berurutan dari α adalah akar dari g ( x ) ,
s < n , maka jarak minimum dari code C paling kecil adalah s + 1 [1]. KNM XVI - 3-6 Juli 2012 – UNPAD, Jatinangor
Fahrurozi A., Mardiyati S.
Analisis BCH Code
3. Konstruksi BCH code BCH code adalah suatu contoh binary code, yang diperkenalkan oleh dua orang ilmuwan, R. C. Bose dan D. V. Ray-Chaudhuri mengacu pada penemuan A. Hocquenghem. Sistem komunikasi dan informasi Eropa dan trans-Atlantik menggunakan BCH code yang berbentuk (255,231)-blok code [5]. Berikut diberikan algoritma konstruksi BCH code: 1. Tentukan panjang codeword n = 2 m − 1 , untuk suatu m ∈ N dan tentukan juga jarak BCH d ∈ N dan d ≤ ( n − 1) / 2 . 2. Cari minimum polinomial untuk α i , dilambangkan mi ( x) , dimana α adalah akar primitif ke-n dari unit dan i = 1, 2,..., 2r 3. Tentukan polinomial generator g ( x) , yaitu
g ( x) = lcm [ m1 ( x), m2 ( x),..., m2 r ( x)]
4. Bentuk
m( x ) = a1 x
polinomial k −1
+ a2 x
k −2
u ( x) = x n − k m( x) mod g ( x) ,
dimana
+ ... + ak adalah polinomial yang berkorespondensi dengan
pesan m = ( a1 , a2 ,..., ak ) , ai ∈ Z 2
5. Sehingga diperoleh codeword c yang berkorespondensi dengan polinomial c ( x ) = x n − k m( x ) + u ( x ) . Dalam algoritma tersebut, dapat dianalisa beberapa hal, yaitu • Polinomial minimal untuk α i ditentukan dengan menggunakan teorema berikut: Teorema 3: Misal ξ adalah elemen GF ( p m ) dan misal mξ menyatakan polinomial minimal dari ξ . Misalkan α adalah elemen primitif dalam GF ( p m ) dan misalkan
ξ = α i . Jika i ada dalam cyclotomic coset Ci , maka mξ = ∏ ( x − α j ) [7] . j∈Ci
•
Pada Langkah 3, karena polinomial generator g ( x) = lcm [ m1 ( x), m2 ( x),..., m2 r ( x) ] dimana mi ( x) adalah polinomial minimal untuk α i , maka polinomial generator tersebut dijamin memiliki paling sedikit 2r akar berurutan, yaitu α , α 2 ,..., α 2 r . Selain itu, karena α adalah akar primitif ke-n dari unit, maka polinomial generator g ( x ) juga dijamin membagi x n − 1 .
•
Pada Langkah 4, dapat dilihat bahwa polinomial u ( x) = x n − k m( x) mod g ( x) akan berderajat kurang dari derajat g ( x ) . Sehingga, jika deg g ( x ) = s , maka deg u ( x ) ≤ s − 1 . Karena BCH code adalah suatu cyclic code yang dibangun oleh g ( x ) maka diperoleh hubungan s = n − k , s = deg g ( x ) (1)
•
Andai deg u ( x ) = s − 1 , maka koefisien dalam u ( x ) = u0 + u1 x + ... + us −1 x s −1 akan langsung menjadi n-k komponen terakhir pada codeword yang dihasilkan. Jika deg u ( x ) = v < s − 1 , maka u ( x) akan ditulis sebagai
u ( x ) = 0 x s −1 + 0 x s − 2 + ... + u s − v x v + u s − v +1 x v −1 + ... + u s − v + ( v −1) x + u s , yang dimaksudkan untuk menjamin koefisien u ( x) selalu menjadi s = n − k komponen terakhir pada codeword yang dihasilkan. Dengan kata lain, jika
KNM XVI - 3-6 Juli 2012 – UNPAD, Jatinangor
3
Fahrurozi A., Mardiyati S.
Analisis BCH Code
c( x) = x n − k m( x) + u ( x) = c1 x n −1 + c2 x n − 2 + ... + cn , maka codeword yang dihasilkan adalah
c = ( c1 , c2 ,..., ck , ck +1 ,..., cn ) , dimana
adalah
( c1 , c2 ,..., ck ) = m
dan
( ck +1 ,..., cn−1 , cn ) = u . •
Sedangkan pada Langkah 5, perkalian x n − k m( x) adalah suatu manipulasi agar pesan m berada pada k komponen pertama dalam codeword yang dihasilkan.
Teorema berikut memberikan hubungan antara jarak d yang ditentukan pada definisi BCH code dan jarak minimum pada BCH code tersebut. Teorema 4: BCH code yang dibangun dengan polinomial generator g ( x ) seperti di atas memiliki jarak minimum d min ≥ d [5]. Teorema 5: Suatu BCH code dengan panjang n = 2m − 1 dan jarak minimum paling sedikit d = 2r + 1 , memiliki bit parity check maksimum sebanyak mr . Dengan kata lain, n − k ≤ mr [8]. Lebih lanjut, karena jarak minimum d min ≥ d = 2r + 1 dan karena kemampuan koreksi
⎢ d min − 1 ⎥ , maka jelas bahwa t ≥ r . Jadi, berdasarkan Teorema 5 diperoleh: ⎣ 2 ⎥⎦ n − k ≤ mt
error t = ⎢
Misalkan suatu BCH code adalah linier (n,k) code, maka berikut ini diberikan hubungan antara panjang code (n), panjang pesan (k), dan kemampuan koreksi error maksimum (t) yang dimiliki oleh BCH code tersebut. Tabel 1. Hubungan n, k dan t pada BCH (n,k) code dengan n=7, 15, 31, 63 dan 255 n
k
t
n
k
t
n
k
t
n
k
t
n
k
t
n
k
t
7
4
1
63
57
1
255
247
1
255
163
12
255
139
15
255
55
31
155
13
131
18
47
42
147
14
123
19
45
43
139
15
115
21
37
45
131
18
107
22
29
47
123
19
99
23
21
55
115
21
91
25
107
22
87
26
99
23
79
27
155
13
71
29
147
14
63
30
15
31
11
1
51
2
239
2
7
2
45
3
231
3
5
3
39
4
223
4
26
1
36
5
215
5
21
2
30
6
207
6
16
3
24
7
199
7
11
5
18
10
191
8
6
7
16
11
187
9
10
13
179
10
7
15
171
11
13
59
9
63
Pada tabel terlihat bahwa panjang pesan yang dapat dikirm (k) dan kemampuan koreksi maksimum (t) berubah-ubah secara tak teratur. Hal ini dipengaruhi oleh bentuk polinomial generator dari BCH code. Karena polinomial generator g ( x) = lcm [ m1 ( x), m2 ( x),..., m2 r ( x)] , maka bentuknya bergantung pada polinomial minimal dari α k yang besar pangkatnya bergantung pada jumlah elemen dalam suatu cyclotomic coset. Sebagai contoh, misal diambil n = 15. Perhatikan bahwa terdapat 5 buah cyclotomic coset s (mod 15), 0 < s ≤ 15 yang berbeda, yaitu:
KNM XVI - 3-6 Juli 2012 – UNPAD, Jatinangor
Fahrurozi A., Mardiyati S.
Analisis BCH Code
C0 = {0}
C3 = {3, 6,12,9}
C1 = {1, 2, 4,8}
C5 = {5,10}
C7 = {7,14,13,11}
Maka akan terdapat 5 buah polinomial minimal berbeda, masing-masing untuk α 0 , α , α 3 , α 5 dan α 7 . Jika dipilih d = 3, maka perlu dicari polinomial minimal untuk α dan α 2 . Karena 1, 2 ∈ C1 , maka polinomial minimal untuk α dan α 2 sama, yaitu polinomial primitif, dan karena jumlah elemen C1 adalah 4, maka polinomial generator akan berderajat empat. Sehingga berdasarkan persamaan (1), panjang pesan yang dapat dikirim adalah 15 – 4 = 11. Sedangkan jika dipilih d = 5, perlu dicari polinomial minimal untuk α , α 2 , α 3 dan α 4 , dimana hanya akan terdapat dua polinomial minimal yang berbeda, yaitu polinomial minimal untuk α dan polinomial minimal untuk α 3 . Karena anggota cyclotomic coset C1 = {1, 2, 4,8} dan C3 = {3, 6,12,9} total berjumlah 8, maka derajat dari polinomial generator adalah 8 (polinomial generator g ( x ) adalah hasil perkalian dari dua buah polinomial minimal berderajat empat). Sehingga panjang pesan yang dapat dikirim adalah 15 – 8 = 7. Sedangkan jika dipilih d =7, maka perlu dicari polinomial minimal untuk α , α 2 , α 3 , α 4 , α 5 dan α 6 , dimana akan terdapat tiga polinomial minimal yang berbeda, yaitu polinomial minimal untuk α , α 3 dan α 5 . Karena anggota cyclotomic coset
C1 = {1, 2, 4,8} , C3 = {3, 6,12,9} , dan C5 = {5,10} berjumlah total 10, maka derajat dari polinomial generator adalah 10. Sehingga menyebabkan panjang pesan yang dapat dikirim adalah 15 – 10 = 5. Jadi, saat jarak BCH d yang dituju berturut-turut dipilih 3, 5 dan 7, nilai k yang diperoleh adalah 11, 7 dan 5, dimana terlihat bahwa polanya tidak teratur (dalam hal ini, berarti tidak memiliki selisih yang tetap). Kemampuan koreksi error maksimum juga memiliki pola perubahan yang tidak teratur untuk d yang berbeda-beda. Penjelasan untuk hal tersebut adalah karena saat kita menetapkan jarak BCH d pada algoritma encoding, maka kadangkala jarak minimum dari BCH code yang terbentuk lebih besar dari d. Sebagai contoh, untuk n = 31, jika dipilih d = 7, maka dapat dihitung jarak minimum dari BCH code yang terbentuk adalah 7, sehingga kemampuan koreksi error maksimum adalah t = 3. Sedangkan jika dipilih d = 9, maka jarak minimum dari code yang terbentuk adalah 11. Perhatikan contoh berikut. Untuk d = 5, polinomial generator yang terbentuk adalah
g 2 ( x) = lcm [ m1 ( x), m2 ( x), m3 ( x), m4 ( x)] = m1 ( x)m3 ( x)
Untuk d = 7, polinomial generator yang terbentuk adalah
g3 ( x) = lcm [ m1 ( x), m2 ( x),..., m6 ( x)]
Karena cyclotomic coset (mod 31) C5 = {5,10, 20,9,18} , C6 = {6,12, 24,17,3} ,
C7 = {7,14, 28, 25,19}
dan
C8 = {8,16,1, 2, 4}
,
maka
polinomial
minimal
m6 ( x) = m3 ( x) . Sehingga
g3 ( x) = lcm [ m1 ( x), m2 ( x), m3 ( x), m4 ( x)].m5 ( x) = g 2 ( x)m5 ( x)
Sedangkan untuk d = 9, polinomial generator yang terbentuk adalah
g 4 ( x) = lcm [ m1 ( x), m2 ( x),..., m8 ( x)]
sedangkan polinomial minimal m8 ( x) = m4 ( x) . Sehingga
g 4 ( x) = lcm [ m1 ( x), m2 ( x),..., m6 ( x)].m7 ( x) = g3 ( x).m7 ( x)
KNM XVI - 3-6 Juli 2012 – UNPAD, Jatinangor
5
Fahrurozi A., Mardiyati S.
Analisis BCH Code
Sedangkan untuk d = 11, polinomial generator yang terbentuk adalah
g5 ( x) = lcm [ m1 ( x), m2 ( x),...m9 ( x), m10 ( x)]
Karena C9 = {9,18, 7,14, 28} = C7 dan C10 = {10, 20,9,18,5} = C5 , maka polinomial minimal m9 ( x ) = m7 ( x ) dan m10 ( x ) = m5 ( x) . Sehingga
g5 ( x) = lcm [ m1 ( x), m2 ( x),..., m9 ( x), m10 ( x) ]
= lcm [ m1 ( x), m2 ( x),..., m8 ( x)] = g 4 ( x) Terlihat bahwa, untuk d = 9 dan d = 11, polinomial generator yang terbentuk adalah sama, sehingga jika dipilih d = 9, BCH code yang terbentuk akan sama dengan BCH code yang terbentuk jika dipilih d = 11. Sehingga C = g 4 ( x) = g5 ( x) dan memiliki kemampuan koreksi error maksimum t = 5. Lebih lanjut, dapat diperhatikan bahwa: Untuk d = 13, g 6 ( x) = g5 ( x) m11 ( x) Untuk d = 15, g 7 ( x) = g 6 ( x) Sehingga untuk d = 9 dan d = 11, polinomial generator dari code yang terbentuk adalah sama. Begitu juga untuk d = 13 dan d =15, code yang terbentuk memiliki polinomial generator yang sama. Sedangkan untuk d lainnya, polinomial generator dari code yang terbentuk berbeda-beda. Kemudian perhatikan pada tabel, untuk n = 31, terjadi lompatan nilai t dari 2, 3, kemudian 5, dan kemudian 7. Nilai t = 4 dan t = 6 dilompati berkaitan dengan kesamaan pada g 5 ( x ) = g 4 ( x) dan g 7 ( x) = g 6 ( x) . Jadi, dapat ditemukan pola saat gi +1 ( x) = gi ( x) , sedangkan gi ( x) ≠ gi −1 ( x) dan gi + 2 ( x ) ≠ gi +1 ( x ) maka nilai t akan lompat dari t = i − 1 ke t = i + 1 . Dapat dianalisa pola yang lebih umum, yaitu bahwa pada saat gi + j ( x) = gi + j −1 ( x) = ... = gi + j −v ( x) , untuk suatu dan berlaku i, j , v ≥ 1
gi + j −v ( x) ≠ gi + j −v −1 ( x) dan gi + j +1 ( x) ≠ gi + j ( x) , maka akan terjadi lompatan nilai t pada tabel dari t = i + j − v − 1 ke t = i + j + 1 . 4. Hasil Simulasi Berikut diberikan output dari contoh konstruksi BCH code. Pertama, dipilih dahulu panjang code n = 2 m − 1 dengan cara menentukan nilai untuk m . Lalu dipilih d yang diinginkan, dimana d yang dipilih harus merupakan bilangan ganjil dan memiliki batas bawah 3 (karena bentuk jarak BCH d yang dipilih adalah d BCH = 2r + 1 , sehingga polinomial generator terdefinisi untuk r ≥ 1 ). Sedangkan batas atas untuk nilai d yang bisa dipilih adalah 2m−1 − 1 . Hal ini karena untuk d = 2 m −1 + 1 , maka panjang pesan adalah 1, dan hal tersebut tidak diperbolehkan dalam MATLAB. Dalam aplikasinya, jika panjang pesan hanya 1, maka hanya mungkin dikirimkan 2 simbol, dan code dengan panjang pesan 1 tidak pernah digunakan. Sedangkan untuk d ≥ 2m −1 + 3 , BCH code tidak terdefinisi. masukan nilai pangkat yang diinginkan! m =5 Panjang code adalah n = 31. masukkan nilai d yang diinginkan, dengan syarat d ganjil dan <= 15! d =11 Panjang pesan yang bisa dikirim adalah k = 11.
KNM XVI - 3-6 Juli 2012 – UNPAD, Jatinangor
Fahrurozi A., Mardiyati S.
Analisis BCH Code
Polinomial generator dari BCH code yang terbentuk adalah: g = GF(2) array. Array elements = 1
0
1
1
0
0
0
1
0
0
memiliki kemampuan koreksi maksimum masukkan pesan msg = [1 1 1 1 0 0 0 0 1 1 0] code = GF(2) array. Array elements = Columns 1 through 22 1 1 1 1 0 0 0 0 1 1 Columns 23 through 31 0 1 0 0 1 1 1 0 0
0
1
1
0
1
1
0
1
0
1
0
1
5 error
0
0
0
1
0
1
0
1
0
1
1
Output MATLAB contoh konstruksi BCH code Pada output, akan ditampilkan panjang pesan k yang dapat dikirimkan serta kemampuan error maksimum dari BCH code yang terbentuk setelah n dan d ditentukan. Pada contoh, jika nilai k cukup besar, maka user dapat memasukkan contoh pesan secara acak, dengan menggunakan perintah randint(1,k) pada MATLAB. Output terakhir dari program tersebut adalah codeword yang bersesuaian dengan pesan yang dimasukkan oleh user. 5. Kesimpulan BCH code dibangun oleh suatu polinomial generator yang merupakan least common multiple dari 2r = d − 1 polinomial minimal untuk α s , s = 1, 2,...., 2r . Untuk m ∈ N , m ≥ 3 dapat dibentuk BCH code yang memiliki parameter sebagai berikut: 1. n = 2m − 1 2. n − k ≤ mt 3. d min ≥ d Dalam konstruksi BCH code, terlebih dahulu ditentukan nilai d, yang mengakibatkan panjang pesan yang dapat dikirim terbatasi. Hal ini dikarenakan dalam konstruksi BCH code, sebenarnya yang dilakukan adalah “memilih” 2 k buah n-tuple yang “tersedia” dalam GF (q ) n untuk menjadi codeword dalam BCH code yang dikehendaki sedemikian sehingga jarak minimum antar codeword tersebut lebih besar atau sama dengan d yang ditentukan di awal. Jarak minimum dari BCH code yang terbentuk kadangkala lebih besar daripada d yang ditentukan pada awal konstruksi. Hal tersebut dikarenakan polinomial generator untuk nilai d yang berbeda dapat berbentuk sama. Kedua hal tersebut (keterbatasan panjang code yang dikirim dan jarak minimum BCH code yang terbentuk) berkaitan dengan bentuk cyclotomic coset (mod n) yang mempengaruhi bentuk polinomial minimal untuk α s , dimana s = 1, 2,..., d − 1 . Referensi: [1] Adams, Sarah S. (2008). Introduction to Algebraic Coding Theory. Juli 19, 2011. < http://www.math.niu.edu/~beachy/courses/523/coding_theory.pdf> [2] Bhattacharya, P.B., S.K. Jain & S.R. Nagpaul. 1994. Basic Abstract Algebra, second edition. Cambridge University Press., Cambridge: 281-311. [3] Berlekamp, E. R. (1972). A Survey of Coding Theory. Journal of the Royal Statistical Society. Serie A (General), Vol. 135, No. 1, pp. 44- 73. [4] Herstein, I. N. (1996). Abstract Algebra, 3nd edition. Prentice-Hall Inc., New Jersey: 40-223.
KNM XVI - 3-6 Juli 2012 – UNPAD, Jatinangor
7
Fahrurozi A., Mardiyati S.
Analisis BCH Code
[5] Judson, Thomas W. (1997). Abstract Algebra Theory and Applications. VCU Mathematics Textbook Series. [6] Koblitz, Neil. (1997). Algebraic Aspects of Cryptography, volume 3. SpringerVerlag, Berlin: 53-60. [7] Lidl, R. & G. Pilz. (1997). Applied Abstract Algebra, second edition. SpringerVerlag, Berlin: 117-131. [8] Vermani, Lekh R. (1996). Elements of Algebraic Coding Theory. Chapman & Hall, 2-6 Boundary Row, London SE1 8HN, UK. [9] Wallace, Hank. (2001). Error Detecting and Correcting Using the BCH Code. September 28, 2011. http://www.aqdi.com/bch.pdf.
KNM XVI - 3-6 Juli 2012 – UNPAD, Jatinangor