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.
2. Besarnya pembangkit bilangan prima terdiri dari 4 digit.
Universitas Sumatera Utara
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 :
Universitas Sumatera Utara
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 :
Universitas Sumatera Utara
Start
Konversi pesan ke bentuk ASCII Code biner
Bagi bit-bit biner menjadi blok dengan ukuran b, dimana b dapat dihitung
dengan 2
b
= n. Input Pesan
Konversikan tiap blok blok-1 .. blok-z menjadi bilangan desimal M1 .. Mz
Untuk i = 1 sampai z
Ci = Mi
2
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 :
Universitas Sumatera Utara
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.1 Tahap 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 :
Universitas Sumatera Utara
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.4. Proses Pembentukan Kunci Pada Rivest Shamir adleman RSA
3.4.2.2 Tahap 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 :
Universitas Sumatera Utara
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.5. Enkripsi Pada Algoritma Rivest Shamir Adleman RSA
3.4.2.3 Tahap 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 :
Universitas Sumatera Utara
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, B, dan C. Proses kerjanya dapat dilihat pada gambar 3.7:
Universitas Sumatera Utara
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 variabel numerik pnP dan pnA. Proses kerjanya dapat dilihat pada gambar 3.8:
Universitas Sumatera Utara
Start pnC = pnP - 1
nTemp = 0
IF pnC mod 2nTemp = 0 AND 2nTemp pnP
nTemp = nTemp +1 Ya
Tidak pnB = nTemp -1
pnM = pnC 2 pnB pnJ = 0
pnZ = fungsi FFastExppnA, 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 FFastExppnZ, 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.
Proses kerjanya dapat dilihat pada gambar 3.9:
Universitas Sumatera Utara
Start
nP = nRandom
c80 = FTest80PnP
IF c80.Prima Ya
bSuccess = FIsRabinMillernP, 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
kerjanya dapat dilihat pada gambar 3.10. :
Universitas Sumatera Utara
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.
Universitas Sumatera Utara
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
Universitas Sumatera Utara
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
2. Tampilan Proses Enkripsi
Universitas Sumatera Utara
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.
Universitas Sumatera Utara
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.
Universitas Sumatera Utara
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. Tampilan Menu ―mengenai Sipembuat‖ dapat dilihat pada gambar 3.18.
Universitas Sumatera Utara
Gambar 3.18. Tampilan Menu ―Mengenai Sipembuat‖
3.6. Proses Analisis 3.6.1 Analisis Tahapan Metode Rabin