Analisis Kinerja Algoritma Rabin dan Rivest Shamir Adleman ( RSA ) pada Kriptografi

(1)

ANALISIS KINERJA ALGORITMA RABIN DAN

RIVEST SHAMIR ADLEMAN ( RSA )

PADA KRIPTOGRAFI

TESIS

WIDIARTI RISTA MAYA

117038061

PROGRAM STUDI MAGISTER ( S2 ) TEKNIK INFORMATIKA

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN


(2)

ANALISIS KINERJA ALGORITMA RABIN DAN

RIVEST SHAMIR ADLEMAN ( RSA )

PADA KRIPTOGRAFI

TESIS

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Magister Teknik Informatika

WIDIARTI RISTA MAYA

117038061

PROGRAM STUDI MAGISTER ( S2 ) TEKNIK INFORMATIKA

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN


(3)

PERSETUJUAN

Judul Tesis : ANALISIS KINERJA ALGORITMA RABIN DAN RIVEST SHAMIR ADLEMAN ( RSA ) PADA KRIPTOGRAFI

Nama Mahasiswa : WIDIARTI RISTA MAYA Nomor Induk Mahasiswa : 117038061

Program Studi : Magister Teknik Informatika

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Dr. Marwan Ramli, M.Si Prof.Dr.Muhammad Zarlis

Diketahui/disetujui oleh

Program Studi Magister Teknik Informatika Ketua,

Prof.Dr.Muhammad Zarlis


(4)

PERNYATAAN

ANALISIS KINERJA ALGORITMA RABIN DAN

RIVEST SHAMIR ADLEMAN ( RSA )

PADA KRIPTOGRAFI

TESIS

Saya mengakui bahwa tesis ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing – masing telah disebutkan sumbernya.

Medan, 15 Nopember 2013

WIDIARTI RISTA MAYA NIM. 117038061


(5)

PERNYATAAN PERSETUJUAN PUBLIKASI

KARYA ILMIAH UNTUK KEPENTINGAN

AKADEMIS

Sebagai sivitas akademika Universitas Sumatera Utara, saya yang bertanda tangan dibawah ini ;

Nama : WIDIARTI RISTA MAYA

NIM : 117038061

Program Studi : Magister Teknik Informatika Jenis Karya Ilmiah : Tesis

Demi pengembangan ilmu pengetahuan, menyetujui untuk memberikan kepada Universitas Sumatera Utara Hak Bebas Royalti Non – Eksklusif ( Non – Exclusive Royalty Free Right ) atas tesis saya yang berjudul :

ANALISIS KINERJA ALGORITMA RABIN DAN

RIVEST SHAMIR ADLEMAN ( RSA )

PADA KRIPTOGRAFI

Beserta perangkat yang ada ( jika diperlukan ). Dengan Hak Bebas Royalti Non – Eksklusif ini, Universitas Sumatera Utara berhak menyimpan, mengalih media, memformat, mengelola, dalam bentuk database, merawat dan mempublikasikan tesis saya tanpa meminta izin dari saya selama tetap mencatumkan nama saya sebagai penulis dan sebagai pemegang dan / atau sebagai pemilik hak cipta.

Demikian pernyataan ini dibuat dengan sebenarnya.

Medan, 15 Nopember 2013

WIDIARTI RISTA MAYA NIM. 117038061


(6)

Telah diuji pada

Tanggal : 15 Nopember 2013

PANITIA PENGUJI TESIS

Ketua : Prof.Dr.Muhammad Zarlis Anggota : 1. Dr. Marwan Ramli, M.Si

2. Prof. Dr. Herman Mawengkang 3. Prof. Dr. Tulus


(7)

RIWAYAT HIDUP

DATA PRIBADI

Nama Lengkap ( berikut gelar ) : WIDIARTI RISTA MAYA, S.T Tempat dan Tanggal Lahir : Dagang Kerawan, 02 Desember 1987 Alamat Rumah : Jl. B. Labuhan No. 25 Kec. Tg. Morawa Telepon / Faks / Hp : 081376207372

E – mail : widya_rmaya@yahoo.com

Instansi Tempat Bekerja : Yayasan Perguruan Dwitunggal Alamat Kantor : Jl. Medan – Tg. Morawa Km. 14, 5

DATA PENDIDIKAN

SD : Negeri No. 105328 TAMAT : Tahun 1999 SLTP : Negeri I Tg. Morawa TAMAT : Tahun 2002 SLTA : Negeri I Tg. Morawa TAMAT : Tahun 2005 S1 : Teknik Informatika ISTP TAMAT : Tahun 2009 S2 : Teknik Informatika USU TAMAT : Tahun 2013


(8)

KATA PENGANTAR

Puji dan Syukur penulis panjatkan kehadirat Allah SWT berkat limpahan rahmat dan karunia-Nya lah penulis dapat menyelesaikkan Tesis ini dengan bimbingan, arahan, kritik dan saran serta bantuan dari pembimbing , pembanding, segenap dosen, rekan – rekan mahasiswa Program Studi Magister ( S2 ) Teknik Informatika Universitas Sumatera Utara.

Tesis ini diajukan sebagai salah satu syarat untuk memperoleh gelar Magister Komputer pada Program Studi Pascasarjana Magister Teknik Informatika pada Fakultas Ilmu Komputer – Teknologi Informasi Universitas Sumatera Utara. Dengan

judul tesis ― Analisis Kinerja Algoritma Rabin dan Rivest Shamir Adleman ( RSA ) pada Kriptografi‖. Pada Proses penulisan sampai dengan selesainya penulisan tesis ini,

perkenankanlah penulis mengucapkan terima kasih yang sebesar – besarnya kepada : 1. Prof. Dr. Muhammad Zarlis selaku dekan Fakultas Ilmu Komputer dan

Teknologi Informasi dan Ketua Program Studi Magister ( S2 ) Teknik Informatika, sekaligus pembimbing utama dan M. Andri Budiman, S.T, M.Comp, M.E.M selaku Sekretaris Program Studi Magister ( S2 ) Teknik Informatika beserta seluruh staf pengajar pada Program Studi Magister ( S2 ) Teknik Informatika Program Pascasarjana Fakultas Teknik Informatika Universitas Sumatera Utara, yang telah bersedia membimbing penulis sehingga dapat menyelesaikan pendidikan tepat pada waktunya.

2. Terima kasih yang tak terhingga dan penghargaan setinggi – tingginya saya ucapkan kepada Dr. Marwan Ramli, M.Si, selaku pembimbing lapangan yang dengan penuh kesabaran menuntun serta membimbing saya hingga selesainya tesis ini dengan baik.

3. Terima kasih yang tak terhingga dan penghargaan setinggi – tingginya saya ucapkan kepada Prof. Dr. Herman Mawengkang, Prof. Dr. Tulus dan Prof. Dr. Drs. Iryanto, M.Si, sebagai pembanding yang telah memberikan saran dan masukkan serta arahan yang baik demi penyelesaian tesis ini.

4. Staf Pegawai dan Administrasi pada Program Studi Magister ( S2 ) Teknik Informatika Program Pascasarjana Fakultas Teknik Informatika Universitas Sumatera Utara yang telah memberikan bantuan dan pelayanan terbaik kepada penulis selama mengikuti perkuliahan hingga saat ini.


(9)

5. Kepada Ayahanda Alm. Moektar Sutejo, Bunda Sutarni selaku orang tua, kepada Duwi Firwana Putra, S.Pd dan Widia Harmoko selaku abang serta seluruh keluarga yang tidak dapat saya sebutkan satu persatu, terima kasih atas segala pengorbanannya, baik moril maupun materil budi baik ini tidak dapat dibalas, hanya diserahkan kepada Allah SWT.

6. Rekan mahasiswa / I angkatan ketiga tahun 2011 pada Program Pascasarjana Fakultas Teknik Informatika Universitas Sumatera Utara yang telah benyak membantu penulis baik berupa dorongan semangat dan doa selama mengikuti perkuliahan.

7. Seluruh pihak yang tidak dapat penulis sebutkan satu persatu dalam tesis ini, terima kasih atas segala bantuan dan doa yang diberikan.

Dengan segala kekurangan dan kerendahan hati, sekali lagi penulis mengucapkan terima kasih. Semoga kiranya Allah SWT membalas segala bantuan dan kebaikkan yang telah kalian berikan.

Medan, 15 Nopember 2013 Penulis,

WIDIARTI RISTA MAYA NIM. 117038061


(10)

ABSTRAK

Banyak peralatan-peralatan komunikasi yang digunakan sebagai alat pengiriman pesan yang berupa teks, dimana dalam pengiriman pesan yang paling utama adalah waktu dan keamanan yang efisien dibandingkan dengan penyampaian pesan secara lisan.Pada penelitian ini penulis menggunakan algoritma Rabin dan algoritma RSA pada kriptografi untuk menganalisis kinerja dari masing–masing metode tersebut, sehingga seseorang dapat memilih dengan tepat metode apa yang lebih baik digunakan untuk mengirimkan pesan. Hasilnya algoritma Rabin dan algoritma RSA selalu menghasilkan ukuran pesan yang lebih besar dari plaintext kemudian algoritma Rabin memiliki proses enkripsi dan dekripsi yang lebih lama dibandingkan dengan algoritma RSA yang dapat dilihat pada ukuran file 610 byte proses enkripsi dan dekripsi pada Rabin membutuhkan waktu 2.016 milli detik dan 2.328 milli detik sedangkan pada proses enkripsi dan dekripsi pada RSA membutuhkan waktu 1.453 milli detik dan 1.125 milli detik. Dengan demikian Algoritma RSA lebih baik dibandingkan dengan Algoritma Rabin.


(11)

ALGORITHM PERFORMANCE ANALYSIS RABIN AND

RIVEST SHAMIR ADLEMAN (RSA)

IN CRYPTOGRAPHIC

ABSTRACT

Many communications devices that used as a means of message delivery shaped text, where in message delivery most important time and security efficient compared with message delivery verbally. in this watchfulness is author uses algorithm Rabin and algorithm RSA in cryptographic to analyze performance from each method, so that one can choose correctly what better be can be used to send message. algorithm the result Rabin and algorithm RSA always produce larger ones message size from plaintext then algorithm Rabin has process encryption and decryption longer be be compared with algorithm RSA that visible in file size 610 byte process encryption and decryption in Rabin want time 2.016 milli second and 2.328 milli second while in process encryption and decryption in RSA want time 1.453 milli second and 1.125 milli second. thereby algorithm RSA better compared with algorithm Rabin.


(12)

DAFTAR ISI

Halaman

KATA PENGANTAR ... i

ABSTRAK ... iii

ABSTRACT ... iv

DAFTAR ISI ... v

DAFTAR GAMBAR ... viii

DAFTAR TABEL ... xi

BAB I PENDAHULUAN ... 1

1.1 Latar Belakang ... 1

1.2 Perumusan Masalah ... 2

1.3 Batasan Masalah ... 3

1.4 Tujuan Penelitian ... 3

1.5 Manfaat Penelitian ... 3

BAB II TINJAUAN PUSTAKA ... 5

2.1 Kriptografi ... 5

2.2 Tujuan Kriptografi ... 5

2.3 Teknik Dalam Cryptography ... 6

2.3.1 Sistem Cryptography Simetris ... 7

2.3.2 Sistem Cryptography Asimetris ... 7

2.4 Aritmatika Modulo ... 8

2.5 Greatest Common Divisor ( GCD ) ... 8

2.6 Bilangan Prima ... 8

2.7 Relatif Prima ... 9

2.8 Algoritma Euclid ... 10

2.9 Extended Euclidean ... 11

2.10Algoritma Rabin Public Key ... 12

2.11Rivest Shamir Adleman ... 15

2.12Riset Terkait ... 17

2.13Persamaan Dengan Riset Yang Lain ... 18

2.14. Perbedaan Dengan Riset Yang Lain ... 18

2.14. Kontribusi Riset ... 18

BAB III METODOLOGI PENELITIAN ... 19

3.1 Pendahuluan ... 19

3.2 Waktu Penelitian ... 19

3.3 Variabel Yang Diamati ... 19

3.4 Teknik Pengembangan ... 20


(13)

3.4.1.1 Tahap Pembentukkan Kunci ... 20

3.4.1.2 Tahap Enkripsi Algoritma Rabin ... 22

3.4.1.3 Tahap Dekripsi Pada Algoritma Rabin ... 23

3.4.2 Metode Algoritma Rivest Shamir Adleman ( RSA ) .. 24

3.4.2.1 Tahap Pembentukkan Kunci Algoritma RSA . 24 3.4.2.2 Tahap Enkripsi Pada Algoritma RSA ... 25

3.4.2.3 Tahap Dekripsi Pada Algoritma RSA ... 26

3.4.3 Proses Kerja Fungsi Pendukung ... 27

3.5 Perancangan Program ... 31

3.6 Proses Analisis ... 36

3.6.1 Analisis Tahapan Metode Rabin ... 36

3.6.1.1 Analisis Tahapan Pembentukkan Kunci ... 36

3.6.1.2 Analisis Tahapan Enkripsi ... 37

3.6.1.3 Analisis Tahapan Dekripsi ... 38

3.6.2 Analisis Tahapan Metode RSA ... 43

3.6.2.1 Analisis Tahapan Pembentukkan Kunci ... 43

3.6.2.2 Analisis Tahapan Enkripsi ... 44

3.6.2.3 Analisis Tahapan Dekripsi ... 45

3.7 Instrumen Penelitian ... 46

3.8 Diagram Aktivitas Kerja ... 47

BAB IV HASIL PENELITIAN ... 48

4.1 Pendahuluan ... 48

4.2 Hasil Simulasi Dari Tahapan Enkripsi ... 48

4.2.1 Hasil dari Tahapan Enkripsi Metode Rabin ... 48

4.2.2 Hasil dari Tahapan Enkrip Metode RSA ... 53

4.3 Hasil Simulasi Dari Tahapan Proses Dekripsi ... 60

4.3.1 Hasil dari Tahapan Proses Dekripsi Metode Rabin .... 60

4.3.2 Hasil dari Tahapan Proses Dekripsi Metode RSA ... 65

BAB V KESIMPULAN DAN SARAN ... 73

5.1 Kesimpulan ... 73


(14)

DAFTAR PUSTAKA

Lampiran 1 : Daftar Publikasi Ilmiah Lampiran 2 : Listing Program


(15)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Model Sederhana Sistem Cryptography Simetris 7 Gambar 2.2 Model Sederhana Sistem Cryptography Asimetris 7 Gambar 3.1 Flowchart Pembentukkan Kunci Algoritma Rabin 21 Gambar 3.2 Flowchart Proses Enkripsi Pada Algoritma Rabin 22 Gambar 3.3 Flowchart Proses Dekripsi Pada Algoritma Rabin 23 Gambar 3.4 Proses Pembentukkan Kunci Pada RSA 24

Gambar 3.5 Enkripsi Pada Algoritma RSA 25 Gambar 3.6 Dekripsi Pada Algoritma RSA 26

Gambar 3.7 Proses Kerja dari Fungsi Fast Exponentiation 27 Gambar 3.8 Proses Kerja dari Fungsi Pengujian Rabin Miller 28

Gambar 3.9 Proses Kerja dari Fungsi Pembangkit Bil. Rabin Miller 29 Gambar 3.10 Proses Kerja dari Fungsi GCD 30

Gambar 3.11 Tampilan Menu Utama 31 Gambar 3.12 Input Kunci RSA 32

Gambar 3.13 Input Kunci Rabin 33

Gambar 3.14 Tampilan Proses Enkripsi 33 Gambar 3.15 Tampilan Proses Dekripsi 34 Gambar 3.16 Tampilan Menu Pengaturan 35

Gambar 3.17 Tampilan Menu ―Bagaimana Enkripsi dan Dekripsi‖ 35 Gambar 3.18 Tampilan Menu ―Mengenai Sipembuat‖ 36

Gambar 4.1 Tampilan Input Kunci Metode Rabin Dengan Dua Digit 48 Gambar 4.2 Tampilan Plainteks Metode Rabin Dengan File 610 byte 49

Gambar 4.3 Tampilan Proses Enkripsi Rabin Dengan File 610 byte 49 Gambar 4.4 Tampilan Plainteks Metode Rabin Dengan File 1.29 Kb 50 Gambar 4.5 Tampilan Enkripsi Metode Rabin Dengan File 1.29 Kb 50 Gambar 4.6 Tampilan Input Kunci Metode Rabin Dengan Tiga Digit 51

Gambar 4.7 Tampilan Plainteks Metode Rabin Dengan File 610 byte 51

Gambar 4.8 Tampilan Proses Enkripsi Rabin Dengan File 610 byte 52 Gambar 4.9 Tampilan Plainteks Metode Rabin Dengan File 1.29 Kb 52 Gambar 4.10 Tampilan Proses Enkripsi Rabin Dengan File 1.29 Kb 53 Gambar 4.11 Tampilan Input Kunci Metode RSA Dengan Dua Digit 53

Gambar 4.12 Tampilan Plainteks Metode RSA Dengan File 610 byte 54 Gambar 4.13 Tampilan Proses Enkripsi RSA Dengan File 610 byte 54 Gambar 4.14 Tampilan Plainteks Metode RSA Dengan File 1.29 Kb 55 Gambar 4.15 Tampilan Proses Enkripsi RSA Dengan File 1.29 Kb 55 Gambar 4.16 Tampilan Input Kunci Metode RSA Dengan Tiga Digit 56 Gambar 4.17 Tampilan Plainteks Metode RSA Dengan File 610 byte 56 Gambar 4.18 Tampilan Proses Enkripsi RSA Dengan File 610 Byte 57


(16)

Gambar 4.19 Tampilan Plainteks Metode RSA Dengan File 1.29 Kb 57 Gambar 4.20 Tampilan Proses Enkripsi RSA Dengan File 1.29 Kb 58 Gambar 4.21 Tampilan Input Kunci Metode Rabin Dengan Dua Digit 60

Gambar 4.22 Tampilan Cipherteks Metode Rabin Dengan File 2.4 Kb 61 Gambar 4.23 Tampilan Hasil Dekripsi Rabin Dengan File 2.4 Kb 61 Gambar 4.24 Tampilan Cipherteks Metode Rabin Dengan File 5.21 Kb 62

Gambar 4.25 Tampilan Dekripsi Metode Rabin Dengan File 5.21 Kb 62 Gambar 4.26 Tampilan Input Kunci Metode Rabin Dengan Tiga Digit 63

Gambar 4.27 Tampilan Cipherteks Metode Rabin Dengan File 2.22 Kb 63

Gambar 4.28 Tampilan Hasil Dekripsi Rabin Dengan File 2.22 Kb 64 Gambar 4.29 Tampilan Cipherteks Metode Rabin Dengan File 4.82 Kb 64

Gambar 4.30 Tampilan Hasil Dekripsi Rabin Dengan File 4.82 Kb 65 Gambar 4.31 Tampilan Input Kunci Metode RSA Dengan Dua Digit 66

Gambar 4.32 Tampilan Cipheteks Metode RSA Dengan File 1.61 Kb 66 Gambar 4.33 Tampilan Hasil Dekripsi RSA Dengan File 1.61 Kb 67

Gambar 4.34 Tampilan Cipherteks Metode RSA Dengan File 3.48 Kb 67

Gambar 4.35 Tampilan Proses Dekripsi RSA Dengan File 3.48 Kb 68 Gambar 4.36 Tampilan Input Kunci Metode RSA Dengan Tiga Digit 68 Gambar 4.37 Tampilan Cipherteks Metode RSA Dengan File 1.71 Kb 69

Gambar 4.38 Tampilan Proses Dekripsi RSA Dengan File 1.71 Kb 69 Gambar 4.39 Tampilan Cipherteks Metode RSA Dengan File 3.69 Kb 70


(17)

DAFTAR TABEL

Halaman

Tabel 2.4 Riset Terkait 17

Tabel 3.1 Diagram Aktivitas Kerja 47

Tabel 4.1 Hasil Dari Proses Enkripsi Metode Rabin Dan RSA 59 Tabel 4.2 Hasil Dari Proses Dekripsi Metode Rabin Dan RSA 72


(18)

ABSTRAK

Banyak peralatan-peralatan komunikasi yang digunakan sebagai alat pengiriman pesan yang berupa teks, dimana dalam pengiriman pesan yang paling utama adalah waktu dan keamanan yang efisien dibandingkan dengan penyampaian pesan secara lisan.Pada penelitian ini penulis menggunakan algoritma Rabin dan algoritma RSA pada kriptografi untuk menganalisis kinerja dari masing–masing metode tersebut, sehingga seseorang dapat memilih dengan tepat metode apa yang lebih baik digunakan untuk mengirimkan pesan. Hasilnya algoritma Rabin dan algoritma RSA selalu menghasilkan ukuran pesan yang lebih besar dari plaintext kemudian algoritma Rabin memiliki proses enkripsi dan dekripsi yang lebih lama dibandingkan dengan algoritma RSA yang dapat dilihat pada ukuran file 610 byte proses enkripsi dan dekripsi pada Rabin membutuhkan waktu 2.016 milli detik dan 2.328 milli detik sedangkan pada proses enkripsi dan dekripsi pada RSA membutuhkan waktu 1.453 milli detik dan 1.125 milli detik. Dengan demikian Algoritma RSA lebih baik dibandingkan dengan Algoritma Rabin.


(19)

ALGORITHM PERFORMANCE ANALYSIS RABIN AND

RIVEST SHAMIR ADLEMAN (RSA)

IN CRYPTOGRAPHIC

ABSTRACT

Many communications devices that used as a means of message delivery shaped text, where in message delivery most important time and security efficient compared with message delivery verbally. in this watchfulness is author uses algorithm Rabin and algorithm RSA in cryptographic to analyze performance from each method, so that one can choose correctly what better be can be used to send message. algorithm the result Rabin and algorithm RSA always produce larger ones message size from plaintext then algorithm Rabin has process encryption and decryption longer be be compared with algorithm RSA that visible in file size 610 byte process encryption and decryption in Rabin want time 2.016 milli second and 2.328 milli second while in process encryption and decryption in RSA want time 1.453 milli second and 1.125 milli second. thereby algorithm RSA better compared with algorithm Rabin.


(20)

BAB I

PENDAHULUAN

1.1Latar Belakang

Seiring perkembangan teknologi, teknik dan metode penyampaian pesan rahasia pun semakin beragam. Penggunaan alat komunikasi sebagai alat pengiriman pesan teks menjadi suatu hal yang banyak dilakukan mengingat waktu dan keamanan data yang diperlukan untuk melakukan proses pengiriman menjadi lebih cepat dan biaya yang dikeluarkan lebih murah dibanding dengan penyampaian secara lisan.Pengamanan pesan teks dapat dilakukan dengan berbagai macam teknik kriptografi. Salah satunya adalah pengamanan pesan teks menggunakan kriptografi kunci asimetris. Kriptografi kunci asimetris terdiri dari dua kunci, yaitu kunci publik dan kunci privat. Dalam kriptografi kunci asimetris, kunci publik berfungsi untuk mengenkripsi suatu pesan dan kunci privat berfungsi untuk mendekripsi suatu pesan. Sehingga tingkat keamanan suatu pesan lebih baik dibandingkan menggunakan kriptografi kunci simetris yang hanya memiliki satu kunci privat saja.Pada penelitian ini penulis menggunakan algoritma kriptografi asimetris.

Terdapat berbagai macam metode kriptografi kunci asimetris yang telah digunakan, Seperti algoritma Rabin Public Key. Algoritma Rabin Public Key

diperkenalkan oleh Michael O. Rabin pada tahun 1979. Algoritma Rabin menggunakan pemfaktoran bilangan untuk melakukan pengamanan. Metode pemfaktoran bilangan secara cepat sampai saat ini belum terpecahkan. Selain itu, Rabin Public Key ini akan menghasilkan empat kemungkinan hasil pendekripsian yang mengharuskan si penerima pesan menentukan hasil dekripsi yang benar.

Kemudian algoritma Algortima RSA dijabarkan pada tahun 1977 oleh Ron Rivest, Adi Shamir dan Len Adleman dari MIT. Huruf RSA itu sendiri juga berasal dari inisial nama mereka (Rivest—Shamir— Adleman). RSA mendasarkan proses enkripsi dan dekripsinya pada konsep bilangan prima dan aritmetika modulo.Baik kunci enkripsi maupun dekripsi keduanya merupakan bilangan bulat.

Kunci enkripsi tidak dirahasiakan dan diberikan kepada umum (sehingga disebut dengan kunci publik), namun kunci untuk dekripsi bersifat rahasia (kunci privat).


(21)

Kunci privat dibangkitkan dari beberapa buah bilangan prima bersama-sama dengan kunci enkripsi. Untuk menemukan kunci dekripsi, orang harus memfaktorkan suatu bilangan non prima menjadi faktor primanya. Kenyataannya, memfaktorkan bilangan non prima menjadi faktor primanya bukanlah pekerjaan yang mudah. Belum ada algoritma yang mangkus (efisien) yang ditemukan untuk pemfaktoran itu. Semakin besar bilangan non primanya, tentu semakin sulit pula pemfaktorannya. Semakin sulit pemfaktorannya, semakin kuat pula algoritma RSA.

Dari algoritma Rabin dan Rivest Shamir Adleman, sama – sama menggunakan konsep pemfaktoran bilangan prima.Pada algoritma Rabin dan Rivest Shamir Adleman akan ada pembangkitan dua bilangan prima yang cukup besar,sehingga disini penulis akan mencoba menggunakan algoritma Rabin Miller dalam proses pembangkitan bilangan prima. Algoritma Rabin Miller merupakan sebuah algoritma teracak yang dapat menentukan dengan cepat (namun dengan sedikit kemungkinan akan terjadi kesalahan) apakah sebuah bilangan adalah bilangan prima atau tidak. Penentuan bilangan prima yang dapat dilakukan dengan cepat ini merupakan salah satu kunci sukses dalam implementasi sebagian besar kriptografi berbasis public-key ( Rabin, 1975 ).

Berdasarkan uraian diatas, maka penulis tertarik untuk melakukan penelitian dengan menganalisis algoritma Rabin dan Rivest Shamir Adleman ( RSA ) yang masing – masing pada proses enkripsi dan dekripsi.Sehingga penelitian ini berjudul ― ANALISIS ALGORITMA RABIN DAN RIVEST SHAMIR ADLEMAN ( RSA ) PADA KRIPTOGRAFI‖.

1.2Perumusan Masalah

Dari uraian sebelumnya maka penulis mengambil suatu rumusan permasalahan sebagi berikut :

Manakah diantara algoritma Rabin dan RSA yang kinerjanya paling cepat pada pesan teks?

1.3Batasan Masalah

Agar pembahasan penelitian ini tidak menyimpang dari apa yang telah dirumuskan, maka diperlukan batasan – batasan penelitian.Batasan – batassan dalam penelitian ini adalah :


(22)

1. Perangkat lunak akan menampilkan tahap – tahap pembangkitan kunci ,enkripsi dan dekripsi pada metode Rabin dan Rivest Shamir Adleman ( RSA ).

2. Data yang digunakan adalah data teks.

3. Bilangan prima yang digunakan hanya sampai 4 digit.

4. Merancang perangkat lunak dengan menggunakan bahasa pemrograman Visual Basic 6.0

1.4Tujuan Penelitian

Tujuan dari penelitian ini adalah menganalisis kinerja dari algoritma Rabin dan Rivest Shamir Adleman ( RSA ) dalam proses kecepatan mengenkripsi dan mendekripsi data yang berupa data teks.

1.5Manfaat Penelitian

Manfaat dari penelitian ini adalah : 1. Bagi Penulis

a. Menambah wawasan dan kemampuan dalam mengaplikasikan ilmu – ilmu Teknik Informatika, khususnya dalam bidang kriptografi untuk proses keamanan data.

b. Mengetahui kinerja dari algoritma Rabin dan Rivest Shamir Adleman ( RSA ) pada pesan teks.

c. Mengetahui kelebihan dan kekurangan dari algoritma Rabin dan Rivest Shamir Adleman ( RSA ).

2. Bagi Bidang Ilmu

Menjadi suatu acuan dalam pengembangan ilmu pengetahuan khususnya mengenai proses pengamanan, pembangkit bilangan prima dan proses enkripsi dekripsi algoritma Rabin dan Rivest Shamir Adleman ( RSA ).

3. Bagi Masyarakat

Pesan yang terkirim dapat terjaga kerahasiannya dan dapat memilih metode apa yang lebih baik dalam pengiriman pesan tersebut baik dalam keamanan data maupun kecepatan dalam pengiriman data.


(23)

BAB II

TINJAUAN PUSTAKA

2.1 Kriptografi

Kriptografi atau Cryptography berasal dari kata kryptos yang artinya tersembunyi dan grafia yang artinya sesuatu yang tertulis (bahasa Yunani) sehingga kriptografi dapat juga disebut sebagai sesuatu yang tertulis secara rahasia(tersembunyi).

Cryptography adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek-aspek pada keamanan informasi misalnya kerahasiaan, integritas data, otentikasi pengirim / penerima data, dan otentikasi data. Dengan pengembangan bidang cryptography, pembagian antara apa yang termasuk

cryptography danapa yang tidak telah menjadi kabur. Dewasa ini, cryptography dapat dianggap sebagai perpaduan antara studi teknik dan aplikasi yang tergantung kepada keberadaan masalah – masalah sulit.

Bagi kebanyakan orang, cryptography lebih diutamakan dalam menjaga komunikasi agar tetap rahasia. Seperti yang telah diketahui dan disetujui bahwa perlindungan (proteksi) terhadap komunikasi yang sensitif telah menjadi penekanan kriptografi selama ini. Akan tetapi hal tersebut hanyalah sebagian dari penerapan kriptografi dewasa ini.

2.2 Tujuan Kriptografi

Kriptografi merupakan suatu ilmu mengenai teknik matematis yang ditujukan pada aspek pengamanan data yang meliputi tingkat kepercayaan terhadap data tersebut, integritas data, dan otentifikasi terhadap keaslian data. Untuk mencapai ini, perlu ditetapkan suatu tujuan sebagai titik tolak dalam pengembangan ilmu kriptografi itu sendiri. Menurut Rhee, tujuan dari kriptografi dapat memenuhi satu atau lebih dari hal-hal berikut ini:

1. Melakukan proteksi terhadap sistem komputer yang khusus ditujukan untuk pemrosesan dan penyimpanan data.

2. Melakukan pencegahan terhadap tindakan yang tidak mendapat otoritas untuk mengambil ataupun menghapus suatu informasi dari pesan-pesan yang dikirim melalui saluran terbuka.


(24)

3. Melakukan pencegahan terhadap tindakan yang tidak mendapat otoritas untuk memodifikasi data ataupun informasi pada saluran terbuka.

Sejalan dengan penjabaran dari Man Young Rhee, Menezes menjelaskan tujuan dari kriptografi sebagai berikut:

a. Confidentiality.

Menjaga muatan informasi dari campur tangan pihak-pihak lain, selain yang memiliki otoritas.

b. Data Integrity.

Meyakinkan tidak terjadinya pengubahan data oleh pihak yang tidak memiliki otoritas. Untuk meyakinkan integritas dari suatu data, harus dapat dilakukan pendeteksian apakah data tersebut telah mengalami manipulasi. Manipulasi data meliputi penyisipan, penghapusan, dan pensubstitusian.

c. Authentication.

Fungsi untuk pemberian identifikasi. Fungsi ini diberikan baik kepada pengirim maupun kepada penerima informasi itu sendiri. Kedua belah pihak yang ingin melakukan komunikasi sebaiknya dapat saling melakukan identifikasi. Informasi yang dikirimkan sebaiknya dapat dipastikan sumbernya, keasliannya, muatannya, waktu pembuatannya, dan lain-lain.

d. Non-Repudiation.

Mencegah suatu pihak yang menyangkal telah melakukan pengiriman pesan ataupun informasi.

2.3 Teknik Dalam Cryptography

Berdasarkan jumlah kunci yang digunakan, ada dua jenis sistem cryptography yaitu sistem cryptography simetris dan sistem cryptography asimetris.

2.3.1. Sistem Cryptography Simetris

Enkripsi simetris sering juga disebut sebagai enkripsi konvensional atau enkripsi kunci-tunggal (single key). Pada model enkripsi simetris ini digunakan algoritma yang sama untuk proses enkripsi/dekripsi dengan memakai satu kunci yang sama.


(25)

kunci

enkripsi dekripsi

Gambar 2.1. Model Sederhana Sistem Cryptography Simetris

Keamanan dari enkripsi simetris bergantung pada beberapa faktor. Pertama, algoritma enkripsi harus cukup kuat sehingga tidaklah praktis untuk mendekripsi suatu pesan hanya dengan memiliki ciphertext saja.

2.3.2. Sistem Cryptography Asimetris

Sistem cryptography asimetris biasanya lebih dikenal dengan cryptography kunci-publik (public-key cryptography).ide cryptography asimetris ini pertama kali dimunculkan oleh whitfield diffie dan martin hellman pada tahun 1976. Diffie dan hellman mempostulatkan sistem ini tanpa menunjukkan algoritmanya.

kunci publik kunci pribadi

penerima penerima

enkripsi dekripsi

Gambar 2.2. Model Sederhana Sistem Cryptography Asimetris.

2.4 Aritmatika Modulo

Aritmatika modulo merupakan sisa hasil pembagian 2 (dua) bilangan. Operator yang digunakan dalam aritmatika modulo adalah mod. Misalkan a adalah bilangan bulat dibagi dengan m adalah bilangan bulat > 0 , maka akan menghasilkan sisa bagi r

dengan q adalah hasil bagi. Sehingga dapat dinotasikan sebagai berikut :

a mod m = r sedemikian sehingga a = mq + r, dengan 0 ≤ r < m

plaintext ciphertext plaintext


(26)

Contoh :

35 mod 8 = 3, dimana 35 = (4*8) + 3

2.5 Greatest Common Divisor (GCD)

Greatest common divisor (GCD) merupakan bilangan bulat terbesar yang merupakan pembagi yang sama dari dua bilangan bulat. Misalkan a dan b adalah 2 (dua) bilangan bulat yang tidak nol. Greatest common divisor (GCD) dari a dan b adalah bilangan bulat terbesar c sedemikian sehingga c|a dan c|b. Greatest common divisor (GCD) dari

a dan b dapat dinotasikan dengan gcd(a,b). Contoh :

GCD(60,45) adalah : 60 mod 45 = 15 30 mod 15 = 0

Karena telah menghasilkan sisa pembagian sama dengan 0, maka proses berakhir dan didapatlah GCD(60,45) = 15.

2.6 Bilangan Prima

Bilangan prima adalah bilangan bulat positif a, dimana a ≥ 2 hanya dapat dibagi

dengan 1 dan bilangan itu sendiri. Seluruh bilangan prima adalah bilangan ganjil, kecuali 2 yang merupakan bilangan genap. Contoh bilangan prima adalah 2, 3, 5, 7,

11, 13, 17, ….

Untuk menguji apakah n merupakan bilangan prima atau bukan, kita cukup membagi n dengan sejumlah bilangan prima, dengan syarat bilangan prima ≤ √n. Jika

n habis dibagi dengan salah satu dari bilangan prima tersebut, maka n bukan bilangan prima, tetapi jika n tidak habis dibagi oleh semua bilangan prima tersebut, maka n

adalah bilangan prima.

Terdapat metode lain yang dapat digunakan untuk menguji keprimaan suatu bilangan bulatyaitu Rabin Miller, Pilih nilai p sebarang, lakukan perhitungan b dengan nilai b adalah nilai jumlah perkalian 2 dibagi (p-1) kemudian hitung nilai m dengan rumus:

p = 1 + 2 b* m

1. pilih nilai random, a kurang dari p 2. set j = 0 set z = am mod p


(27)

3. jika = - 1 atau jika z = p -1 maka p valid akan kemungkinan prima 4. jika j > 0 dan z = 1 maka p bukan prima

5. set j = j + 1, jika j < b dan z p -1, set z = z2 mod p dan lakukan proses 4 jika z = p-1, maka p valid kemungkinan prima

6. jika j=b dan z p-1 maka p bukan prima

2.7 Relatif Prima

Dua bilangan bulat a dan b dikatakan relatif prima jika GCD(a,b) = 1. Bilangan-bilangan a1, a2, …, an adalah relatif prima berpasangan (pairwise relatively prime) jika GCD(ai, aj) = 1 untuk 1 ≤ i < j n.

Dengan demikian, sekumpulan bilangan bisa ditunjukkan apakah relatif prima atau tidak dengan mengevaluasi GCD dari semua pasangan bilangan yang mungkin. Jika GCD pasangan-pasangan tersebut semuanya bernilai 1, maka syarat pairwise relatively prime dipenuhi. Sebaliknya, jika salah satu GCD dari pasangan bilangan tersebut tidak sama dengan 1, maka kumpulan bilangan tersebut bukan pairwise relatively prime. Dan 2 (dua) bilangan prima pasti adalah pairwise relatively prime.

Contoh :

GCD(27,15) adalah :

27 mod 15 = 12 15 mod 12 = 3 12 mod 3 = 0

Bilangan-bilangan 27 dan 15 adalah bukan pairwise relatively prime karena GCD(27,15) = 3.

GCD(11,7) adalah :

11 mod 7 = 4 7 mod 4 = 3 4 mod 3 = 1 3 mod 1 = 0

Bilangan – bilangan prima 11 dan 7 adalah pairwise relatively prime karena GCD(11,7) = 1.


(28)

2.8 Algoritma Euclid

Algoritma ini digunakan untuk mencari nilai pembagi persekutuan terbesar dari 2 (dua) bilangan bulat. Algoritma ini didasarkan pada pernyataan berikut ini :

Dua bilangan bilangan bulat positif r0 dan r1 , dengan r0 ≥ r1, kemudian dihitung

menggunakan algoritma pembagian :

r0 = q1 * r1 + r2, 0 < r2 < r1 r1 = q2 * r2 + r3, 0 < r3 < r2 rn-2 = qn-1 * rn-1 + rn 0 < rn < rn-1 rn-1 = qn * rn


(29)

Dari pernyataan tersebut, dapat diperoleh :

GCD(r0 , r1) = GCD(r1 , r2) = ……….. = GCD(rn-1,rn) = GCD(rn,0) = rn (2.1)

Contoh :

GCD(40,24) adalah : 40 = 1*24 + (40-24) 40 = 1*24 + 16 24 = 1*16 + (24 – 16) 24 = 1*16 + 8

16 = 2*8

Jadi, GCD(40,24)=8.

2.9 Extended Euclidean

Algoritma Extended Euclidean ini merupakan perluasan dari algoritma Euclide yang berfungsi untuk menentukan nilai x dan y sedemikian sehingga r0*x + r1*y =

GCD(r0,r1) dengan r0 , r1 merupakan bilangan bulat positif serta x dan y merupakan

bilangan bulat. Dua bilangan bulat r0dan r1yang merupakan pairwise relatively prime

dapat menemukan bilangan bulat x dan y sedemikian sehingga r0*x + r1*y = 1.

Dengan menggunakan algoritma Euclid dan rumus :

tj = tj-2 - qj–1 * tj-1 , j ≥ 2 (2.2) dengan tj adalah suatu barisan bilangan t1 , t2 , t3 ,…, tn dan qj diperoleh dari perhitungan GCD(r0 , r1 ) = 1 dengan r1-1 = tn. Sehingga diperoleh :


(30)

Contoh : 11x + 23y = 1

Hasil Bagi

Sisa

Bagi Subsitusi Penggabungan

- 11 - 11 = 11*1 + 23*0

- 23 - 23 = 11*0 + 23*1

0 11 11=(11*1+23*0) – (11*0 + 23*1)*0 11 = 11*1 +23*0 2 1 1 = (11*0 + 23*1) – (11*1 + 23*0)*2 1 = 11*(-2) + 23*1 11 0 Karena sisa bagi mencapai 0, maka proses berakhir

Hasil akhir yang diperoleh adalah 1 = 11*(-2) + 23*1, sehingga didapat nilai x = -2 dan y = 1.

2.10 Algoritma Rabin Public Key

Algoritma Rabin Public Key pertama kali diperkenalkan pada tahun 1979 oleh Michael O. Rabin. Algoritma Rabin Public Key adalah salah satu sistem kriptografi asimetris yang menggunakan kunci publik dan kunci privat. Algoritma Rabin Public Key merupakan varian algoritma Rivest Shamir Adleman (RSA). Fungsi dasar algoritmanya mirip dengan fungsi dasar dari algoritma RSA. Hanya saja komputasinya lebih sederhana dibandingkan algoritma RSA.

Proses Pembangkitan Kunci

Pada algoritma Rabin Public Key, proses pembangkitan kuncinya dilakukan sebagai berikut :

1. Pilih 2 (dua) buah bilangan prima besar sembarang yang saling berbeda (p dan

q), dimana p ≡ q ≡ 3 (mod 4). Atau dengan kata lain jika p dan q di modulo 4 akan menghasilkan 3.

2. Hitung nilai n yang merupakan kunci publik dengan rumus sebagai berikut:

n = p * q dengan p dan q adalah kunci privat.

Untuk mengenkripsi pesan hanya dibutuhkan kunci publik n, sedangkan untuk dekripsi, dibutuhkan bilangan p dan q sebagai kunci privat.


(31)

Proses enkripsi pada algoritma Rabin Public Key menggunakan kunci publik n. Pada proses dekripsi menggunakan Algoritma Rabin Public Key akan menghasilkan 4 (empat) buah kemungkinan plaintext. Oleh karena itu, diperlukan modifikasi dalam proses enkripsi dan dekripsi untuk menentukan plaintext yang sebenarnya. Berikut langkah–langkah proses enkripsi pesan rahasia menggunakan algoritma Rabin Public Key yang telah dimodifikasi adalah :

1. Ubah nilai plaintext m menjadi nilai biner, kemudian tambahkan dengan nilai biner m itu sendiri (redundant information) atau dengan kata lain plainteks

digandakan.

2. Ubah hasil penggandaan nilai biner plaintext menjadi nilai desimalnya.

3. Hitung nilai k yang merupakan kongruen nilai desimal dari hasil penggandaan

plaintext m terhadap kunci publik n dengan menggunakan rumus :

Hitung nilai ciphertext c dengan menggunakan rumus :

c = m2 mod n

dengan c adalah ciphertext, n adalah kunci publik, dan m adalah nilai desimal dari hasil penggandaan nilai biner plaintext.

Metode dekripsi

Proses enkripsi pada algoritma Rabin Public Key menggunakan kunci privat p dan q.

Berikut langkah–langkah proses dekripsi dengan menggunakan algoritma Rabin

Public Key yang telah dimodifikasi:

1. Tentukan nilai Yp dan Yq yang merupakan pembagi GCD (Greatest Common Divisor) dari p dan q dengan menggunakan Algoritma Extended Euclidean. Karena GCD bilangan prima adalah 1, maka dapat ditulis sebagai berikut :

Yp*p + Yq * q = 1


(32)

dengan mp adalah akar kuadrat dari ciphertext terhadap p dan mq adalah akar kuadrat

dari ciphertext terhadap q.

3. Hitung nilai r, s, t dan u dengan menggunakan Chinese Remainder Theorem,

dengan persamaan berikut :

r = (Yp*p* mq + Yq * q* mp ) mod n s = (Yp*p* mq - Yq * q* mp ) mod n t = ( -Yp*p* mq + Yq * q* mp ) mod n u = ( -Yp*p* mq - Yq * q* mp ) mod n

4. Tambahkan r,s,t,u dengan kongruen nilai desimal hasil penggandaan plainteks k

yang dikalikan dengan kunci publik n. R = (k*n)+r S = (k*n)+s T = (k*n)+t U = (k*n)+u

5. Ubahlah nilai desimal R,S,T,U ke dalam bentuk biner. Kemudian nilai biner R,S,T,U

dibagi menjadi 2 (dua) bagian. Bandingkan kedua bagian tersebut. Jika kedua bagian tersebut menghasilkan bentuk biner yang sama, maka didapatlah hasil dekripsi ciphertext c dengan mengubah bentuk biner salah satu bagian yang telah dibagi menjadi 2(dua) bagian yang sama.

2.11Rivest Shamir Adleman ( RSA )

Dari sekian banyak algoritma kriptografi kunci-publik yang pernah dibuat, algoritma yang paling popular adalah algoritma RSA. Keamanan algoritma RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi factor-faktor prima. Pemfaktoran


(33)

dilakukan untuk memperoleh kunci privat. Selama pemfaktoran bilangan besar menjadi factor-faktor prima belum ditemukan algoritma yang mangkus, maka selama itu pula keamanan algoritma RSA tetap terjamin.

Algoritma RSA memiliki besaran-besaran sebagai berikut : 1. p dan q bilangan prima (rahasia)

2. n = p x q (tidak rahasia)

3. (n) = (p-1)(q-1) (rahasia) 4. e ( kunci enkripsi ) (tidak rahasia) 5. d ( kunci dekripsi ) ( rahasia ) 6. m ( plainteks ) ( rahasia ) 7. c (cpherteks) ( tidak rahasia )

RSA adalah suatu blok sandi rahasia tempat teks asli dan teks rahasia merupakan bilangan bulat antara 0 dan n-1 untuk beberapa n. Enkripsi dan dekripsi berasal dari beberapa bentuk berikut ini, untuk beberapa blok teks asli M dan blok teks rahasia C.

C = M‘ mod n

M = Cd mod n = (Me)d mod n = Med od n

Blok pengirim meupun penerima harus mengetahui nilai n dan e, dan hanya penerima saja yang mengetahui nilai d. ini merupakan algoritma enkripsi kunci umum dengan kunci umum sebesar KU = {e,n} dan kunci khusus sebesar KR = {d,n}. Agar algoritma ini bisa memenyhi syarat sebagai enkripsi kunci umum yang baik, maka harus memenuhi ketentuan-ketentuan seperti berikut :

1. kemungkinan menemukan nilai e,d,n sedemikian rupa sehingga Med = M mod n untuk semua M < n

2. relative mudah menghitung Me dan Cd untuk semua nilai M < n 3. tidak mudah menghitung menentukan d, yang diberi e dan n.

dua ketentuan pertama bisa terpenuhi dengan mudah. Sedangkan ketentuan ketiga baru bisa terpenuhi untuk nilai e dan n yang besar.

Pembangkitan Kunci

1) Memilih dua bilangan prima p, q . bilangan ini harus cukup besar (minimal 100 digit)


(34)

(sebaiknya p ≠ q, sebab jika p = q maka n = p2 sehingga p dapat diperoleh dengan menarik akar pangkat dua dari n)

3) Menghitung φ(n) = (p-1)(q-1).

4) Memilih bilangan bulat e dengan algoritma Euclid yaitu gcd(φ(n),e)=1; dimana

1< e < φ(n).

5) Menghitung d dengan rumus d = e-1 mod φ(n) Atau e . d  1 (mod φ(n)).

Perhatikan bahwa e . d  1 (mod φ(n)) ekivalen dengan e . d = 1 + k φ(n), sehingga secara sederhana d dapat dihitung dengan :

d = ( 1 + k . φ(n)) / e

6) Kunci umum (kunci public) adalah KU = {e,n} 7) Kunci pribadi (kunci privat adalah KR = {d,n}

Catatan : n tidak bersifat rahasia, sebab ia diperlukan pada perhitungan

enkripsi/dekripsi

Enkripsi

B mengenkripsi message M untuk A, yang harus dilakukan B : 1) Teks asli dengan syarat M < n

2) Ambil kunci public A yang otentik (n,e)

3) Representasikan message sebagai integer M dalam interval [0,n-1] 4) Teks Rahasia didapat dari C = Me (mod n)

5) Kirim C ke A

Dekripsi

Untuk mendekripsi, A melakukan

1) Gunakan kunci pribadi d untuk menghasilkan M 2) Teks rahasia adalah C


(35)

2.12 Riset Terkait

Dalam melakukan penelitian, penulis menggunakan beberapa riset terkait yang dijadikan acuan yang membuat penelitian berjalan lancar. Adapun riset – riset terkait tersebut adalah :

Tabel 2.1 Riset Terkait No. Judul riset Nama peneliti

dan tahun

Algoritma/metode

yang digunakan Hasil penelitian 1 Pemakaian kriptografi

kunci publik untuk proses enkripsi dan tandatangan digital pada dokumen e-mail

Aji supriyanto, 2009

Algoritma kunci asimetris (kunci public) dan hash sha1

Sistem keamanan ini dapat memberikan Keamanan otentikasi dokumen e-mail,Untuk menghindari jebolnya atau Tembusnya keamanan yang diterapkan email Standar seperti pgp.

2 Implementasi algoritma kunci public pada algoritma rsa

Hersatoto listiyono, 2009

Algoritma rsa Dengan algoritma rsa proses Dekripsinya sangat sulit, walaupun Menggunakan supercomputer dan ribuan Tahun, tidak dapat mendekripsi pesan tanpa Mempunyai kunci private.

3 Aplikasi kriptografi untuk pengamanan

E-dokumen dengan metode hybrid :

Biometrik tandatangan dan dsa (digital

Signature algorithm)

Ana wahyuni, 2011

Metode hybrid : biometrik

tandatangan dan dsa (digital

Signature algorithm)

Pada implementasi tandatangan digital dengan metode hybrid : Biometrik tandatangan dan dsa terpenuhi kebutuhan keamanan edokumen.Dalam hal kerahasiaan (confidentiality) Dan keutuhan atau keotentikan (integrity) e-dokumen yang Ditransmisi, dijamin dengan hash sha-1 dari e-dokumen

Tersebut. 4 Analisis kriptografi

menggunakan algoritma Vigenere cipher dengan mode operasi

Cipher block chaining (cbc)

Erna kumalasari nurnawati, 2008

Algoritma vigenere chiper dan mode operasi cbc

Penggabungan algoritma vigenere chiper dan mode operasi cbc ini akan menghasilkan

Suatu metode baru yang peneliti sebut vigenere chiper +

5 Modul pembelajaran enkripsi dengan menggunakan algoritma DES (Data Enkripsi Standart) melalu visualisasi

Diyah Krisna Yuliana, 2009

algoritma

kriptografi des, double des dan triple des

Dapat memberikan penjelasan mengenai bagaimana jalannya suatu proses dengan menggunakan algoritma DES sehingga dapat lebih mudah memahami.

2.13 Persamaan Dengan Riset Yang Lain

Adapun persamaan penelitian ini dengan penelitian sebelumnya adalah sama – sama menggunakan algoritma kunci public salah satunya algoritma kriptografi Rivest Shamir Adleman ( RSA ) untuk proses pengamanan data.

2.14 Perbedaan Dengan Riset Yang Lain

Dalam Penelitian ini, dilakukan perbandingan kinerja antara algoritma Rabin dan RSA, dengan menganalisis tingkat keamanan dan tingkat kecepatan dalam


(36)

memprosesan data.Sehingga dari aplikasi ini diketahui kelebihan dan kekurangan dari masing – masing algoritma .

2.15 Kontribusi Riset

Penelitian ini memberikan pemahaman tentang pentingnya aspek keamanan suatu pesan teks, apalagi pesan yang ingin disampaikan bersifat rahasia. Dengan mengimplementasikan algoritma kriptografi dan Rivest Shamir Adleman ( RSA ) pada pesan teks, maka kita dapat mengetahui algoritma mana yang cocok dan yang sangat baik dalam melakukan pengiriman dan pengamanan pesan, sehingga pesan yang akan dikirimkan prosesnya cepat dan terjaga kerahasiannya dari pihak – pihak yang tidak berkepentingan, untuk proses pembangkitan bilangan prima dalam algoritma Rabin dan Rivest Shamir Adleman ( RSA ), penulis menggunakan algorima Rabin Miller.Dalam penelitian ini, diharapkan akan didapatkan metode yang lebih baik lagi dalam keamanan data maupun kecepatan memprosesan data.


(37)

BAB III

METODOLOGI PENELITIAN

3.1. Pendahuluan

Tujuan dari penelitian ini, dapat mengetahui metode mana yang tepat dalam melakukan proses keamanan pesan yang akan dikirim, sehingga proses pengiriman semakin cepat. Agar pesan yang dikirimkan terjaga kerahasiaannya maka dilakukanlah proses enkripsi – dekripsi dengan mengunakan algoritma kunci public. Pada penelitian ini diambil dua buah metode untuk melakukan analisis, dimana metode tersebut adalah sama – sama merupakan kunci public ( kunci asimetris ). Pada metode algoritma Rabin dan Rivest Shamir Adleman ( RSA ) proses enkripsi – dekripsi menggunakan dua buah kunci yaitu kunci public untuk proses enkripsi dan kunci privat untuk proses dekripsi serta sama – sama menggunakan pemfaktoran bilangan prima untuk melakukan pengamanan data,tetapi Rabin Public Key ini akan menghasilkan empat kemungkinan hasil pendekripsian yang mengharuskan si penerima pesan menentukan hasil dekripsi yang benar.

3.2.Waktu Penelitian

Waktu yang digunakan untuk melakukan penelitian ini diperkirakan ± 6 ( enam ) bulan. Dalam proses penelitian penulis mengambil beberapa literatur di pustaka, serta data di internet, dan dengan didukung jurnal – jurnal, seminar – seminar yang dilakukan oleh peneliti lain mengenai topik penelitian penulis.

3.3.Variabel Yang Diamati

Variabel yang diamati berbentuk pesan teks, yang nantinya dilakukan dua buah metode terhadap pesan tersebut yaitu metode dengan algoritma Rabin dan metode algoritma Rivest Shamir Adleman ( RSA ), dimana pada kedua metode tersebut memiliki tahap – tahap seperti, tahap pembangkitan kunci, tahap enkripsi dan tahap dekripsi. Ada beberapa macam bentuk yang akan dilakukan uji coba dalam penelitian diantaranya :

1. Pesan yang diinput berupa pesan teks.


(38)

3.4 Teknik Pengembangan

Sistem yang akan penulis rancang terdiri dari dua buah metode yaitu metode dengan algoritma Rabin dan metode dengan algoritma Rivest Shamir Adleman ( RSA ), dimana pada kedua metode tersebut memiliki tahap – tahap seperti tahap pembangkitan kunci untuk mendapatkan kunci privat dan kunci public, tahap enkripsi dan tahap dekripsi.

3.4.1 Metode Algoritma Rabin 3.4.1.1.Tahap Pembentukan Kunci

Proses pembentukan kunci dari metode algoritma Rabin ini memerlukan dua buah bilangan prima, yaitu nilai p dan q. Output dari tahapan pembentukan kunci ini adalah:

1. Kunci privat, yaitu nilai p dan q. 2. Kunci publik, yaitu nilai n.

Adapun flowchart dari proses pembentukkan kunci algoritma Rabin dapat dilihat pada gambar 3.1.berikut :


(39)

Start

Input Manual

Ya

Tidak

Validasi Input

Tidak

valid

Valid

Input bilangan

p dan q

Hitung nilai

n = p * q

Kunci Privat

Kunci Publik

End

Bangkitkan bilangan prima yaitu

p dan q, dengan menggunakan metode

Rabin Miller

Gambar 3.1. Flowchart Pembentukkan Kunci Algoritma Rabin

3.4.1.2 Proses Enkripsi algoritma Rabin

Proses enkripsi dari algoritma Rabin memerlukan beberapa input yaitu: 1. Pesan berupa deretan string.

2. Kunci publik, yaitu nilai n.

Sedangkan, output dari tahap enkripsi pada algroitma Rabin adalah kumpulan nilai cipher Ci. Adapun flowchart dari proses enkripsi algoritma Rabin dapat dilihat pada gambar 3.2.berikut :


(40)

Start

Konversi pesan ke bentuk ASCII Code biner

Bagi bit-bit biner menjadi blok dengan ukuran b, dimana b dapat dihitung

dengan 2b <= n. Input Pesan

Konversikan tiap blok (blok-1 .. blok-z) menjadi bilangan desimal (M1 .. Mz)

Untuk i = 1 sampai z

Ci = Mi2 mod n

Kumpulan nilai Ci

End

Sisipkan bit pengenal berupa bit ‘1111’ di depan setiap subblok

Gambar 3.2. Flowchart proses enkripsi pada algoritma Rabin

3.4.1.3 Tahap Dekripsi Pada Algoritma Rabin

Proses dekripsi dari algoritma Rabin memerlukan beberapa input yaitu: 1. Kumpulan nilai cipher Ci.

2. Kunci privat, yaitu nilai p dan q.

Sedangkan, output dari tahap dekripsi pada algroitma Rabin adalah pesan semula. Adapun flowchart dari proses dekripsi algoritma Ralbin dapat dilihat pada gambar 3.3.berikut :


(41)

Start

Input Kumpulan Nilai Ci

Untuk i = 1 sampai [jumlah nilai Ci]

Hitung 4 kemungkinan nilai Mi

Pesan

End

Konversikan semua block ke bentuk karakter

Konversikan masing-masing Mi ke bilangan biner yang akan menghasilkan block of b

Gabungkan semua bit dan bagi kembali menjadi block of 8

Pilih kemungkinan nilai Mi yang memiliki

bit pengenal ‘1111’ di awalnya

Gambar 3.3. Flowchart Proses Dekripsi Pada Algoritma Rabin

3.4.2 Metode Algoritma Rivest Shamir Adleman ( RSA )

3.4.2.1Tahap Pembentukkan Kunci Pada Algoritma Rivest Shamir Adleman ( RSA )

Proses pembentukan kunci dari metode algoritma RSA ini memerlukan dua buah bilangan prima, yaitu nilai p dan q beserta sebuah bilangan acak d. Output dari tahapan pembentukan kunci ini adalah:

1. Kunci privat, yaitu nilai p, q, d dan n. 2. Kunci publik, yaitu nilai e dan n.

Adapun flowchart dari proses pembentukkan kunci algoritma RSA dapat dilihat pada gambar 3.4.berikut :


(42)

Start

Input Manual

Ya Tidak

Validasi Input Tidakvalid

Valid Input bilangan

p dan q

Hitung nilai n = p * q

Input Manual

Ya Tidak

Validasi Input Tidakvalid Valid Input nilai d

Hitung nilai invers modulo e = d-1 (mod Ø(n))

Kunci Privat Kunci Publik

End Bangkitkan bilangan prima yaitu

p dan q, dengan menggunakan metode Rabin Miller

Ambil nilai d secara acak

Hitung nilai Ø(n) = (p - 1) * (q - 1)

Gambar 3.4. Proses Pembentukan Kunci Pada Rivest Shamir adleman ( RSA )

3.4.2.2Tahap Enkripsi Pada Algoritma Rivest Shamir Adleman ( RSA )

Proses enkripsi dari algoritma RSA memerlukan beberapa input yaitu: 1. Pesan berupa deretan string.

2. Kunci publik, yaitu nilai e dan n.

Sedangkan, output dari tahap enkripsi pada algroitma RSA adalah kumpulan nilai cipher Ci. Adapun flowchart dari proses enkripsi algoritma RSA dapat dilihat pada gambar 3.5.berikut :


(43)

Start

Input Manual

Ya Tidak

Validasi Input Tidakvalid

Valid Input bilangan

p dan q

Hitung nilai n = p * q

Input Manual

Ya Tidak

Validasi Input Tidakvalid

Valid Input nilai d

Hitung nilai invers modulo e = d-1 (mod Ø(n))

Kunci Privat Kunci Publik

End Bangkitkan bilangan prima yaitu

p dan q, dengan menggunakan metode Rabin Miller

Ambil nilai d secara acak

Hitung nilai Ø(n) = (p - 1) * (q - 1)

Gambar 3.5. Enkripsi Pada Algoritma Rivest Shamir Adleman ( RSA )

3.4.2.3Tahap Dekripsi Pada Algoritma Rivest Shamir Adleman ( RSA )

Proses dekripsi dari algoritma RSA memerlukan beberapa input yaitu: 1. Kumpulan nilai cipher Ci.

2. Kunci privat, yaitu nilai d dan n.

Sedangkan, output dari tahap dekripsi pada algroitma RSA adalah pesan semula. Adapun flowchart dari proses dekripsi algoritma RSA dapat dilihat pada gambar 3.6.berikut :


(44)

Start

Input Manual

Ya Tidak

Validasi Input Tidak valid Valid

Input bilangan p dan q

Hitung nilai n = p * q

Input Manual

Ya Tidak

Validasi Input Tidak valid Valid

Input nilai d

Hitung nilai invers modulo e = d-1 (mod Ø(n))

Kunci Privat Kunci Publik

End Bangkitkan bilangan prima yaitu

p dan q, dengan menggunakan metode Rabin Miller

Ambil nilai d secara acak

Hitung nilai Ø(n) = (p - 1) * (q - 1)

Gambar 3.6. Dekripsi Pada Algoritma Rivest Shamir Adleman ( RSA )

3.4.3. Proses Kerja Fungsi Pendukung

Proses kerja dari fungsi-fungsi pendukung yang digunakan dapat dijabarkan sebagai berikut:

1. Fungsi Fast Exponentiation, dengan parameter input berupa variabel numerik A,


(45)

Start

A1 = A B1 = B Product = 1

IF B1 <> 0

IF B1 mod 2 = 0

B1 = B1 \ 2 A1 = (A1 * A1) mod C

B1 = B1 - 1

Product = (Product * A1) mod C Ya

Tidak

Ya Tidak

End FFastExp = Product

Gambar 3.7 Proses Kerja dari Fungsi Fast Exponentiation

2. Fungsi Pengujian Bilangan Prima Rabin Miller, dengan parameter input berupa


(46)

Start

pnC = pnP - 1 nTemp = 0

IF pnC mod (2^nTemp) = 0 AND (2^nTemp) < pnP nTemp = nTemp +1 Ya

Tidak

pnB = nTemp -1

pnM = pnC / (2 ^pnB) pnJ = 0

pnZ = fungsi FFastExp(pnA, pnM, pnP)

IF pnZ = 1 OR pnZ = (pnP - 1) pnP merupakan bilangan prima

IF pnJ > 0 AND pnZ = 1 pnP bukan bilangan prima

IF pnJ < pnB AND pnZ <> pnP - 1 pnJ = pnJ + 1

pnZ = fungsi FFastExp(pnZ, 2, pnP) Ya Ya Tidak Tidak Ya

IF pnZ = pnP - 1

IF pnJ = pnB AND pnZ <> pnP - 1

pnP merupakan bilangan prima pnP bukan bilangan prima Ya Ya Tidak Tidak End

Gambar 3.8 Proses Kerja dari Fungsi Pengujian Bilangan Prima Rabin Miller

3. Fungsi Pembangkitan Bilangan Prima dengan Rabin Miller, tanpa parameter input.


(47)

Start

nP = nRandom

c80 = FTest80P(nP)

IF c80.Prima

Ya

bSuccess = FIsRabinMiller(nP, nA)

IF bSuccess

Ya

Lanjutkan Tes untuk nilai nA yang lain ? Tidak

Tidak

Ya nA = Bangkitkan bilangan acak

End Tidak

nP bukan bilangan prima

nP merupakan bilangan prima

Gambar 3.9. Proses Kerja dari Fungsi Pembangkitan Bilangan Prima Rabin Miller

4. Fungsi GCD, dengan parameter input berupa variabel numerik A dan B. Proses


(48)

Start

P = A Q = B

IF Q <> 0

R = P mod Q P = Q Q = R

GCD = P

End Ya Tidak

Gambar 3.10. Proses Kerja dari Fungsi GCD

3.5. Perancangan Program

Adapun perancangan program yang penulis buat, guna memberikan gambaran tentang system yang dibangun adalah sebagai berikut :

a. Tampilan Utama Menu Program

Pada saat program aplikasi dijalankan, maka terlebih dahulu akan tampil menu pilihan yang berfungsi untuk menentukkan pilihan menu apa yang pengguna inginkan. Adapun isi dari menu dapat digunakan antara lain :

1. Menu file berfungsi untuk melakukan proses membuka file, menyimpan file dan keluar dari program.

2. Menu proses berfungsi untuk melakukan proses enkripsi, dekripsi, input kunci, membatalkan proses yang berjalan dan melihat tampilan cipher.

3. Menu Options yang terdiri dari Pengaturan seperti setting penyimpanan file, Tampilan laporan dan pemilihan metode seperti metode Rabin dan RSA.

4. Menu help terdiri dari pilihan berupa informasi / pemberitahuan mengenai cara mengenkripsi dan mendekripsi, mengetahui informasi tentang sipenulis.


(49)

Untuk lebih jelasnya tampilan menu utama yang dimaksud dapat dilihat pada gambar 3.11.

Gambar 3.11. Tampilan Menu Utama b. Tampilan Proses

1. Tampilan Proses Input Kunci

Pada tampilan proses input kunci, pertama kali harus dilakukan olehhsipengguna, yaitu dengan memilih menu option, lalu pilih metode apa yang mau digunakan kemudian dilakukan proses inpu t kunci dengan cara mengklick icon input kunci atau dengan memilih menu proses lalu pilih input kunci,

Pada Metode Rivest Shamir Adleman ( RSA ) penginputkan dilakukan dengan memasukkan masing – masing nilai p dan q nya kemudian klick tombol uji prima, setelah nilai p dan q dinyatakan valid, proses selanjutnya adalah pembentukkan kunci untuk mendapatkan kunci public dan kunci privat. Proses tersebut dilakukan dengan mengklick tombol proses terlebih dahulu. Hasil dari mengklick tombol, bentukkan kunci akan menampilkan nilai d , tabel extended Euclidean dan kunci public.Proses pembentukkan kunci dapat juga dilakukan dengan megklick tombol acak prima lalu klick tombol ambil bilangan acak lalu mengklick tombol proses atau bias langsung aja mengklick


(50)

tombol simpan, sedangkan pada Rabin penginputkan dilakukan hampir sama dengan RSA dengan memasukkan masing – masing nilai p dan q nya kemudian klick tombol uji prima, setelah nilai p dan q dinyatakan valid, proses selanjutnya adalah pembentukkan kunci untuk mendapatkan kunci public ( n ) atau bisa juga tanpa menginput nilai p dan q langsung aja mengklick tombol acak prima maka nilai p, q dan n akan didapatkan lalu klick tombol simpan. Untuk lebih jelasnya tampilan proses input kunci yang dimaksud dapat dilihat pada gambar 3.12 dan Gambar 3.13 berikut ini.

Gambar 3.12 Input Kunci RSA

Gambar 3.13 Input Kunci Rabin


(51)

Setelah pembentukkan kunci selesai, langkah selanjutnya adalah dengan melakukan proses enkripsi, tapi terlebih dahulu kita ambil file teksnya dengan cara mengklik icon buka file atau dari menu file pilih open, setelah file teks nya ada atau plainteksnya ada, langkah selanjutnya dengan mengklick icon enkripsi atau dari menu proses pilih enkripsi, setelah proses enkripsi selesai langkah selanjutnya menyimpan file yang telah terenkripsi ke drive yang telah ditentukan penyimpanannya.

Untuk lebih jelasnya tampilan proses enkripsi yang dimaksud dapat dilihat pada gambar 3.14.

Gambar 3.14. Tampilan Proses Enkripsi 3. Tampilan Proses Dekripsi

Apabila ingin mendekripsi file yang telah terenkripsi langkah yang harus dilakukan adalah melakukan proses input kunci sesuai dengan kunci pada waktu mengenkrip file sebelumnya, langkah selanjutnya kita ambil file hasil enkrip dengan cara mengklik icon buka file atau dari menu file pilih open, setelah file teks nya ada atau cipherteksnya ada, langkah selanjutnya dengan mengklick icon dekripsi atau dari menu proses pilih dekripsi.

Untuk lebih jelasnya tampilan proses dekripsi yang dimaksud dapat dilihat pada gambar 3.15.


(52)

Gambar 3.15. Tampilan Proses Dekripsi

c. Tampilan Menu Pengaturan

Pada menu pengaturan disini bisa kita lakukan untuk mengatur pada drive mana kita mau menyimpan hasil file yang telah di enkripsi dan didekripsi.

Untuk lebih jelasnya tampilan menu pengaturan yang dimaksud dapat dilihat pada gambar 3.16.


(53)

Gambar 3.16. Tampilan Menu Pengaturan d. Tampilan Menu Help

Tampilan pada menu help terdiri dari 2 yaitu :

1. Menu Bagaimana Mengenkripsi dan Mendekripsi File

Pada Menu ini akan menampilkan langkah – langkah / cara untuk mengenkripsi dan mengdekripsi file.

Untuk lebih jelasnya tampilan menu ―Bagaimana Mengenkripsi dan Mendekripsi File‖ dapat dilihat pada gambar 3.17.

Gambar 3.17. Tampilan Menu―Bagaimana Mengenkripsi dan Mendekripsi File‖

2. Menu ―Mengenai Sipembuat‖

Pada Menu ini menginformasikan mengenai riwayat dari sipembuat program.


(54)

Gambar 3.18. Tampilan Menu ―Mengenai Sipembuat‖

3.6. Proses Analisis

3.6.1 Analisis Tahapan Metode Rabin

3.6.1.1 Analisis Tahapan Pembentukkan Kunci

Proses pembentukan kunci dari metode Rabin dimulai dari pemilihan dua buah bilangan prima p dan q. Setelah itu, proses dilanjutkan dengan perhitungan nilai n. Detail perhitungan dari proses pembentukan kunci ini dapat dilihat pada contoh berikut ini:

Misalkan dipilih dua buah bilangan prima berikut: p = 71

q = 11

Setelah itu, hitung nilai n seperti berikut: n = p * q

n = 71 * 11 n = 781

Output dari tahapan pembentukan kunci ini adalah: 1. Kunci privat, yaitu p = 71 dan q = 11.


(55)

3.6.1.2 Analisis Tahapan Enkripsi

Setelah itu, proses akan dilanjutkan dengan proses enkripsi terhadap pesan input.

Misalkan pesan input yang diambil adalah ‗ABC‘, maka proses kerja dari tahapan enrkipsi pada metode Rabin dengan menggunakan kunci publik yang dihasilkan pada tahapan pembentukan kunci diatas dapat dirincikan sebagai berikut:

Tentukan ukuran subblok pesan --- b = 9 --> karena 2^b = 512 <= 781 Ubah pesan ke bentuk ASCII Code Biner --- 'A' = 65 = 01000001

'B' = 66 = 01000010 'C' = 67 = 01000011

Kelompokkan bit pesan menjadi subblok --- M(1) = 111101000 = 488

M(2) = 111100101 = 485 M(3) = 111100001 = 481 M(4) = 111100100 = 484 M(5) = 111100110 = 486 Hitung nilai Cipher C --- C(1) = M(1)^2 mod n C(1) = 488^2 mod 781 C(1) = 720

C(2) = M(2)^2 mod n C(2) = 485^2 mod 781 C(2) = 144

C(3) = M(3)^2 mod n C(3) = 481^2 mod 781 C(3) = 185

C(4) = M(4)^2 mod n C(4) = 484^2 mod 781 C(4) = 737

C(5) = M(5)^2 mod n C(5) = 486^2 mod 781 C(5) = 334


(56)

3.6.1.3 Analisis Tahapan Dekripsi

Kumpulan nilai Ci yang diperoleh penerima dapat didekripsi dengan menggunakan kunci privatnya sendiri. Proses dekripsi dari metode Rabin terhadap nilai cipher Ci yang dihasilkan pada tahapan enkripsi diatas dengan menggunakan kunci privat yang dihasilkan pada tahapan pembentukan kunci dapat dirincikan sebagai berikut:

Input: --- Kunci privat: p = 71 q = 11 n = 781

Tentukan ukuran subblok pesan --- b = 9 --> karena 2^b = 512 <= 781

Subblok cipher --- C(1) = 720 C(2) = 144 C(3) = 185 C(4) = 737 C(5) = 334

a = q * q^(-1) mod p a = 11 * 11^(-1) mod 71 a = 11 * 13 mod 71 a = 143

b = p * p^(-1) mod q b = 71 * 71^(-1) mod 11 b = 71 * 9 mod 11 b = 639

Hitung nilai plaintext M --- M1(1)' = C(1)^[(p + 1)/4] mod n M1(1)' = 720^18 mod 781 M1(1)' = 719

M2(1)' = p - C(1)^[(p + 1)/4] mod n (mod p) M2(1)' = 71 - [720^18 mod 781] (mod 11) M2(1)' = 62

M3(1)' = C(1)^[(q + 1)/4] mod n M3(1)' = 720^3 mod 781


(57)

M3(1)' = 290

M4(1)' = q - C(1)^[(q + 1)/4] mod n (mod p) M4(1)' = 11 - [720^3 mod 781] (mod 11) M4(1)' = 7

Kemungkinan nilai M yang pertama: M1(1) = a * M1(1)' + b * M3(1)' (mod n) M1(1) = 143 * 719 + 639 * 290 (mod 781) M1(1) = 719

Kemungkinan nilai M yang kedua: M2(1) = a * M1(1)' + b * M4(1)' (mod n) M2(1) = 143 * 719 + 639 * 7 (mod 781) M2(1) = 293

Kemungkinan nilai M yang ketiga: M3(1) = a * M2(1)' + b * M3(1)' (mod n) M3(1) = 143 * 62 + 639 * 290 (mod 781) M3(1) = 488

Kemungkinan nilai M yang keempat: M4(1) = a * M2(1)' + b * M4(1)' (mod n) M4(1) = 143 * 62 + 639 * 7 (mod 781) M4(1) = 62

Nilai m yang dipilih adalah: M(1) = 488 M1(2)' = C(2)^[(p + 1)/4] mod n

M1(2)' = 144^18 mod 781 M1(2)' = 12

M2(2)' = p - C(2)^[(p + 1)/4] mod n (mod p) M2(2)' = 71 - [144^18 mod 781] (mod 11) M2(2)' = 59

M3(2)' = C(2)^[(q + 1)/4] mod n M3(2)' = 144^3 mod 781

M3(2)' = 221

M4(2)' = q - C(2)^[(q + 1)/4] mod n (mod p) M4(2)' = 11 - [144^3 mod 781] (mod 11) M4(2)' = 10

Kemungkinan nilai M yang pertama: M1(2) = a * M1(2)' + b * M3(2)' (mod n) M1(2) = 143 * 12 + 639 * 221 (mod 781)


(58)

M1(2) = 12

Kemungkinan nilai M yang kedua: M2(2) = a * M1(2)' + b * M4(2)' (mod n) M2(2) = 143 * 12 + 639 * 10 (mod 781) M2(2) = 296

Kemungkinan nilai M yang ketiga: M3(2) = a * M2(2)' + b * M3(2)' (mod n) M3(2) = 143 * 59 + 639 * 221 (mod 781) M3(2) = 485

Kemungkinan nilai M yang keempat: M4(2) = a * M2(2)' + b * M4(2)' (mod n) M4(2) = 143 * 59 + 639 * 10 (mod 781) M4(2) = 769

Nilai m yang dipilih adalah: M(2) = 485 M1(3)' = C(3)^[(p + 1)/4] mod n

M1(3)' = 185^18 mod 781 M1(3)' = 300

M2(3)' = p - C(3)^[(p + 1)/4] mod n (mod p) M2(3)' = 71 - [185^18 mod 781] (mod 11) M2(3)' = 55

M3(3)' = C(3)^[(q + 1)/4] mod n M3(3)' = 185^3 mod 781

M3(3)' = 58

M4(3)' = q - C(3)^[(q + 1)/4] mod n (mod p) M4(3)' = 11 - [185^3 mod 781] (mod 11) M4(3)' = 8

Kemungkinan nilai M yang pertama: M1(3) = a * M1(3)' + b * M3(3)' (mod n) M1(3) = 143 * 300 + 639 * 58 (mod 781) M1(3) = 300

Kemungkinan nilai M yang kedua: M2(3) = a * M1(3)' + b * M4(3)' (mod n) M2(3) = 143 * 300 + 639 * 8 (mod 781) M2(3) = 371

Kemungkinan nilai M yang ketiga: M3(3) = a * M2(3)' + b * M3(3)' (mod n) M3(3) = 143 * 55 + 639 * 58 (mod 781) M3(3) = 410


(59)

Kemungkinan nilai M yang keempat: M4(3) = a * M2(3)' + b * M4(3)' (mod n) M4(3) = 143 * 55 + 639 * 8 (mod 781) M4(3) = 481

Nilai m yang dipilih adalah: M(3) = 481 M1(4)' = C(4)^[(p + 1)/4] mod n

M1(4)' = 737^18 mod 781 M1(4)' = 484

M2(4)' = p - C(4)^[(p + 1)/4] mod n (mod p) M2(4)' = 71 - [737^18 mod 781] (mod 11) M2(4)' = 13

M3(4)' = C(4)^[(q + 1)/4] mod n M3(4)' = 737^3 mod 781

M3(4)' = 726

M4(4)' = q - C(4)^[(q + 1)/4] mod n (mod p) M4(4)' = 11 - [737^3 mod 781] (mod 11) M4(4)' = 0

Kemungkinan nilai M yang pertama: M1(4) = a * M1(4)' + b * M3(4)' (mod n) M1(4) = 143 * 484 + 639 * 726 (mod 781) M1(4) = 484

Kemungkinan nilai M yang kedua: M2(4) = a * M1(4)' + b * M4(4)' (mod n) M2(4) = 143 * 484 + 639 * 0 (mod 781) M2(4) = 484

Kemungkinan nilai M yang ketiga: M3(4) = a * M2(4)' + b * M3(4)' (mod n) M3(4) = 143 * 13 + 639 * 726 (mod 781) M3(4) = 297

Kemungkinan nilai M yang keempat: M4(4) = a * M2(4)' + b * M4(4)' (mod n) M4(4) = 143 * 13 + 639 * 0 (mod 781) M4(4) = 297

Nilai m yang dipilih adalah: M(4) = 484 M1(5)' = C(5)^[(p + 1)/4] mod n

M1(5)' = 334^18 mod 781 M1(5)' = 273


(60)

M2(5)' = p - C(5)^[(p + 1)/4] mod n (mod p) M2(5)' = 71 - [334^18 mod 781] (mod 11) M2(5)' = 11

M3(5)' = C(5)^[(q + 1)/4] mod n M3(5)' = 334^3 mod 781

M3(5)' = 537

M4(5)' = q - C(5)^[(q + 1)/4] mod n (mod p) M4(5)' = 11 - [334^3 mod 781] (mod 11) M4(5)' = 2

Kemungkinan nilai M yang pertama: M1(5) = a * M1(5)' + b * M3(5)' (mod n) M1(5) = 143 * 273 + 639 * 537 (mod 781) M1(5) = 273

Kemungkinan nilai M yang kedua: M2(5) = a * M1(5)' + b * M4(5)' (mod n) M2(5) = 143 * 273 + 639 * 2 (mod 781) M2(5) = 486

Kemungkinan nilai M yang ketiga: M3(5) = a * M2(5)' + b * M3(5)' (mod n) M3(5) = 143 * 11 + 639 * 537 (mod 781) M3(5) = 295

Kemungkinan nilai M yang keempat: M4(5) = a * M2(5)' + b * M4(5)' (mod n) M4(5) = 143 * 11 + 639 * 2 (mod 781) M4(5) = 508

Nilai m yang dipilih adalah: M(5) = 486

Kelompokkan menjadi subblok of 8 --- Karakter ke-1 = 01000001 = 65 = 'A' Karakter ke-2 = 01000010 = 66 = 'B' Karakter ke-3 = 01000011 = 67 = 'C'


(61)

3.6.2 Analisis Tahapan Metode RSA

3.6.2. 1 Analisis Tahapan Pembentukkan Kunci

Proses pembentukan kunci dari metode RSA dimulai dari pemilihan dua buah bilangan prima p dan q. Setelah itu, proses dilanjutkan dengan perhitungan nilai n dan T(n). Kemudian, proses dilanjutkan dengan penentuan kunci dekripsi d dan diakhiri dengan perhitungan nilai kunci enkripsi e. Detail perhitungan dari proses pembentukan kunci ini dapat dilihat pada contoh berikut ini:

Misalkan dipilih dua buah bilangan prima berikut: p = 71

q = 11

Setelah itu, hitung nilai n seperti berikut: n = p * q

= 71 * 11 = 781

Tt = (p - 1) * (q - 1) = (71 - 1) * (11 - 1) = 700

Kemudian, proses dilanjutkan dengan penentuan nilai kunci dekripsi d: Misalkan dipilih d = 493.


(62)

Nilai e = 257

Output dari tahapan pembentukan kunci ini adalah:

3. Kunci privat, yaitu p = 71, q = 11, d = 493 dan n = 781. 4. Kunci publik, yaitu e = 257 dan n = 781.

3.6.2. 2 Analisis Tahapan Enkripsi

Setelah itu, proses akan dilanjutkan dengan proses enkripsi terhadap pesan input.

Misalkan pesan input yang diambil adalah ‗ABC‘, maka proses kerja dari tahapan

enrkipsi pada metode RSA dengan menggunakan kunci publik yang dihasilkan pada tahapan pembentukan kunci diatas dapat dirincikan sebagai berikut:

Tentukan ukuran subblok pesan --- b = 9 --> karena 2^b = 512 <= 781

Ubah pesan ke bentuk ASCII Code Biner --- 'A' = 65 = 01000001

'B' = 66 = 01000010 'C' = 67 = 01000011

Kelompokkan bit pesan menjadi subblok --- M(1) = 010000010 = 130

M(2) = 100001001 = 265 M(3) = 000011000 = 24 Hitung nilai Cipher C --- C(1) = M(1)^e mod n C(1) = 130^257 mod 781 C(1) = 433

C(2) = M(2)^e mod n C(2) = 265^257 mod 781 C(2) = 133


(63)

C(3) = M(3)^e mod n C(3) = 24^257 mod 781 C(3) = 722

3.6.2. 3 Analisis Tahapan Dekripsi

Kumpulan nilai Ci yang diperoleh penerima dapat didekripsi dengan menggunakan kunci privatnya sendiri. Proses dekripsi dari metode RSA terhadap nilai cipher Ci yang dihasilkan pada tahapan enkripsi diatas dengan menggunakan kunci privat yang dihasilkan pada tahapan pembentukan kunci dapat dirincikan sebagai berikut:

Input: --- Kunci privat: d = 493 n = 781

Tentukan ukuran subblok pesan --- b = 9 --> karena 2^b = 512 <= 781

Subblok cipher --- C(1) = 433 C(2) = 133 C(3) = 722

Hitung nilai plaintext M --- M(1) = C(1)^d mod n M(1) = 433^493 mod 781 M(1) = 130 = 010000010 M(2) = C(2)^d mod n M(2) = 133^493 mod 781 M(2) = 265 = 100001001 M(3) = C(3)^d mod n M(3) = 722^493 mod 781 M(3) = 24 = 000011000

Kelompokkan menjadi subblok of 8 --- Karakter ke-1 = 01000001 = 65 = 'A' Karakter ke-2 = 01000010 = 66 = 'B'


(64)

Karakter ke-3 = 01000011 = 67 = 'C'

3.7. Instrumen Penelitian

Adapun indtrumen penelitian yang digunakan dalam penelitian adalah : 1. Pesan yang akan diproses adalah pesan teks

2. Sistem Operasi Microsoft Windows XP SP 2.

3. Ukuran Harddisk tempat penyimpanan sistem operasi 40 GB. 4. Prosesor Intel Pentium T3200 @ 2.00 GHz.

5. RAM 1 GB.

3.8. Diagram aktifitas Kerja

Tabel 3.1 merupakan alur kerja dari penelitian yang digambarkan dalam diagram aktifitas.

Peneliti Perangkat Lunak

Perencanaan

Analisis

Perancangan

Pengujian Sistem

Valid

Implementasi

Pemeliharaan Ya Tidak


(65)

BAB IV

HASIL PENELITIAN

4.1. Pendahuluan

Pada bab berikut ini akan dijelaskan mengenai hasil penelitian dengan menggunakan metode Rabin dan metode Rivest Shamir Adleman (RSA) dalam melakukan pengamanan data. Penelitian akan melakukan perbandingan proses kerja dari kedua metode terhadap beberapa ukuran file berbeda. Spesifikasi dari perangkat keras dan perangkat lunak yang digunakan adalah sebagai berikut:

1. Sistem Operasi Microsoft Windows XP SP 2.

2. Ukuran Harddisk tempat penyimpanan sistem operasi 40 GB. 3. Prosesor Intel Pentium T3200 @ 2.00 GHz.

4. RAM 1 GB.

4.2.Hasil Simulasi Dari Tahapan Enkripsi

4.2.1. Hasil dari Tahapan Enkripsi Metode Rabin

Pada subab ini akan dilakukan proses ujicoba terhadap beberapa buah contoh pesan teks dengan berbagai ukuran berbeda yang akan dienkripsi dan didekripsi dengan menggunakan metode Rabin. Untuk setiap proses pengujian akan digunakan kunci yang sama sehingga dapat diperoleh hasil perbandingan yang akurat.

1. Proses pengujian pertama akan menggunakan kunci berupa bilangan prima dua digit, yaitu p = 83 dan q = 79. Hal ini berarti bahwa nilai n = 6557.


(66)

Gambar 4.1. Tampilan Input Kunci Metode Rabin Dengan Dua Digit Beberapa file yang digunakan adalah sebagai berikut:

a. File teks dengan jumlah karakter = 610 karakter (ukuran = 610 bytes).


(67)

Gambar 4.3. Tampilan Proses Enkripsi Pada Metode Rabin dengan file 610 byte

Ukuran hasil enkripsi = 2.4 KB, jumlah karakter = 2440 karakter.

b. File teks dengan jumlah karakter = 1331 karakter (ukuran = 1.29 kb).


(68)

Gambar 4.5. Tampilan Proses Enkripsi Metode Rabin Dengan File 1.29 Kb

Ukuran hasil enkripsi = 5.21 KB, jumlah karakter = 5343 karakter.

2. Proses pengujian kedua akan menggunakan kunci berupa bilangan prima tiga digit, yaitu p = 647 dan q = 263. Hal ini berarti bahwa nilai n = 170161.


(69)

Beberapa file yang digunakan adalah sebagai berikut:

a. File teks dengan jumlah karakter = 610 karakter (ukuran = 610 bytes).

Gambar 4.7. Tampilan Plainteks Metode Rabin Dengan File 610 byte


(70)

Ukuran hasil enkripsi = 2.22 KB, jumlah karakter = 2275 karakter.

b. File teks dengan jumlah karakter = 1331 karakter (ukuran = 1.29 Kb).

Gambar 4.9. Tampilan Plainteks Metode Rabin Dengan File 1.29 Kb ( 3 digit )


(71)

Ukuran hasil enkripsi = 4.82 KB, jumlah karakter = 4939 karakter.

4.2.2. Hasil Dari Tahapan Enkripsi Metode Rivest Shamir Adleman ( RSA )

Pada subab ini akan dilakukan proses ujicoba terhadap beberapa buah contoh pesan teks dengan berbagai ukuran berbeda yang akan dienkripsi dan didekripsi dengan menggunakan metode RSA. Untuk setiap proses pengujian akan digunakan kunci yang sama sehingga dapat diperoleh hasil perbandingan yang akurat.

1. Proses pengujian pertama akan menggunakan kunci berupa bilangan prima dua digit, yaitu p = 83 dan q = 79. Hal ini berarti bahwa nilai n = 6557. Misalkan lagi dipilih nilai d = 3119. Maka nilai e = 5303.

Gambar 4.11. Tampilan Input Kunci Metode RSA Dengan Dua Digit a. File teks dengan jumlah karakter = 610 karakter (ukuran = 610 bytes).


(72)

Gambar 4.12. Tampilan Plaintext Metode RSA Dengan File 610 Byte

Gambar 4.13. Tampilan Proses Enkripsi Metode RSA Dengan File 610 Byte


(73)

b. File teks dengan jumlah karakter = 1331 karakter (ukuran = 1.29 Kb).

Gambar 4.14. Tampilan Plaintext Metode RSA Dengan File 1.29 Kb


(74)

Ukuran hasil enkripsi = 3.48 KB, jumlah karakter = 3.552 karakter.

2. Proses pengujian kedua akan menggunakan kunci berupa bilangan prima tiga digit, yaitu p = 647 dan q = 263. Hal ini berarti bahwa nilai n = 170161.Misalkan lagi dipilih nilai d = 3119. Maka nilai e = 64955.

Gambar 4.16. Tampilan Input Kunci Metode RSA Dengan Tiga Digit

Beberapa file yang digunakan adalah sebagai berikut:


(75)

Gambar 4.17. Tampilan Plaintext Metode RSA Dengan File 610 Byte

Gambar 4.18. Tampilan Proses Enkripsi Metode RSA Dengan File 610 Byte


(76)

b. File teks dengan jumlah karakter = 1331 karakter (ukuran = 1.29 Kb).

Gambar 4.19. Tampilan Plaintext Metode RSA Dengan File 1.29 Kb


(77)

Ukuran hasil enkripsi = 3.69 kb, jumlah karakter = 3762 karakter.

Hasil Simulasi dari proses enkripsi metode rabin dan rivest shamir adleman ( RSA ) pada pesan teks dapat dilihat pada tampilan tabel 4.1 berikut ini :

Tabel 4.1 Hasil dari Proses Enkripsi Metode Rabin dan RSA

Contoh Ukuran

File


(78)

Kasus Semula

Rabin RSA

Panjang Karakter Ukuran File Hasil Enkripsi Waktu ( Detik )

Panjang Karakter Ukuran File Hasil Enkripsi Waktu ( Detik )

Plain Cipher Plain Cipher

Menggunakan bilangan prima 2 digit

610

byte 610 2440 2.4 kbyte 2.016 610 1.628 1.61 kb 1.453

1.29 kb 1331 5343 5.22 kbyte 8.672 1331 3.552 3.48 kb 3.813

Menggunakan bilangan prima 3 digit

610

byte 610 2275 2.22 kbyte 1.266 610 1728 171 kb 0.344 1.29 kb 1331 4939 4.82 kbyte 3.657 1331 3762 3.69 kb 0.735

Dari tabel 4.1. diatas dapat ditarik suatu kesimpulan yaitu :

1. Hasil dari proses enkripsi pada metode Rabin dan RSA menghasislkan panjang karakter yang lebih besar dari pesan aslinya.

2. Setiap pesan teks yang dikirimkan kepada sipengirim sudah terjaga kerahasiannya karena pesan tersebut ditampilkan dalam bentuk ciphertextnumber.

3. Kecepatan proses enkripsi lebih cepat pada metode RSA jika dibandingkan Rabin.

4. Hasil dari proses enkripsi selalu lebih besar filenya dibandingkan dengan file sebelum dienkripsi.

4.3. Hasil Simulasi Dari Tahapan Proses Dekripsi Metode Rabin dan Rivest Shamir Adleman ( RSA )


(79)

Tahapan ini bertujuan untuk mengembalikan pesan kebentuk semula ( plaintext ) baik itu ukuran, maupun isi dari pesan agar pesan dapat dibaca oleh sipenerima pesan. Berikut ini merupakan contoh kasus dari pesan yang dilakukan proses dekripsi dengan metode Rabin, dimana nilai p dan q untuk masing – masing contoh kasus ditetapkan dengan nilai yang sama, dimana kedua nilai tersebut yaitu p dan q telah diuji dengan menggunakan algoritma Rabin Miller. Adapun contoh kasusnya sebagai berikut :

1. Proses pengujian pertama akan menggunakan kunci berupa bilangan prima dua digit, yaitu p = 83 dan q = 79. Hal ini berarti bahwa nilai n = 6557.

Gambar 4.21. Tampilan Input Kunci Metode Rabin Dengan Dua Digit

Beberapa file yang digunakan berupa file hasil enkripsi yang telah dilakukan pada tahapan proses enkripsi metode Rabin, adalah sebagai berikut:


(80)

Gambar 4.22. Tampilan Ciphertext Metode Rabin Pada File 2.4 Kb

Gambar 4.23. Tampilan Hasil Dekripsi Metode Pada File 2.4 Kb


(81)

b. File teks dengan jumlah karakter = 5343 karakter (ukuran = 5.21 kbytes).


(1)

'Bentuk Array a(1, 1) = pnValueN a(1, 2) = NilaiX 'Matriks Identitas a(2, 1) = 1 a(2, 2) = 0 a(3, 1) = 0 a(3, 2) = 1

While Not bSelesai 'Hitung nilai m

nM = FDiv(a(1, 1), a(1, 2)) For nI = 1 To 3

'Hitung nilai x

nX = a(nI, 1) - nM * a(nI, 2)

'Ubah nilai a(nI, 1) = a(nI, 2) a(nI, 2) = nX

If nI = 1 And nX = 0 Then bSelesai = True End If

Next nI Wend

If a(3, 1) >= 0 Then

ExtendedEuclidean = a(3, 1) Else

ExtendedEuclidean = a(3, 1) + pnValueN End If


(2)

'Algoritma untuk tes bilangan prima (persentase 80%) Public Function Test80P(ByVal pnP As Long) As Boolean Dim nI As Long

Dim bOK As Boolean bOK = True

For nI = 2 To 255

If nI = 2 Or TestPrima(CDbl(nI), 2) Then

If pnP <> nI And (pnP Mod CDbl(nI)) = 0 Then bOK = False

Exit For End If End If Next nI Test80P = bOK End Function

'Algoritma untuk tes apakah suatu bilangan merp. prima atau tidak

Public Function TestPrima(ByVal pnP As Long, ByVal pnA As Long) As Boolean 'Angka Genap

If pnP Mod 2 = 0 Then TestPrima = False Exit Function End If

'Test Prima

TestPrima = IsRabinMiller(pnP, pnA) End Function

'Algoritma untuk test Rabin-Miller

Public Function IsRabinMiller(ByVal pnP As Long, ByVal pnA As Long) As Boolean Dim nTemp As Long

Dim pnC As Long Dim pnB As Long


(3)

Dim pnM As Long Dim pnJ As Long Dim pnZ As Long pnC = pnP – 1

'--- CARI b nTemp = 0

While (pnC Mod (2 ^ nTemp)) = 0 And ((2 ^ nTemp) < pnP) nTemp = nTemp + 1

Wend

pnB = nTemp - 1

'--- CARI m

pnM = (pnC / (2 ^ pnB)) pnJ = 0

pnZ = FastExp(pnA, pnM, pnP) If (pnZ = 1) Or (pnZ = (pnP - 1)) Then IsRabinMiller = True

Exit Function End If

lAgain:

If pnJ > 0 And pnZ = 1 Then IsRabinMiller = False Exit Function End If

pnJ = pnJ + 1

If (pnJ < pnB) And (pnZ <> pnP - 1) Then pnZ = FastExp(pnZ, 2, pnP)

GoTo lAgain End If


(4)

IsRabinMiller = True Exit Function End If

If pnJ = pnB And pnZ <> (pnP - 1) Then IsRabinMiller = False

Exit Function End If

End Function

'Fungsi Fermat untuk mengecek apakah sebuah bilangan merupakan bilangan prima atau bukan Public Function Fermat(ByVal pnM As Double) As Boolean

Dim nA As Double Do

nA = Int(Rnd() * 1000000) Loop Until FMod(nA, pnM) > 0 If FastExp(nA, pnM - 1, pnM) = 1 Then Fermat = True

Else

Fermat = False End If

End Function

Public Function GeneratePrime(ByVal nDigit As Long) As Double Dim nAngka As Double

Do

nAngka = Int(Rnd() * (10 ^ nDigit)) + 1 Loop Until Fermat(nAngka)

GeneratePrime = nAngka End Function

Public Function FModulus(ByVal pnValue1 As Double, ByVal pnValue2 As Double) As Double Dim nKali As Double


(5)

Dim nHasil As Double If pnValue1 < 0 Then

nKali = Abs(Int(pnValue1 / pnValue2)) nHasil = pnValue1 + (nKali * pnValue2) nHasil = (nHasil + pnValue2) Mod pnValue2 Else

nHasil = pnValue1 Mod pnValue2 End If

FModulus = nHasil End Function

Public Function Coba(pcPesan As String) As String Dim cHasil As String

Dim cEncrypt As String Call GenerateRSAKey

cEncrypt = RSAEncrypt(pcPesan, nE, nN) cHasil = RSADecrypt(cEncrypt, nD, nN) Coba = cHasil

End Function

Public Function Coba1(pcPesan As String) As String Dim cHasil As String

Dim cEncrypt As String Call GenerateRabinKey

cEncrypt = RabinEncrypt(pcPesan, nN) cHasil = RabinDecrypt(cEncrypt, nP, nQ, nN) Coba1 = cHasil

End Function

'Algoritma Euclid untuk mencari GCD

Public Function GCD(a As Double, B As Double) As Double Dim P As Double


(6)

Dim Q As Double Dim R As Double P = a

Q = B While Q <> 0 R = FMod(P, Q) P = Q

Q = R Wend GCD = P End Function