konstruksi algoritme aritmetik gf(3 dengan … · 2015-09-02 · teks dan dicantumkan dalam daftar...

83
KONSTRUKSI ALGORITME ARITMETIK GF(3 m ) DENGAN OPERASI DIBANGKITKAN DARI SIFAT GRUP SIKLIK ILHAM SEKOLAH PASCASARJANA INSTITUT PERTANIAN BOGOR BOGOR 2009

Upload: lamtu

Post on 02-Mar-2019

233 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

KONSTRUKSI ALGORITME ARITMETIK GF(3m)DENGAN OPERASI DIBANGKITKAN DARI

SIFAT GRUP SIKLIK

I L H A M

SEKOLAH PASCASARJANAINSTITUT PERTANIAN BOGOR

BOGOR2009

Page 2: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

PERNYATAAN MENGENAI TESISDAN SUMBER INFORMASI

Dengan ini saya menyatakan bahwa tesis dengan judul Konstruksi AlgoritmeAritmetik GF(3m) dengan Operasi Dibangkitkan dari Sifat Grup Siklik adalah karya sayasendiri dengan arahan dari komisi pembimbing dan belum diajukan dalam bentuk apapunkepada perguruan tinggi mana pun. Sumber informasi yang berasal atau dikutip darikarya yang diterbitkan maupun tidak diterbitkan dari penulis lain telah disebutkan dalamteks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini.

Bogor, Agustus 2009

I L H A MNRP G551070631

Page 3: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

ABSTRACT

ILHAM. The Construction of Arithmetic Algorithm (3 )mGF with Operation Generated

from Cyclic Group. Supervised by SUGI GURITMAN and NUR ALIATININGTYAS.

To construct a cryptographic algorithm, many arithmetic concepts are needed. ElGamal

encryption for example, can be defined over cyclic group p , the usual arithmetic

concept. If the use of this arithmetic is associated with security aspect, then it requireslarge computational work. This thesis aims to construct arithmetic algorithm as analternative arithmetic to apply in any cryptographic scheme, especially public key

scheme. This algorithm is generated from finite field (3 )mGF . Thus, the procedures to

construct arithmetic algorithm as follows. Firstly, take the primitive polynomial

3( ) [ ]p x x as the minimum polynomial of degrees m with as a root. Secondly,

represent all elements of (3 )mGF as vectors in m-dimensional vector space over 3 . The

resulted arithmetic algorithms are computational procedures for standard operation in

(3 )mGF , i.e. addition, multiplication, division, invertion, and exponentiation.

Asymptotically, complexity of the algorithms is the same as the previous one, which isconstructed by irreducible polynomial. However, for a small value of m the resultedalgorithms are better because some operations can be reduced using primitivepolynomial or cyclic group properties.

Keywords: arithmetic, cyclic group, primitive polynomial, cryptography.

Page 4: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

RINGKASAN

ILHAM. Konstruksi Algoritme Aritmetik GF(3m) dengan Operasi Dibangkitkan dariSifat Grup Siklik. Dibimbing oleh SUGI GURITMAN and NUR ALIATININGTYAS.

Perkembangan teknologi informasi memudahkan seseorang untuk mendapatkaninformasi yang dibutuhkan. Untuk mengamankan informasi yang sifatnya rahasiadiperlukan suatu teknik pengamanan. Teknik tersebut dapat dilakukan denganmengamankan baik secara fisik maupun non fisik. Salah satu pengamanan secara nonfisik adalah dengan mengenkripsi informasi rahasia menggunakan teknik kriptografi.

Terdapat dua tipe umum dari algoritme yang berbasis kunci, yaitu AlgoritmeSimetrik dan Algoritme Asimetrik (kunci publik) (Schneier 1996). Kriptografi simetrikdisebut juga kriptografi konvensional, yaitu kunci enkripsi dapat dihitung dari kuncideskripsi atau sebaliknya, karena kunci yang digunakan adalah sama. Kriptografisimetrik tergantung pada kerahasiaan kunci yang digunakan. Kriptografi asimetrikdisebut juga kriptografi kunci publik yang didesain bahwa yang digunakan untukenkripsi berbeda dengan kunci yang digunakan untuk deskripsi. Kriptografi kunci publikterdiri atas dua buah kunci yaitu kunci publik dan kunci pribadi. Kunci publik digunakanuntuk mengenkripsi suatu pesan kedalam siferteks sedangkan kunci pribadi digunakanuntuk mendekripsi siferteks menjadi pesan asli.

Salah satu contoh penyandian dengan menggunakan kunci publik adalahpenyandian kunci publik ElGamal dengan aritmetik modular atas dasar sifat grup siklik

p yang pertama kali diperkenalkan oleh Taher ElGamal pada tahun 1985 dan sampai

saat ini masih dipercaya sebagai metode penyandian. Kunci publik yang digunakan

dalam penyandian ElGamal ini adalah ( , , mod )ap p dimana kunci pribadinya

adalah a . Dengan demikian, untuk keamanan penyandian ElGamal ini dibuatlah p

dengan memilih p yang sangat besar dalam proses kalkulasi aritmetik untuk

membangkitkan kunci yang digunakan (Menezes 1997). Jika penggunaan aritmetik padapenyandian ElGamal dikaitkan dengan aspek keamanan, maka memerlukan bebankomputasi yang cukup besar sehingga dalam dekade terakhir diperlukan aritmetikalternatif sebagai pengganti aritmetik modular. Aritmetik-aritmetik pengganti tersebut di

antaranya adalah aritmetik yang dibangkitkan dari srtuktur field berhingga (3 )mGF ,

kurva eliptik, atau kurva hipereliptik.

Dalam peneltian ini, penulis menitikberatkan pada pembahasan aritmetik yang

dibangkitkan dari struktur field berhingga (3 )mGF sebagai perluasan dari field 3 . Atas

dasar inilah, maka penelitian ini bertujuan untuk mengkonstruksi field berhingga

(3 )mGF dari 3 berdasarkan sifat perluasan field, mengonstruksi algoritme aritmetik

(3 )mGF seperti operasi penjumlahan, operasi perkalian, operasi invers, operasi

pembagian, dan operasi exponensial, dan mengukur kinerja algoritme yang dihasilkan

berdasarkan kompleksitas. Untuk mengonstruksi algoritme aritmetik (3 )mGF dalam

penelitian ini dilakukan dengan prosedur sebagai berikut.

Page 5: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

Pertama, mengambil polinomial primitif berderajat m atas 3 yang merupakan

polinomial minimum 0 1( ) ... mmm x a a x a x dimana merupakan akar primitifnya

sedemikian sehingga ( ) 0m . Pengambilan polinomial primitif ini dilakukan secara

komputasi dengan langkah-langkah sebagai berikut. Tes apakah polinomial ( )m x adalah

irreducible, tes apakah polinomial irreducible adalah primitif, selanjutnya memilihpolinomial primitif yang bersuku kecil, yaitu dari polinomial primitif yang bersuku dua,polinomial primitif yang bersuku tiga, atau polinomial primitif yang bersuku empat.

Kedua, representasikan semua elemen dari (3 )mGF sebagai vektor dalam ruang vektor

berdimensi-m atas 3 . Untuk kepentingan komputasi, elemen (3 )mGF dapat

direpresentasikan sebagai vektor terner dari derajat terkecil ke derajat terbesar dalambentuk 0 1 1[ , , . . . , ]ma a a .

Algoritme aritmetik (3 )mGF yang dihasilkan dikonstruksi dari polinomial

primitif bersuku kecil yang terdiri atas algoritme operasi penjumlahan, algoritme operasiperkalian, algoritme operasi invers, algoritme operasi pembagian, dan algoritme operasieksponensial. Secara umum, algoritme yang dihasilkan secara asimptotik mempunyaikinerja yang sama dengan algoritme sebelumnya yang didasarkan pada pengambilanpolinomial irreducible. Dengan demikian, secara rata-rata algoritme yang dihasilkanmenjadi lebih baik karena beberapa operasi dapat direduksi menggunakan polinomialprimitif atau sifat dari grup siklik.

Kata kunci: aritmetik, grup siklik, polinomial primitif, kriptografi.

Page 6: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

© Hak Cipta Milik IPB, tahun 2009Hak Cipta Dilindungi Undang-undang

1. Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkanatau menyebutkan sumbera. Pengutipan hanya boleh untuk kepentingan pendidikan penelitian, penulisan

karya ilmiah, penyusunan laporan, penulisan kritik, atau tinjauan suatumasalah.

b. Pengutipan tidak merugikan kepentingan yang wajar IPB.2. Dilarang mengumumkan dan memperbanyak sebagian atau seluruh karya tulis

dalam bentuk laporan apapun tanpa ijin IPB.

Page 7: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

PRAKATA

Puji dan syukur penulis panjatkan kepada Allah SWT atas segala karunia danhidayahNya sehingga karya ilmiah berjudul Konstruksi Algoritme Aritmetik GF(3m)dengan Operasi Dibangkitkan dari Sifat Grup Siklik berhasil diselesaikan.

Terima kasih penulis ucapkan kepada Bapak Dr. Sugi Guritman dan Ibu Dra. NurAliatiningtyas, M. Si. yang telah membimbing penulis selama melakukan penelitian danbanyak memberikan masukan dan saran, serta Ibu Dr. Ir. Sri Nurdiati, M. Sc. selakupenguji luar komisi pada ujian tesis yang telah memberikan masukan dan saran. Tak lupapenulis sampaikan penghargaan atas segala kerjasama dan dukungan dari Ibu Dr. Ir.Endar H. Nugrahani, MS. selaku Ketua Program Studi Matematika Terapan, Ibu Dr.Berlian Setiawaty selaku Ketua Departemen Matematika, dan Departemen AgamaRepublik Indonesia yang telah memberikan beasiswa kepada penulis selama menempuhstudi di Institut Pertanian Bogor.

Akhirnya, ucapan terima kasih yang tak terhingga penulis berikan kepada ayah,ibu, istri, dan putra-putri tercinta atas segala pengorbanan dan dukungannya selamapenulis menyelesaikan studi. Semoga karya ilmiah ini dapat bermanfaat bagi kemajuanilmu pengetahuan dan teknologi di masa mendatang.

Bogor, Agustus 2009

I L H A M

Page 8: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

RIWAYAT HIDUP

Penulis dilahirkan di Desa Risa Kecamatan Woha Kabupaten Bima pada tanggal20 Oktober 1971 dari Bapak Usman Zakaria dan Ibu Sitti Hawa H. Bahari. Penulismerupakan putra kedua dari enam bersaudara.

Tahun 1990 penulis lulus dari SMA Negeri 1 Woha Kabupaten Bima danmelanjutkan studi pada IAIN Alauddin Makassar dengan memilih Program Studi TadrisMatematika Fakultas Tarbiyah dan lulus pada tahun 1995. Penulis mendapatkankesempatan untuk melanjutkan studi ke program magister pada Program StudiMatematika Terapan Institut Pertanian Bogor pada tahun 2007 dengan mendapatkanbeasiswa pendidikan dari Departemen Agama Republik Indonesia.

Saat ini penulis telah menikah dengan Faridah, S. Ag dan dikaruniai satu orangputra yang bernama Muhammad Farid berusia 12 tahun dan dua orang putri, yangmasing-masing bernama Dewi Arifah berusia 11 tahun, dan Berlian Setiawati berusia 1tahun 2 bulan. Tahun 2001 penulis diangkat sebagai Pegawai Negeri Sipil padaDepartemen Agama Republik Indonesia dan mengajar Bidang Studi Matematika padaMadrasah Aliyah Korleko Kabupaten Lombok Timur Nusa Tenggara Barat. Kemudianpada tahun 2003 penulis dimutasikan pada Madrasah Tsanawiyah Negeri Kandai IIKabupaten Dompu Nusa Tenggara Barat sebagai Guru Matematika sampai sekarang.

Page 9: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

KONSTRUKSI ALGORITME ARITMETIK GF(3m)DENGAN OPERASI DIBANGKITKAN DARI

SIFAT GRUP SIKLIK

I L H A M

TesisSebagai salah satu syarat untuk memperoleh gelar

Magister Sains padaProgram Studi Matematika Terapan

SEKOLAH PASCASARJANAINSTITUT PERTANIAN BOGOR

BOGOR2009

Page 10: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

Penguji Luar Komisi pada Ujian Tesis : Dr. Ir. Sri Nurdiati, M. Sc.

Page 11: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

Judul Tesis : Konstruksi Algoritme Aritmetik (3 )mGF dengan Operasi Dibangkitkan

dari Sifat Grup SiklikNama : I l h a mNRP : G551070631

Disetujui

Komisi Pembimbing

Dr. Sugi Guritman Dra. Nur Aliatiningtyas, M. Si.Ketua Anggota

Diketahui

Ketua Progam Studi Dekan Sekolah PascasarjanaMatematika Terapan

Dr. Ir. Endar H. Nugrahani, M.S. Prof. Dr. Ir. Khairil A. Notodiputro, M.S.

Tanggal Ujian: 12 Agustus 2009 Tanggal Lulus:

Page 12: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

DAFTAR ISI

Halaman

DAFTAR ALGORITME .…………………………………………………... iv

BAB I PENDAHULUAN ................................................................................ 1

1.1 Latar Belakang Masalah ………………………………............... 11.2 Tujuan Penelitian ………………………………......................... 31.3 Manfaat Penelitian ....................................................................... 3

BAB II LANDASAN TEORI .......................................................................... 4

2.1 Grup dan Subgrup ......................................................................... 42.2 Grup Siklik ................................................................................... 62.3 Homomorfisma Grup dan Isomorfisma ..………………………. 72.4 Grup Faktor dan Subgrup Normal .............................................. 92.5 Ring ....………………………………………………………….122.6 Ring Polinomial .………………………………………………...172.7 Ruang Vektor .....………………………………………..........… 202.8 Perluasan Field ....................... .................................................... 212.9 Kompleksitas Komputasi ............................................................. 24

BAB III BAHASAN KONSTRUKSI (3 )mGF ...........…………………........... 26

BAB IV BAHASAN ALGORITME ARITMETIK (3 )mGF ..………………. 36

4.1 Operasi Penjumlahan ................................................................... 374.2 Operasi Perkalian ......................................................................... 394.3 Operasi Invers .............................................................................. 414.4 Operasi Pembagian ...................................................................... 424.5 Operasi Exponen .......................................................................... 42

BAB V PENERAPAN ARITMETIK (3 )mGF PADA

ALGORITME DIFFIE-HELLMAN KEY EXCHANGE …………... 47

BAB VI SIMPULAN DAN SARAN ...……………………………...………… 50

6.1 Simpulan ..………………………………………………………. 506.2 Saran ..........................................………………………………... 50

DAFTAR PUSTAKA ........................................................................................ 51

LAMPIRAN …………………………………………………………………... 52

Page 13: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

DAFTAR ALGORITME

Algoritme Halaman

3.1 Prosedur untuk mengubah desimal ke vektor terner ..................................... 30

3.2 Prosedur untuk membangkitkan vektor terner berdimensi m dengan

elemen pertama tak-nol secara acak ........................................................... . 31

3.3 Prosedur untuk pengecekan Vektor Irreducible atau tidak .......................... 31

3.4 Prosedur untuk memeriksa apakah Vektor Irreducible adalah Primitif ........ 31

3.5 Prosedur untuk membangkitkan Vektor Primitif bersuku dua ...................... 32

3.6 Prosedur untuk membangkitkan Vektor Primitif bersuku tiga ...................... 32

3.7 Prosedur untuk membangkitkan Vektor Primitif bersuku empat ….............. 33

4.1 Prosedur untuk mereduksi nol ...................................................................... 37

4.2 Operasi Penjumlahan ................................................................................... 38

4.3 Prosedur untuk mengalikan kelipatan vektor ................................................ 39

4.4 Prosedur untuk menggeser satu langkah ....................................................... 39

4.5 Operasi Perkalian ......................................................................................... 40

4.6 Prosedur untuk membagi vektor tanpa modulo ............................................ 41

4.7 Operasi Invers .............................................................................................. 42

4.8 Operasi Pembagian ...................................................................................... 43

4.9 Prosedur untuk menghitung a mod m dalam rentang negatif ....................... 45

4.10 Operasi Exponen .......................................................................................... 45

5.1 Prosedur untuk pembangkitan Prima Relatif secara acak ............................ 47

5.2 Prosedur untuk pembangkitan elemen Primitif Acak ................................. 48

5.3 Prosedur untuk Diffie-Hellman Key Exchange ............................................ 48

Page 14: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

BAB IPENDAHULUAN

1.1 Latar Belakang Masalah

Dalam perkembangan teknologi informasi, disadari atau tidak orang sudah

banyak mengenal tentang kriptografi dan banyak algoritme yang digunakan untuk

mengamankan informasi rahasia. Kriptografi adalah ilmu dan seni untuk menjaga

kerahasiaan pesan dengan cara menyandikan isi informasi menjadi suatu kode-kode yang

yang tidak dapat dimengerti sehingga apabila disadap maka si penyadap akan kesulitan

untuk mengetahui isi informasi yang sebenarnya (Schneier 1996). Metode penyandian ini

menitikberatkan pada kerahasiaan suatu algoritme yang digunakan. Karena penggunaan

metode ini tidak efisien maka algoritme rahasia mulai ditinggalkan dan memperkenalkan

suatu metode baru yang disebut dengan algoritme kunci. Metode ini tidak

menitikberatkan pada keamanan suatu algoritme, tetapi pada kerahasiaan kunci yang

digunakan pada proses penyandian.

Menezes (1997) mendefinisikan kriptografi sebagai studi teknik matematika yang

berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data,

otentikasi, dan non-repudiasi. Algoritme kriptografi adalah suatu fungsi matematika

yang digunakan untuk enkripsi dan deskripsi (Schneier 1996). Terdapat dua tipe umum

dari algoritme yang berbasis kunci, yaitu Algoritme Simetrik dan Algoritme Asimetrik

(kunci publik) (Schneier 1996). Kriptografi simetrik disebut juga kriptografi

konvensional, yaitu kunci enkripsi dapat dihitung dari kunci deskripsi atau sebaliknya,

karena kunci yang digunakan adalah sama. Kriptografi simetrik tergantung pada

kekuatan kunci yang digunakan.

Kriptografi asimetrik disebut juga kriptografi kunci publik yang didesain bahwa

yang digunakan untuk enkripsi berbeda dengan kunci yang digunakan untuk deskripsi.

Kriptografi kunci publik terdiri atas dua buah kunci yaitu kunci publik dan kunci pribadi.

Kunci publik digunakan untuk mengenkripsi suatu pesan ke dalam siferteks sedangkan

kunci pribadi digunakan untuk mendekripsi siferteks menjadi pesan asli.

Page 15: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

2

Salah satu contoh penyandian dengan menggunakan kunci publik adalah

penyandian kunci publik ElGamal dengan aritmetik modular atas dasar sifat grup siklik

p yang pertama kali diperkenalkan oleh Taher ElGamal pada tahun 1985 dan sampai

saat ini masih dipercaya sebagai metode penyandian. Kunci publik yang digunakan

dalam penyandian ElGamal ini adalah ( , , mod )ap p dimana kunci pribadinya

adalah a . Keamanan algoritme ini sangat tergantung pada pemilihan bilangan prima p

yang sangat besar dalam proses kalkulasi aritmetik untuk membangkitkan sebuah kunci.

yang digunakan (Menezes 1997). Jika penggunaan aritmetik pada penyandian ElGamal

ini dikaitkan dengan aspek keamanan, maka diperlukan beban komputasi yang cukup

besar sehingga dalam dekade terakhir diperlukan aritmetik alternatif sebagai pengganti

aritmetik modular. Aritmetik-aritmetik pengganti tersebut di antaranya adalah aritmetik

yang dibangkitkan dari srtuktur field berhingga (3 )mGF , kurva eliptik, atau kurva

hipereliptik.

Beberapa penelitian yang mengarah pada konsep aritmetik yang dibangkitkan

dari srtuktur field berhingga di antaranya adalah Bertoni et al. (2003) dalam papernya

yang berjudul ”Efficient ( )mGF p Arithmetic Architectures for Cryptographic

Applications” yang memberikan kontribusi dalam membangun aritmetik ( )mGF p

dimana p adalah bilangan prima yang direduksi dari polinomial irreducible. Adapun

Truong et al. (1988) dalam papernya yang berjudul ”Efficient Multiplication Algorithm

Over the Finite Field ( )mGF q where q = 3, 5 ”. Omran et al. (2007) dalam papernya

berjudul “Software Implementation of Arithmetic in3m ” membangun algoritme

multiplikatif cepat dalam3m dengan menggunakan representasi basis polinomial dan

basis normal gaussian.

Dlam peneltian ini, penulis menitikberatkan pada pembahasan aritmetik yang

dibangkitkan dari struktur field berhingga (3 )mGF sebagai perluasan dari field 3 yang

didasarkan pada sifat grup siklik bahwa setiap elemen ( )mGF p memenuhi polinomial

1 1 0mp dan selalu mempunyai akar sebagai elemen pembangun ( )mGF p

(Menezes 1997). Atas dasar inilah, penulis mencoba untuk mengonstruksi algoritme

Page 16: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

3

aritmetik (3 )mGF dengan mengambil polinomial primitif berderajat m atas 3 yang

merupakan polinomial minimum 0 1( ) ... mmm x a a x a x dimana merupakan akar

primitifnya sedemikian sehingga ( ) 0m . Selanjutnya, semua elemen (3 )mGF

direpresentasikan sebagai ruang vektor berdimensi-m atas 3 dari derajat terkecil ke

derajat terbesar dalam bentuk 0 1 1[ , ,..., ]ma a a .

1.2 Tujuan Penelitian

1. Mengonstruksi field berhingga (3 )mGF dari 3 berdasarkan sifat perluasan field.

2. Mengonstruksi algoritme aritmetik (3 )mGF seperti operasi penjumlahan, operasi

perkalian, operasi invers, operasi pembagian, dan operasi exponensial.

3. Mengimplementasikan algoritme-algoritme yang dihasilkan pada Software MAPLE

11 dengan mempertimbangkan kecepatan operasinya.

1.3 Manfaat Penelitian

Manfaat dari aritmetik yang dihasilkan dalam penelitian ini adalah sebagai kajian

akademik yang mengarah pada perkembangan cabang matematika diskret, sebagai

aritmetik alternatif untuk diterapkan pada algoritme kriptografi, dan untuk konstruksi

Error Correcting Codes, serta diharapkan dapat diaplikasikan pada pengembangan yang

lebih luas khususnya pada teknologi informasi.

Page 17: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

BAB IILANDASAN TEORI

Untuk mencapai tujuan penelitian, diperlukan beberapa pengertian dan teori yang

relevan dengan pembahasan. Dalam bab ini akan diberikan beberapa teori berupa

definisi, teorema, maupun lemma yang berkaitan dengan konsep struktur aljabar.

2.1 Grup dan Subgrup

Definisi 2.1 Grup G adalah sebuah sistem aljabar yang terdiri atas suatu himpunan tak

kosong G dan suatu operasi biner (*) yang didefinisikan dalam G serta memenuhi

aksioma-aksioma berikut ini:

(1) Operasi * bersifat assosiatif, yaitu a * ( b * c) = (a * b) * c, untuk setiap a, b, c G.

(2) Terdapat elemen identitas Ge sedemikian sehingga a e e a a , untuk setiap

Ga .

(3) Untuk setiap Ga , terdapat elemen 1 Ga sedemikian sehingga

1 1a a a a e .

Sebuah Grup G disebut sebagai grup komutatif atau grup abelian jika operasi * bersifat

komutatif yang memenuhi aksioma:

(4) a * b = b * a, untuk setiap a, b G (Fraleigh 2003).

Jika sebuah grup G memiliki jumlah elemen yang berhingga maka disebut grup

berhingga (finite group) dan jika jumlah elemen dari suatu grup G tak berhingga maka

disebut grup tak berhingga (infinite group). Order dari sebuah grup G sama dengan

banyaknya elemen dalam grup G yang dinotasikan dengan G (Guritman 2004).

Contoh grup yang tidak asing lagi adalah bilangan bulat terhadap operasi

penjumlahan. Misalkan, merupakan himpunan bilangan bulat

{..., 3, 2, 1,0,1,2,3,...} . ( , ) merupakan suatu grup, karena untuk setiap ,a b

maka ( )a b . Bila , ,a b c maka ( ) ( )a b c a b c juga elemen

(memenuhi sifat assosiatif). 0 dan untuk setiap a maka 0 0 0a a (0

elemen identitas. Bila a maka terdapat a sedemikian sehingga

( ) ( ) 0a a a a ( a elemen invers). Grup ini juga merupakan grup komutatif,

karena a b b a .

Page 18: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

5

Misalkan grup G dan S sembarang himpunan bagian tidak kosong dari G, maka

berikut merupakan definisi subgrup yang saling ekuivalen, yaitu sebuah himpunan

bagian S dari grup G disebut subgrup dari G jika S sendiri membentuk grup di bawah

operasi yang sama dengan yang dimiliki G (Aliatiningtyas 2002). Sebagai contoh, ,

dan merupakan subgrup dari terhadap operasi penjumlahan. Tentu saja

dan masing-masing merupakan grup terhadap operasi yang sama yaitu

penjumlahan.

Misalkan S adalah himpunan bagian dari sebuah grup G. S dikatakan subgrup

dari G jika dan hanya jika memenuhi sifat berikut ini.

i). S tertutup dalam operasi dalam G, yaitu jika , Sa b maka Sab .

ii). S tertutup terhadap inversnya, yaitu Sa maka 1 Sa (Aliatiningtyas 2002).

Bilangan bulat adalah grup terhadap operasi penjumlahan. Misalkan S adalah

himpunan bagian dari yang terdiri atas seluruh perkalian bilangan bulat positif m,

yaitu S {... , 2 , , 0, , 2 , ...}m m m m . Dengan menggunakan sifat di atas, maka

dapat ditunjukkan bahwa S adalah subgrup dari G.

Hubungan antara grup dan subgrupnya dapat ditambahkan dengan satu definisi

yang disebut dengan koset.

Definisi 2.2 Misalkan S adalah subgrup dari grup G. Untuk setiap Ga , maka

himpunan yang dinotasikan dengan S { S}a as s disebut koset kiri dari S yang

memuat a dan S { S}a sa s disebut koset kanan dari S yang memuat a (Aliatiningtyas

2002).

Teorema 2.3 (Teorema Lagrange) Misalkan G yaitu grup berhingga dan S yaitu subgrup

dari G, maka order dari S membagi order dari G (Aliatiningtyas 2002).

Jika S merupakan subgrup dari grup G, maka indeks dari S di dalam G dapat

diartikan sebagai banyaknya koset dari S di dalam G, dinotasikan (G : S) (Aliatiningtyas

2002).

Page 19: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

6

Misalkan adalah sebuah grup bilangan bulat dalam penjumlahan dan subgrup

3 {..., -6, -3, 0, 3, 6, ...} terdiri atas kelipatan 3. Terdapat tiga koset kiri yang

berbeda dari 3 dalam , yaitu 0 + 3 = 3 = {..., -6, -3, 0, 3, 6, ...}, 1 + 3 = {...,

-5, -2, 1, 4, 7, ...}, 2 + 3 = {..., -4, -1, 2, 5, 8, ...}. Meskipun dan 3 keduanya tak

berhingga, indeks dari 3 dalam adalah berhingga, yaitu ( :3 ) = 3 adalah

banyaknya koset.

2.2 Grup Siklik

Sebelum mendefinisikan tentang grup siklik, maka berikut ini diberikan beberapa

definisi yang terkait dengan order suatu unsur grup. Misalkan G adalah sembarang grup,

Ga dan bilangan bulat positif m , maka

kali

: ...m

m

a aa a ,

1 1 1

kali

: ...m

m

a a a a , dan

0 :a e (Guritman 2004).

Jadi, jika G adalah suatu grup dan Ga , maka untuk semua bilangan bulat

positif m dan n berlaku hukum eksponen berikut ini.

1). m n m na a a

2). ( )m n mna a

3). 1 1( ) ( )m m ma a a .

Misalkan G grup, dan Ga . Order dari elemen a dinotasikan ( )O a

didefinisikan sebagai bilangan bulat positif terkecil m sehingga ma e . Jika tidak ada

bilangan demikian, maka dikatakan order tak hingga (infinity) atau nol (Aliatiningtyas

2002).

Teorema 2.4 1). Jika ( )O a m , maka ada tepat m kuasa dari a (power of a) yang

masing-masing berbeda, yaitu 0 2 1, , ,..., ma e a a a . 2). Jika ( )O a tak hingga, maka

semua kuasa dari a berbeda. Artinya, jika r dan s adalah dua bilangan bulat yang berbeda

Page 20: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

7

maka r sa a . 3). Misalkan a adalah unsur dari grup G dan ( )O a m , maka ta e jika

dan hanya jika t adalah kelipatan dari m (t kelipatan m, artinya ada bilangan bulat q

sehingga t mq ) (Aliatiningtyas 2002).

Definisi 2.5 Sebuah grup G dan sebuah elemen Ga (a disebut elemen pembangun).

Jika G { }ma a m maka G disebut grup siklis (cyclic group).

Jika G berhingga dan berorder m , maka dapat ditunjukkan

0 2 1{ , , , ..., }mG a a e a a a .

Jika G adalah grup aditif, maka dapat ditunjukkan

G { }a ma m

dan jika berorder m , maka dapat ditunjukkan

{0 0, , 2 , ..., (m-1) }G a a a a a (Guritman 2004).

2.3 Homomorfisma Grup dan Isomorfisma

Definisi 2.6 Diberikan grup G dan H. Suatu homomorfisma grup dari G ke H adalah

suatu fungsi : G Hf sedemikian sehingga untuk sembarang a dan b di dalam G,

berlaku ( ) ( ) ( )f ab f a f b (Fraleigh 2003).

Terkait dengan jenis fungsi, maka terdapat empat jenis homomorfisma f , yaitu:

1). Jika f bersifat injektif, maka f disebut monomorfisma.

2). Jika f bersifat surjektif, maka f disebut epimorfisma. Dalam hal ini, H disebut imej

homomorfik dari G oleh f .

3). Jika f bersifat bijektif, maka f disebut isomorfisma. Dalam hal ini, G dan H

dikatakan isomorfik.

Page 21: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

8

4). Jika f bersifat bijektif dan GH, maka f disebut automorfisme (Aliatiningtyas

2002).

Definisi 2.7 Kernel dari f , ditulis Ker( f ) adalah himpunan dari elemen G yang

imagenya adalah elemen identitas e dari H, yaitu Ker ( ) { G : ( ) }f a f a e .

Sedangkan Bayangan (Image) dari f , ditulis f(G) atau Im( f ) terdiri dari image-image

dari elemen-elemen G dalam f , yaitu Im ( ) { : ( )}f b H b f a , untuk beberapa

Ga (Guritman 2004).

Sebagai contoh, diberikan fungsi 6 3: , ,f dengan ( ) (mod 3)f x x ,

6x maka f merupakan homomorfisma, sebab 1 2 6,x x berlaku

f(x1 +x2) = (x1 + x2) mod 3

= (x1 mod 3) + (x2 mod 3)

= f(x1) + f(x2)

dan 6ker( ) { ( ) 0}f x f x

6{ (mod 3) 0}x x

{0, 3} .

Dengan demikian, 3 disebut bayangan homomorfik dari G oleh f .

Teorema 2.8 Misalkan G dan H adalah grup. Suatu fungsi : G Hf adalah

homomorfisma, maka sifat-sifat berikut dipenuhi.

1). ( )f e e (secara implisit bahwa e pada ruas kiri adalah unsur identitas G dan e pada

ruas kanan adalah unsur identitas H).

2). 1 1( ) [ ( )]f a f a untuk setiap a G .

3). Im( )f merupakan subgrup dari H.

4). Ker( )f merupakan subgrup dari G (Guritman 2004).

Selanjutnya, dua grup G dan Hdikatakan isomorfik (dinotasikan G H ), jika

ada suatu isomorfisma dari G ke H. Sifat penting yang terkandung dari makna isomorfik

adalah walaupun secara fisik kedua grup tersebut berbeda, tetapi dari segi struktur adalah

Page 22: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

9

sama. Kesamaan struktur memegang peranan penting dalam matematika secara umum,

karena timbulnya konsep matematika berangkat dari konsep abstraksi. Jika kita

mempelajari bangun segitiga, maka kita tidak akan mempertanyakan segitiga itu terbuat

dari apa, namun bagaimana sifat-sifat dan struktur segitiga itu. Dari makna ini, jika

G H (walaupun mungkin elemen dan operasi dari keduanya berbeda), maka sifat-sifat

yang terkait dengan elemen dan operasinya sama. Hal ini dapat disajikan dalam teorema

berikut ini.

Teorema 2.9 Sifat-sifat isomorfik

1). Untuk grup berhingga, maka G H

2). G abelian jika dan hanya jika H abelian.

3). G siklik jika dan hanya jika H siklik.

4). G dibangkitkan oleh dua unsur jika dan hanya jika H dibangkitkan oleh dua unsur.

5). Jumlah unsur yang mempunyai invers dirinya sendiri di dalam GdanH adalah sama

(Guritman 2004).

Misalkan G adalah grup bilangan real dalam penjumlahan dan H adalah grup dari

bilangan positif real dalam perkalian dengan pemetaan : G Hf yang didefinisikan

oleh ( ) 3af a , maka pemetaan f merupakan homomorfisma karena

( ) 3 3 3 ( ) ( )a b a bf a b f a f b . Selanjutnya, f adalah injektif karena ( ) ( )f a f b

3 3a b a b dan f adalah surjektif karena untuk setiap 3a H terdapat a G

sedemikian sehingga ( ) 3af a . Dengan demikian, maka f adalah sebuah isomorfisma.

2.4 Grup Faktor dan Subgrup Normal

Definisi 2.10 Misalkan G grup dan S subgrup dari G. Maka S disebut subgrup normal

dari G jika untuk setiap Gg , s S , 1 Sgsg (Aliatiningtyas 2002).

Teorema 2.11 Misalkan G grup, S subgrup dari G, maka S subgrup normal dari G jika

dan hanya jika gS = Sg untuk setiap Gg (Aliatiningtyas 2002).

Page 23: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

10

Jika S adalah subgrup normal dari grup G, maka koset dari S dalam G

membentuk sebuah grup /G S di bawah operasi ( )( )aS bS abS . Grup ini disebut grup

faktor (quotient) dari G dan S. Pernyataan ini dapat disajikan dalam teorema berikut.

Teorema 2.12 Misalkan S adalah subgrup normal dari grup G. Koset dari S dalam G

membentuk sebuah grup /G S berorder :G S (Fraleigh 2003).

Misalkan adalah grup bilangan bulat dalam operasi penjumlahan dan misalkan

3 adalah subgrup dari grup yang terdiri atas perkalian 3, maka 3 adalah subgrup

normal dari karena adalah grup komutatif. Misalkan 0 , 1, dan 2 berturut-turut

menyatakan 3 koset yaitu:

0 0 3 {..., 3,0,3,6,...}

1 1 3 {..., 2,1,4,7,...}

2 2 3 {..., 1, 2,5,8,...}

maka grup faktor / 3 adalah {0, 1, 2}. Grup ini biasa disebut dengan ”Bilangan Bulat

Modulo 3” dan dinyatakan dengan 3 . Dengan cara yang sama, untuk setiap bilangan

bulat positif m, terdapat grup faktor m yang disebut dengan bilangan bulat modulo m.

Terkait dengan definisi grup di atas, maka berikut ini diberikan konsep tentang

grup bilangan bulat modulo m. Misalkan m adalah bilangan bulat positif. Untuk

sembarang bilangan bulat x, modulox m dinotasikan dengan modx m , yaitu sisa dari x

dibagi oleh m. Aturan jumlah modulo m (digunakan notasi umum ” + ”) pada bilangan

bulat diartikan sebagai ( ) modx y z z x y m , sedangkan aturan kali modulo

m (digunakan notasi kali pada umumnya) pada integer diartikan sebagai

( ) modxy z z xy m (Guritman 2004).

Misalkan {0, 1, 2,..., ( 1)}m m . Jumlah modulo m merupakan operasi pada

m , dan dapat ditunjukkan bahwa m merupakan grup abelian yang selanjutnya disebut

dengan grup bilangan bulat modulo m. Dalam hal ini, 0 adalah elemen identitas, jika

ma maka invers dari a adalah –a. Di sisi lain, kali modulo m merupakan operasi pada

Page 24: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

11

m yang bersifat asosiatif, komutatif dan 1 adalah elemen identitas. Namun tidak semua

elemen m mempunyai invers, khususnya 0. Apapun nilai m maka elemen 0 tidak

mempunyai invers (tidak ada elemen m jika dikalikan 0 menghasilkan 1). Jelas bahwa

m bukan grup terhadap operasi kali modulo m. Dengan demikian, cukup beralasan jika

mendefinisikan himpunan * {0}m m . Pertanyaannya, apakah *m akan menjadi grup

terhadap kali modulo m ?. Jawabannya bisa ya dan bisa juga tidak, hal ini tergantung

pada nilai m. Proposisi berikut merupakan dasar dari konsep ini.

Proposisi 2.13 *m akan merupakan grup terhadap operasi kali jika dan hanya jika m

adalah bilangan prima (Guritman 2004). ■

Sebagai contoh, misalkan *6 {1, 2, 3, 4, 5} . Hal ini dapat ditunjukkan bahwa

*6 bukan merupakan grup karena 2 dan 3 tidak mempunyai invers. Selanjutnya jika p

adalah prima, maka * {1, 2, 3, ..., 1}p p merupakan grup abelian terhadap operasi

kali modulo p dan jika *ps maka invers dari s merupakan solusi dari persamaan

1 modsx p .

Teorema 2.14 Misalkan : G Hf adalah epimorfisma dengan S = Ker( f ), maka

/H G S (Herstein 1964). ■

Teorema 2.14 disebut dengan Teorema Fundamental Homomorfisma yang

menyatakan bahwa setiap imej homomorfik dari G adalah isomorfik dengan grup faktor

dari G. Sebagai contoh, jika diberikan 6 3:f dengan ( ) 2f x x untuk setiap

6x . Fungsi f adalah epimorfisma, karena untuk setiap 32x terdapat 6x

sehingga ( ) 2f x x .

Di sisi lain, 6ker( ) { ( ) 0}f S x f x

6{ 2 0}x x

{0, 3} .

Berdasarkan Teorema 2.14, maka 6 3S .

Page 25: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

12

2.5 Ring

Definisi 2.15 Ring R adalah sebuah sistem aljabar yang dibentuk oleh suatu himpunan

tak kosong R dengan dua operasi biner yaitu penjumlahan (+) dan perkalian (.) yang

didefinisikan dalam R , dan memenuhi sifat berikut:

1) (R, +) adalah grup abelian.

2) Operasi perkalian bersifat asosiatif, yaitu a.(b.c) = (a.b).c untuk semua a, b, c R.

3) Operasi perkalian bersifat distributif terhadap penjumlahan.

Untuk setiap a, b, c R memenuhi :

Hukum distributif kiri, yaitu a . (b + c) = (a . b) + (a . c), dan

Hukum distributif kanan, yaitu : (b + c) . a = (b . a) + (c . a) (Fraleigh 2003).

Jenis-jenis ring didefinisikan dengan menambahkan beberapa sifat operasi

perkalian yang lain pada Definisi 2.15 (2). Misalnya, jika operasi perkalian bersifat

komutatif pada ring R, maka R disebut dengan ring komutatif. Jika R mempunyai unsur

identitas di bawah operasi perkalian (dinotasikan 1) dan . 1 1 . ,x x x x R ,

maka R disebut dengan unsur kesatuan. Suatu ring yang hanya mempunyai satu unsur

yaitu 0 maka disebut dengan ring trivial, sedangkan ring yang lebih dari satu unsur

disebut dengan ring nontrivial. Beberapa contoh ring yang tidak asing lagi adalah

, , , dan . Keempat contoh tersebut merupakan ring tak-hingga dan ring

komutatif dengan unsur kesatuan 1, sedangkan untuk ring berhingga dapat diambil m

dengan operasi penjumlahan modulo m, dan operasi perkalian modulo m.

Definisi 2.16 Misalkan R adalah ring komutatif, a R , 0a . Unsur a disebut pembagi

nol jika ada 0b , b R sehingga 0ab . Selanjutnya, suatu ring R dikatakan tidak

memuat pembagi nol jika dan hanya jika 0ab , maka 0a atau 0b (Aliatiningtyas

2002).

Jika R adalah ring dengan unsur kesatuan 1 dan Ra yang memenuhi

1 1 1aa a a untuk setiap 1 Ra , maka a disebut berinvers (invertible) dan 1a

disebut invers dari a. Untuk 0 yang merupakan identitas dari R terhadap operasi

Page 26: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

13

penjumlahan tidak berinvers karena andaikata berinvers maka ada 1 Ra sedemikian

sehingga 10 1 0 1a .

Definisi 2.17 Suatu ring yang komutatif dengan unsur kesatuan 1 dan tidak memuat

pembagi nol disebut daerah integral (Aliatiningtyas 2002).

Misalkan, 6 memuat pembagi nol. Ambil 62,3 maka 2 dan 3 disebut

memuat pembagi nol dalam 6 , karena 2.3 = 0 (perkalian dalam modulo 6). Jadi 6

bukan daerah integral. 5 tidak memuat pembagi nol, karena setiap elemen tak-nol

dalam 5 mempunyai invers, yaitu 1.1 = 1, 2.3 = 1, 3.2 = 1 dan 4.4 = 1. Jadi 5

merupakan daerah integral.

Definisi 2.18 Bilangan m disebut karakteristik dari ring R jika m adalah bilangan bulat

positif terkecil sehingga . 0m a untuk setiap a R . Jika tidak ada bilangan seperti ini

maka dikatakan m berkarakteristik 0 (Aliatiningtyas 2002).

Ring berkarakteristik 0, sebab tidak ada bilangan bulat m sehingga . 0m a

untuk setiap a . Pada hanya untuk 0m sehingga 0. 0a untuk setiap a .

Sedangkan m mempunyai karakteristik m .

Teorema 2.19 Di dalam suatu daerah integral D dengan karakteristik tidak nol, maka

karakteristiknya pasti bilangan prima (Gallian 1990). ■

Teorema 2.20 Di dalam suatu daerah integral D dengan karakteristik bilangan prima p ,

maka ( ) p p p untuk setiap elemen , D (Guritman 2004). ■

Definisi 2.21 Suatu ring komutatif ada unsur kesatuan 1 dan setiap unsur tak nolnya

mempunyai invers disebut field (Menezes, 1997).

Dari Definisi 2.21, dapat diamati bahwa definisi field diperoleh dari mengganti

sifat (2) pada Definisi 2.15 dengan pernyataan bahwa R\ 0 adalah grup komutatif

terhadap operasi perkalian. Dengan demikian, misalkan R adalah suatu ring yang

komutatif maka , ,. disebut field jika memenuhi sifat , adalah grup komutatif,

Page 27: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

14

{0}, . adalah grup komutatif, dan sifat distributif berlaku ( )a b c ab ac dan

( )a b c ac bc . Contoh field tak-hingga di antaranya adalah , dan .

Sedangkan contoh field berhingga dapat diambil m .

Dari contoh sebelumnya bahwa 5 tidak mamuat pembagi nol, maka 5

merupakan daerah integral. Selanjutnya, karena setiap elemen tak-nol dalam 5

mempunyai invers, yaitu 1.1 = 1, 2.3 = 1, 3.2 = 1 dan 4.4 = 1 maka 5 juga merupakan

field. Hal ini menunjukkan bahwa untuk setiap daerah integral berhingga berkarakteristik

bilangan prima adalah field dan setiap field adalah daerah integral. Hal ini dapat disajikan

dalam teorema berikut.

Teorema 2.22 p adalah field jika dan hanya jika p adalah bilangan prima (Menezes

1997). ■

Sebagaimana di dalam bahasan tentang subgrup, suatu himpunan tak-kosong S di

dalam ring R disebut subring jika S sendiri merupakan ring terhadap operasi yang

dimiliki oleh R. Dalam pembahasan ring secara keseluruhan, sub ring tidak begitu

berperan dibandingkan dengan ideal. Jadi disini lebih menekankan penggunaan ideal dari

pada subring.

Definisi 2.23 Suatu himpunan bagian tak-kosong I dari ring R disebut ideal jika

memenuhi aksioma-aksioma berikut ini.

a. Tertutup terhadap pengurangan, yaitu , ( )a b I a b I .

b. I menyerap produk di dalam R, yaitu a I dan r R ar I dan ra I

(Guritman 2004).

Misalkan adalah ring dan m didefinisikan himpunan semua bilangan bulat

genap, maka m adalah sebuah ideal dari . Hal ini dapat ditunjukkan dengan

menggunakan definisi 2.23. Jelas 0 m . Misalkan ,x y m , maka terdapat ,k l

sehingga x mk dan y ml diperoleh ( )x y mk ml m k l . Jadi ( )m k l m .

Selanjutnya, untuk setiap r , maka . ( ) ( )x r mk r m kr juga elemen dari m .

Dengan demikian, m adalah sebuah ideal dari .

Page 28: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

15

Definisi 2.24 Misalkan R adalah ring komutatif dengan unsur kesatuan 1 dan a R .

Suatu himpunan, dilambangkan a , didefinisikan sebagai { }a ra r R merupakan

ideal. Ideal yang demikian disebut ideal utama (Principal Ideal) yang dibangun oleh a

(Guritman 2004).

Contoh, misalkan adalah ring. Ideal dari adalah himpunan semua bilangan

bulat genap yang dibangun oleh 6 adalah 6 {..., 18, 12, 6,0,6,12,18,...} dan

merupakan ideal utama.

Definisi 2.25 Suatu homomorfisma dari ring R ke ring 'R adalah suatu fungsi

':f R R yang memenuhi:

a. ( ) ( ) ( )f a b f a f b , dan

b. ( ) ( ) ( )f ab f a f b , untuk setiap ,a b R .

Jika f surjektif, maka 'R disebut bayangan homomorfik dari R. Kernel dari f

didefinisikan Ker( ) { ( ) 0}f x R f x , dan Range dari f didefinisikan

Ran( ) { ( ) }f f x x R . Jika f adalah homomorfisma yang bijektif, maka f disebut

isomorfisma. Dalam hal ini R dan 'R dikatakan isomorfik, dinotasikan 'R R

(Guritman 2004).

Sebagai ilustrasi, untuk setiap integer m kita dapat mendefinisikan sebuah fungsi

: mf oleh ( ) (mod )f x x m . Fungsi f merupakan homomorfisma ring,

misalkan ,a b maka

( ) ( )(mod )f a b a b m

(mod ) (mod )a m b m

( ) ( )f a f b

dan ( ) ( )(mod )f ab ab m

(mod ) . (mod )a m b m

( ) ( )f a f b

Di sisi lain, kernel dari homomorfisma f adalah

Page 29: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

16

ker( ) { ( ) 0}f a f a

{ (mod ) 0}a a m

{ . , }ma a k m k .

m = m .

Teorema 2.26 Misalkan ':f R R homomorfisma ring, maka

ker( ) { ( ) 0}f x R f x merupakan ideal dari R (Gallian 1990). ■

Definisi 2.27 Misalkan R ring dan I ideal dari R. Untuk a R , { }I a i a i I

disebut koset dari I di dalam R. Operasi penjumlahan dan perkalian pada koset-koset

didefinisikan sebagai ( ) ( ) ( )I a I b I a b dan ( )( )I a I b I ab (Guritman

2004).

Dari contoh sebelumnya bahwa 6 {..., 18, 12, 6,0,6,12,18,...} adalah ideal

utama dengan koset-kosetnya adalah

6 0 {..., 18, 12, 6,0,6,12,18,...} 0 ,

6 1 {..., 17, 11, 5,1,7,13,19,...} 1 .

6 2 {..., 16, 10, 4, 2,8,14, 20,...} 2

6 3 {..., 15, 9, 3,3,9,15, 21,...} 3

6 4 {..., 14, 8, 2, 4,10,16, 22,...} 4

6 5 {..., 13, 7, 1,5,11,17,23,...} 5

Jadi himpunan koset-koset yang dibangun oleh 6 adalah

6 {0, 1, 2, 3, 4, 5} .

Teorema 2.28 R I dengan operasi penjumlahan dan operasi perkalian merupakan ring

dan disebut ring faktor dari R oleh I (Guritman 2004). ■

Page 30: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

17

Teorema 2.29 Jika I adalah ideal dari ring R, maka fungsi R I adalah ring dan

merupakan bayangan homomorfisma dari R (Herstein 1964). ■

Teorema 2.30 Misalkan R dan 'R adalah masing-masing ring dan ':f R R adalah

epimorfisma dengan K adalah kernel dari f , maka 'R R K (Aliatiningtyas 2002). ■

Misalkan adalah ring seperti pada contoh sebelumnya, ker( ) 6f adalah

ideal, dan / 6 adalah ring faktor (quosen), maka / 6 isomorfik dengan 6 .

Definisi 2.31 Suatu ideal utama I dari suatu ring R dikatakan ideal maksimal jika tidak

ada ideal T dari R sedemikian sehingga I T (Guritman 2004).

Teorema 2.32 Misalkan R adalah ring komutatif dengan unsur kesatuan dan I adalah

ideal dari R, maka I adalah ideal maksimal jika dan hanya jika ring faktor R I adalah

field (Gallian 1990). ■

2.6 Ring Polinomial

Misalkan R adalah ring komutatif dengan unsur kesatuan 1 dan x merupakan

simbol yang tak tetap, maka setiap ekspresi dari 1 10 1 1... m m

m ma a x a x a x disebut

polinomial dalam x dengan koefisien ia R atau lebih sederhana disebut polinomial

dalam x atas R. Ekspresi dari0

mi

ii

a x

disebut terminologi dari polinomial.

Polinomial dalam x dimodelkan dengan simbol ( ), ( ), ( )a x b x f x , dan lain-lain.

Misalkan 1 10 1 1

0

( ) ...m

m m im m i

i

f x a a x a x a x a x

merupakan sembarang

polinomial. Derajat dari polinomial ( )f x yaitu bilangan terbesar m sehingga koefisien

dari mx bukan nol dan dinotasikan dengan deg ( )f x . Polinomial

1 1( ) 0 0 ... 0 ...mf x x x yang semua koefisiennya nol disebut polinomial nol,

dinotasikan dengan ( ) 0f x , dan disebut polinomial tak berderajat. Jika polinomial tak

nol 1 10 1 1( ) ... m m

m mf x a a x a x a x mempunyai derajat m, maka ma disebut

Page 31: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

18

koefisien depan. Jika polinomial 0( )f x a , maka ( )f x berderajat nol dan disebut

polinomial konstan. Sembarang polinomial yang koefisien depannya sama dengan 1

disebut polinomial monik.

Misalkan 1 10 1 1( ) ... m m

m mf x a a x a x a x berderajat m dan

10 1( ) ... n

ng x b b x b x berderajat n, maka ( ) ( )f x g x jika dan hanya jika m n dan

i ia b untuk setiap 0,1,...,k m . Operasi penjumlahan dan perkalian dalam ring

polinomial sistemnya sama seperti dalam aljabar elementer. Misalkan fungsi

10 1( ) ... m

mf x a a x a x dan 10 1( ) ... n

ng x b b x b x , maka operasi penjumlahan

didefinisikan

10 1( ) ( ) ... k

kf x g x c c x c x ,

dengan i i ic a b untuk setiap i . Operasi perkalian didefinisikan

10 1( ) ( ) ... m n

m nf x g x c c x c x

dimana 0 1 1 1 1 00

...i

i k i k i i i ik

c a b a b a b a b a b

.

Definisi 2.33 Misalkan R adalah ring komutatif, ring polinomial [ ]R x adalah ring yang

dibentuk oleh himpunan dari semua polinomial-polinomial dalam x yang koefisiennya

ada dalam R dengan operasi penjumlahan polinomial dan operasi perkalian polinomial

(Menezes 1997).

Sebagai contoh, 20 0 0 0 ...x x , 21 1 0 0 ...x x , 20 1 0 ...x x x ,

2 20 0 1 ...x x x , dan sebagainya. Dengan demikian, [ ]R x dapat dinyatakan secara

unik sebagai 20 1 2{ ... }m

ma a x a x a x dimana ia R .

Teorema 2.34 Jika R ring komutatif, maka [ ]R x juga merupakan ring komutatif dan jika

R memiliki unsur kesatuan 1 maka 1 juga merupakan unsur kesatuan dalam [ ]R x . ■

Teorema 2.35 Jika D adalah daerah integral, maka [ ]D x juga daerah integral. ■

Page 32: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

19

Teorema 2.36 Jika adalah field, maka [ ]x daerah integral. ■

Karena adalah daerah integral maka [ ]x adalah daerah integral dan karena

5 adalah field maka 5[ ]x adalah daerah integral.

Teorema 2.37 Misalkan adalah field dan ring polinomial [ ]x . Jika

( ), ( ) [ ]f x g x x dengan ( ) 0g x , maka ada polinomial unik ( ), ( ) [ ]q x r x x

sehingga ( ) ( ) ( ) ( )f x q x g x r x dengan ( ) 0r x atau derajat ( ) derajat ( )r x g x

(Fraleigh 2003). ■

Akibat 2.38 Misalkan adalah field. Elemen c dalam adalah dari ( ) [ ]f x x jika

dan hanya jika x c adalah faktor dari ( )f x dalam [ ]x (Gilbert 2004).

Akibat 2.39 Sebuah polinomial berderajat m atas field mempunyai paling banyak m

akar dalam (Gilbert 2004). ■

Definisi 2.40 Misalkan ( ), ( ) [ ]g x h x x keduanya tidak nol, maka Greatest Common

Divisor dari ( ) dan ( )g x h x dinotasikan gcd( ( ), ( ))g x h x adalah polinomial monik

berderajat terbesar dalam [ ]x dimana keduanya membagi ( ) dan ( )g x h x (Menezes

1997).

Definisi 2.41 Suatu polinomial non-konstanta ( ) [ ]f x x dikatakan irreducible atas

[ ]x jika ( )f x tidak dapat dinyatakan sebagai perkalian ( ) ( )g x h x dimana ( )g x dan

( )h x adalah dua polinomial dalam [ ]x yang keduanya berderajat lebih rendah dari

derajat ( )f x (Fraleigh 2003).

Teorema 2.42 Misalkan adalah field dan ( ) [ ]f x x . Setiap ideal dalam [ ]x

adalah ideal utama dan ideal ( )f x adalah ideal maksimal jika dan hanya jika ( )f x

adalah irreducible atas (Gallian 1990). ■

Page 33: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

20

2.7 Ruang Vektor

Definisi 2.43 Misalkan adalah field dan misalkan sembarang himpunan V yang

didefinisikan aturan jumlah dan aturan perkalian skalar. V disebut ruang vektor atas

jika memenuhi 10 sifat-sifat berikut:

1. Untuk setiap ,u v V maka terdapat tunggal w V sehingga tertutup terhadap

operasi penjumlahan: u v w .

2. Untuk setiap , ,u v w V berlaku sifat assosiatif: ( ) ( )u v w u v w .

3. Untuk setiap u V , terdapat tunggal identitas 0 V sehingga 0 0u u u .

4. Untuk setiap u V , terdapat tunggal invers v V sehingga 0u v u v

( v u ).

5. Untuk setiap , ,u v w V berlaku sifat komutatif: u v v u .

6. Untuk setiap k , dan setiap u V maka terdapat tunggal v V sehingga tertututp

terhadap operasi perkalian ku v .

7. Untuk setiap k , dan setiap ,u v V maka ( )k u v ku kv .

8. Untuk setiap ,k l , dan setiap u V maka ( )k l u ku lu .

9. Untuk setiap ,k l , dan setiap u V maka ( ) ( )kl u k lu .

10. Untuk setiap u V maka 1u u , dimana 1 adalah unsur identitas dari ( ,.) .

Unsur dari V disebut vektor dan unsur dari disebut skalar (Guritman 2005).

Definisi 2.44 Misalkan V adalah vektor atas field .

1. Vektor 1 2, ,..., mv v v dalam ruang vektor V disebut bebas linear atas field jika

1 1 2 2 ... 0m mc v c v c v mengakibatkan semua skalar 1 2, ,..., mc c c harus sama

dengan nol.

2. Vektor 1 2, ,..., mv v v dalam ruang vektor V disebut bergantung linear atas field jika

terdapat skalar 1 2, ,..., mc c c yang tidak semuanya nol sehingga

1 1 2 2 ... 0m mc v c v c v (Guritman 2005).

Vektor-vektor 1 2, ,..., mv v v akan membentuk basis untuk ruang vektor V jika dan

hanya jika 1 2, ,..., mv v v bebas linear dan merentang V .

Page 34: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

21

2.8 Perluasan Field

Definisi 2.45 Field disebut suatu perluasan dari field jika memuat subfield

(Fraleigh 2003).

Definisi 2.46 Suatu elemen c dari perluasan field dari field adalah algebraic atas

jika ( ) 0f c untuk beberapa polinomial tidak-nol ( ) [ ]f x x . Jika c bukan

algebraic atas , maka c disebut dengan transendental atas (Fraleigh 2003).

Misalkan adalah subfield dari field , dan c adalah elemen dalam .

Didefinisikan : [ ]c x dengan aturan pemetaan ( ( )) ( )c f x f c , dimana

0 1( ) ... mmf x a a x a x berderajat m dan 0ma dalam [ ]x . Dengan menggunakan

Definisi 2.25, maka dapat ditunjukkan bahwa c merupakan homomorfisma.

Bagaimana dengan Kernel dari c ?

( ) { ( ) [ ] ( ( )) 0}c cKer f x x f x

= { ( ) [ ] ( ) 0}f x x f c

= 0 1{ ( ) [ ] ... 0}mmf x x a a c a c

Jadi ( )cKer adalah himpunan semua polinomial-polinomial ( )f x atas [ ]x

dan mempunyai akar c . Berdasarkan Teorema 2.26, ( )cKer adalah ideal dari [ ]x dan

setiap ideal dalam [ ]x adalah ideal utama, terdapat ( ) [ ]p x x sehingga

( ) ( )cKer p x = ( ). ( ) ( ) [ ]h x p x h x x , dimana ( )p x adalah polinomial non

konstanta berderajat terkecil, irreducible dan monik dimana c merupakan akar dari

( )p x .

Selanjutnya akan dicari bayangan dari c .

Im( ) { ( ( )) , ( ) [ ]}c c f x f x x

{ ( ) , ( ) [ ]}f c f x x

Page 35: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

22

0 1{ ... , ( ) [ ]}mma a c a c f x x

( )c

Dengan demikian, diperoleh : [ ] ( )c x c adalah epimorfisma dengan

ker( ) ( )c p x , dimana ( )p x adalah polinomial berderajat terkecil maka berdasarkan

Teorema 2.30 berlaku [ ] ( ) ( )x f x c .

Karena ( )p x adalah polinomial irreducible, maka berdasarkan Teorema 2.42

( )p x adalah ideal maksimal. Selanjutnya, berdasarkan Teorema 2.32 maka ring faktor

[ ] ( )x p x adalah field. Karena isomorfik, akibatnya ( )c juga field.

Dari uraian di atas, diperoleh teorema berikut ini.

Teorema 2.47 Misalkan adalah field dan ( ) [ ]p x x adalah polinomial irreducible

atas . Jika c merupakan akar dari ( )p x dalam beberapa perluasan maka

[ ] ( ) [ ]x p x c adalah field (Gallian 1990).

Selanjutnya, jika akar c , maka ( )c . Sebaliknya jika c dan c adalah

algebraic maka ( )c merupakan perluasan field dari . Karena [ ] ( ) ( )x p x c ,

maka [ ] ( )x p x juga merupakan perluasan field dari .

Definisi 2.48 Misalkan perluasan field dari field . Jika berdimensi berhingga m

sebagai ruang vektor atas , maka disebut perluasan berhingga berderajat m atas

(Rosdiana 2009).

Definisi 2.49 Suatu perluasan field dari field disebut perluasan tunggal jika

( )c untuk suatu c (Rosdiana 2009).

Teorema 2.50 Misalkan ( )c dengan c algebraic atas . Misalkan derajat dari

perluasan yaitu 1m , maka setiap elemen dari ( )c dapat dinyatakan secara

unik dalam bentuk 1 10 1 1... m

mb b c b c dimana [ ]ib x (Fraleigh 2003). ■

Page 36: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

23

Teorema 2.51 Misalkan perluasan field dari field dan c algebraic atas . Jika

derajat dari perluasannya m , maka ( )c adalah ruang vektor atas berdimensi-m

dengan basis 0 1 2 1{ , , , ... , }mc c c c (Fraleigh 2003). ■

Sebagai contoh, bilangan rasional merupakan field tak hingga, dan 2 .

2 bukan merupakan akar dari sembarang polinomial monik berderajat 1 atas ,

karena polinomial 2 [ ]x x . Tetapi 2 merupakan akar dari polinomial 2 2x ,

maka 2 adalah elemen algebraic atas . Karena 2 adalah elemen algebraic atas

, maka polinomial 2 2x merupakan polinomial minimum atas . Jadi derajat dari

perluasan adalah ( 2) 2 dengan basisnya {1, 2}. Dengan demikian, setiap

elemen dalam ( 2) merupakan kombinasi linear dari 1 dan 2 yang berbentuk

2a b dimana ,a b , dinotasikan dengan ( 2) { 2 , }a b a b .

Teorema 2.52 (Eksistensi dan kekhasan finite field)

1. Jika adalah finite field maka terdiri dari mp elemen dengan p adalah bilangan

prima dengan 1m .

2. Untuk setiap prima berorder mp , terdapat finite field yang khas berorder mp . Field ini

dinotasikan dengan ( )mGF p (Menezes 1997). ■

Teorema 2.53 Misalkan ( ) [ ]pf x x adalah polinomial irreducible berderajat m ,

maka [ ] ( )p x f x adalah finite field berorder mp . Operasi penjumlahan polinomial

dan operasi perkalian polinomial dilakukan dalam modulo ( )f x (Menezes 1997). ■

Dua teorema berikut ini merupakan dasar dari algoritme untuk pengecekan

apakah polinomial ( )f x irreducible atau tidak, dan pengecekan apakah polinomial

irreducible ( )f x adalah primitif atau tidak.

Teorema 2.54 Jika p adalah bilangan prima dan m adalah integer positif, maka berlaku:

1). Produk dari semua polinomial irreducible monik dalam [ ]p x yang derajatnya

membagi m atau faktor dari m sama denganmpx x .

Page 37: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

24

2). Misalkan ( )f x adalah polinomial berderajat m dalam [ ]p x , maka ( )f x irreducible

atas [ ]p x jika dan hanya jika gcd( ( ), ) 1ipf x x x , untuk setiap 1

2

mi

.

Teorema 2.55 Misalkan p adalah bilangan prima dan misalkan mempunyai faktor-faktor

prima yang berbeda dari 1mp adalah 1 2, ,..., tr r r , maka polinomial ireducible

( ) [ ]pf x x adalah primitif jika dan hanya jika untuk setiap 1 i t berlaku

( 1) / 1(mod ( ))m

ip rx f x .

Definisi 2.56 Misalkan ( )mGF p adalah finite field berkarakteristik p , dan misalkan

( )mc GF p . Polinomial minimum dari c atas p adalah polinomial monik berderajat

terkecil atas [ ]p x dengan c sebagai akarnya (Menezes 1997).

Teorema 2.57 Jika c adalah algebraic atas , maka polinomial minimum ( )m x

atas p mempunyai sifat:

1. ( )m x adalah polnomial irreducible atas [ ]p x .

2. Derajat dari ( )m x adalah pembagi dari m .

3. Misalkan t adalah bilangan bulat terkecil sedemikian sehinggatpc c , maka

1

0

( ) ( )i

tp

i

m x x c

(Menezes 1997).

2.9 Kompleksitas Komputasi

Algoritme aritmetik yang dihasilkan dapat dianalisis dari segi fungsi

kompleksitas waktu (time-complexity function), yaitu sebagai fungsi untuk mengukur

banyaknya operasi dalam suatu algoritme yang mempunyai variabel input n . Yang

dimaksud dengan banyaknya operasi adalah banyaknya operasi dasar (jumlah, kurang,

kali dan bagi) ditambahkan dengan assignment dan perbandingan (ekspresi logika).

Setelah mendefinisikan fungsi ( )f n untuk suatu algoritme, kemudian dengan Tabel O-

Besar kita tentukan order dari f sebagai ukuran efisiensi algoritme yang bersangkutan

(Guritman 2004). Namun demikian, algoritme aritmetik yang dihasilkan dalam penelitian

Page 38: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

25

ini tidak terlalu membutuhkan informasi berapa jumlah operasi dasar tersebut, akan

tetapi yang dibutuhkan adalah perkiraan kasar kebutuhan waktu algoritme dan seberapa

cepat fungsi kebutuhan waktu itu tumbuh. Kinerja algoritme akan tampak untuk n yang

sangat besar, bukan pada n yang berukuran kecil. Untuk n yang berukuran kecil maka

perbedaan kecepatannya tidak akan terlihat. Tetapi, bila algoritme tersebut diterapkan

untuk n yang berukuran lebih besar maka perbedaan kecepatannya akan terlihat sangat

berarti.

Page 39: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

BAB III

BAHASAN KONSTRUKSI (3 )mGF

Untuk mengonstruksi (3 )mGF dalam penelitian ini dapat dilakukan dengan

mengacu pada konsep perluasan filed pada Bab II bagian 2.8.

Karena 3 adalah bilangan prima, maka berdasarkan Teorema 2.22 3 adalah field

berhingga yang himpunan elemennya {0, 1, 2} dengan operasi penjumlahan dan operasi

perkalian dilakukan dalam modulo 3 dan merupakan ring komutatif. Karena 3 adalah

ring komutatif, maka berdasarkan Teorema 2.34 3[ ]x adalah himpunan dari semua

polinomial dalam x atas 3 dengan operasi penjumlahan dan perkalian polinomial

merupakan ring komutatif yang dinyatakan sebagai

13 0 1 1 3[ ] { ... }m m

m m ix a a x a x a x a . Operasi penjumlahan pada 3[ ]x

bersifat asosiatif, terdapat elemen identitas yaitu polinomial nol, setiap polinomial

3( ) [ ]a x x terdapat polinomial ( )a x sebagai elemen invers, dan merupakan grup

komutatif. Di lain pihak, operasi perkalian pada 3[ ]x bersifat asosiatif, distributif

terhadap operasi penjumlahan.

Misalkan 3( ) [ ]p x x adalah polinomial irreducible berderajat m , jika ada akar

c sehingga ( ) 0p c , maka himpunan semua polinomial yang dibangun oleh ( )p x

merupakan ideal utama ( )p x dan dapat dibentuk ring faktor 3[ ] ( )x p x . Karena

( )p x adalah polinomial irreducible berderajat m , maka berdasarkan Teorema 2.42

( )p x merupakan ideal maksimal. Dengan mengacu pada Teorema 2.32, maka

3[ ] ( )x p x adalah field. Berdasarkan Teorema 2.47, 3 3[ ] ( ) [ ]x p x c merupakan

perluasan dari field 3 . Selanjutnya berdasarkan Teorema 2.50, elemen-elemen 3[ ]c

dapat dinyatakan secara unik dalam bentuk 1 10 1 1 3{ ... }m

m ib b c b c b . Di lain

pihak, berdasarkan Teorema 2.51, 3[ ]c merupakan ruang vektor berdimensi-m atas 3 .

Untuk kepentingan komputasi, maka elemen 3[ ]c dapat direpresentasikan sebagai

vektor terner dari derajat terkecil ke derajat terbesar dalam bentuk 0 1 1[ , , . . . , ]ma a a .

Page 40: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

27

Berdasarkan Teorema 2.52, setiap field berhingga (3 )mGF mempunyai elemen

sebanyak pangkat dari bilangan prima berorder 3m . Akibatnya, berdasarkan Teorema

2.53 maka 3(3 ) [ ] ( )mGF x p x . Dari proses di atas, maka (3 )mGF merupakan

himpunan dari semua polinomial berderajat kurang dari m yang dinyatakan dalam

teorema berikut.

Teorema 3.1 Misalkan ( )p x adalah polinomial irredusible berderajat m atas 3 , maka

10 1 1 3(3 ) { ... }m m

m iGF a a x a x a adalah field berhingga.

Bukti :

Diketahui ( )p x adalah polinomial irredusibel berderajat m atas 3 .

Misalkan 3: [ ] (3 )mf x GF adalah fungsi yang didefinisikan

( ( )) ( )(mod ( ))f g x g x p x .

Misalkan 1 2 3( ), ( ) [ ]g x g x x maka f merupakan homomorfisma, karena

1 2 1 2( ( ) ( )) ( ( ) ( ))(mod ( ))f g x g x g x g x p x

1 2( ( ))(mod ( )) ( ( ))(mod ( ))g x p x g x p x

1 2( ( )) ( ( ))f g x f g x

1 2 1 2( ( ) ( )) ( ( ) ( ))(mod ( ))f g x g x g x g x p x

1 2( ( ))(mod ( ))( ( ))(mod ( ))g x p x g x p x

1 2( ( )) ( ( ))f g x f g x

Fungsi f juga surjektif, karena untuk setiap ( )(mod ( )) (3 )mg x p x GF maka terdapat

3( ) [ ]g x x sedemikian sehingga ( ( )) ( )(mod ( ))f g x g x p x .

Kernel dari f adalah 3ker( ) { ( ) [ ] ( ( )) 0}f g x x f g x

3{ ( ) [ ] ( )(mod ( )) 0}g x x g x p x

( )p x

Page 41: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

28

Karena fungsi f homomorfisma yang surjektif maka f merupakan epimorfisma

dengan ker( ) ( )f p x . Berdasarkan Teorema Dasar Homomorfisma (Teorema 2.30),

maka 3 3[ ] ( ) [ ] (3 )mx p x c GF . Akibatnya, (3 )mGF adalah field yang elemen-

elemennya merupakan himpunan semua polinomial-polinomial berderajat paling banyak

1m yang dinyatakan secara unik sebagai 10 1 1 3(3 ) { ... }m m

m iGF a a x a x a . ■

Dari keisomorfikan (3 )mGF dengan 3 3[ ] ( ) [ ]x p x c , maka operasi dan

representasi elemen-elemennya dapat dijelaskan sebagai berikut.

Misalkan, diberikan fungsi polinomial 10 1 1 3( ) { ... }m

m ia x a a x a x a dan

10 1 1 3( ) { ... }m

m ib x b b x b x b . Operasi penjumlahan dalam (3 )mGF

didefinisikan sebagai ( ) ( ) ( )c x a x b x 10 1 1... m

mc c x c x dengan

0 0 0( ) mod 3c a b , 1 1 1( ) mod 3c a b , . . . , 1 1 1( ) mod 3m m mc a b . Operasi

perkalian dalam (3 )mGF didefinisikan sebagai perkalian polinomial modulo ( )p x , yaitu

mengambil sisa dari perkalian ( )a x dan ( )b x setelah dibagi dengan ( )p x dinotasikan

( ) ( ) ( ) mod ( )c x a x b x p x .

Elemen (3 )mGF dapat direpresentasikan sebagai bentuk polinomial

10 1 1 3{ ... }m

m ia a x a x a , bentuk basis baku 2 1{1, , , . . . , }mc c c , bentuk

koordinat vektor 0 1 1[ , , . . . , ]ma a a .

Karena (3 )mGF adalah field berhingga, maka himpunan elemen-elemen tak-nol

dari (3 )mGF membentuk grup siklik terhadap operasi perkalian, dinotasikan *(3 )mGF .

Hal ini disajikan dalam teorema berikut ini.

Teorema 3.2 Grup *(3 )mGF merupakan grup siklik terhadap operasi perkalian berorder

3 1m .

Bukti :

Misalkan (3 )mGF .

Page 42: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

29

Karena *(3 )mGF berorder 3 1m , maka i paling banyak merupakan 3 1m elemen

berbeda sehingga terdapat r , dimana 1 3 1mr berlaku

r i i ( . ). .r i i i i ( . ) 1r i i

sehingga diperoleh 1r . Jadi r minimum sehingga ( )O r .

Selanjutnya, misalkan r adalah order maksimal dari elemen *(3 )mGF terhadap operasi

perkalian, maka akan berlaku 1 0r , untuk setiap (3 )mGF . Karena setiap

elemen dari (3 )mGF merupakan akar dari polinomial 1r , akibatnya polinomial

berderajat r dapat mempunyai paling banyak r akar.

Karena *(3 )mGF grup siklik terhadap operasi perkalian maka terdapat (3 )mGF ,

dan 3 1mr tetapi 3 1mr , hal ini menunjukkan bahwa 3 1mr . Dengan

demikian, * 2 3 2(3 ) {1, , ,..., }mmGF dan berorder 3 1m .

Terbukti *(3 )mGF siklik. ■

Definisi 3.3 Suatu elemen dalam finite field *(3 )mGF disebut elemen primitif atau

generator dari (3 )mGF , jika * 2 3 2(3 ) {1, , ,..., }mmGF (Ling 2004).

Definisi 3.4 Polinomial irreducible ( ) (3)[ ]f x GF x berderajat m disebut polinomial

primitif dengan akar , jika adalah generator dari (3 )mGF (Menezes 1997).

Berdasarkan sifat dari grup siklik bahwa setiap elemen (3 )mGF memenuhi

polinomial 3 1 1 0m

dan selalu mempunyai akar primitif sebagai pembangun

(3 )mGF . Untuk membangun algoritme aritmetik (3 )mGF dalam penelitian ini

dilakukan dengan mengambil polinomial primitif berderajat m atas 3 yang merupakan

polinomial minimum 0 1( ) ... mmm x a a x a x dimana merupakan akar primitifnya

sedemikian sehingga ( ) 0m . Selanjutnya tentukan basisnya di (3 )mGF sebagai ruang

vektor atas 3 . Misalkan (3 )mGF adalah field berhingga dan adalah elemen primitif

dalam (3 )mGF , maka bentuk basis standar dari polinomial primitifnya adalah

Page 43: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

30

2 3 2{1, , , ..., }m

dan setiap elemen (3 )j mGF dapat dinyatakan secara unik

sebagai 10 1 1...j m

ma a x a x dimana 3ia . Untuk kepentingan komputasi,

maka bentuk basis j dapat direpresentasikan sebagai koordinat vektor terner dari

derajat terkecil ke derajat terbesar dalam bentuk 0 1 1[ , , . . . , ]jma a a .

Pengambilan polinomial primitif dalam penelitian ini dapat dilakukan secara

komputasi menggunakan Software Maple 11 dengan langkah-langkah sebagai berikut.

Pertama-tama tes apakah polinomial irreducible atau tidak. Selanjutnya, tes polinomial

irreducible primitif atau tidak. Adapun Algoritme 3.1 dan Algoritme 3.2 merupakan

algoritme rutin yang akan digunakan pada Algoritme 3.3 dan Algoritme 3.4.

Algoritme 3.1

Deskripsi : Prosedur untuk menghitung Ax mod BInput : Vektor 0 1[ , , . . . , ]sA a a a , vektor 0 1[ , , . . . , b ]tB b b , dan integer x

Output : modxH A B

1. Ubah x dalam basis 22. Isi G = H, H = [1]3. Jika X1 = 1, maka H = G4. Untuk i mulai 2 sampai panjang vektor X, lakukan

4.1 Hitung K = perkalian G dengan G4.2 Hitung G = sisa hasil bagi K dengan B4.3 Jika Xi = 1, maka lakukan

4.3.1 Hitung L = perkalian H dengan G4.3.2 Hitung H = sisa hasil bagi L dengan B

5. Return(H)

Algoritme 3.2

Deskripsi : Prosedur untuk menghitung Gcd dari vektor A dan vektor BInput : Vektor 0 1[ , , . . . , ]sA a a a , vektor 0 1[ , , . . . , b ]tB b b

Output : ( , )RA Gcd A B

1. Hitung a = panjang vektor A dan b = panjang vektor B2. Isi RA = A, RB = B3. Jika a < b, maka RA = B dan RB = A4. Jika RB = [0], maka return(RA)5. Hitung L = sisa hasil bagi RA dengan RB6. Isi RA = RB dan RB = L7. Untuk i selama RB ≠ [0], maka lakukan berulang-ulang

7.1 Hitung L = sisa hasil bagi RA dengan RB

Page 44: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

31

7.2 Isi RA = RB dan RB = L8. Return(RA)

Vektor terner yang dibangkitkan, cek apakah irreducible atau tidak menggunakan

Algoritme 3.3. Algoritme ini didasarkan pada Teorema 2.55.

.Algoritme 3.3

Deskripsi : Prosedur untuk memeriksa polinomial irreducible atau tidakInput : Vektor 0 1[ , , . . . , ]sA a a a

Output : Apakah irreducible ?

1. Hitung a = panjang vektor A - 1

2. Hitung m =2

m

3. Isi [0,1]W

4. Untuk i dari 1 sampai m, lakukan

4.1 Hitung modxW A B menggunakan Algoritme 3.14.2 Hitung U = jumlah vektor W dengan [0, 2]4.3 Hitung H = Gcd(A,B) menggunakan Algoritme 3.24.4 Hitung h = panjang vektor H

4.4.1 Jika h > 1, maka return(false)5. Return(true)

Selanjutnya, cek apakah primitif atau tidak dengan menggunakan Algoritme 3.4.

Algoritme ini didasarkan pada Teorema 2.56.

Algoritme 3.4

Deskripsi : Prosedur untuk memeriksa polinomial irreducible adalah primitifInput : Vektor 0 1[ , , . . . , ]sA a a a

Output : Apakah polinomial primitif ?

1. Hitung m = panjang vektor A – 1

2. Hitung 3 1mh 3. Hitung F = faktor prima dari h4. Hitung a = panjang vektor F5. Untuk i dari 1 sampai a , lakukan

5.1 Hitung / ik h F

5.2 Hitung H = [0, 1]k mod A menggunakan Algoritme 3.15.3 Jika H = [1], maka return(false)

6. Return(true)

Page 45: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

32

Pembangkitan vektor terner yang primitif dalam penelitian ini dapat dilakukan

dengan memilih vektor yang bersuku kecil, yaitu vektor bersuku dua dengan

menggunakan Algoritme 3.5, vektor bersuku tiga dengan menggunakan Algoritme 3.6,

vektor bersuku empat dengan menggunakan Algoritme 3.7.

Algoritme 3.5

Deskripsi : Prosedur untuk membangkitkan polinomial primitif bersuku duaInput : Bilangan bulat positif mOutput : Vektor primitif bersuku dua Y

1. Untuk i dari 1 sampai 4, lakukan1.1 Jika (i mod 3) 0, maka

1.1 Ubah X = dari desimal ke vektor terner1.2 Hitung x = panjang elemen X1.3 Isi vektor Y = [X, 0...(m - x), 1]1.4 T = Test irreducible Y menggunakan Algoritme 3.3

1.4 Jika T = true, maka1.4.1 U = Test Primitif Y menggunakan Algoritme 3.41.4.2 Jika U = true, maka

2. Return(Y)

Jika vektor primitif bersuku dua tidak ada maka vektor primitifnya dapat dipilih

dari vektor primitif bersuku tiga dengan menggunakan Algoritme 3.6.

Algoritme 3.6

Deskripsi : Prosedur untuk membangkitkan polinomial primitif bersuku tigaInput : Bilangan bulat positif m dan floor((m+1)/2)Output : Vektor primitif bersuku tiga Y

1. Untuk i dari 1 sampai 2, lakukan1.1 Untuk j dari 1 sampai 2, lakukan

1.1.1 T = Test irreducible menggunakan Algoritme 3.31.1.2 Jika T = true, maka

U = Test Primitif menggunakan Algoritme 3.41.1.3 Jika U = true, maka Return(Y)

1.2 Untuk k dari 1 sampai (m-2), lakukan1.1.1 T = Test irreducible menggunakan Algoritme 3.31.1.2 Jika T = true, maka

U = Test Primitif menggunakan Algoritme 3.41.1.3 Jika U = true, maka Return(Y)

2. Return(Y)

Page 46: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

33

Jika vektor primitif bersuku tiga tidak ada maka vektor primitifnya dapat dipilih

dari vektor primitif bersuku empat atau lebih dengan menggunakan Algoritme 3.7.

Algoritme 3.7

Deskripsi : Prosedur untuk membangkitkan polinomial primitif bersuku tigaInput : Bilangan bulat positif m dan floor((m+1)/2)Output : Vektor primitif bersuku tiga Y

1. Untuk i dari 1 sampai 2, lakukan1.1 Untuk j dari 1 sampai 2, lakukan

1.1.1 Untuk k dari 1 sampai 2, lakukan1.1.1.1 T = Test irreducible menggunakan Algoritme 3.31.1.1.2 Jika T = true, maka

U = Test Primitif menggunakan Algoritme 3.41.1.1.3 Jika U = true, maka Return(Y)

1.1.2 Untuk l dari 1 sampai (m-3), lakukan1.1.2.1 T = Test irreducible menggunakan Algoritme 3.31.1.2.2 Jika T = true, maka

U = Test Primitif menggunakan Algoritme 3.41.1.2.3 Jika U = true, maka Return(Y)

1.1.2 Untuk l dari 1 sampai (m-3), lakukan1.1.2.1 T = Test irreducible menggunakan Algoritme 3.31.1.2.2 Jika T = true, maka

U = Test Primitif menggunakan Algoritme 3.41.1.2.3 Jika U = true, maka Return(Y)

2. Return(Y)

Pemilihan polinomial primitif bersuku kecil dimaksudkan agar dapat

mempercepat proses kalkulasi aritmetik field (3 )mGF . Polinomial primitif bersuku kecil

yang digunakan dalam penelitian ini dapat dilihat pada Lampiran II. Selanjutnya, untuk

kepentingan komputasi polinomial primitif yang dipilih direpresentasikan sebagai vektor

terner yang dipilih akan disimpan dalam basis data. Untuk menggunakan basis data

tersebut cukup dipanggil derajat tertinggi.

Sebagai contoh, misalkan pilih 3m . Untuk membangun field 3(3 )GF dapat

dikerjakan dari 3 , karena 3 merupakan subfield dari 3(3 )GF . Ambil polinomial

primitif 33( ) 2 1 [ ]m x x x x yang merupakan polinomial minimum berderajat 3

dimana adalah akar primitifnya. Periksa apakah akar merupakan algebraic atau

tidak.

Page 47: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

34

Ambil (3)GF sedemikian sehingga ( ) 0m .

Untuk 0 , maka 3(0) 0 2.0 1 1m . Jadi 0 bukan akar dari ( )m x .

1 , maka 3(1) 1 2.1 1 1m . Jadi 1 bukan akar dari ( )m x .

2 , maka 3(2) 2 2.2 1 1m . Jadi 2 bukan akar dari ( )m x .

Karena untuk 0 , 1 , dan 2 bukan akar dari polinomial ( )m x , ini

menunjukkan bahwa merupakan algebraic. Pilih akar pada perluasan field 3

sedemikian sehingga ( ) 0m mengakibatkan 3 3( ) 2 1 0 2m .

Dengan 3 2 dapat digunakan untuk membangun perluasan field yang memuat

semua akar-akar dari polinomial 3( ) [ ]m x x , sehingga diperoleh

4 3 2 2 , 5 4 22 2 , 6 5 2 1 ,

7 6 22 2 2 , 8 7 22 2 , 9 8 1 ,

10 9 2 , . . . , 25 24 22 1 , 26 25 0 1 .

Selanjutnya, karena polinomial ( )m x berderajat 3 maka 2{1, , } bebas linear

atas 3( ) . Artinya 2{1, , } merupakan basis dari 3( ) , sehingga 3( )

merupakan ruang vektor berdimensi 3 atas 3 . Selanjutnya, subfield dari 3(3 )GF terdiri

dari 3 dan 3(3 )GF dengan masing-masing ordernya adalah 3 dan 27. Elemen-elemen

dari subfield yang berorder 3 adalah {0, 1, 2}, sedangkan elemen-elemen subfield yang

berorder 27 adalah field itu sendiri yaitu 25{0, 1, , ..., } dengan basisnya

25{1, , ..., } . Jadi 3 25(3 ) 27 {0, 1, , ..., }GF dengan basisnya adalah

25{0, 1, , ..., } dan jika elemen nol dikeluarkan maka 3(3 )GF akan membentuk grup

siklik yang dibangkitkan oleh , dinotasikan 3(3 )GF . Jadi

3 25(3 ) 26 {1, , ..., }GF dengan basisnya adalah 25{1, , ..., } .

Dengan demikian, himpunan semua polinomial-polinomial berderajat kurang dari

3 atas 3 yang dibangun oleh polinomial primitif 33( ) 2 1 [ ]m x x x x adalah

Page 48: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

35

2 2 2

2 2 2 2 2 2

2 2 2 2 2 2 2

2 2

{0, 1, 2, , 1, 2, 2 , 2 1, 2 2, , 1, 2,

, 2 , 1, 2, 2 1, 2 2,

2 , 2 1, 2 2, 2 , 2 1, 2 2, 2 2 ,

2 2 1, 2 2 2}

Dengan mengambil 3 , dan 2 9 , maka diperoleh hubungan antara

representasi elemen primitif, representasi basis polinomial, representasi vektor terner,

dan representasi integer dapat dilihat pada Tabel 3.1.

Tabel 3.1 Galois Field dari 3(3 )GF

NoElemenPrimitif

RepresentasiBasis

VektorTerner

RepresentasiInteger

123456789101112131415161718192021222324252627

0α0 = α26

α1

α2

α3

α4

α5

α6

α7

α8

α9

α10

α11

α12

α13

α14

α15

α16

α17

α18

α19

α20

α21

α22

α23

α24

α25

01αα2

α + 2α2 + 2α

2α2 + α + 2α2 + α + 1α2 + 2α + 2

2α2 + 2α + 1α2 + α

α2 + α + 2α2 + 2

22α2α2

2α + 12α2 + α

α2 + 2α + 12α2 + 2α + 22α2 + α + 1α2 + 12α + 2

2α2 + 2α2α2 + 2α + 1

2α2 + 1

[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]

01395152313172041214112618720162622108242519

Page 49: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

BAB IV

BAHASAN ALGORITME ARITMETIK (3 )mGF

Telah dijelaskan sebelumnya bahwa dalam mengonstruksi field (3 )mGF

diperoleh dari perluasan field 3 dengan memilih polinomial primitif berderajat m atas

3 yang dalam hal ini dapat dilihat pada Tebel 3.1, yaitu representasi basis polinomial

dan representasi vektor terner. Operasi penjumlahan disini menggunakan operasi jumlah

modulo 3, sedangkan operasi perkalian sama seperti perkalian pada umumnya tetapi pada

saat penjumlahannya tetap menggunakan operasi jumlah modulo 3.

Contoh :

1. Operasi Penjumlahan

2

2

2

1 2 2 1 2 2

1 0 2 1 2

2 2 1 2 2

2. Operasi Perkalian

2 2 2 3 4 2

2 3 4

1 2 2

1 0 2 (1+2 +2 )(1+2 ) = 2 1+2 +2

2 1 1 = 1+2 + + +

2 30 0 0 (2 + 2 ) (mod +2 1)

1 2 2

1 2 1 1 1

Berikut ini akan dijelaskan beberapa algoritma yang berkaitan dalam

mengkonstruksi algoritma aritmetik atas (3 )mGF dengan menggunakan Software

MAPLE 11. Algoritme aritmetik yang dihasilkan akan dianalisis untuk mengukur kinerja

algoritme berdasarkan fungsi kompleksitas, yaitu sebagai fungsi untuk mengukur

banyaknya operasi dalam suatu algoritme yang mempunyai variabel input n

ditambahkan dengan assignment dan operasi perbandingan (ekspresi logika).

Page 50: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

37

Proses kalkulasi aritmetik dalam penelitian ini akan menggunakan Algoritme

Reduksi Nol (Algoritme 4.1), yaitu sebagai algoritme rutin untuk mereduksi elemen nol

yang tidak berpengaruh dalam representasi vektor. Algoritme Reduksi Nol ini akan

digunakan oleh algoritme-algoritme pada operasi dasar, yaitu operasi penjumlahan dan

operasi perkalian sehingga dapat menghemat pemakaian ruang yang besar dan jumlah

operasi.

Misalkan, diberikan polinomial 10 3( ) 2a x x x x . Ini menunjukkan bahwa

polinomial primitif ( )a x memiliki derajat 10 sehingga

10 3 4 5 6 7 8 91 2 2 0 0 0 0 0 0x x x x x x x x x dan jika ditulis dalam bentuk vektor

maka ( ) [1,2,0, 2,0,0,0,0,0]A x . Jadi dengan menggunakan Algoritme Reduksi Nol

maka vektor ( ) [1, 2,0,2]A x .

Algoritme 4.1

Deskripsi : Prosedur untuk mereduksi nol pada posisi sebelah kananInput : Vektor T dan Bilangan bulat positif tOutput : Vektor R

1. T = R, t = banyaknya elemen T2. Untuk j selama [ ] 0T t dan 1t , lakukan

2.1 Reduksi nol pada vektor T2.2 t = t - 1

3. Return(”R”)

Banyaknya operasi dalam Algoritme 4.1 melibatkan rata-rata 2n operasi,

dimana n adalah panjang vektor T.

4.1 Operasi Penjumlahan

Sebagaimana dijelaskan sebelumnya, representasi yang digunakan disini adalah

representasi basis polinomial yang dikonversi ke dalam representasi vektor terner dari

derajat terkecil ke derajat yang terbesar. Misalkan fungsi polinomial

0 1( ) ... mmf x a a x a x dan fungsi polinomial 0 1( ) ... m

mg x b b x b x . Fungsi

polinomial ini akan direpresentasikan sebagai vektor terner, yaitu 0 1[ , , ..., ]mA a a a

Page 51: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

38

dan 0 1[ , , ..., ]mB b b b , maka operasi penjumlahan vektor A dan vektor B didefinisikan

sebagai

0 0 1 1([( ) mod 3, ( ) mod 3,..., ( ) mod 3])m mA B a b a b a b .

Algoritme 4.2

Deskripsi : Prosedur untuk menjumlahkan dua vektorInput : Vektor 1 2 1 2[ , , ..., ], vektor [ , , ..., ]s tA a a a B b b b , dan integer positif m.

Output : 1 2Vektor [ , , ..., ]rC A B c c c

1. Hitung s, dan t yaitu banyaknya elemen vektor A dan B2. Jika s t , maka hitung

1.1 0 0 1 1([( ) mod 3, ( ) mod 3,..., ( ) mod 3])s tA B a b a b a b

1.2 Reduksi Nol menggunakan Algoritme 4.12. Jika s t , maka hitung

2.1 1 1 2 2( ) mod3, ( ) mod 3 ,..., mod3ta b a b b

Lainnya, 1 1 2 2( ) mod3, ( ) mod3 ,..., mod 3sa b a b a

3. Return(“C”)

Banyaknya operasi dalam Algoritme 4.2 melibatkan rata-rata menggunakan n

modulo 3. Jadi fungsi kompleksitasnya adalah ( )O n .

Sebagai contoh, misalkan 3m dimana polinomial primitifnya disimpan dalam

basis data DatT[m] = [2, 1] dan diberikan fungsi polinomial 2( ) 1 2a x x x dan

2( ) 2b x x x . Kedua polinomial tersebut akan direpresentasikan sebagai vektor

(1, 1, 2)A dan vektor (0, 2, 1)B . Karena banyak elemen vektor A sama dengan

banyaknya elemen pada vektor B, maka penjumlahan vektor A dan vektor B dengan

menggunakan Algoritme 4.9 adalah

C A B

([(1 0) mod3, (1 2) mod3, (2 1) mod3])C .

([1, 0, 0])C .

Elemen nol pada posisi paling kanan direduksi menggunakan Algoritme 4.8,

maka vektor [1]C A B . Jika vektor [1]C dikembalikan ke representasi

polinomial, maka fungsi polinomialnya adalah 0( ) 1 1c x x .

Page 52: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

39

4.2 Operasi Perkalian

Operasi perkalian dalam (3 )mGF dilakukan dalam perkalian polinomial biasa

kemudian mengambil sisa dari hasil pembagian dengan polinomial primitif ( )p x .

Operasi perkalian dalam penelitian ini menggunakan Algoritme 4.5. Jika Algoritme 4.5

diimplementasikan pada program Software MAPLE 11 maka proses pertama yang

dilakukan adalah mengecek apakah kedua vektor tersebut mempunyai elemen yang

sama? Jika banyaknya elemen vektor kedua kurang dari banyaknya elemen vektor

pertama maka vektor tersebut saling ditukarkan. Hal ini bertujuan agar tidak

menggunakan ruang yang besar dalam kalkulasi aritmetik dalam komputasi. Selanjutnya,

gunakan algoritme rutin dalam operasi kelipatan vektor, yaitu Algoritme 4.3, yaitu untuk

mengalikan kelipatan vektor. Proses kedua menggunakan algoritme rutin dalam operasi

geser satu, yaitu untuk menggeser satu langkah dalam setiap perkalian elemen-

elemennya menggunakan Algoritme 4.4. Kemudian menjumlahkan proses pertama

dengan proses kedua secara rekursif menggunakan Algoritme 4.2.

Algoritme 4.3

Deskripsi : Prosedur untuk mengalikan kelipatan vektorInput : Vektor 1 2[ , , ..., ]sA a a a , dan bilangan bulat positif {0,1,2}m .

Output : vektor R

1. Jika m = 0, maka return([0])2. Jika m = 1, maka return(A), selainnya R = Negatifkan vektor A3. Return(”R”).

Banyaknya operasi dalam Algoritme 4.3 melibatkan rata-rata menggunakan n

operasi. Jadi fungsi kompleksitasnya adalah ( )O n .

Algoritme 4.4

Deskripsi : Prosedur untuk menggeser satu langkahInput : Vektor 1 2[ , , ..., ]sA a a a , dan bilangan bulat positif m.

Output : vektor R

1. L = vektor dalam basis data2. t = banyaknya elemen vektor A3. Jika t m maka isi vektor R dengan 0 sebanyak t selainya

3.1 Isi R dengan 0 dan mereduksi elemen ke-m pada vektor A

Page 53: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

40

3.2 Reduksi Nol dengan menggunakan Algoritme 4.13.3 Kalikan vektor L dengan elemen ke-t pada vektor A menggunakan

Algoritme 4.133.4 Jumlahkan hasil langkah 3.2 dengan langkah 3.3 menggunakan

Algoritme 4.24. Return(”R”).

Banyaknya operasi dalam Algoritme 4.4 melibatkan rata-rata menggunakan .n n

operasi. Jadi fungsi kompleksitas waktunya adalah 2( )O n .

Algoritme 4.5

Deskripsi : Prosedur untuk menghitung perkalian dua vektorInput : Vektor 1 2 1 2[ , , ..., ], vektor [ , , ..., ]s tA a a a B b b b , dan bilangan bulat

positif m.Output : 1 2Vektor . [ , , ..., ]rR A B c c c

1. Vektor S = A, vektor T = B, s, dan t masing-masing banyaknya elemenvektor A dan B

2. Jika s t maka lakukan2.1 Tukarkan vektor A dengan vektor B2.2 Hitung perkalian vektor B dengan elemen 1 vektor A menggunakan

Algoritme 4.32.3 Untuk j dari 1 sampai ( 1)s , lakukan

2.3.1 Geser vektor satu langkah menggunakan Algoritme 4.42.3.2 Hitung perkalian vektor pada langkah 2.3.1 dengan elemen

(j+1) vektor A menggunakan Algoritme 4.32.3.3 Hitung adisi langkah 2.2 dengan langkah 2.3.2 menggunakan

Algoritme 4.23. Return(”R”).

Banyaknya operasi dalam Algoritme 4.5 melibatkan rata-rata menggunakan .n n

operasi. Jadi fungsi kompleksitas waktunya adalah 2( )O n .

Sebagai contoh, misalkan 3m dimana polinomial primitifnya disimpan dalam

basis data DatT[m] = [2, 1] dan diberikan fungsi polinomial 2( ) 2 2a x x x dan

2( ) 2 2 2b x x x . Kedua polinomial tersebut akan direpresentasikan sebagai

vektor [2,1,2] dan vektor [2,2,2]A B . Tentukan vektor R dengan menggunakan

algoritme 4.3, yaitu kalikan vektor B dengan elemen pertama pada vektor A yang

hasilnya dalah 1 [1, 1, 1]R . Proses kedua menentukan vektor T dengan menggunakan

Algoritme 4.2, yaitu T1 = [1, 1, 2] lalu kalikan elemen ke-2 pada vektor A menghasilkan

Page 54: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

41

vektor V1 = [ 1, 1, 2] kemudian jumlahkan dengan vektor R1 menggunakan Algoritme

4.9 menghasilkan vektor R2 = [2, 2]. Selanjutnya ulangi proses kedua untuk memperoleh

vektor T2 = [1, 0, 1] lalu kalikan elemen ke-3 pada vektor A menghasilkan vektor V2 =

[ 2, 0, 2] kemudian jumlahkan dengan vektor R2 menggunakan Algoritme 4.3

menghasilkan vektor 3 [1, 2, 2]R . Dengan demikian diperoleh hasil perkalian vektor A

dan vektor B yaitu 3 [1, 2, 2]R . Jika vektor 3 [1, 2, 2]R dikembalikan ke representasi

polinomial maka fungsi polinomialnya adalah 2( ) 1 2 2r x x x .

4.3 Operasi Invers

Misalkan sembarang fungsi polinomial 0 1( ) ... ttf x a a x a x , dan fungsi

polinomial primitif ( )p x berderajat m. Representasikan fungsi ( )f x sebagai vektor

terner 0 1[ , , ..., ]tA a a a , maka untuk menentukan invers dari vektor A dapat

menggunakan Algoritme 4.7. Jika Algoritme 4.7 diimplementasikan pada program

Software MAPLE 11 maka proses pertama adalah Negatifkan vektor dalam DatT(m)

yang berfungsi sebagai polinomial primitif menggunakan Algoritme 1.4 (Lampiran I),

jika elemen A adalah nol maka vektor A tidak mempunyai invers, dan jika banyak

elemen vektor A adalah 1 maka inversnya adalah vektor itu sendiri. Proses kedua adalah

isi vektor RA, vektor RB = T, vektor QA = [0], dan vektor QB = [1] yang kemudian

gunakan Algoritme 4.6 untuk menentukan vektor L, yaitu membagi vektor RA dengan

vektor RB. Proses selanjutnya adalah selama RB = op(2, L) tidak nol, maka lakukan

secara berulang-ulang dengan menggunakan algoritme operasi rutin yaitu berturut-turut

Algoritme 1.8, dan Algoritme 1.4 (Lampiran I), yang kemudian jumlahkan dengan

menggunakan Algoritme 4.2. Pada proses terakhir gunakan Algoritma 4.3 untuk

menentukan vektor H.

Algoritme 4.6

Deskripsi : Prosedur untuk pembagian vektor tanpa moduloInput : Vektor 1 2[ , , ..., ]tT a a a , 1 2[ , , ..., ]sS b b b

Output : Vektor / [[ ],[ ]]H A B Q R

1. R = A, Q = [0]2. r, s masing-masing banyaknya elemen vektor T dan S3. g = elemen ke-s pada vektor S

Page 55: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

42

4. Jika s = 1, maka4.1 Q = kalikan vektor R dengan setiap elemen pada vektor S

menggunakan Algoritme 4.34.2 R = [0]4.3 Return([Q, R])

5. Untuk i selama r s lakukan5.1 Hitung k r s , t = elemen ke-r pada R3.2 Hitung ( . ) mod 3h t g

3.3 Jika k = 0, maka3.3.1 K = Kalikan S dengan h menggunakan Algoritme 4.33.3.2 Q = Jumlahkan hasil bagi Q dengan vektor h menggunakan

Algoritme 4.2. Selainnya,3.3.3 H = Kalikan S dengan h menggunakan Algoritme 4.33.3.4 K = Isi 0 depan elemen H sebanyak k3.3.5 Q = Jumlahkan Q dengan [0...k, h] gunakan Algoritme 4.2

6. K = Negatifkan vektor K7. R = Jumlahkan K dengan R menggunakan Algoritme 4.38. r = banyaknya elemen R9. Return(”[Q, R]”)

Banyaknya operasi dalam Algoritme 4.6 melibatkan rata-rata menggunakan .n n

operasi. Jadi fungsi kompleksitas waktunya adalah 2( )O n .

Algoritme 4.7

Deskripsi : Prosedur untuk menentukan invers vektorInput : Vektor 1 2[ , , ..., ]tT a a a , dan integer positif m.

Output : 11 2Vektor [ , , ..., ]rH A c c c

1. Negatifkan vektor S2. s = banyaknya elemen S, t = banyaknya elemen T3. Jika T = [0], maka return(false)4. Jika t = 1, maka return(T)5. RA = [S, 0...(m - t), 1], RB = T, QA = [0], QB = [1]6. Hitung pembagian vektor RA dengan RB menggunakan Algoritme 4.67. RA = RB, RB = elemen kedua pada langkah 68. Untuk i selama A tidak nol, maka lakukan langkah berikut berulang-ulang

8.1 Tmp = QA, QA = QB8.2 Hitung perkalian QB dengan elemen pertama pada langkah 6

menggunakan Algoritme 1.88.3 Negatifkan pada langkah 8.28.4 Hitung penjumlahan Tmp dengan langkah 8.3 menggunakan

Algoritme 4.28.5 Hitung pembagian RA dengan RB menggunakan Algoritme 4.69.6 RA = RB, RB = elemen kedua pada hasil langkah 8.5

9. Hitung perkalian hasil langkah 8.4 dengan RA gunakan Algoritme 4.310. Return(”H”)

Page 56: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

43

Banyaknya operasi dalam Algoritme 4.7 melibatkan rata-rata menggunakan .n n

operasi. Jadi fungsi kompleksitas waktunya adalah 2( )O n .

Sebagai contoh, misalkan 3m dimana polinomial primitifnya disimpan dalam

basis data DatT[m] = [2, 1] dan diberikan fungsi polinomial 2( ) 1 2t x x x yang

direpresentasikan menjadi vektor terner yaitu [1, 2, 1]T , Gunakan Algoritma 1.4

untuk menegatifkan vektor DatT(m), yaitu S = [1, 2]. Selanjutnya, isi vektor RA dengan

vektor QA = [0], dan vektor QB =[1], yaitu [1, 2,0,1]RA dan vektor RB = T yang

kemudian gunakan Algoritme 4.6 untuk menentukan vektor L, yaitu membagi vektor RA

dengan vektor RB, outputnya adalah vektor L = [[1, 1], [0, 2]], isi RA = [1, 2, 1], RB =

[0, 2], karena [0]RB maka lakukan berulang-ulang sampai [0]RB . Isi Tmp = [0],

QB = [1], gunakan Algoritma 1.8 untuk mengalikan vektor QB dengan vektor RA, yaitu

H = [1, 1].

Kemudian gunakan Algoritme 1.4 untuk menegatifkan vektor H, yaitu R = [2, 2],

selanjutnya gunakan Algoritme 4.2 untuk menjumlahkan Tmp dan R, yaitu QB = [2, 2].

Gunakan Algoritme 4.6 untuk menentukan vektor L, yaitu membagi vektor RA dengan

vektor RB, outputnya adalah vektor L = [[1, 2], [2]], jadi RA = [0, 2] dan RB = [1].

Karena [0]RB , maka ulangi langkah-langkah sebelumnya sampai mendapatkan

[0]RB . Dengan demikian, jika [0]RB maka gunakan Algoritme 4.3 untuk

menentukan [2, 0, 2]H yang dalam hal ini vektor H merupakan invers dari vektor T.

Jika vektor [2, 0, 2]H direpresentasikan ke bentuk polinomial maka polinomialnya

adalah 2( ) 2 2h x x

4.4 Operasi Pembagian

Untuk menghitung operasi pembagian dalam penelitian ini dapat dilakukan

melalui proses menggunakan Algoritme 4.7 untuk menentukan invers vektor B kemudian

kalikan dengan vektor A menggunkan Algoritme 4.5.

Algoritme 4.8

Deskripsi : Prosedur untuk menghitung pembagian vektor

Page 57: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

44

Input : Vektor 1 2[ , , ..., ]tA a a a , vektor 1 2[ , , ..., ]sB b b b dan integer positif m.

Output : 1 2Vektor / [ , , ..., ]rC A B c c c

1. Hitung invers vektor B menggunakan Algoritme 4.72. Hitung perkalian vektor A dengan langkah 1 menggunakan Algoritme 4.53. Return(”C”)

Banyaknya operasi dalam Algoritme 4.8 melibatkan rata-rata menggunakan . .n n n

operasi. Jadi fungsi kompleksitas waktunya adalah 3( )O n .

Sebagai contoh, misalkan 3m dimana polinomial primitifnya disimpan dalam

basis data DatT[m] = [2, 1] dan diberikan fungsi polinomial 2( ) 2 2a x x x dan

2( ) 2 2 2b x x x . Kedua polinomial tersebut akan direpresentasikan sebagai

vektor [2,1,2] dan vektor [2,2,2]A B . Untuk menghitung pembagian

vektor [2,1,2] dan vektor [2,2,2]A B , langkah pertama adalah menentukan invers

dari vektor B dengan menggunakan Algoritme 4.7, yaitu iB = [2, 2, 1] kemudian

mengalikan vektor A dengan iB menggunakan Algoritme 4.5 sehingga output pembagian

vektor A dengan vektor B adalah [2, 0, 1]. Jika dikembalikan dalam bentuk polinomial,

maka fungsi polinomialnya adalah 22C .

4.5 Operasi Exponensial

Aritmetik dalam operasi exponen berfungsi untuk mengalikan dua fungsi

polinomial atau lebih. Misalkan sembarang fungsi polinomial 0 1( ) ... ssf x a a x a x

direpresentasikan dalam vektor 1 2[ , ,..., ]sA a a a dan barisan basis dua

0 1[ , , ..., ]ik k k k , dimana [0,1]i , serta fungsi polinomial primitif ( )p x berderajat m.

Derajat maksimal dari fungsi polinomial di sini berlaku sebagai modulus yaitu (3 1)m ,

sedangkan exponennya merupakan barisan basis dua yang diperoleh dari nilai input i

yang dimoduluskan dengan menggunakan algoritme operasi rutin, yaitu Algoritme 4.9.

Proses selanjutnya, jika nilai yang dimoduluskan (3 1)m lebih dari atau sama

dengan nol, maka konversi ke dalam basis 2. Jika hasil konversinya sama dengan 1,

maka H = A. Untuk hasil konversi mulai dari 2, maka gunakan Algoritme 4.12 untuk

menentukan perkalian A dengan A yaitu vektor G dan jika elemen ke-i pada konversi

Page 58: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

45

sama dengan 1 maka gunakan Algoritme 4.5 untuk menentukan perkalian H dengan G

dan jika nilai yang dimoduluskan (3 1)m adalah negatif maka konversi ke dalam basis 2

lalu gunakan Algoritme 4.7 untuk menentukan invers A, isi H = [1]. Jika elemen pertama

hasl konversi sama dengan 1, maka H = G. Untuk elemen hasil konversi mulai dari 2,

maka gunakan Algoritme 4.5 untuk menentukan perkalian G dengan G dan jika elemen

ke-i pada hasil konversi sama dengan 1 maka gunakan Algoritme 4.5 untuk menentukan

perkalian H dengan G.

Algoritme 4.9

Deskripsi : Prosedur untuk menghitung a mod m dalam rentang negatifInput : Integer positif m dan aOutput : Integer b

1. Hitung modb a m

2. / 2c m 3. Jika b c , maka

3.1 b = - (m – b)4. Return(”b”)

Banyaknya operasi dalam Algoritme 4.9 melibatkan rata-rata n operasi. Jadi

fungsi kompleksitas waktunya adalah ( )O n .

Algoritme 4.10

Deskripsi : Prosedur untuk menghitung exponen dalam vektorInput : Vektor 1 2[ , , ..., ]sA a a a , integer positif m dan i

Output : 1 2Vektor [ , , ..., ]irH A c c c

1. Hitung 3 1mp

2. Hitung k = modulo i , p menggunakan Algoritme 4.9

3. Jika 0k , maka lakukan3.1 X = ubah k dalam basis 23.2 Isi G = A, H = [1]3.3 Jika X1 = 1, maka H = G3.4 Untuk i mulai dari 2 sampai t , maka lakukan

3.4.1 Hitung perkalian vektor G.G menggunakan Algoritme 4.53.4.2 Jika Xi = 1, maka hitung H = H.G menggunakan Algoritme 4.5

4. Jika n k , maka lakukan4.1 X = ubah n dalam basis 24.2 Hitung G = Invers vektor A menggunakan Algoritme 4.74.3 Jika X1 = 1, maka H = G4.4 Untuk i mulai dari 2 sampai t , maka lakukan

Page 59: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

46

4.4.1 Hitung perkalian G.G pada langkah 4.2 gunakan Algoritme 4.54.4.2 Jika Xi = 1, maka hitung H = H.G gunakan Algoritme 4.5

5. Return(”H”)

Banyaknya operasi dalam Algoritme 4.10 melibatkan rata-rata menggunakan

log . . .p n n n operasi. Jadi fungsi kompleksitas waktunya adalah 3(log . )O p n .

Sebagai contoh, misalkan fungsi polinomial 2 3 4 6( ) 1 2 2 2f x x x x x x ,

nilai input i = 5, dan fungsi polinomial primitif 3 10( ) 2m x x x x . Fungsi polinomial

direpresentasikan sebagai vektor terner [1, 2, 1, 2, 1, 0, 2]A dan fungsi polinomial

primitif direpresentasikan sebagai vektor terner [1, 2, 0, 2]M dengan derajat

maksimal 10 yang menunjukkan berada pada field 10(3 )GF . Dengan menggunakan

Algoritme 4.9 diperoleh modulus derajat maksimal yaitu 103 1 59048 dan dari input i

= 5 diperoleh barisan basis duanya adalah [1, 0, 1] sebagai exponennya. Dengan

menggunakan Algoritme 4.5, maka diperoleh outputnya adalah

[2, 1, 1, 2, 2, 0, 1, 0, 0, 1]H dan jika output ini dikembalikan ke dalam bentuk

fungsi polinomial maka 2 3 4 6 9( ) 2 2 2h x x x x x x x .

Page 60: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

BAB V

PENERAPAN ALGORITME ARITMETIK (3 )mGF

PADA ALGORITME DIFFIE-HELLMAN KEY EXCHANGE

Seperti yang telah dijelaskan sebelumnya bahwa dalam mengonstruksi aritmetik

(3 )mGF didasarkan pada sifat *(3 )mGF yang merupakan grup siklik dibangkitkan dari

akar primitif. Salah satu contoh penerapan (3 )mGF adalah pada Algoritme Diffie-

Hellman Key Exchange.

Diffie-Hellman Key Exchange adalah metode dimana subjek menukar kunci

rahasia melalui media yang tidak aman tanpa mengekspos kunci. Metode ini

diperkenalkan oleh Dr. W. Diffie dan Dr. M. E. Hellman pada tahun 1976 pada papernya

yang berjudul ”New Direction in Cryptography” (Menezes 1997). Metode ini

memunginkan dua pengguna untuk bertukar kunci rahasia melalui media yang tidak

aman tanpa kunci tambahan. Metode ini memiliki dua parameter sistem yaitu P dan .

Kedua parameter tersebut publik dan dapat digunakan oleh semua pengguna sistem.

Berikut ini diberikan contoh penerapan aritmetik (3 )mGF yang

diimplementasikan dengan menggunakan Software MAPLE 11. Misalkan dua orang

yang berkomunikasi adalah Alice dan Bob. Pertama-tama Alice dan Bob menyepakati

untuk mengambil sembarang grup siklik berorder 3 1m kemudian membangkitkan

bilangan prima relatif secara acak menggunakan Algoritme 5.1. Algoritme 5.1

merupakan prosedur untuk membangkitkan bilangan prima relatif secara acak dari

3 1m . Algoritme 5.2 merupakan prosedur untuk membangkitkan elemen primitif secara

acak dari prima relatif acak.

Algoritme 5.1

Deskripsi : Prosedur untuk membangkitkan prima relatif secara acakInput : Bilangan bulat positif mOutput : Bilangan Prima Acak R

1. Tentukan 3 1mp

2. R = Acak Integer ( )p

3. Hitung gcd( , )h R p

2.1 Untuk i, selama 1h maka lakukan

Page 61: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

48

2.1.1 R = Acak Integer ( )p

2.1.1 gcd( , )h R p

4. Return( R ).

Fungsi kompleksitas waktu pada Algoritme 5.1 adalah 2((log ) )O p .

Algoritme 5.2

Deskripsi : Prosedur untuk membangkitkan elemen primitif secara acakInput : Bilangan bulat positif mOutput : Vektor R

1. Tentukan prima relatif acak menggunakan Algoritme 5.12. Hitung elemen primitif menggunakan Algoritme 4.103. Return( ”R” ).

Fungsi kompleksitas waktu pada Algoritme 5.2 adalah 2((log ). )O p n .

Selanjutnya, baik Alice maupun Bob dapat menggunakan Algoritme 5.3 yaitu sebagai

prosedur yang digunakan dalam pertukaran kunci rahasia.

Algoritme 5.3

Deskripsi : Prosedur untuk membangkitkan kunciInput : Bilangan bulat mOutput : Kunci Alice

1. Tentukan elemen primitif menggunakan Algoritme 5.22. Bangkitkan x secara acak integer3. Hitung AK menggunakan Algoritme 4.10

4. Bangkitkan y secara acak integer

5. Hitung BK menggunakan Algoritme 4.10

6. Alice membangkitkan kunci menggunakan Algoritme 4.107. Return(“Kunci Alice ”)

Misalkan Alice dan Bob memilih 27m maka akan dibangkitkan secara acak

273 1 7625597484986p dengan menggunakan fungsi MAPLE ( )rand p . Selama

gcd( ( ), ) 1rand p p , maka lakukan terus menerus sehingga diperoleh

gcd( ( ), ) 1rand p p . Selanjutnya, dipilih secara acak generator (elemen primitif)

dengan menggunakan Algoritme 5.2, misalnya Alice dan Bob memilih elemen primitif

[2,2,1,1,1,1, 2,0,0,1, 2,0,0,0,1,0,1,0, 2,1,0,1,1, 2] . Selanjutnya, Alice membangkitkan

bilangan bulat acak yang besar x dari 273 1 7625597484986p dengan

Page 62: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

49

menggunakan fungsi MAPLE AcIn(p), misalkan 7396366352238x kemudian

menghitung modxXA m menggunakan Algoritme 3.10 diperoleh

[0,0,0, 2,2,2,1, 2,1,1,1,1,1,0,0,1,0, 2, 2, 2,1,0,2,1,1,2,2]XA dan mengirim ke Bob.

Sebaliknya Bob membangkitkan bilangan bulat acak yang besar y dari

273 1 7625597484986p dengan menggunakan fungsi MAPLE AcIn(p), misalkan

2578459254750y kemudian menghitung modyYB m menggunakan Algoritma

3.10 diperoleh [2,1,1,1,0,1,2,2,1,2,1,0,0,2, 2,0,2,0,1,0,2,0,2,0, 2,1]YB dan mengirim

ke Alice.

Dari proses ini, Alice menggunakan Algoritme 5.3 sebagai prosedur untuk

membangkitkan kunci sehingga diperoleh

[0,0, 2, 2, 2,2,0,1,0,0,0,1,0,1,1,1,1,0, 2, 2,1,1,2,2,1,0, 2]KAlice .

Dengan cara yang sama Bob juga dapat membangkitkan kunci untuk

berkomunikasi dengan Alice. Dengan demikian, kunci yang digunakan baik Alice

maupun Bob adalah [0,0,2,2, 2, 2,0,1,0,0,0,1,0,1,1,1,1,0,2,2,1,1, 2, 2,1,0,2] .

Page 63: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

BAB VISIMPULAN DAN SARAN

6.1 Simpulan

Dari hasil penelitian yang dilakukan dapat disimpulkan, sebagai berikut.

1. Secara umum, finite field (3 )mGF dapat dikonstruksi dengan mengambil polinomial

irreducible. Namun dalam penelitian ini, finite field (3 )mGF dikonstruksi dengan

mengambil polinomial primitif dimana generator dari grup siklik (3 )mGF sehingga

secara langsung dapat ditentukan sebagai akar primitif. Untuk mempercepat operasi

aritmetiknya, finite field (3 )mGF dikonstruksi dengan memilih polinomial primitif

bersuku kecil, khususnya polinomial-polinomial bersuku dua, polinomial-polinomial

bersuku tiga, dan polinomial-polinomial bersuku empat.

2. Dalam konstruksi algoritme aritmetik (3 )mGF menggunakan Algoritme Reduksi

Nol, yaitu sebagai algoritme rutin untuk mereduksi elemen nol pada representasi

vektor anggota (3 )mGF yang tidak mempengaruhi makna keterlibatannya dalam

operasi dapat diabaikan. Algoritme Reduksi Nol ini akan dipanggil oleh algoritme

operasi penjumlahan. Operasi penjumlahan akan di panggil secara berulang-ulang

oleh operasi perkalian sehingga dapat menghemat baik dalam penggunaan ruang

yang besar maupun dalam jumlah operasinya. Kedua operasi dasar ini pada

gilirannya akan mempengaruhi kecepatan Algoritme Pembagian, Algoritme Invers,

dan Algoritme Exponensial.

3. Algoritme aritmetik (3 )mGF yang dihasilkan secara asimptotik mempunyai kinerja

yang sama dengan algoritme sebelumnya yang dikonstruksi dari pengambilan

polinomial irreducible. Dengan demikian, secara rata-rata algoritme aritmetik

(3 )mGF yang dihasilkan akan menjadi lebih baik karena beberapa operasi dapat

direduksi menggunakan polinomial primitif atau sifat dari grup siklik.

6.2 Saran

1. Konstruksi algoritme aritmetik ( )mGF p dapat dilanjutkan untuk memilih bilangan

prima p yang lebih besar dari 3.

2. Algoritme aritmetik (3 )mGF hasil konstruksi dalam penelitian ini dapat dilanjutkan

ke arah Kurva Eliptik Kriptografi.

Page 64: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

DAFTAR PUSTAKA

Aliatiningtyas N. 2002. Struktur Aljabar, Departemen Matematika Fakultas MIPA IPBBogor.

Bertoni G. Guajardo J. Kumar S. Orlando G. Paar C. Wollinger T. 2003. Efficient

( )mGF p Arithmetic Architectures for Cryptographic Applications, Topics in

Cryptology – CT-RSA 2003, LNCS 2612, pp. 158-175, San Francisco, CA,USA, Springer-Verlag Berlin Heidelberg.

Fraleigh JB. 2003. A First Course In Abstract Algebra, Seventh Edition, Addison-Wesley Publishing Company, Inc.

Gallian JA. 1990. Contemporary Abstract Algebra, Second Edition, D.C.Heath andCompany.

Gilbert WJ. Nicholson WK. 2004. Modern Algebra with Applications, Second Edition, AJohn-Wiley & Sons, Inc.

Guritman S. 2003. Pengantar Kriptografi, Departemen Matematika Fakultas MIPA IPBBogor.

Guritman S. 2004. Struktur Aljabar, Departemen Matematika Fakultas MIPA IPBBogor.

Herstein IN. 1999. Abstract Algebra, Third Edition, John-Wiley & Sons, Inc.

Lidl R. Niederreiter H. 1986. Introduction to Finite Field and their Applications,Cambridge University Press.

Menezes A. Oorschot PV. Vanstone S. 1997. Handbook of Applied Cryptography, CRCPress, Inc.

Omran A. Hankerson D. Menezes A. 2007. Software Implementation of Arithmetic in

3m , Lecture Notes in Computer Science, Springer Berlin/Heidelberg, vol. 4547

p. 85-102.

Rosdiana S. 2009. Konstruksi Algoritma Aritmetik (2 )mGF dengan Operasi Perkalian

Dibangkitkan dari Sifat Grup Siklik [Tesis]. Bogor: Program Pascasarjana,Institut Pertanian Bogor.

Schneier B. 1996. Applied Cryptography: Protocol, Algorithms, and Source Code in C,Second Edition, John-Wiley & Sons, Inc.

Truong T.K. Hsu I.S. Cheung K.M. Reed I.S. 1988. Efficient Multiplication Algorithm

Over the Finite Field ( )mGF q where 3,5q , TDA Progress report 42-93.

Page 65: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

LAMPIRAN

Page 66: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

53

Lampiran I: Implementasi Program Algoritme Aritmetik (3 )mGF menggunakan

Software MAPLE 11.

1.1 Algoritme UbahTerKeDes : Prosedur untuk mengubah vektor terner ke desimaldari order rendah ke order tinggi.

UbahTerKeDes := proc( N::list )

local D1, D2 :: list, Des::integer;

D1:=map(x -> 3^x,[seq(i,i=0..(nops(N)-1))]):

D2:=[seq(N[j]*D1[j],j=1..nops(N))]:

Des:=add( i, i=D2 );

end proc:

1.2 Algoritme UbahTerKeDes : Prosedur untuk mengubah vektor terner ke desimaldari order rendah ke order tinggi.

UbahDesKeTer := proc(B::integer)

local Kv::list:

Kv:=convert(B,base,3):

end proc:

1.3 Algoritme Acakter : Prosedur untuk membangkitkan vektor terner m bit secaraacak

AcakTer:=proc(m::posint)

local AcIn::procedure, p::integer:

AcIn := rand(3^m):

p:=AcIn():

UbahDesKeTer(p);

end proc:

1.4 Algoritme AcakterX : Prosedur untuk membangkitkan vektor terner m bitdengan elemen pertama tak-nol secara acak

AcakTerX:=proc(m::posint)

local AcIn::procedure, p,q,i::integer:

Page 67: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

54

AcIn := rand(3^m):

p:=AcIn():

q:=p mod 3:

for i while q=0 do

p:=AcIn():

q:=p mod 3:

end do:

UbahDesKeTer(p);

end proc:

1.5 Algoritme ReduNol : Prosedur untuk mereduksi elemen nol yang paling kanan

ReduNol:=proc(R::list)

local T::list, j,t::integer:

T:=R: t:=nops(T):

for j while T[t]=0 and t>1 do

T:=subsop(t=NULL,T):

t:=t-1:

end do:

return(T);

end proc:

1.6 Algoritme AdisiT : Prosedur untuk menjumlahkan dua vektor

AdisiT:=proc(S::list,T::list)

local R::list, s,j,t::integer:

s:=nops(S): t:=s:

if S=[0] then return(T);

elif T=[0] then return(S);

elif s=nops(T) then

R:=[seq((op(i,S)+op(i,T)) mod 3,i=1..s)];

R:=ReduNol(R);

elif nops(S)<nops(T) then

Page 68: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

55

subsop(seq(i=(op(i,S)+op(i,T) mod

3),i=1..nops(S)),T);

else

subsop(seq(i=(op(i,T)+op(i,S) mod

3),i=1..nops(T)),S);

end if:

end proc:

1.7 Algoritme NegT : Prosedur untuk menegatifkan elemen vektor

NegT:=proc(L::list)

map(x->(-x mod 3),L);

end proc:

1.8 Algoritme KVekT : Prosedur untuk menghitung kelipatan vektor

KVekT:=proc(L::list,n::integer[0..2])

if n=0 then return([0]);

elif n=1 then return(L);

else return(NegT(L)) end if;

end proc:

1.9 Algoritme GSatuT : Prosedur untuk menggeser elemen vektor

GSatuT:=proc(T::list,m::posint)

local R,H,L::list, t::integer:

L:=DatT[m]:

t:=nops(T):

if t<m then

R:=[0,op(T)];

else

R:=[0,op(subsop(m=NULL,T))]:

R:=ReduNol(R);

H:=KVekT(L,op(t,T)):

Page 69: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

56

AdisiT(R,H);

end if:

end proc:

1.10 Algoritme MultiT : Prosedur untuk menghitung perkalian dua vektor

MultiT:=proc(A::list,B::list,m::posint)

local R,U,V,S,T::list, s,j,t,a::integer:

if A=[0] or B=[0] then return([0]) end if;

s:=nops(A): t:=nops(B):

S:=A: T:=B:

if t<s then

S:=B: T:=A:

a:=s: s:=t: t:=a:

end if:

R:=KVekT(T,op(1,S));

for j from 1 to (s-1) do

T:=GSatuT(T,m):

V:=KVekT(T,op(j+1,S)):

R:=AdisiT(R,V):

end do:

return(R);

end proc:

1.11 Algoritme KaliT : Prosedur untuk menghitung perkalian dua vektor tanpa modulo

KaliT:=proc(A::list,B::list)

local R,U,V,S,T::list, s,j,t,a::integer:

if A=[0] or B=[0] then return([0]) end if;

s:=nops(A): t:=nops(B):

S:=A: T:=B:

if t<s then

S:=B: T:=A:

a:=s: s:=t: t:=a:

Page 70: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

57

end if:

R:=KVekT(T,op(1,S));

for j from 1 to (s-1) do

T:=[0,op(T)];

V:=KVekT(T,op(j+1,S)):

R:=AdisiT(R,V):

end do:

return(R);

end proc:

1.12 Algoritme BagiT : Prosedur untuk menghitung pembagian dua vektor tanpamodulo

BagiT:=proc(T::list,S::list)

local K,Q,R,H::list, i,g,r,s,k,h,t::integer:

if S=[0] then return(false) end if:

R:=T: Q:=[0]:

r:=nops(T): s:=nops(S):

g:=op(s,S):

if s=1 then

Q:=KVekT(R,op(S)):

R:=[0]:

return([Q,R]);

end if:

for i while r>=s do

k:=r-s: t:=op(r,R):

h:=(t*g) mod 3:

if k=0 then

K:=KVekT(S,h):

Q:=AdisiT(Q,[h]):

else

H:=KVekT(S,h):

K:=[seq(0,j=1..k),op(H)]:

Q:=AdisiT(Q,[seq(0,j=1..k),h]):

Page 71: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

58

end if:

K:=NegT(K):

R:=AdisiT(K,R):

r:=nops(R):

end do:

return([Q,R]);

end proc:

1.13 Algoritme QBagiT : Prosedur untuk menghitung hasil bagi

QBagiT:=proc(A::list,B::list)

local L::list:

L:=BagiT(A,B):

return(op(1,L));

end proc:

1.14 Algoritme QBagiT : Prosedur untuk menghitung sisa bagi

RBagiT:=proc(A::list,B::list)

local L::list:

L:=BagiT(A,B):

return(op(2,L));

end proc:

1.15 Algoritme InvT : Prosedur untuk menentukan invers vektor

InvT:=proc(T::list,m::integer)

local QA,QB,RA,RB,R,S,L,Tmp,H::list, i::integer:

S:=NegT(DatT[m]):

if T=[0] then return(false) end if:

if nops(T)=1 then return(T) end if:

RA:=[op(S),seq(0,j=1..(m-nops(S))),1]:

RB:=T:

QA:=[0]: QB:=[1]:

Page 72: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

59

L:=BagiT(RA,RB):

RA:=RB:

RB:=op(2,L):

for i while RB<>[0] do

Tmp:=QA:

QA:=QB:

H:=KaliT(QB,op(1,L)):

R:=NegT(H):

QB:=AdisiT(Tmp,R):

L:=BagiT(RA,RB):

RA:=RB:

RB:=op(2,L):

end do:

H:=KVekT(QB,op(RA)):

return(H);

end proc:

1.16 Algoritme DivT : Prosedur untuk menghitung pembagian vector.

DivT:=proc(A::list,B::list,m::integer)

local iB::list:

iB:=InvT(B,m);

MultiT(A,iB,m);

end proc:

1.17 Algoritme ModI : Prosedur untuk menghitung a mod m dalam rentang negatif.

ModN:= proc(a::integer, n::posint)

local b, c::integer:

b := a mod n:

c := floor(n/2):

if b > c then

b := -(n-b) end if:

Page 73: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

60

return(b):

end proc:

1.18 Algoritme ExpT : Prosedur untuk menghitung eksponensial vektor

ExpT:=proc(A::list,x::integer,m::integer)

local H,G,X::list, i,p,k,n::integer:

p:=3^m-1:

k:=ModN(x,p):

if k>=0 then

X:=convert(k,base,2);

G:=A: H:=[1]:

if op(1,X)=1 then

H:=G:

end if:

for i from 2 to nops(X) do

G:=MultiT(G,G,m):

if op(i,X)=1 then

H:=MultiT(H,G,m):

end if:

end do:

else

n:=-k:

X:=convert(n,base,2);

G:=InvT(A,m): H:=[1]:

if op(1,X)=1 then

H:=G:

end if:

for i from 2 to nops(X) do

G:=MultiT(G,G,m):

if op(i,X)=1 then

H:=MultiT(H,G,m):

end if:

Page 74: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

61

end do:

end if:

return(H);

end proc:

1.19 Algoritme PangkatTM : Prosedur untuk menghitung Ax mod B

PangkatTM:=proc(A::list,x::integer,B::list)

local H,G,K,L,X::list, i::integer:

X:=convert(x,base,2);

G:=A: H:=[1]:

if op(1,X)=1 then

H:=G:

end if:

for i from 2 to nops(X) do

K:=KaliT(G,G):

G:=RBagiT(K,B):

if op(i,X)=1 then

L:=KaliT(H,G):

H:=RBagiT(L,B):

end if:

end do:

return(H);

end proc:

1.20 Algoritme GcdT : Prosedur untuk menghitung FPB dari A dan B

GcdT:=proc(A::list,B::list)

local RA,RB,S,T,L::list, i,a,b::integer:

a:=nops(A): b:=nops(B):

RA:=A: RB:=B:

if a<b then

RA:=B: RB:=A:

Page 75: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

62

end if:

if RB=[0] then return(RA) end if;

L:=RBagiT(RA,RB):

RA:=RB:

RB:=L:

for i while RB<>[0] do

L:=RBagiT(RA,RB):

RA:=RB:

RB:=L:

end do:

return(RA);

end proc:

1.21 Algoritme TestIrrT : Prosedur pengecekan polinomial irreducible atau tidak

TestIrrT:=proc(A::list)

local U,H,S,W::list, i,m,a,h::integer:

a:=nops(A)-1: m:=floor(a/2):

W:=[0,1]:

for i from 1 to m do

W:=PangkatTM(W,3,A);

U:=AdisiT(W,[0,2]):

H:=GcdT(U,A):

h:=nops(H):

if h>1 then

return(false);

break;

end if:

end do:

return(true);

end proc:

1.22 Algoritme GenIrrT : Prosedur untuk membangkitkan vektor irreducible secaraacak berderajat m

Page 76: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

63

GenIrrT:=proc(m::posint)

local X,Y,T::list, x,i::integer:

X:=AcakTerX(m-1); x:=nops(X);

Y:=[op(X),seq(0,j=1..(m-x)),1]:

T:=TestIrrT(Y);

for i while T=false do

X:=AcakTerX(m-1); x:=nops(X);

Y:=[op(X),seq(0,j=1..(m-x)),1]:

T:=TestIrrT(Y);

end do:

return(Y);

end proc:

1.23 Algoritme GenIrrT : Prosedur untuk mengetes apakah polinomial irreducibleadalah primitif

TestPrimT:=proc(A::list)

local H::list, F::anything, i,m,a,h,k::integer:

m:=nops(A)-1: h:=3^m-1:

F:=ifactor(h);

a:=nops(F);

for i from 1 to a do

k:=h/op(op(1,op(i,F))):

H:=PangkatTM([0,1],k,A):

if H=[1] then

return(false);

break;

end if:

end do:

return(true);

end proc:

1.24 Algoritme GenPrimT : Prosedur untuk membangkitkan vektor primitif secaraacak

Page 77: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

64

GenPrimT:=proc(m::posint)

local X::list, T::symbol, i::integer:

X:=GenIrrT(m):

T:=TestPrimT(X):

for i while T=false do

X:=GenIrrT(m):

T:=TestPrimT(X):

end do:

return(X);

end proc:

1.25 Algoritme GenPrimSk : Prosedur untuk membangkitkan vektor primitif bersukudua

GenPrimSk:=proc(m::posint)

local X,Y,T,U::list, x,i::integer:

for i from 4 do

if (i mod 3)<>0 then

X:=UbahDesKeTer(i); x:=nops(X);

Y:=[op(X),seq(0,j=1..(m-x)),1]:

T:=TestIrrT(Y);

if T=true then

U:=TestPrimT(Y):

if U=true then

return(Y);

break;

end if;

end if;

end if;

end do:

end proc:

1.26 Algoritme GenPrimTn : Prosedur untuk membangkitkan vektor primitif bersukutiga

Page 78: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

65

GenPrimTn:=proc(m::posint)

local X,Y,T,U::list, n,j,k,i::integer:

n:=floor((m+1)/2);

for i from 1 to 2 do

for j from 1 to 2 do

Y:=[i,j,seq(0,x=1..(m-2)),1]:

T:=TestIrrT(Y);

if T=true then

U:=TestPrimT(Y):

if U=true then

return(Y);

break;

end if;

end if;

for k from 1 to (n-2) do

Y:=[i,seq(0,x=1..k),j,seq(0,x=1..(m-2-k)),1]:

T:=TestIrrT(Y);

if T=true then

U:=TestPrimT(Y):

if U=true then

return(Y);

break;

end if;

end if;

end do:

end do:

end do:

end proc:

1.27 Algoritme GenPrimQn : Prosedur untuk membangkitkan vektor primitif bersukuempat

GenPrimQn:=proc(m::posint)

local X,Y,T,U::list, n,j,k,i,l::integer:

Page 79: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

66

n:=floor((m+1)/2);

for i from 1 to 2 do

for j from 1 to 2 do

for k from 1 to 2 do

Y:=[i,j,k,seq(0,x=1..(m-3)),1]:

T:=TestIrrT(Y);

if T=true then

U:=TestPrimT(Y):

if U=true then

return(Y);

break;

end if;

end if;

for l from 1 to (n-3) do

Y:=[i,j,seq(0,x=1..l),k,seq(0,x=1..(m-3-l)),1]:

T:=TestIrrT(Y);

if T=true then

U:=TestPrimT(Y):

if U=true then

return(Y);

break;

end if;

end if;

end do:

for l from 1 to (n-3) do

Y:=[i,seq(0,x=1..l),j,k,seq(0,x=1..(m-3-l)),1]:

T:=TestIrrT(Y);

if T=true then

U:=TestPrimT(Y):

if U=true then

return(Y);

break;

end if;

Page 80: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

67

end if;

end do:

end do:

end do:

end do:

end proc:

1.28 Algoritme PrimaRelAcak : Prosedur untuk Prima Relatif Acak

PrimaRelAcak:=proc(m::posint)

local AcIn::PrimaRelAcak, g,i,R,p::integer:

p:=3^(m-1):

AcIn := rand(1..p):

R:=AcIn():

for i while g<>1 do

R:=AcIn():

g:=gcd(R,p):

end do:

return(R):

end proc:

1.29 Algoritme PrimitifTerAcak : Prosedur untuk membangkitkan unsur primitif acak

PrimitifTerAcak := proc(m::posint)

local Q,H,R::list, p::integer:

H:=PrimaRelAcak(m):

R:=ExpT([0,1],H,m):

return(R):

end proc:

1.30 Algoritme KunciT : Prosedur untuk membangkitkan kunci

KunciT := proc(m::integer)

local KA,KB,KAlice,Alfa::list,AcIn,x,y::posint:

Page 81: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

68

Alfa:=PrimitifTerAcak(m):

AcIn:=rand(3^m-1):

x:=AcIn():

KA:=ExpT(Alfa,x,m):

y:=AcIn():

KB:=ExpT(Alfa,y,m):

KAlice:=ExpT(KB,x,m):

return(KAlice):

end proc:

Page 82: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

69

Lampiran II: Tabel Polinomial Primitif (3 )mGF yang disimpan dalam basis data

DatT[m] untuk 1 100m .

Tabel II.1 Polinomial Primitif (3 )mGF untuk 1 80m .

m Polinomial Primitif m Polinomial Primitif41 x^41 + 2x + 1

2 x^2 + 2x + 2 42 x^42 + x^5 + x^4 + x^3 + x^2 + x + 23 x^3 + 2x + 1 43 x^43 + x^3 + x + 14 x^4 + x + 2 44 x^44 + x^3 + 25 x^5 + 2x + 1 45 x^45 + 2x^3 + x^2 + 16 x^6 + x + 2 46 x^46 + x^4 + 2x^2 + x + 27 x^7 + 2x^2 + 1 47 x^47 + x^4 + x^3 + x^2 + 18 x^8 + x^3 + 2 48 x^48 + x^5 + 2x^4 + 2x^3 + 2x^2 +29 x^9 +2x^3 + x^2 + 1 49 x^49 + 2x^3 + x^2 + 1

10 x^10 + x^3 + x + 2 50 x^50 + 2x^4 + x^3 + 2x^2 + 2x + 211 x^11 + x^2 + 2x + 1 51 x^51 + 2x + 112 x^12 + 2x^4 + x^3 + 2x^2 + 2x + 2 52 x^52 + x^5 + 2x^4 + 2x + 213 x^13 + 2x + 1 53 x^53 + 2x^4 + 2x^3 + 2x^2 + 114 x^14 + x + 2 54 x^54 + x + 215 x^15 + x^2 + 2x + 1 55 x^55 + 2x^3 + 2x^2 + 2x + 116 x^16 + x^4 + x^3 + 2x + 2 56 x^56 + x^3 + 217 x^17 + 2x + 1 57 x^57 + x^5 + 2x^3 + 2x^2 + x + 118 x^18 + x^5 + 2x^2 + 2x + 2 58 x^58 + x^4 + 2x^2 + x + 219 x^19 + x^2 + 2x + 1 59 x^59 + x^3 + 2x^2 + 2x + 120 x^20 + x^5 + x + 2 60 x^60 + x^5 + x + 221 x^21 + x^3 + x + 1 61 x^61 + x^3 + 2x^2 + 2x + 122 x^22 + x^3 + 2x^2 + 2x + 2 62 x^62 + x^4 + 2x^2 + x + 223 x^23 + x^3 + x + 1 63 x^63 + x^5 + 2x^2 + 2x + 124 x^24 + 2x^4 + x^3 + 2x + 2 64 x^64 + x^3 + 225 x^25 + 2x^3 + 1 65 x^65 + x^5 + x^3 + 126 x^26 + x^3 + x + 2 66 x^66 + x^5 + 2x^2 + 2x + 227 x^27 + x^5 + x^4 + 2x^3 + 2x + 1 67 x^67 + x^2 + 2x + 128 x^28 + x^5 + x^4 + 2x^2 + 2 68 x^68 + x^5 + x^4 + 2x^3 + 2x^2 + x + 229 x^29 + x^4 + x^2 + 1 69 x^69 + 2x^5 + 2x^4 + x^3 + x^2 + 2x + 130 x^30 + x + 2 70 x^70 + x^5 + x^4 + 2x^3 + 231 x^31 + x^3 + x + 1 71 x^71 + x^4 + 2x^2 + 2x + 132 x^32 + x^4 + x^3 + 2x + 2 72 x^72 + x^6 + x^3 + x^2 + 2x + 233 x^33 + x^5 + 2x^2 + 1 73 x^73 + 2x + 134 x^34 + x^3 + x + 2 74 x^74 + 2x^4 + x^3 + 2x^2 + 2x + 235 x^35 + x^2 + 2x + 1 75 x^75 + 2x^5 + x^3 + 2x + 136 x^36 + x^5 + x^4 + 2x^3 + 2 76 x^76 + x^5 + x + 237 x^37 + x^3 + 2x^2 + 2x+1 77 x^77 + x^4 + x^3 + 2x^2 + x + 138 x^38 + x^3 + x^2 + 2x + 2 78 x^78 + x^5 + 2x^4 + 2x^3 + x^2 + 2x + 239 x^39 + x^5 + 2x^3 + 2x^2 + 1 79 x^79 + x^4 + 2x^3 + 140 x^40 + x + 2 80 x^80 + x^5 + 2x^4 + x^2 + 2

Page 83: KONSTRUKSI ALGORITME ARITMETIK GF(3 DENGAN … · 2015-09-02 · teks dan dicantumkan dalam daftar pustaka di bagian akhir tesis ini. ... y a ng p e r t mka l idipe kena ol h T he

70

Tabel II.2 Polinomial Primitif (3 )mGF untuk 80 100m .

m Polinomial Primitif No Polinomial Primitif81 x^81 + x^6 + x^5 + 2x^3 + 2x + 1 91 x^91 + x^4 + x^3 + x^2 + 2x + 182 x^82 + x^5 + x^4 + 2x^2 + 2 92 x^92 + x^5 + x^2 + 2x + 283 x^83 + x^5 + 2x^2 + 2x + 1 93 x^93 + x^5 + x^4 + x + 184 x^84 + 2x^6 + x^5 + x^4 + x + 2 94 x^94 + x^5 + 2x^3 + 2x^2 + 285 x^85 + x^4 + x + 1 95 x^95 + x^3 + x + 186 x^86 + x^5 + x^3 + 2 96 x^96 + x^6 + 2x^4 + x^3 + x + 287 x^87 + 2x^5 + x^3 + 2x + 1 97 x^97 + 2x^3 + 2x^2 + 2x + 188 x^88 + x^5 + x^3 + 2x + 2 98 x^98 + x^4 + x^3 + 2x^2 + 289 x^89 + 2x^3 + x^2 + 1 99 x^99 + x^5 + 2x^3 + 2x^2 + x + 190 x^90 + 2x^6 + x^5 + 2x + 2 100 x^100 + x^5 + x^4 + 2x + 2