LAPORAN PENELITIAN ( ) EFISIENSI ALGORITME ARITMETIK DENGAN OPERASI DIBANGKITKAN DARI SIFAT GRUP SIKLIK PADA KRIPTOGRAFI KURVA ELIPTIK Oleh : Dra. Eleonora Dwi W., M.Pd Ahmadi, M.Si FAKULTAS KEGURUAN DAN ILMU PENDIDIKAN UNIVERSITAS PANCASAKTI TEGAL 2012 BAB I PENDAHULUAN Masalah keamanan merupakan salah satu aspek penting dari sebuah sistem informasi. Untuk menjamin keamanan sebuah informasi yang bersifat rahasia diperlukan suatu teknik pengamanan baik secara fisik maupun non fisik. Salah satu teknik pengamanan secara non fisik yaitu dengan mengenkripsi informasi rahasia menggunakan teknik kriptografi. Kriptografi secara terminologi dasarnya terdiri dari dua tipe yaitu kriptografi simetrik dan kriptografi asimetrik atau sering disebut sebagai kriptografi kunci publik. Kunci simetris adalah jenis kriptografi yang paling umum digunakan. Kunci untuk membuat pesan yang disandikan sama dengan kunci untuk membuka pesan yang disandikan itu. Jadi pembuat pesan dan penerimanya harus memiliki kunci yang sama persis. Siapapun yang memiliki kunci tersebut termasuk pihak-pihak yang tidak diinginkan dapat membuat dan membongkar rahasia ciphertext. Contoh algoritme kunci simetris yang terkenal adalah DES (Data Encryption Standard). Karya ini menjadi alat keamanan komersial elektronik di banyak institusi keuangan di seluruh dunia hingga pertengahan tahun 1990-an. DES secara DES tak aman sejak juli 1998. Walaupun demikian DES telah melandasi prinsip-prinsip sandi simetrik modern yang dewasa ini muncul produk-produk penggantinya seperti : AES (Advanced Encryption Standard), Blowfish, 3DES, RC5, dan lain sebagainya. Kunci asimetrik merupakan pasangan kunci kriptografi yang salah satunya digunakan untuk proses enkripsi dan yang satu lagi untuk dekripsi. Semua orang yang mendapatkan kunci publik dapat menggunakannya untuk mengenkripsikan suatu pesan,data ataupun informasi, sedangkan hanya satu orang saja yang memiliki rahasia tertentu dalam hal ini kunci privat untuk melakukan pembongkaran terhadap sandi yang dikirim untuknya. Pada algoritme kunci publik ini, semua orang dapat mengenkripsi data dengan memakai kunci publik penerima yang telah diketahui secara umum. Akan tetapi data yang telah terenkripsi tersebut hanya dapat didekripsi dengan menggunakan kunci privat 2 yang hanya diketahui oleh penerima. Contoh algoritme terkenal yang menggunakan kunci asimetrik adalah skema RSA yang ditemukan oleh Rivest, Shamir, dan Adleman pada tahun 1978. Skema ini didasarkan pada problem matematika yang sulit, yaitu pemecahan masalah faktorisasi integer besar. Bentuk praktis skema kunci publik lainnya ditemukan oleh ElGamal pada tahun 1985. Skema ini didasarkan pada pemecahan problem logaritma diskret. Keamanan algoritme ini sangat tergantung pada pemilihan bilangan prima p. Semakin besar p maka algoritme ini akan semakin aman, akan tetapi semakin besar pula beban komputasi yang digunakan. Oleh karena itu pada masa sekarang, orang sudah mulai mencari alternatif lain untuk menggantikan aritmetik modular diantaranya aritmetik yang dibangkitkan struktur finite field ( ), kurva eliptik kriptografi, dan hipereliptik kriptografi. Teori finite field mulai diperkenalkan pada abad ke tujuh dan abad ke delapan, dengan tokoh matematikanya Pierre de Fermat (1601-1665) dan Leonhard Euler (1707-1783) dengan kontribusinya pada khusus teori struktur finite field. Teori secara umum tentang finite field mulai dikerjakan oleh Carl Friedrich Gauss (1777-1855) dan Evariste Galois (1811-1832), teori ini banyak dikembangkan dalam dunia aplikasi matematika, komputer, dan teori komunikasi. 2 3 BAB II TINJAUAN PUSTAKA Untuk mencapai tujuan penulisan penelitian diperlukan beberapa pengertian dan teori yang berkaitan dengan pembahasan. Dalam subbab ini akan diberikan beberapa teori berupa definisi, lemma, dan teorema yang berkaitan dengan pembahasan. 3.1. Teori Grup Definisi 3.1. Struktur aljabar 〈 ,⋇〉 tertutup terhadap operasi biner disebut grup jika memenuhi aksioma-aksioma berikut: a) Operasi biner ⋇ bersifat asosiatif: a b c a b c , untuk setiap a, b, c G . b) Terdapat unsur identitas e G , untuk * pada G sehingga berlaku a e e a a untuk setiap a G . c) Untuk setiap a G ada unsur a1 G sehingga a a 1 a1 a e . ( a-1 disebut invers a terhadap operasi *). Grup G disebut grup komutatif atau grup abelian jika operasi * bersifat komutatif yaitu: a b b a , untuk semua a, b G . Grup berhingga yaitu grup yang kardinalitasnya berhingga. Dalam hal ini kardinalitas suatu grup G disebut dengan order dari G, dinotasikan ord G atau O G atau G . Definisi 3.2. Jika H himpunan bagian atas grup G adalah grup di bawah operasi G, maka H subgrup dari G. Teorema 3.3. (Uji satu langkah) Misalkan G grup dan H himpunan bagian yang tak kosong atas G. Maka H adalah subgrup atas G jika H tertutup di bawah operasi pembagian; yaitu jika . bilamana , Teorema 3.4. (Uji dua langkah) Misalkan G grup dan H himpunan bagian tak kosong atas G. Maka, H disebut subgrup dari G jika . 3 bilamana , 4 (tertutup terhadap perkalian), dan bilamana (tertutup terhadap invers) Sebagai contoh, Z dan Q merupakan subgrup dari R terhadap operasi +. Tentu saja Z Q R dan masing-masing merupakan grup terhadap operasi yang sama yaitu +. Misal G sembarang grup, a G , dan n bilangan bulat positif, maka: a n : aa ...a , n kali 1 1 a n : a a ... a1 , n kali n -1 = (a ) dan a0 : e . Jika ada bilangan bulat tidak nol m sedemikian sehingga am e , maka order dari unsur a, notasi O a , didefinisikan sebagai bilangan bulat positif terkecil n sedemikian sehingga an e . Jika tidak ada bilangan bulat tidak nol n sedemikian sehingga an e , maka dikatakan a mempunyai order di tak hingga (infinity). Ringkasan 3.5. Berikut ini 3 sifat dasar yang berkaitan dengan pengertian order. 1. Jika O a n , maka ada tepat n kuasa dari a (power of a) yang masingmasing berbeda, yaitu a 0 e, a, a 2 ,..., a n1 . 2. Jika O a tak hingga, maka semua kuasa dari a berbeda. Artinya, jika r dan s yaitu dua bilangan bulat yang berbeda, maka ar a s . 3. Misalkan a yaitu unsur dari grup G dan O a n . Maka at e jika dan hanya jika t yaitu kelipatan dari n (t kelipatan n artinya ada bilangan bulat q sehingga t=nq). Definisi 3.6. Misalkan H subgrup dari = { ℎ|ℎ grup G. Himpunan } atas G disebut koset kiri atas H memuat himpunan bagian = {ℎ |ℎ bagian . Sedangkan } atas G disebut koset kanan atas H memuat . Teorema 3.7. (Teorema Lagrange) Misalkan H subgrup dari grup berhingga G. Maka order dari H adalah pembagi dari order G. Teorema 3.8. Order dari unsur grup berhingga G membagi order G. 4 5 Jika H merupakan subgrup dari grup G, indeks dari H di dalam G diartikan sebagai jumlah koset dari H di dalam G, notasinya G : H G : H . sedangkan G H 3.2. Grup Siklik Grup G disebut siklik jika dan hanya jika ada unsur a G (a disebut generator) sehingga G a an n Z . Dalam kasus G grup aditif, dapat ditulis G a na n Z . Ringkasan 3.9. (Sifat-sifat Grup Siklik) 1. Jika grup G berorder n, maka G siklik jika dan hanya jika ada a G sehingga O a n . 2. Setiap grup siklik yaitu abelian. 3. Setiap subgrup dari grup siklik adalah siklik. 4. Jika G a dan b G , maka O b O a . 5. Jika G yaitu grup siklik berorder n dan suatu bilangan bulat k n , maka ada b G sehingga O b k . 6. Misalkan G yaitu grup abelian berorder mn dengan m dan n prima relatif. Jika G mempunyai suatu unsur a dengan O a m dan b dengan O b n , maka G yaitu grup siklik dengan G ab . 7. a r yaitu generator dari G a dengan G n jika dan hanya jika r dan n prima relatif. 3.3. Grup Homomorfisme dan Isomorphisme Misal G dan H grup. Suatu homomorfisma (grup) dari G ke H yaitu suatu fungsi f : G H sedemikian sehingga untuk sembarang a dan b di dalam G, f ab f a f b . 5 6 Bayangan (Imej) dari f, dinotasikan Im f , yaitu Im f f G f x x G . Kernel dari f, dinotasikan ker f , yaitu ker f x G f x e (secara implisit e yaitu unsur identitas dari f). Sifat-sifat dasar homomorfisma dinyatakan dalam Ringkasan berikut ini. Ringkasan 3.10. (Sifat-sifat Dasar Homomorfisma) Misalkan G dan H yaitu grup, f : G H homomorfisma, maka sifat-sifat berikut dipenuhi. 1. f e e . 2. ( ) = ( ( )) untuk setiap a G . 3. Im f merupakan subgrup dari H. 4. ker f merupakan subgrup dari G. Jika homomorfisme yang bijektif, maka f disebut isomorfisme. 3.4. Ring Struktur aljabar dengan dua operasi biner yang paling umum yaitu Ring. Definisi 2.11. Ring R adalah himpunan dengan dua operasi + dan x (disebut dengan penjumlahan dan perkalian) yang memenuhi aksioma-aksioma berikut: a. R, adalah grup abelian adalah asosiatif : ( ) = ( ) untuk setiap a, b, c R . b. Operasi c. Berlaku hukum distributif atas R : Untuk setiap a, b, c R memenuhi ( + ) =( )+( ) dan ( + )=( )+( ) Ring R disebut komutatif jika perkaliannya bersifat komutatif. Ring R disebut mempunyai unsur kesatuan jika terdapat unsur 1 Definisi 3.12. Unsur bukan nol ada unsur bukan nol sehingga . dengan 1 = 1 = , dari Ring komutatif R disebut pembagi nol jika =0 Definisi 3.13. Ring komutatif dengan unsur kesatuan 1 disebut daerah integral jika tidak memuat pembagi nol 6 7 Definisi 3.14. Karakteristik Ring R adalah sekurang-kurangnya integer positif = 0 untuk setiap sehingga . Jika tidak ada, R disebut berkarakteristik 0. Teorema 3.15. Karakteristik daerah integral adalah 0 atau prima. Teorema 3.16. Di dalam sembarang Daerah Integral D dengan karakteristik p, a b p a p b p untuk semua unsur a, b D . Definisi 3.17. Field adalah suatu Ring komutatif, ada unsur kesatuan 1 dan setiap unsur tak nolnya mempunyai invers (multiplikatif) Teorema 3.18. Daerah integral yang berhingga adalah field. Akibat 3.19. Untuk setiap bilangan prima p, Ring Zp integer modulo p, adalah field Definisi 3.20. SubRing A dari Ring R disebut ideal dari R jika untuk setiap dan setiap , dan . Teorema 3.21. Misal R Ring, I R , I tidak kosong. Himpunan bagian I disebut ideal jika memenuhi: a. →( − ) , b. dan → dan . Untuk setiap Ring R, {0} dan R adalah ideal atas R. Ideal {0} disebut ideal trivial. Misalkan R Ring komutatif dengan unsur kesatuan 1 dan 〈 〉={ | . Suatu himpunan } merupakan ideal. Ideal yang demikian disebut ideal utama yang dibangun oleh . Definisi 3.22. Suatu ideal I atas Ring komutatif R disebut ideal prima atas R jika , dan sehingga dan . Suatu ideal B atas Ring komutatif R disebut ideal maksimal atas R jika B adalah ideal atas R dan ⊆ ⊆ maka B = A atau B = R. Misalkan Ring R dan I merupakan ideal dari R. Karena R merupakan grup terhadap penjumlahan dan I subgrup dari R, maka Ring faktor sebagai ⁄ = { + | / dapat ditulis }. Teorema 3.23. Misal R Ring komutatif dengan unsur kesatuan 1. I ideal maksimal dari R. Maka R I adalah field jika dan hanya jika I ideal maksimal. 7 8 Definisi 3.24. Suatu homomorfisma dari Ring R ke Ring R ' yaitu suatu fungsi f : R R ' yang memenuhi, ∀ , a. f a b f a f b , dan b. f ab f a f b . berlaku : Jika f surjektif, maka R ' disebut bayangan homomorfik dari R. Kernel dari f diDefinisikan ker f x R f x 0 , dan range dari f diDefinisikan ran f f x x R . Jika f homomorfisma yang bijektif, maka f disebut isomorfisma. Dalam hal ini R dan R ' dikatakan isomorfik, dinotasikan Teorema 3.25. Misal ⋍ ′ f : R R' Ring homomorfisma. Maka ker f x R f x 0 merupakan ideal dari R. Teorema 3.26. R I merupakan bayangan homomorfik dari R. Teorema 3.27. (Teorema dasar homomorfisme) Misalkan f : R R' merupakan epimorfisme, dan misalkan K yaitu kernel dari f. Maka ′ ≅ / . 3.5. Ring Polinomial Misalkan R Ring komutatif dengan unsur kesatuan, dan x simbol yang tak + tetap. Setiap ekspresi berbentuk polinomial dalam x dengan + disebut . Polinomial dalam x dapat ditulis dengan ( ), ( ), ( ), dan lain-lain. Misal ∑ +⋯+ ( )= + +⋯+ merupakan sembarang polinomial, derajat dari polinomial bilangan terbesar n sehingga koefisien dari = ( ) yaitu bukan nol dan dinotasikan dengan deg ( ). Polinomial ( )=0 +0 + ⋯ + 0 yang semua koefisiennya nol disebut polinomial nol, dan dinotasikan dengan ( )= ( )= ( ) = 0. Jika polinomial , maka ( ) berderajat nol dan disebut polinomial konstan. Misalkan + + ⋯+ + 8 dan 9 ( )= + + ⋯+ + . Operasi penjumlahan dan perkalian polinomial didefinisikan sebagai berikut : ( )+ ( )= ( Dimana + =0 = Jika R Ring, maka +( + > ( ). ( ) = Dimana, ) ) =0 + + +⋯+( > + + ⋯+ + ) + + , + + , untuk k = 0, …, m+n [ ] menotasikan himpunan semua polinomial dalam x yang koefisiennya ada di R dengan operasi penjumlahan dan perkalian seperti yang didefinisikan sebelumnya. Teorema 3.28. Misal R Ring komutatif dengan unsur kesatuan 1. Maka R[x] merupakan Ring komutatif dengan unsur kesatuan 1. Teorema 3.29. Jika R adalah daerah integral, maka R[x] adalah daerah integral. Definisi 3.30. Suatu polinomial ( ) dinyatakan sebagai perkalian [ ] irredusibel atas F bila f(x) tidak dapat ( ), ℎ( ) dimana ( ), ℎ( ) [ ] keduanya berderajat lebih rendah dari f(x). Teorema 3.31. Misal F field dan Ring polinomial F x . Jika f x , g ( x ) F x dengan g x 0 , maka ada polinomial unik q x , r ( x) F x sehingga f ( x) q x g x r x dengan r x 0 atau derajat r x derajat g x . Teorema 3.32. Misal F field, I ideal tak nol di F[x], dan unsur ( ) = 〈 ( )〉 jika dan hanya jika [ ]. Ideal ( ) merupakan polinomial tak nol berderajat terendah di I. Teorema 3.33. Semua ideal dari [ ] merupakan ideal utama Teorema 3.34. Misal F field dan ( ) [ ]. 〈 ( )〉 ideal maksimal jika dan hanya jika ( ) irredusibel atas F. Teorema 3.35. 〈 ( )〉 ideal maksimal jika dan hanya jika [ ]/〈 ( )〉 field. 3.6. Perluasan Field Definisi 3.36. Jika E field yang memuat subfield F, maka E disebut perluasan field dari F. Definisi 3.37. Misal E perluasan field dari field F dan c E . c disebut algebraic atas F jika f c 0 untuk f x F x yang tak nol. 9 10 c E F Gambar 1. Perluasan Field F Definisi 3.38. Misal E perluasan field dari field F dan c E algebraic atas F. Polinomial monik p x merupakan polinomial irredusibel dengan akar c atas F dinotasikan dengan irr c, F dan derajat dari polinomial irredusibel dengan akar c atas F dinotasikan dengan deg c, F Teorema 3.39. Misal F subfield dari field E, c E (indeterminate). Pemetaan c : F x E yang dan x tak tentu diDefinisikan dengan c f x f c dimana f x a0 a1 x ... an x n , f x F x merupakan homomorfisma. Homomorfisma c disebut homomorfisma evaluasi dan berlaku c x c serta c a a , a F . Kernel atas homomorfisma ( )= sehingga ( ) merupakan himpunan semua polinomial ( ) ( ( )) = 0. Jadi, kernel( ) berisi semua polinomial [ ] sehingga c merupakan akar dari dinotasikan sebagai ( ). Misalkan kernel( ) , menurut Teorema 2.25 kernel untuk setiap homomorfisma merupakan ideal, sehingga merupakan ideal dari F[x]. Menurut Teorema 2.33 setiap ideal dari F[x] merupakan ideal utama. Karena dan berdasarkan Teorema 2.32, (∃ ( )), merupakan ideal utama = 〈 ( )〉 = { ( ) ( )| ( ) [ ]} dengan ( ) polinomial berderajat terendah. Dengan Definisi 2.30 mudah untuk membuktikan bahwa ( ) merupakan polinomial irredusibel. Misalkan ( ) = ( ). ℎ( ). Sehingga 0 = ( ) = ( ). ℎ( ), ( ), ℎ ( ) ( ) = 0 atau ( ) = 0 dimana . Hal ini tidaklah mungkin, karena berderajat terendah di dalam . Sehingga ( ) merupakan polinomial ( ), ℎ( ) merupakan polinomial berderajat lebih tinggi dari ( ). Maka menurut Definisi 2.30, ( ) merupakan polinomial irredusibel. Karena setiap konstanta pengali dari ( ) ada di 10 maka 11 ( ) monik. Sehingga dapat disimpulkan bahwa ( ) merupakan polinomial minimum dari c atas F. Lalu bagaimana dengan Range dari Range = { ( ( ))| ( ) = { ( )| ( ) ? [ ]} [ ]} Dari penjelasan di atas diperoleh : [ ] → ( ) merupakan epimorfisme, = 〈 ( )〉 dengan ( )polinomial irredusibel. Dengan menggunakan Teorema dasar homomorfisme, maka [ ]/〈 ( )〉 ≃ ( ). Menurut Teorema 2.34, jika ( ) polinomial irredusibel maka 〈 ( )〉 merupakan ideal maksimal. Dan berdasarkan Teorema 2.35 dapat disimpulkan bahwa field. Karena [ ]/〈 ( )〉 ≃ ( ), maka [ ]/〈 ( )〉 merupakan ( ) juga merupakan field. Teorema 3.40. Misal F field dan p x polinomial tak konstan di F x . Ada suatu perluasan field E dari F dan unsur c di E sehingga c akar dari p x . Definisi 3.41 V himpunan, F field, operasi di V yaitu penjumlahan dan perkalian skalar. V disebut ruang vektor atas F jika memenuhi aksioma berikut: 1. Untuk setiap a , b V terdapat tunggal c V sehingga tertutup terhadap penjumlahan: a b c . 2. Untuk setiap a , b , c V bersifat asosiatif: a b c a b c . 3. 4. 5. Terdapat tunggal identitas 0 V , untuk setiap a0 0a a . Untuk setiap a V terdapat tunggal invers a b b a 0 , b a . Untuk setiap a , b V bersifat komutatif: a b b a . a V sehingga b V sehingga 7. Untuk setiap k F dan setiap a V terdapat tunggal b V sehingga tertutup terhadap perkalian: ka b . Untuk setiap k F dan setiap a , b V , k a b ka kb . 8. Untuk setiap k , l F dan setiap a V , k l a ka la . 9. Untuk setiap k , l F dan setiap a V , kl a k la . 6. 11 12 10. Untuk setiap a V , 1a a ; 1 unsur identitas di F , . Definisi 3.42. Misal E perluasan field dari field F. Jika E ruang vektor atas F berdimensi hingga n, maka E disebut perluasan hingga berderajat n atas F. Derajat E atas F sama dengan n dinotasikan E : F n . Definisi 3.43. Jika field E dibangun oleh unsur satu c atas field F: E F c , maka E disebut perluasan tunggal dari F dan unsur c disebut unsur primitif atau akar primitif untuk perluasan. Teorema 3.44. Misal E F c dengan c E algebraic atas F, dan deg c, F n , n 1 . Setiap unsur dari E F c dapat dinyatakan secara unik dalam bentuk b0 b1c1 ... bn 1c n 1 , dimana bi F x . Teorema 3.45. Derajat dari ( ) atas F sama dengan derajat dari polinomial minimum dari c atas F. + 1 atas Sebagai contoh, i merupakan akar dari polinomial irredusibel + 1 mempunyai derajat 2, menurut Teorema 2.44, [ ( ): ] = 2 dengan R[x]. basisnya {1, i}. Setiap unsur dalam R[i] merupakan kombinasi linear dari 1 dan i yang berbentuk { + | , + dimana , . dan dinotasikan dengan ( )= }. Teorema 3.46. Misalkan berderajat m, maka ( ) [ ] merupakan polinomial irredusibel [ ]/〈 ( )〉 adalah finite field berderajat . Operasi penjumlahan polinomial dan operasi perkalian polinomial dilakukan dalam modulo ( ). Teorema 3.47. Misal E perluasan field dari field F dan c E algebraic atas F. Jika deg c, F n , maka F c ruang vektor atas F berdimensi-n dengan basis 1, c, c ..., c . 2 n 1 Lemma 3.48. Misal { , { , ,…, } basis dari ruang vektor K atas F dan } basis dari ruang vektor E atas K. Maka himpunan perkalian ,…, , merupakan basis dari ruang vektor E atas field F. 12 13 BAB III TUJUAN DAN MANFAAT PENELITIAN 3.1. Tujuan Penelitian Dalam penelitian ini peneliti mencoba mengkonstruksi algoritme aritmetik (5 ) didasarkan pada sifat bahwa (5 )∗ merupakan grup siklik yang dibangkitkan dari akar primitif. Selain itu, peneliti ingin mengukur tingkat efisiensi algoritme hasil konstruksi. 3.2. Manfaat Penelitian 1. Manfaat teoritis Manfaat yang bisa didapat dari penelitian ini adalah memberikan pemahaman baru bahwa materi kuliah aljabar abstrak dapat diaplikasikan ke dalam dunia komputer diantaranya ilmu kriptografi 2. Manfaat Praktis Manfaat dari penelitian ini adalah : a. Algoritme hasil konstruksi dapat dipakai pada operasi pembuatan kunci dalam ilmu kriptografi b. Algoritme hasil konstruksi diharapkan mampu memberikan keamanan yang lebih baik dari algoritme-algoritme sebelumnya. 13 14 BAB IV METODE PENELITIAN 4.1 Kerangka Pemikiran Dari permasalahan di atas, maka peneliti mencoba menyelesaikan permasalahan tersebut dengan alur seperti pada Gambar 3.1 berikut : Definisikan fungsi polinomial primitif f ( x) F x Cari akar f 0 Tentukan Basis dan F Konstruksi Finite Field: F F x f ( x) Gambar 3.1: Diagram Alur Kerangka 4.2. Konstruksi Finite Field GF(5m) Dalam melakukan konstruksi finite field GF(5m), yang akan dilakukan adalah sebagai berikut : Langkah 1. Pilih polinomial irredusibel berderajat 5 atas Z5, f(x) Z5[x]. Polinomial f(x) membentuk field Z5[x]/f(x). Kenapa kita memilih polinomial irredusibel ? karena dengan memilih polinomial irredusibel maka ada jaminan bahwa Z5[x]/f(x) merupakan field. Hal ini dijamin oleh proposisi 31. Langkah 2. Berdasarkan teorema 62, definisikan : (5 ) = { + + + ⋯+ 14 | … Ζ } 15 Ambil sembarang ( ), ( ) (5 ); ( )= + + + ⋯+ ( )= + + + ⋯+ Operasi penjumlahan; ( )+ ( ) = ( ( + + ), ( )+( + + ) + ⋯+( ), ..., ( + + ) ) Ζ Operasi perkalian; ( ) ∗ ( ) = ( ). ( ) ( ( )) Langkah 3. Berdasarkan teorema 63, GF(5m) mempunyai sifat grup siklik, sehingga GF(5m) dapat ditulis dengan 1, , ,…, . Setelah kita dapat mengetes irredusibel, kemudian dibuat algoritma membangun polynomial primitif yang kemudian dipilih polynomial primitif yang untuk komputasi baik. Teorema berikut menjelaskan bagaimana cara mendapatkan polynomial primitif secara komputasi Teorema 3.1. Misal p adalah bilangan prima dan misalkan factor-faktor prima yang berbeda dari pm – 1 adalah r1, r2, …, rt maka polynomial irredusibel ( ) = Ζ (x) adalah primitf jika dan hanya jika ∀ , 1 ≤ ≤ berlaku ( ) . ≢1 Langkah 4. Mengkonstruksi aritmetika finite field melalui representasi intejer yang diperoleh dari representasi polinomial primitif pada langkah 3. Setelah melakukan konstruksi aritmetika finite field, kemudian mengetes algoritma yang diperoleh dari segi kecepatan dan kapasitas memori. Untuk melakukan hal tersebut digunakan notasi Big-O atau notasi Asymptotic. 15 BAB V HASIL DAN PEMBAHASAN 5.1. Pembahasan Teorema dan Lemma yang Dibutuhkan Dalam Konstruksi Aritmetik GF (5m) Teori finite field mulai diperkenalkan pada abad ke tujuh dan abad ke delapan, dengan tokoh matematikanya Pierre de Fermat (1601-1665) dan Leonhard Euler (1707-1783) dengan kontribusinya pada khusus teori struktur finite field. Teori secara umum tentang finite field mulai dikerjakan oleh Carl Friedrich Gauss (1777-1855) dan Evariste Galois (1811-1832), teori ini banyak dikembangkan dalam dunia aplikasi matematika, komputer, dan teori komunikasi. (5 ), langkah pertama yang Dalam melakukan konstruksi finite field dilakukan adalah dengan memilih polinomial irredusibel berderajat 5 atas Z , misalkan ( ) ϵ Z [x]. Kenapa kita memilih polinomial irredusibel f(x) ? karena dengan memilih polinomial irredusibel f(x), menurut Teorema 2.35 〈 ( )〉 merupakan field. Menurut Teorema 2.39 menurut { + Teorema | +⋯+ [ ]/〈 ( )〉 ≃ ( ), sehingga [ ]/〈 ( )〉 2.44 , dapat }. ,…, [ ]/ ditulis Langkah sebagai selanjutnya mengetes apakah polinomial irredusibel f(x) tersebut mempunyai akar atau tidak. Hasilnya dipergunakan untuk mengkonstruksi perluasan field F. Teorema berikut menjelaskan bahwa [ ]/〈 ( )〉 ≃ ( ) ≃ (5 ). Teorema 5.1. Misal p x yaitu polinomial irredusibel berderajat n atas Z p . ( )= + + ⋯+ , ,…, merupakan field. Bukti: Diketahui p x yaitu polinomial irredusibel berderajat m atas Z p . Misalkan : [ ]→ ( ( ) = ( ) ) yaitu fungsi yang didefinisikan Fungsi f dibawah operasi dan merupakan homomorfisma karena ( ( )+ ( )) = ( =( = ( ( )+ ( ) ( )) ( ) ( )) + ( ( )) + ( 16 ( )) ( ) ( )) ( ). 17 ( ( ). ( )) = ( ( ). =( ( )) ( ) = ( ( ) ( )). ( ( )). ( ( )) ( )) Fungsi f surjektif karena ambil ( ) sedemikian hingga ( ( )) = ( ) ( ) ( ) ( ) terdapat ( ) [ ] ( ) Kernel dari f yaitu ( ) = ( ) [ ] ={ ( ) ( ) =0 [ }| ( ) ( ) = 0} = 〈 ( )〉 Karena fungsi f homomorfisma dan surjektif maka f epimorfisma. Selanjutnya dengan memandang Teorema Dasar ). Menurut Teorema 2.35 F x ( [ ]/〈 ( )〉 ≅ homomorfisma maka p x ( field maka terbukti ) juga field. Akibat dari teorema di atas, maka (5 ) = { 2. + dengan basis standar {1, , m 3. field GF(5 ) { , | +⋯+ , } ,…, (5 ) dapat dipandang sebagai ruang vektor atas field ,…, ,…, }. , sehingga ,…, ]| kita , Misal diberikan field hingga himpunan berdimensi m dapat dipandang sebagai vektor dengan koordinatnya }, (5 ) = {[ (5 ) (5 ) sebagai berikut . sehingga diperoleh representasi 1. field [ ]/〈 ( )〉 ≃ ( ) ≃ ,…, dapat menulis }. (5 ) dan didefinisikan (5 )∗ yaitu (5 ) yang bukan nol dan dinotasikan dengan unsur-unsur (5 )\{0}. Dua teorema berikut menjelaskan bahwa (5 )∗ merupakan grup siklik multiplikatif dan mempunyai generator c yang merupakan unsur primitif dari Teorema 5.2. (5 ). ( )∗ merupakan grup siklik multiplikatif ber order − 1. Bukti: Dari Definisi field Karena ( ( )∗ merupakan grup multiplikatif. Misal )∗ ber order − 1 maka ci mempunyai paling banyak nilai yang berbeda. r Z dengan 1 ≤ ≤ − 1 sedemikian sehingga ( )∗ −1 18 c r i ci c r ci c i c i c i c r ci c i 1 (Sifat Assosiatif) cr 1. Dapat disimpulkan r Z minimum sehingga O c r . Pilih c sehingga r sebesar mungkin. Akan ditunjukkan order l dari sembarang )∗ ( yaitu membagi r. Untuk sembarang prima , misal r a r ' dan l b l ' dimana r ' dan l ' tidak dapat dibagi oleh . Maka c a mempunyai a order r ' , l ' mempunyai order b , dan c l ' mempunyai order b r ' . Dari sini diperoleh b a atau r tidak maksimal. Dapat disimpulkan setiap pangkat prima pembagi dari l juga pembagi dari r dan l r . )∗ memenuhi persamaan x r 1 0 . Artinya x r 1 dapat Maka setiap ( dibagi oleh x . Karena ∃ −1 maka diperoleh = ( )∗ , ≥ − 1 tetapi F * ≤ −1 x x p n 1 1 dan. )∗ = ( , − 1. , ,…, Sehingga , diperoleh =1 F * Teorema 5.5. Sembarang ( ) memuat suatu unsur primitif atau akar primitif. Bukti: Misal ( ) field berhingga berorder . Ambil c sebagai generator grup siklik ( )∗ . Dari Definisi 2.43 maka c merupakan unsur primitif atau akar primitif. Karena (5 )∗ akibatnya (5 )∗ merupakan sehingga grup siklik (5 )∗ = 〈 〉 = 1, , (5 ) = 0, 1, , ,..., polinomial, dan representasi integer dalam + +2 ,..., . Sebagai . Tabel berikut ini menunjukkan adanya hubungan antara representasi elemen polinomial primitif ( ) = multiplikatif, maka terdapat primitif, representasi basis (5 ) yang dibangun oleh 19 Tabel 1. finite field No. Elemen primitif ( ) Representasi Basis Integer 1 0 0 0 2 =1 1 1 3 5 4 3+4 23 5 2+4 22 6 2+3 17 7 4+4 24 8 2 2 9 2 10 10 1+3 16 11 4+3 19 12 4+ 9 13 3+3 18 14 4 4 15 4 20 16 2+ 7 17 3+ 8 18 3+2 13 19 1+ 6 20 3 3 21 3 15 22 4+2 14 23 1+2 11 24 1+4 21 25 2+2 12 20 Kenapa kita perlu membahas polinomial minimum ? Karena polinomial minimum menjamin bahwa polinomial tersebut adalah irredusibel dan jika berunsur primitif merupakan polinomial primitif. polinomial primitif inilah yang (5 ). akan kita gunakan dalam mengkonstruksi algoritme aritmetik Definisi 5.4. polinomial minimum M x dari c atas Z p merupakan polinomial monik berderajat terendah dengan koefisien dari Z p sehingga M c 0 . Teorema 5.5. Misalkan m(x) adalah polinomial minimum dengan unsur α dalam finite field GF(pm). Maka (i) m(x) irredusibel (ii) jika α akar dari polinomial f(x) dengan koefisien didalam GF (p), maka m(x) membagi f(x) − (iii) m(x) membagi (iv) derajat (v) Polinomial minimum berunsur primitif dari ( )≤ ( ) yang berderajat m ( ) = ( ) ( ). Sebagai akibatnya merupakan polinomial primitif. Bukti : (i) Jika m(x) redusibel, maka ( ) = 0. Karena tidak memuat pembagi nol, maka ( ) = 0 atau ( ) = 0. Hal ini kontradiksi dengan Definisi 5.4. Sehingga dapat disimpulkan bahwa ( ) polinomial irredusibel. (ii) Dengan menggunakan algoritma pembagian, ( ) = ( ) ( ) + ( ), dimana derajat dari ( ) lebih rendah daripada derajat ( )= ( ) = 0, ( ) = 0. Dan karena derajat dari ( ) lebih rendah daripada derajat ( ), maka ( ) ≈ 0. (iii) Dari pembuktian sifat (ii) terbukti m(x) membagi (iv) Karena Ada + ( ). Karena ( ) dan ( ) ruang vektor berdimensi m atas + 1 sembarang anggota yaitu {1, , … , + ⋯+ ( ). Maka ∑ − = 0 dan terdapat } yang tak bebas linear. = {1, 2, … , } sehingga merupakan polinomial berderajat ≤ mempunyai akar c sehingga derajat ( )≤ ( ). yang 21 ( (v) Misal ) unsur primitif. Menurut sifat 1, polinomial minimum ( ) berderajat d merupakan polinomial irredusibel. Dengan Teorema 5.1, gunakan ( ) untuk membangun field F ber order ( memuat c dan semua unsur dari menurut sifat 4, derajat ), maka ( ) ≤ , mengakibatkan . Karena F ≥ . Selanjutnya = Dua teorema berikut menegaskan tentang eksistensi dan ketunggalan dari finite field (5 ). Teorema 5.6. Semua field hingga ber order adalah isomorfik. Bukti: Misal F dan G field ber order dan . Misal ( ) polinomial minimum dari F ( ) polinomial minimum lain dari G . Menurut Teorema 5.3, F dan G merupakan unsur primitif atau akar primitif dari F dan dari G, dan dengan Teorema 5.5.5 merupakan polinomial primitif. Dengan Teorema 5.5.3,. ( )| − . Dan dari Teorema 5.5.4, derajat ( )≤ sehingga dengan Teorema 5.1, field F dan G dapat dianggap memuat semua polinomial dalam dan berderajat n 1 , yaitu memuat polinomial modulo ( ). Maka dapat dikatakan pemetaan merupakan isomorfima pemetaan F G . ≥ 1, maka ada Teorema 5.7. Untuk sembarang p prima dan bilangan bulat tunggal field ber order yang dinotasikan dengan ( ). Bukti: Misal ( ). perluasan field hingga dari Untuk = 1, GF p Z p . Untuk > 1 bentuk F1 GF p . Akan dibuktikan ( ( ).. ) field yang memuat semua akar dari . Misal f1 x faktor irredusibel berderajat 2 dari − − atas F1 . Menurut Teorema 5.1 dengan menggunakan p x f1 x dapat diperoleh field baru F2 . Misal f 2 x faktor irredusibel berderajat 2 dari − atas F2 . Menurut Teorema 5.1 dengan menggunakan p x f 2 x dapat diperoleh field baru F3 . ….sampai diperoleh field Fr yang unik, memuat semua akar dari − . 22 ( )= Sehingga diperoleh: − = ( ) ( )… ( ) ( Berikut ini merupakan Teorema dan Lemma sub field dari ). Lemma 5.8. Jika n, r, s bilangan bulat dengan n 1, r 1, s 1 , maka n s 1 n r 1 jika dan hanya jika s r . Bukti: Misal r Qs R dimana 0 R s . Qs n r 1 n Qs R 1 1 nr 1 R n n . ns 1 ns 1 ns 1 ns 1 Maka nQs 1 selalu dapat dibagi dengan n s 1 . Teorema 5.9. i) GF p r memuat sub field (isomorfik dengan ) GF p s jika dan hanya jika s r. s ii) Jika c GF p r , maka c GF p s jika dan hanya jika c p c . Untuk sembarang field jika c 2 c , maka c yaitu 0 atau 1. Bukti: i) ) Misal c GF p s merupakan unsur primitif maka c p s 1 1 sehingga O c p s 1 Karena GF p s sub field GF p r maka c GF p r sehingga c p r 1 1 . Berdasarkan sifat dasar ketiga dalam Ringkasan 2.3, maka p s 1 p r 1 dan selanjutnya dengan Lemma 5.11 mengakibatkan s r . ) Misal c GF p s merupakan unsur primitif maka c p s 1 1 sehingga O c p s 1 . Dengan Lemma 5.11, karena s r diperoleh p s 1 p r 1 . Karena p s 1 p r 1 dan GF p s sub field GF p r akibatnya c p sehingga c GF p r . s 1 1 23 ii) ) Diketahui c GF p r , maka c GF p s . Dari Teorema Fermat setiap s unsur c GF p s memenuhi c p c . s ) Misalkan c GF p r dan diketahui c p c . Dari i) karena GF p s sub field GF p r maka c GF p s . = ↔ − = 0 ↔ ( − 1) = 0. Karena merupakan Daerah Integral dan tidak memuat pembagi nol diperoleh c 0 atau. − 1 = 0 ↔ =1 Dari teorema di atas, kita bisa mengetahui bahwa sub field dari adalah (5 ), (5 ), (5 ), (5 ), (5 ), dan (5). Secara (5 ) jelas dapat digambarkan sebagai berikut : (5 ) (5 ) (5 ) (5 ) (5 ) (5) Gambar 2. Subfield dari (5 ) Untuk mencari polinomial monik dan irredusibel dalam (5 ) digunakan teorema berikut ini. Teorema 5.10. − = perkalian semua polinomial monik, irredusibel atas Z p yang derajatnya membagi m. Bukti: ) Misal M x polinomial irredusibel atas Z p berderajat d, dimana | . Untuk kasus M x x trivial. Asumsi M x x . Gunakan M x untuk membuat field, maka M x merupakan polinomial minimum. Misalkan ( ) = − dan dari Teorema5.5.3: ( )| − . Dengan memandang Lemma 24 5.8, 1 | karena − 1| maka ( )| − 1. Oleh karena itu −1 − dan − ↔ − − . ) Misal M x pembagi dari − , polinomial irredusibel, dan berderajat d. Akan ditunjukkan | . Asumsi. ( )≠ → −1 ( ) − 1. Gunakan M x field GF p d ber order p d . Misal c GF p d akar dari untuk membuat M x dan GF p d merupakan unsur primitif dapat dinyatakan a0 a1c a2c 2 ... ad 1c d 1 Karena c akar dari M x . maka = . ↔ (*) (menurut Teorema 2.44) ( )=0↔ maka − =0↔ = 1. Dari (*) dan Teorema 2.16: − diperoleh =0↔ = ↔ a b = = p ap bp ↔ Berdasarkan sifat dasar ketiga dalam Ringkasan 2.5 maka ↔ = 1. pd 1 pn 1 . Selanjutnya dengan Lemma 5.8 diperoleh d n . Dari teorema di atas kita dapat mencari polinomial irredusibel dan polinomial (5 ) sebagai berikut : monik dalam Untuk =1 ( )= − = +4 = ( + 4) = ( + 1)( + 4) = ( + 2)( + 3)( + 1)( + 4) Untuk =2 ( )= − = +4 = ( = ( + 1)( + 4) ( + 2)( + 3)( = ( + 3)( +2 + 4)( + 1)( + 4) = ( + 3)( + 4) + 1)( + 4) + 2)( +3 = ( + 2)( + 3)( + 1)( + 1)( + 4)( ( + 2)( ( + 2 + 4)( Dan seterusnya + 4 + 1)( + 3 + 4)( + + 2)( + 4)( + 3) + + 1) + 4 + 2) + 2) 25 Untuk memeriksa bahwa polinomial yang diperoleh merupakan polinomial irredusibel dan polinomial primitif digunakan dua teorema berikut ini. Teorema 5.11. Jika p adalah prima dan m adalah intejer positif, maka berlaku : 1) Produk dari semua polinomial irredusibel monik dalam Ζp[x] yang derajatnya − . membagi m atau faktor dari m sama dengan 2) Misalkan f(x) adalah polinomial berderajat m dalam Ζp[x], maka f(x) ( ), irredusibel atas Ζp[x] jika dan hanya jika − = 1, untuk setiap 1 ≤ ≤ Bukti : 1) Misalkan f(x) polinomial irredusibel atas Ζp berderajat m, dimana | . Untuk kasus f(x) = x trivial. Asumsi ( ) ≠ . Gunakan f(x) untuk membuat field GF(pm), maka f(x) merupakan polinomial minimum. Misalkan ( ) = dan dari Teorema 5.5.4 maka | maka Lemma 5.8 dan karena ( ) − 1. Dengan memandang − 1| − 1 dan − 1. Dengan demikian ( ) −1 − | . Asumsi ( ) ≠ ditunjukkan bahwa ( → ( ) − 1. Gunakan f(x) = ↔ + ) adalah akar +⋯+ ( )=0↔ adalah akar dari f(x), maka (*). Karena α − =0↔ =0↔ = ↔ . + = . Selanjutnya berdasarkan Lemma 5.8 maka diperoleh ↔ =1 − 1| membagi k. Jadi − 1. | . 2) Berdasarkan Teorema 5.11 1), bahwa setiap intejer positif − ↔ sehingga diperoleh : Berdasarkan sifat ketiga pada Ringkasan 2.5 maka polinomial = = 1. Dari (*) dan Teorema 2.17 maka ( + ) = − ( ) merupakan unsur primitif maka menurut Teorema 2.43 dapat dinyatakan sebagai = . ↔ − . Sebaliknya misalkan untuk membuat field GF(pm) ber order pm. Misalkan . − − , polinomial irredusibel dan berderajat m. Akan f(x) pembagi dari dari f(x) dan − ≥ 1, maka adalah produk dari semua irredusibel monik berderajat ( − , ( )) adalah pasti produk dari semua faktor linear f(x). Jika f(x) tidak mempunyai faktor linear maka ( − , ( )) 26 adalah pasti produk dari semua faktor irredusibel quadratik dari f(x). Jika f(x) tidak irredusibel maka harus dapat dibagi oleh beberapa polinomial /2 dan jika g(x) adalah faktor irredusibel berderajat paling banyak ≤ /2. Jadi irredusibel dari f(x) berderajat minimum (misalkan k), maka − , ( )) ≠ 1. ( Hal ini kontradiksi dengan − , ( ) = 1, Sebaliknya jika f(x) adalah irredusibel, maka untuk setiap 1 ≤ ≤ pengandaian. . Jadi untuk mengetes f(x) adalah irredusibel, hal ini − , ( ) = 1 untuk setiap intejer positif 1 ≤ cukup dites ≤ . Dengan demikian dapat disimpulkan bahwa f(x) adalah irredusibel Teorema 5.12. Misalkan p adalah bilangan prima dan misalkan mempunyai faktor-faktor prima yang berbeda dari pm-1 adalah r1, r2, …, rt maka polinomial ( ) ( )[ ] adalah berlaku ≠ 1( irredusibel 1≤ ≤ primitif jika dan hanya jika untuk setiap ( )) Bukti : − 1 adalah Misalkan p adalah bilangan prima dan misalkan faktorisasi dari r1, r2, …, rt , dimana r1, r2, …, rt adalah polinomial irredusibel atas GF(p)[x]. Akan dibuktikan bahwa jika x adalah unsur primitif atas GF(pm)* maka berlaku ( ) untuk setiap 1 ≤ ≤ ≠1 Misalkan d dinotasikan order dari x. Kita tahu bahwa d adalah pembagi dari − 1 dan x adalah primitif jika dan hanya jika Pertama, andaikan bahwa ≤ 1 − 1/ sehingga pasti ( ) untuk 1 ≤ ≤ dan juga − 1 dan < − 1. Sebaliknya, andaikan bahwa ≠ ≠ − 1. Karena d adalah pembagi dari − 1 maka terdapat polinomial irredusibel ri dimana 1 ≤ ≤ sedemikian sehingga ri adalah pembagi dari ( adalah pembagi ( − 1. ( )) untuk beberapa i, maka jelas bahwa ≡ 1( ≠ = − 1)/ . Tetapi ini berakibat bahwa d − 1)/ . Dengan demikian kontradiksi dengan pernyataan bahwa ≠1 ≡ ( ) ≡ 1( ( )). Hal ini 5.2. Konstruksi Algoritme Aritmetik GF(5m) (5 ) dapat Seperti yang telah dijelaskan dalam Bab III, bahwa direpresentasikan ke dalam bentuk polinomial dan vektor. Demi kemudahan komputasi dalam penelitian ini digunakan representasi vector. Berikut ini diberikan ilustrasi operasi penjumlahan dengan representasi vektor. = (0, 1, 2, 3) sebagai representasi dari Misalkan diberikan vektor ( )= +2 +3 ( )=2+2 +3 + dan + = (2, 2, 3, 1) sebagai reprentasi dari vektor (5 ), maka dalam = (0, 1, 2, 3) + (2, 2, 3, 1) = (0 + 2) 5, ( 1 + 2) 5, ( 2 + 3) 5, ( 3 + 1) 5 = (2, 3, 0, 4). Untuk mengkonstruksi aritmetik GF (5m) dalam penelitian ini langkah pertamanya adalah dengan memilih polinomial primitif berderajat m atas Z5, misal ( )∈ [ ] dimana ( )= + +⋯+ sehingga diperoleh unsur primitif α dengan M(α) = 0. Kemudian, tentukan basis dari GF(5m) sebagai ruang vektor atas Z5, yaitu {1, α1, α2, …, αm-1}. Dengan demikian, diperoleh (5 ) = { himpunan + , ,…, (5)}. ∈ (5 ) direpresentasikan ke dalam bentuk ruang Kemudian semua unsur dari vektor berdimensi m atas | +⋯ . Tabel berikut ini menunjukkan adanya hubungan antara representasi elemen primitif, representasi basis polinomial, representasi vektor penta, dan representasi integer dalam polinomial primitif ( )= + (5 ) yang dibangun oleh +2 Tabel 2. Representasi finite field No. Elemen primitif ( ) Representasi Basis Vektor penta Integer 1 0 0 (0, 0) 0 2 =1 1 (1, 0) 1 (0, 1) 5 3 4 3+4 (3, 4) 23 5 2+4 (2, 4) 22 28 6 2+3 (2, 3) 17 7 4+4 (4, 4) 24 8 2 (2, 0) 2 9 2 (0, 2) 10 10 1+3 (1, 3) 16 11 4+3 (4, 3) 19 12 4+ (4, 1) 9 13 3+3 (3, 3) 18 14 4 (4, 0) 4 15 4 (0, 4) 20 16 2+ (2, 1) 7 17 3+ (3, 1) 8 18 3+2 (3, 2) 13 19 1+ (1, 1) 6 20 3 (3, 0) 3 21 3 (0, 3) 15 22 4+2 (4, 2) 14 23 1+2 (1, 2) 11 24 1+4 (1, 4) 21 25 2+2 (2, 2) 12 Bagaimana memilih polinomial primitif? Sebagaimana telah dijelaskan sebelumnya, polynomial primitif adalah polinomial irredusibel yang akarnya adalah generator dari GF(5)*. Oleh karena itu, diperlukan pemilihan polinomial irredusibel terlebih dahulu. Sesuai dengan Teorema 3.14, diperoleh Algoritme pengetesan polinomial irredusibel sebagai berikut : 29 Algoritme 5.1. Pengetesan polinomial irredusibel Deskripsi : Mengetes Vektor Apakah Irredusibel atau Redusibel Input : Vektor A Output : True atau False = ( /2) dibulatkan ke bawah 1. a = banyaknya unsur A – 1, 2. W = [0, 1] 3. Untuk I dari 1 sampai m, lakukan secara berulang : 3.1. W = W pangkat 5 modulo A 3.2. U= Jumlahkan W dengan [0, 4] menggunakan algoritme 5.4 3.3. H = FPB(U,A) 3.4. h = banyaknya unsur H 3.5. jika h > 1, maka return(false) 4. Return (True) Setelah kita mendapatkan polinomial irredusibel, kemudian memeriksa apakah polinomial irredusibel yang didapatkan tersebut merupakan polinomial primitif atau bukan. Untuk memeriksa polinomial irredusibel adalah primitif, digunakan Algoritme 5.2. Berdasarkan Teorema 3.15 diperoleh Algoritme 5.2 sebagai berikut : Algoritme 5.2. Pengetesan polinomial primitif Deskripsi : Mengetes Vektor Irredusibel Apakah Primitif atau Bukan Input : Vektor A Output : True atau False 1. m = banyaknya unsur A – 1, h = 5m – 1 2. F = faktorkan h 3. a = banyaknya unsur F 4. Untuk i dari 1 sampai a, lakukan secara berulang 4.1. k = h/i 4.2. H = [0, 1] pangkat k modulo A 4.3. Jika H = [1], maka return(false) 5. Return(True) 30 Untuk mempercepat komputasi, dipilih polinomial primitif yang bersuku (5 ) terkecil. Hal ini sangatlah beralasan, sebab operasi pada finite field dilakukan dalam modulo f(x), dimana f(x) merupakan polinomial primitif. Dengan memilih polinomial primitif bersuku terkecil akan mengakibatkan proses komputasi yang dijalankan lebih cepat dibandingkan dengan menggunakan polinomial primitif biasa. Adapun polinomial primitif yang sudah diperoleh dapat dilihat di Lampiran I. 5.2.1. Penjumlahan Polinomial Seperti telah dijelaskan di atas, solusi yang digunakan di sini dengan menggunakan representasi vektor penta. Misal diberikan dua sembarang fungsi ( )= polinomial + +⋯ dan ( )= + +⋯ maka bentuk field penjumlahannya adalah sebagai berikut : ( )+ ( )= ( Fungsi =[ polinomial + )+( a(x) + ) direpresentasikan + ⋯ +( + sebagai vektor penta polinomial b(x) sebagai vektor , ,…, ], =[ , ,…, ]. Operasi penjumlahan yang digunakan di sini yaitu instruksi sedangkan fungsi xor. Sebagai contoh, diberikan sembarang fungsi polinomial 2 ) +4 dan ( )=2+ ( )=3+2 + . Maka bentuk representasi vektor penta ( ): = [3, 2, 2, 0, 4] ( ): = [2, 0, 0, 0, 1]. Untuk menghemat pemakaian ruang yang besar dalam dan bentuk representasi vektor penta komputasi, maka dilakukan reduksi nol pada vektor A atau B. Pada contoh di atas, vektor A dan vektor B memiliki elemen yang sama, maka penjumlahannya sebagai berikut : C = A+B = [(3+2) mod 5, (2+0) mod 5, (2+0) mod 5, (0+0) mod 5, (4+1) mod 5] = [0, 2, 2, 0, 0]. Setelah diperoleh Vektor C, = [0, 2, 2]. kemudian dilakukan reduksi nol sehingga : 31 Algoritme 5.3. Penjumlahan polinomial Deskripsi : Menambahkan vektor A dan B dalam modulo 5 Input =[ : Vektor , ,…, ,…, ] ], vektor =[ , ,…, 5, … , ( + ], dan intejer positif m Output =[ , : Vektor 1. Tentukan vektor A, dan vektor B 2. Jika 3. Jika B= [0], maka C = A 4. Jika s=t, maka 4.1. = [0], maka C = B = {[( ) + ) 5, ( + ) 5]} 4.2. Lakukan reduksi nol dengan menggunakan algoritme 5.4 5. Jika s < t, maka 5.1. = {[( Lainnya 6. + = {[( ) + 5, ( ) + 5, ( ) + 5, … , ) 5, … , 5]} 5]} Return (C) Pembentukan Algoritme 5.3. ini didasarkan pada Teorema 2.45. Keistimewaan Algoritme ini adalah pada setiap melakukan operasi selalu melibatkan Algoritme Reduksi Nol. Algoritme Reduksi Nol dapat mengurangi jumlah operasi pada konstruksi algoritme-algoritme aritmetik berikutnya sehingga secara otomatis akan mampu mempercepat proses komputasi. Hal ini mengakibatkan banyaknya operasi pada Algoritme 5.4 ini dapat diminimalkan sehingga akan mempercepat proses komputasinya. Algoritme 5.5. Algoritme Reduksi Nol Deskripsi : Mereduksi nol pada posisi sebelah kanan Input : Vektor T dan bilangan posotof t. Output : Vektor 1. T = R, t = banyaknya unsur T 2. Untuk j selama T[t] = 0 dan t >1, lakukan berulang 2.1. Ganti unsur ke-j dari vektor T dengan himpunan kosong 2.2. t = t - 1 3. Return (R) 32 Algoritme Reduksi Nol di atas jika digunakan pada sebuah algoritme dapat mengurangi jumlah operasi pada algoritme itu sendiri sehingga secara otomatis akan mampu mempercepat proses komputasi. Cara kerja Algoritme ini adalah menghilangkan anggota sebuah vektor yang terletak di sebelah kanan dan bernilai nol. 5.2.2. Perkalian Polinomial Dua algoritme berikut ini yaitu Algoritme 5.5 dan Algoritme 5.6 digunakan untuk menunjang Algoritme Perkalian sehingga proses komputasi yang digunakan akan lebih baik daripada melakukan perkalian biasa. Algoritme 5.5. Kelipatan vektor Deskripsi : Mengalikan vektor A dengan skalar n Input : Vektor Output : Vektor =[ , ,…, ], dan intejer positif {0, 1, . . . , 4} 1. Jika n = 0, maka return([0]) 2. Jika n = 1, maka return(A) 3. Selainnya =( ∗ ) 5 4. Return (C) Algoritme 5.5 ini sangatlah baik karena hanya melibatkan perkalian vektor dengan skalar. 33 Algoritme 5.6. Geser satu Deskripsi : Menggeser vektor A satu langkah Input : Vektor Output : Vektor =[ , ,…, ], dan intejer positif 1. L = DatP[m] 2. t = banyaknya unsur vektor A 3. Jika t < m, maka tambahkan 0 di sebelah kiri pada vektor A, selainnya : 4. Tambahkan 0 di sebelah kiri pada vektor A yang telah direduksi pada unsur ke-m 5. Lakukan reduksi nol menggunakan Algoritme 5.3 6. Lipatkan vektor L dengan unsur ke-t pada vektor A menggunakan Algoritme 5.5 7. Jumlahkan hasil dari langkah ke-5 dengan hasil dari langkah ke-6 menggunakan Algoritme 5.4 8. Return(C) Keistimewaan dari algoritme ini adalah hanya mengubah strukturnya saja dan menggeser bersifat konstan. Oleh karena itu apabila digunakan pada suatu algoritme akan mempercepat algoritme tersebut. Dan selanjutnya algoritme ini akan digunakan dalam Algoritme Perkalian. Misalkan ( )= + diberikan +⋯ dua dan sembarang ( )= fungsi + +⋯ polinomial serta diberikan fungsi polinomial primitif p(x) sehingga bentuk field perkalian dengan modulo yaitu ( ). ( ) = ℎ( ) dimana ℎ( ) = ( 0 . 0) + ( 0. ( ) 1 + 1. 0 ) 1 +⋯+ . Pada Algoritme 5.7, proses pertama yang dilakukan adalah mengetes apakah kedua vektor mempunyai unsur yang sama ataukah berbeda. Jika kedua vektor mempunyai unsur yang berbeda, maka vektor yang mempunyai unsur yang lebih banyak ditempatkan sebagai vektor pertama. Hal ini bertujuan agar proses 34 perhitungan dalam komputasinya lebih sedikit. Selanjutnya pada algoritme ini melibatkan algoritme kelipatan vektor, algoritme geser satu, dan algoritme penjumlahan. Algoritme 5.7. Perkalian Polinomial Deskripsi : Mengalikan dua vektor, kemudian hasil perkaliannya dimoduluskan dengan vektor primitif P Input : Vektor =[ , ,…, ], vektor =[ , ,…, ], dan intejer positif m Output : Vektor 1. = [ , , … , ] dan c = nops(R). Tentukan vektor A, vektor B, s = banyaknya unsur A, dan t = banyaknya unsur B = [0], atau B= [0], maka return([0]) 2. Jika 3. Jika s < t, maka 3.1. S=B, T=A, a=s, s=t, t=a 3.2. R= Lipatkan vektor T dengan (op(1,S)) menggunakan algoritme 5.5. 3.3. Untuk j dari 1 sampai (s – 1 ), lakukan 3.3.1. T = Lakukan Geser satu dengan algoritme 5.6 3.3.2. V = Lipatkan vektor T dengan (op(j+1,S)) menggunakan algoritme 5.5. 3.3.3. R = Jumlahkan vektor R dan V dengan menggunakan algoritme 5.4 secara rekursif 4. Return (R) Pembentukan Algoritme 5.7. ini didasarkan pada Teorema 2.45. Karena pada algoritme ini melibatkan Algoritme Kelipatan Vektor, Algoritme Geser Satu, dan Algoritme Penjumlahan yang melibatkan Algoritme Reduksi Nol maka dapat dikatakan bahwa algoritme ini cukup baik karena tidak membutuhkan ruang yang cukup besar dan proses komputasinya cukup cepat. 35 5.2.3. Invers Polinomial Untuk menunjukkan bahwa setiap elemen tak nolnya mempunyai invers, diambil [ ( )] [ ]/〈 ( )〉 dengan [ ) ≠ 0]. Karena [1] merupakan elemen identitas terhadap operasi perkalian, maka akan ditunjukkan bahwa terdapat [ℎ( )] [ ]/〈 ( )〉 ( ). ℎ( ) ≡ 1 f(x) tidak membagi sedemikian hingga [ ( )] atau ( ) . Karena f(x) merupakan polinomial irredusibel dan ( ), maka ( ), ( ) = 1. Akibatnya terdapat polinomial s(x) dan t(x) sedemikian hingga ( ). ( ) ≡ 1( [ ( )]. [ℎ( )] = [1] ( ). ( ) + ( ) ( ) = 1 atau ( )). Jadi diperoleh bahwa [ ( )]. [ ( )] = [1] sehingga = [ ( )]. Untuk menentukan invers dari vekrtor A dapat menggunakan Algoritme 5.10. Algoritme ini didasarkan pada Definisi 2.17. Algoritme 5.8 dan Algoritme 5.9 digunakan untuk mendukung Algoritme Invers Polinomial. Algoritme 5.8. Negasi vektor Deskripsi : Mengubah vektor A dengan negasinya Input : Vektor Output : Vektor =[ , =[ , ,…, ,…, ], ] 1. Petakan unsur x pada vektor A dengan –x 2. Return (C) Algoritme ini digunakan untuk memperoleh invers penjumlahan dari masingmasing anggotanya. Adapun invers dari masing – masing anggotanya adalah sebagai berikut : 1 inversnya 4, karena 1+4 = 0 2 inversnya 3, karena 2+3 = 0 3 inversnya 2, karena 3+2 = 0 4 inversnya 1, karena 4+1 = 0 36 Algoritme 5.9. Pembagian polinomial tanpa modulo m Deskripsi : Membagi dua polinomial tanpa modulo m Input : Vektor Output : Vektor dan vektor = [ , ] dimana vektor Q sebagai hasil pembagian dan vektor R sebagai sisa pembagian 1. Jika S=[0], maka “false” 2. R=T; Q=[0]; r = banyaknya unsur T; s = banyaknya unsur S; g = unsur ke-s dari vektor S 3. 4. Jika s = 1, maka 3.1. Q = lipatkan vektor R dengan operan S 3.2. R = [0] 3.3. Return ([Q, R]) Untuk i selama ≥ , lakukan 4.1. k = r – s; t = unsur ke-r dari vektor R 4.2. h = ( t*g) mod 5 4.3. jika k = 0, maka 4.3.1. K = lipatkan vektor S dengan h 4.3.2. Q = jumlahkan vektor Q dengan [h] 4.4. Selainnya 4.4.1. H = lipatkan vektor S dengan h 4.4.2. K = [seq(0,j=1..k),op(H)] 4.4.3. Q = jumlahkan (Q,[seq(0,j=1..k),h]) 5. K = negasikan vektor K 6. R = jumlahkan vektor K dan vektor R 7. Return ([Q, R]) Algoritme Pembagian di atas merupakan pembagian seperti biasa yang tidak melibatkan polinomial primitif ( ) sebagai modulonya. Algoritme ini sangat baik karena operasi-operasi yang digunakan menggunakan operasi penjumlahan dan operasi kelipatan vektor. 37 Algoritme 5.10. Invers Polinomial Deskripsi : Invers polinomial dari suatu bilangan bulat m Input : Vektor = [ , , … , ], dan intejer positif m Output : Vektor = [ℎ , ℎ , … , ℎ ] dan r = nops(C). 1. S = Negatifkan vektor (DatP(m)) menggunakan algoritme 1.5 2. Jika 3. Jika banyaknya unsur T = 1, maka return (T) 4. RA = [op(S), seq(0, j = 1…(m – t)), 1]; = [0], maka “salah” RB = T; QA = [0]; QB = [1]; 5. L = Bagi vektor RA dan RB menggunakan algoritme 5.9 6. RA = RB 7. RB = Operan kedua dari L 8. Untuk i selama RB tidak nol, maka lakukan langkah berikut berulang-ulang 8.1. Tmp = QA; QA = QB 8.2. H = Kalikan vektor QB dengan op(1,L) menggunakan algoritme 5.7 8.3. R = Negasikan vektor H menggunakan algoritme 5.8 8.4. QB = Jumlahkan vektor Tmp dengan vektor R menggunakan algoritme 5.4 8.5. L = Lakukan pembagian vektor RA dengan vektor RB menggunakan algoritme 5.9 8.6. RA = RB; RB = operan kedua dari L 9. H = Lipatkan vektor QB dengan op(RA) menggunakan algoritme 5.5 10. Return (H) Pada Algoritme 5.10, proses pertama yang dilakukan adalah negatifkan vektor dalam DatP(m) yang berfungsi sebagai polinomial primitif menggunakan Algoritme 5.8. Proses kedua adalah gabungkan vektor dalam DatP(m), vektor QA, dan vektor QB ke dalam vektor RA yang kemudian gunakan Algoritme 5.9 38 untuk menentukan vektor L, yaitu membagi vektor RA dengan vektor RB. Proses selanjutnya adalah selama sisa pembagiannya tidak nol, maka lakukan secara berulang-ulang dengan menggunakan Algoritme operasi rutin yaitu berturut-turut Algoritme 5.7 dan Algoritme 5.8 yang kemudian jumlahkan dengan menggunakan Algoritme 5.5. Proses yang terakhir adalah gunakan Algoritme 5.5 untuk menentukan vektor H. Algoritme Invers Polinomial ini digunakan untuk menghitung invers (5 ) merupakan grup siklik multiplikatif. Algoritme ini perkalian, karena dapat dikatakan sangat baik secara komputasi dikarenakan didalamnya melibatkan Algoritme Perkalian Polinomial, Algoritme Penjumlahan Polinomial, dan Algoritme Kelipatan Vektor. Algoritme-algoritme tersebut selalu melibatkan proses reduksi nol, geser satu, dan polinomial primitif yang digunakan sebagai modulonya menggunakan polinomial primitif yang bersuku kecil. 5.2.4. Pembagian Polinomial Misalkan ( )= + diberikan dua +⋯ dan sembarang ( )= fungsi + +⋯ polinomial a(x) direpresentasikan sebagai vektor penta sedangkan fungsi polinomial b(x) sebagai vektor polinomial =[ , . =[ , ,…, Fungsi ,…, ], ]. Berdasarkan Teorema 2.31, maka kita dapat membuat Algoritme pembagian polinomial (Algoritme 5.5). Pada Algoritme 5.5, langkah pertama adalah menginverskan vektor B dengan Algoritme 5.10, kemudian kalikan vektor A dengan invers vektor B dengan menggunakan Algoritme 5.7 sehingga diperoleh hasil yang diinginkan. Algoritme 5.11. Pembagian Polinomial Deskripsi : Membagi dua polinomial dengan modulo m Input : Vektor =[ , ,…, ], vektor =[ , ,…, ], dan intejer positif m Output : Vektor =[ , ,…, ] 1. iB = Inverskan vektor B menggunakan algoritme 5.10 2. Kalikan vektor A dengan vektor iB menggunakan algoritme 5.7 3. Return (C) 39 Algoritme Pembagian Polinomial ini hanya melibatkan Algoritme Invers Polinomial dan Perkalian Polinomial yang didalamnya melibatkan operasi reduksi nol dan kelipatan vektor yang tentunya membutuhkan ruang yang sedikit dan berakibat pada semakin cepatnya proses komputasi yang dijalankan. 5.2.5. Eksponen Polinomial Aritmetik eksponen polinomial dalam Algoritme 5.12 berfungsi untuk mengalikan dua fungsi polinomial atau lebih dengan modulo m. Yang menjadi kekuatan dari Algoritme 5.12 ini adalah bahwa finite field (5 ) dibentuk dari sifat grup siklik. Algoritme 5.12. Eksponen Polinomial Deskripsi : Mengeksponensialkan polinomial dalam modulo m Input : Vektor = [ , , … , ], intejer x dan intejer positif m Output : Vektor = [ℎ , ℎ , … , ℎ ] 1. p = 5m – 1 2. k = moduluskan (x, p) menggunakan Algoritme 5.13 3. Jika ≥ 0, maka 3.1. X = konversi nilai k dalam basis 2; t = banyaknya unsur X 3.2. G = A; H = [1] 3.3. Jika X1 = 1, maka H = G 3.4. Untuk i mulai dari 2 sampai t, lakukan 3.4.1. G = kalikan vektor G dengan G menggunakan Algoritme 5.7 3.4.2. Jika Xi = 1, maka H = kalikan vektor H dengan G menggunakan Algoritme 5.7 4. n = -k 5. X = konversi nilai n dalam basis 2; t = banyaknya unsur X 6. G = inverskan vektor A dengan Algoritme 5.10; H = [1] 7. Jika x1 = 1 maka H = G 8. Untuk i mulai dari 2 sampai dengan t, lakukan 8.1. G = kalikan vektor G dengan G menggunakan Algoritme 5.7 8.2. Jika Xi = 1, maka H = kalikan vektor H dengan G menggunakan Algoritme 5.7 9. Return (H) ( )= + Misalkan sembarang polinomial + ⋯+ direpresentasikan dalam bentuk vektor =[ , ,…, ] dimana =[ , ,…, ] dan barisan basis dua [0, 1] serta polinomial primitif ( ) berderajat m. Derajat maksimal dari polinomial di sini berlaku sebagai modulus yaitu (5 − 1), 40 sedangkan eksponennya merupakan barisan basis dua yang diperoleh dari input i yang dimoduluskan dengan menggunakan Algroritme 5.13 seperti di bawah ini. Algoritme 5.13. Modulus bilangan negarif Deskripsi : Membagi dua polinomial dengan modulo m Input : integer positif m dan a Output : integer b 1. 2. 3. Hitung = = ( /2), hasilnya dibulatkan ke bawah Jika b > c, maka 3.1. = −( − ) Return(b) 4. 5. Proses selanjutnya jika nilai yang dimoduluskan lebih dari atau sama dengan nol, maka konversi ke dalam basis dua. Jika hasil konversinya sama dengan 1, maka H = A. Jika hasilnya lebih dari sama dengan 2, maka kalikan vektor yang telah dihasilkan dengan algoritme 5.7 secara berulang. Jika hasilnya selain di atas (bernilai negatif), maka negatifkan hasilnya. Lalu lakukan langkah tersebut di atas secara berulang. 41 BAB VI KESIMPULAN DAN SARAN 6.1. Kesimpulan Dari hasil penelitian yang telah dilakukan diperoleh kesimpulan sebagai berikut : 1. Finite field (5 ) dikonstruksi dari polinomial mengkonstruksi algoritme aritmetik primitif. Untuk (5 ) dipilih polinomial primitif yang bersuku terkecil, hal ini akan mengakibatkan proses komputasi yang dijalankan lebih cepat dibandingkan dengan menggunakan polinomial primitif biasa. 2. Algoritme Reduksi Nol digunakan untuk mengurangi jumlah operasi pada sebuah algoritme. Algoritme ini digunakan pada Algoritme Penjumlahan, Algoritme Penjumlahan digunakan dalam Algoritme Perkalian, Algoritme Penjumlahan dan Algoritme Perkalian digunakan dalam Algoritme Invers, dan seterusnya. 3. Algoritme Geser Satu mampu mempercepat proses kerja suatu algoritme, karena pada algoritme ini hanya mengubah strukturnya saja dan menggeser bersifat konstan. Algoritme ini digunakan pada Algoritme Perkalian, Algoritme Perkalian digunakan dalam Algoritme Invers, dan seterusnya. 4. Algoritme aritmetik hasil konstruksi tidak membutuhkan ruang yang besar sehingga cukup cepat dalam komputasinya karena yang dipakai sebagai modulo digunakan polinomial primitif bersuku terkecil, melakukan reduksi nol yang berfungsi mengurangi jumlah operasi dalam algoritme, dan operasi geser satu. 6.2. Saran Hasil konstruksi ini perlu dilanjutkan ke arah kurva eliptik kriptografi. 42 DAFTAR PUSTAKA Cohen, Henri and Gerhard Frey.(2006). Handbook of Elliptic and Hyperelliptic Curve Cryptography. Chapman & Hall/CRC. Dummit;, D. S. and R. M. Foote. (1999). Abstract Algebra, john Wiley and Sons, Inc. Fraleigh (1994). Abstract Algebra. Gallian, J. A. (1998). Contemporary Abstract Algebra, Houghton Mifflin Company. Greenan, Kevin, M., Miller, Ethan, L., Scwarzh. 2007. Analysis and Construction of Galois Field for Efficient Storage Reliability. Technical Report UCSCSSRC-07-09 Guritman, S. (2004). Struktur Aljabar. Huffman, W. Carry and Vera Pless (2003). Fundamentals of Error-Correcting Codes. Cambridge University Press. Koc, K. Cetin, Acar, Tolga. Montgomery Multiplication in GF(2k). Designs, Codes and Cryptography 14(1), 57-69 Menezes, A., P. v. Oorschot, et al. (1996). Handbook of Applied Cryptography, CRC Press. Pinter, C. C. (1990). A Book of Abstract Algebra, McGraw-Hill, Inc. Pless, Vera (1990). Introduction to the Theory of Error-Correcting Codes, Second Edition. John Willey & Sons, Inc. Rosdiana, Sri (2009). Konstruksi Algoritme Aritmetik (5 ) Dengan Operasi Perkalian Dibangkitkan Dari Sifat Grup Siklik. Penelitian.