Waktu Penelitian Variabel Yang Diamati Perancangan Program

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