BAB III BAHASAN KONSTRUKSI GF( ) Untuk engonstruksi GF( ) dala penelitian ini dapat dilakukan dengan engacu pada konsep perluasan filed pada Bab II bagian 28 Karena adalah bilangan pria, aka berdasarkan Teorea 222 adalah field berhingga yang hipunan eleennya {0, 1, 2} dengan operasi penjulahan dan operasi perkalian dilakukan dala odulo dan erupakan ring koutatif Karena adalah ring koutatif, aka berdasarkan Teorea 24 [ x] adalah hipunan dari seua polinoial dala x atas dengan operasi penjulahan dan perkalian polinoial erupakan ring koutatif yang dinyatakan sebagai [ x] { a a x a x a x a } Operasi penjulahan pada [ x] 1 0 1 1 i bersifat asosiatif, terdapat eleen identitas yaitu polinoial nol, setiap polinoial a( x) [ x] terdapat polinoial a( x) sebagai eleen invers, dan erupakan grup koutatif Di lain pihak, operasi perkalian pada [ x] bersifat asosiatif, distributif terhadap operasi penjulahan Misalkan p( x) [ x] adalah polinoial irreducible berderajat, jika ada akar c sehingga p( c) 0, aka hipunan seua polinoial yang dibangun oleh p( x) erupakan ideal utaa p( x) dan dapat dibentuk ring faktor [ x] p( x) Karena p( x) adalah polinoial irreducible berderajat, aka berdasarkan Teorea 242 p( x) erupakan ideal aksial Dengan engacu pada Teorea 22, aka [ x] p( x) adalah field Berdasarkan Teorea 247, [ x] p( x) [ c] erupakan perluasan dari field Selanjutnya berdasarkan Teorea 0, eleen-eleen [ c] dapat dinyatakan secara unik dala bentuk { b b c b c b } Di lain 1 1 0 1 1 i pihak, berdasarkan Teorea 1, [ c] erupakan ruang vektor berdiensi- atas Untuk kepentingan koputasi, aka eleen [ c] dapat direpresentasikan sebagai vektor terner dari derajat terkecil ke derajat terbesar dala bentuk [ a0, a1,, a 1]
27 Berdasarkan Teorea 2, setiap field berhingga GF( ) epunyai eleen sebanyak pangkat dari bilangan pria berorder Akibatnya, berdasarkan Teorea aka GF( ) [ x] p( x) Dari proses di atas, aka GF( ) erupakan hipunan teorea berikut dari seua polinoial berderajat kurang dari yang dinyatakan dala Teorea 1 Misalkan p( x) adalah polinoial irredusible berderajat atas, aka GF( ) { a a x a x a } adalah field berhingga 1 0 1 1 i Bukti : Diketahui p( x) adalah polinoial irredusibel berderajat atas Misalkan f : [ x] GF( ) adalah fungsi yang didefinisikan f ( g( x)) g( x)(od p( x)) Misalkan g 1 ( x), g 2 ( x) [ x] aka f erupakan hooorfisa, karena f ( g ( x) g ( x)) ( g ( x) g ( x))(od p( x)) 1 2 1 2 ( g ( x))(od p( x)) ( g ( x))(od p( x)) 1 2 f ( g ( x)) f ( g ( x)) 1 2 f ( g ( x) g ( x)) ( g ( x) g ( x))(od p( x)) 1 2 1 2 ( g1( x))(od p( x))( g2 ( x))(od p( x)) f ( g1( x)) f ( g2( x)) Fungsi f juga surjektif, karena untuk setiap g( x)(od p( x)) GF( ) aka terdapat g( x) [ x] sedeikian sehingga f ( g( x)) g( x)(od p( x)) Kernel dari f adalah ker( f ) { g( x) [ x] f ( g( x)) 0} { g( x) [ x] g( x)(od p( x)) 0} p( x)
28 Karena fungsi f hooorfisa yang surjektif aka f erupakan epiorfisa dengan ker( f ) p( x) Berdasarkan Teorea Dasar Hooorfisa (Teorea 20), aka [ x] p( x) [ c] GF( ) Akibatnya, GF( ) adalah field yang eleeneleennya erupakan hipunan seua polinoial-polinoial berderajat paling banyak 1 yang dinyatakan secara unik sebagai GF( ) { a a x a x a } 1 0 1 1 i Dari keisoorfikan GF( ) dengan [ x] p( x) [ c], aka operasi dan representasi eleen-eleennya dapat dijelaskan sebagai berikut Misalkan, diberikan fungsi polinoial a( x) { a a x a x a } dan 1 0 1 1 i b( x) { b b x b x b } Operasi penjulahan dala GF( ) 1 0 1 1 i 1 didefinisikan sebagai c( x) a( x) b( x) c c x c x dengan 0 1 1 c0 ( a0 b0 ) od, c1 ( a1 b1 ) od,, c 1 ( a 1 b 1) od Operasi perkalian dala GF( ) didefinisikan sebagai perkalian polinoial odulo p( x ), yaitu engabil sisa dari perkalian a( x) dan b( x) setelah dibagi dengan p( x) dinotasikan c( x) a( x) b( x) od p( x) Eleen GF( ) dapat direpresentasikan sebagai bentuk polinoial { a a x a x a }, bentuk basis baku 1 0 1 1 i 2 1 {1,,,, } c c c, bentuk koordinat vektor [ a0, a1,, a 1] Karena GF( ) adalah field berhingga, aka hipunan eleen-eleen tak-nol dari GF( ) ebentuk grup siklik terhadap operasi perkalian, dinotasikan * GF ( ) Hal ini disajikan dala teorea berikut ini Teorea 2 Grup 1 GF( ) * erupakan grup siklik terhadap operasi perkalian berorder Bukti : Misalkan GF( )
29 Karena * GF( ) berorder 1, aka i paling banyak erupakan 1 eleen berbeda sehingga terdapat r, diana 1 r 1 berlaku r i i r i i i i ( ) r i i ( ) 1 r sehingga diperoleh 1 Jadi r iniu sehingga O( ) r Selanjutnya, isalkan r adalah order aksial dari eleen GF( ) * terhadap operasi r perkalian, aka akan berlaku 1 0, untuk setiap GF( ) Karena setiap r eleen dari GF( ) erupakan akar dari polinoial 1, akibatnya polinoial berderajat r dapat epunyai paling banyak r akar Karena * GF( ) grup siklik terhadap operasi perkalian aka terdapat GF( ), dan r 1 tetapi r 1, hal ini enunjukkan bahwa r 1 Dengan deikian, * 2 2 ( ) {1,,,, } GF dan berorder 1 Terbukti GF( ) * siklik Definisi Suatu eleen dala finite field GF( ) * disebut eleen priitif atau generator dari GF ( ), jika * 2 2 ( ) {1,,,, } GF (Ling 2004) Definisi 4 Polinoial irreducible f ( x) GF()[ x] berderajat disebut polinoial priitif dengan akar, jika adalah generator dari GF( ) (Menezes 1997) Berdasarkan sifat dari grup siklik bahwa setiap eleen GF( ) eenuhi polinoial 1 1 0 dan selalu epunyai akar priitif sebagai pebangun GF( ) Untuk ebangun algorite aritetik GF( ) dala penelitian ini dilakukan dengan engabil polinoial priitif berderajat atas yang erupakan polinoial iniu ( x) a0 a1x ax diana erupakan akar priitifnya sedeikian sehingga ( ) 0 Selanjutnya tentukan basisnya di GF( ) sebagai ruang vektor atas Misalkan GF( ) adalah field berhingga dan adalah eleen priitif dala GF ( ), aka bentuk basis standar dari polinoial priitifnya adalah
0 2 2 {1,,,, } j dan setiap eleen GF( ) dapat dinyatakan secara unik sebagai j 1 a0 a1 x a 1x diana i a Untuk kepentingan koputasi, aka bentuk basis j dapat direpresentasikan sebagai koordinat vektor terner dari j derajat terkecil ke derajat terbesar dala bentuk [ a0, a1,, a 1] Pengabilan polinoial priitif dala penelitian ini dapat dilakukan secara koputasi enggunakan Software Maple 11 dengan langkah-langkah sebagai berikut Pertaa-taa tes apakah polinoial irreducible atau tidak Selanjutnya, tes polinoial irreducible priitif atau tidak Adapun Algorite 1 dan Algorite 2 erupakan algorite rutin yang akan digunakan pada Algorite dan Algorite 4 Algorite 1 Deskripsi : Prosedur untuk enghitung A x od B Input : Vektor A [ a0, a1,, a s ], vektor B [ b0, b1,, b t ], dan integer x Output x : H A od B 1 Ubah x dala basis 2 2 Isi G = H, H = [1] Jika X 1 = 1, aka H = G 4 Untuk i ulai 2 sapai panjang vektor X, lakukan 41 Hitung K = perkalian G dengan G 42 Hitung G = sisa hasil bagi K dengan B 4 Jika X i = 1, aka lakukan 41 Hitung L = perkalian H dengan G 42 Hitung H = sisa hasil bagi L dengan B 5 Return(H) Algorite 2 Deskripsi : Prosedur untuk enghitung Gcd dari vektor A dan vektor B Input : Vektor A [ a0, a1,, a s ], vektor B [ b0, b1,, b t ] Output : RA Gcd ( A, B) 1 Hitung a = panjang vektor A dan b = panjang vektor B 2 Isi RA = A, RB = B Jika a < b, aka RA = B dan RB = A 4 Jika RB = [0], aka return(ra) 5 Hitung L = sisa hasil bagi RA dengan RB 6 Isi RA = RB dan RB = L 7 Untuk i selaa RB [0], aka lakukan berulang-ulang 71 Hitung L = sisa hasil bagi RA dengan RB
1 72 Isi RA = RB dan RB = L 8 Return(RA) Vektor terner yang dibangkitkan, cek apakah irreducible atau tidak enggunakan Algorite Algorite ini didasarkan pada Teorea 5 Algorite Deskripsi : Prosedur untuk eeriksa polinoial irreducible atau tidak Input : Vektor A [ a0, a1,, a s ] Output : Apakah irreducible? 1 Hitung a = panjang vektor A - 1 2 Hitung = 2 Isi W [0,1] 4 Untuk i dari 1 sapai, lakukan x 41 Hitung W A od B enggunakan Algorite 1 42 Hitung U = julah vektor W dengan [0, 2] 4 Hitung H = Gcd(A,B) enggunakan Algorite 2 44 Hitung h = panjang vektor H 441 Jika h > 1, aka return(false) 5 Return(true) Selanjutnya, cek apakah priitif atau tidak dengan enggunakan Algorite 4 Algorite ini didasarkan pada Teorea 6 Algorite 4 Deskripsi : Prosedur untuk eeriksa polinoial irreducible adalah priitif Input : Vektor A [ a0, a1,, a s ] Output : Apakah polinoial priitif? 1 Hitung = panjang vektor A 1 2 Hitung h 1 Hitung F = faktor pria dari h 4 Hitung a = panjang vektor F 5 Untuk i dari 1 sapai a, lakukan 51 Hitung k h / Fi 52 Hitung H = [0, 1] k od A enggunakan Algorite 1 5 Jika H = [1], aka return(false) 6 Return(true)
2 Pebangkitan vektor terner yang priitif dala penelitian ini dapat dilakukan dengan eilih vektor yang bersuku kecil, yaitu vektor bersuku dua dengan enggunakan Algorite 5, vektor bersuku tiga dengan enggunakan Algorite 6, vektor bersuku epat dengan enggunakan Algorite 7 Algorite 5 Deskripsi : Prosedur untuk ebangkitkan polinoial priitif bersuku dua Input : Bilangan bulat positif Output : Vektor priitif bersuku dua Y 1 Untuk i dari 1 sapai 4, lakukan 11 Jika (i od ) 0, aka 11 Ubah X = dari desial ke vektor terner 12 Hitung x = panjang eleen X 1 Isi vektor Y = [X, 0( - x), 1] 14 T = Test irreducible Y enggunakan Algorite 14 Jika T = true, aka 141 U = Test Priitif Y enggunakan Algorite 4 142 Jika U = true, aka 2 Return(Y) Jika vektor priitif bersuku dua tidak ada aka vektor priitifnya dapat dipilih dari vektor priitif bersuku tiga dengan enggunakan Algorite 6 Algorite 6 Deskripsi : Prosedur untuk ebangkitkan polinoial priitif bersuku tiga Input : Bilangan bulat positif dan floor((+1)/2) Output : Vektor priitif bersuku tiga Y 1 Untuk i dari 1 sapai 2, lakukan 11 Untuk j dari 1 sapai 2, lakukan 111 T = Test irreducible enggunakan Algorite 112 Jika T = true, aka U = Test Priitif enggunakan Algorite 4 11 Jika U = true, aka Return(Y) 12 Untuk k dari 1 sapai (-2), lakukan 111 T = Test irreducible enggunakan Algorite 112 Jika T = true, aka U = Test Priitif enggunakan Algorite 4 11 Jika U = true, aka Return(Y) 2 Return(Y)
Jika vektor priitif bersuku tiga tidak ada aka vektor priitifnya dapat dipilih dari vektor priitif bersuku epat atau lebih dengan enggunakan Algorite 7 Algorite 7 Deskripsi : Prosedur untuk ebangkitkan polinoial priitif bersuku tiga Input : Bilangan bulat positif dan floor((+1)/2) Output : Vektor priitif bersuku tiga Y 1 Untuk i dari 1 sapai 2, lakukan 11 Untuk j dari 1 sapai 2, lakukan 111 Untuk k dari 1 sapai 2, lakukan 1111 T = Test irreducible enggunakan Algorite 1112 Jika T = true, aka U = Test Priitif enggunakan Algorite 4 111 Jika U = true, aka Return(Y) 112 Untuk l dari 1 sapai (-), lakukan 1121 T = Test irreducible enggunakan Algorite 1122 Jika T = true, aka U = Test Priitif enggunakan Algorite 4 112 Jika U = true, aka Return(Y) 112 Untuk l dari 1 sapai (-), lakukan 1121 T = Test irreducible enggunakan Algorite 1122 Jika T = true, aka U = Test Priitif enggunakan Algorite 4 112 Jika U = true, aka Return(Y) 2 Return(Y) Peilihan polinoial priitif bersuku kecil diaksudkan agar dapat epercepat proses kalkulasi aritetik field GF ( ) Polinoial priitif bersuku kecil yang digunakan dala penelitian ini dapat dilihat pada Lapiran II Selanjutnya, untuk kepentingan koputasi polinoial priitif yang dipilih direpresentasikan sebagai vektor terner yang dipilih akan disipan dala basis data Untuk enggunakan basis data tersebut cukup dipanggil derajat tertinggi Sebagai contoh, isalkan pilih Untuk ebangun field GF( ) dapat dikerjakan dari, karena erupakan subfield dari GF ( ) Abil polinoial priitif x x x x yang erupakan polinoial iniu berderajat ( ) 2 1 [ ] diana adalah akar priitifnya Periksa apakah akar erupakan algebraic atau tidak
4 Abil GF() sedeikian sehingga ( ) 0 Untuk 0, aka 1, aka 2, aka (0) 0 20 1 1 Jadi 0 bukan akar dari ( x ) (1) 1 211 1 Jadi 1 bukan akar dari ( x ) (2) 2 22 1 1 Jadi 2 bukan akar dari ( x ) Karena untuk 0, 1, dan 2 bukan akar dari polinoial ( x ), ini enunjukkan bahwa erupakan algebraic Pilih akar pada perluasan field sedeikian sehingga ( ) 0 engakibatkan ( ) 2 1 0 2 Dengan 2 dapat digunakan untuk ebangun perluasan field yang euat seua akar-akar dari polinoial ( x) [ x], sehingga diperoleh 4 2 2, 5 4 2 2 2, 6 5 2 1, 7 6 2 2 2 2, 10 9 2,, 8 7 2 2 2, 24 2 2 1, 9 8 1, 26 0 1 Selanjutnya, karena polinoial ( x) berderajat aka 2 {1,, } bebas linear atas ( ) Artinya 2 {1,, } erupakan basis dari ( ), sehingga ( ) erupakan ruang vektor berdiensi atas Selanjutnya, subfield dari GF( ) terdiri dari dan GF( ) dengan asing-asing ordernya adalah dan 27 Eleen-eleen dari subfield yang berorder adalah {0, 1, 2}, sedangkan eleen-eleen subfield yang berorder 27 adalah field itu sendiri yaitu {0, 1,,, } dengan basisnya {1,,, } Jadi GF( ) 27 {0, 1,,, } dengan basisnya adalah {0, 1,,, } dan jika eleen nol dikeluarkan aka GF( ) akan ebentuk grup siklik yang dibangkitkan oleh, dinotasikan GF ( ) Jadi GF( ) 26 {1,,, } dengan basisnya adalah {1,,, } Dengan deikian, hipunan seua polinoial-polinoial berderajat kurang dari atas yang dibangun oleh polinoial priitif x x x x adalah ( ) 2 1 [ ]
5 2 2 2 {0, 1, 2,, 1, 2, 2, 2 1, 2 2,, 1, 2, 2 2 2 2 2 2, 2, 1, 2, 2 1, 2 2, 2 2 2 2 2 2 2 2, 2 1, 2 2, 2, 2 1, 2 2, 2 2, 2 2 2 2 1, 2 2 2} Dengan engabil, dan 2 9, aka diperoleh hubungan antara representasi eleen priitif, representasi basis polinoial, representasi vektor terner, dan representasi integer dapat dilihat pada Tabel 1 Tabel 1 Galois Field dari GF( ) No 1 2 4 5 6 7 8 9 10 11 12 1 14 15 16 17 18 19 20 21 22 2 24 26 27 Eleen Priitif 0 α 0 = α 26 α 1 α 2 α α 4 α 5 α 6 α 7 α 8 α 9 α 10 α 11 α 12 α 1 α 14 α 15 α 16 α 17 α 18 α 19 α 20 α 21 α 22 α 2 α 24 α Representasi Basis 0 1 α α 2 α + 2 α 2 + 2α 2α 2 + α + 2 α 2 + α + 1 α 2 + 2α + 2 2α 2 + 2 α + 1 α 2 + α α 2 + α + 2 α 2 + 2 2 2α 2α 2 2α + 1 2α 2 + α α 2 + 2α + 1 2α 2 + 2α + 2 2α 2 + α + 1 α 2 + 1 2α + 2 2α 2 + 2α 2α 2 + 2α + 1 2α 2 + 1 Vektor Terner [0, 0, 0] [1, 0, 0] [0, 1, 0] [0, 0, 1] [1, 2, 0] [0, 2, 1] [2, 1, 2] [1, 1, 1] [2, 2, 1] [2, 0, 2] [1, 1, 0] [0, 1, 1] [2, 1, 1] [2, 0, 1] [2, 0, 0] [0, 2, 0] [0, 0, 2] [1, 2, 0] [0, 1, 2] [1, 2, 1] [2, 2, 2] [1, 1, 2] [1, 0, 1] [2, 2, 0] [0, 2, 2] [1, 2, 2] [1, 0, 2] Representasi Integer 0 1 9 5 15 2 1 17 20 4 12 14 11 2 6 18 7 20 16 26 22 10 8 24 19