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
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
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
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
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
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
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
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
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
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.
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.
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
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
DAFTAR PUSTAKA
Lampiran 1 : Daftar Publikasi Ilmiah
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.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
DAFTAR TABEL
Halaman
Tabel 2.4 Riset Terkait 17
Tabel 3.1 Diagram Aktivitas Kerja 47
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.
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.
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
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,
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
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
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
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
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
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
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 :
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 :
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.
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
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
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)
(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
2.12 Riset Terkait
Dalam melakukan penelitian, penulis menggunakan beberapa riset terkait yang
[image:35.595.113.577.189.615.2]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
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
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.
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
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
[image:39.595.146.409.79.509.2]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
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
[image:40.595.161.389.83.552.2]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
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
[image:41.595.168.384.80.530.2]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
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
[image:42.595.162.392.82.487.2]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
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
[image:43.595.162.432.78.549.2]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
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,
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
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.
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
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.
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
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
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.
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.
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.
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:
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
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)' = 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
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 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
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
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 diak