BAB III ANALISIS DAN PERANCANGAN III.1. Analisis Masalah Secara umum data dikategorikan menjadi dua, yaitu data yang bersifat rahasia dan data yang bersifat tidak rahasia. Data yang bersifat tidak rahasia biasanya tidak akan terlalu diperhatikan. Yang sangat perlu diperhatikan adalah data yang bersifat rahasia, dimana setiap informasi yang ada didalamnya akan sangat berharga bagi pihak yang membutuhkan karena data tersebut dapat dengan mudah digandakan. Untuk mendapatkan informasi di dalamnya, biasanya dilakukan berbagai cara yang tidak sah. Seiring dengan perkembangan teknologi, keamanan dalam berteknologi merupakan hal yang sangat penting. Salah satu cara mengamankan data adalah dengan menggunakan metode kriptografi. Hal ini dikarenakan metode kriptografi sangat mudah diimplementasikan. Meskipun kriptografi adalah salah satu cara untuk mengamankan data, namun masih ada kekurangannya, yaitu metode kriptografi telah diketahui oleh banyak orang. Karena itu dibutuhkan suatu metode untuk mendapatkan keamanan lebih, baik dalam informasi ataupun data khususnya yang bersifat rahasia. Adapun masalah yang ada yaitu sebagai berikut : 1. Bagaimana menjaga keutuhan dan integritas data teks agar keamanannya dapat terjamin? 2. Metode apa yang akan digunakan agar keutuhan pesan tetap terjaga?
3. Bagaimana penerapan metode yang tepat pada proses enkripsi dan dekripsi pesan teks? Adapun strategi pemecahan masalah yang penulis gunakan adalah sebagai berikut : 1. Untuk menjaga keamanan pasan teks agar isi pesan tersebut tetap utuh kepada si penerima. Yaitu dengan menggunakan aplikasi kriptografi. Aplikasi kriptografi tersebut dapat menenkripsi dan mendekripsi pesan teks dengan beberapa metode yang dapat diterapkan. 2. Dari banyaknya metode yang ada, metode yang aman digunakan adalah metode ElGamal dan RSA. Karena pada metode elgamal menggunakan kunci yang dirahasiakan dan pada RSA memiliki keamanan yang cukup baik dalam sejarah kriptografi. 3. Dengan metode ElGamal terdapat Kunci yang bersifat rahasia dan RSA memiliki keamanan yang cukup baik, sehingga proses enkripsi dan dekripsi teks lebih terjaga. Maka dengan adanya aplikasi ini teks yang memuat pesan yang akan disampaikan pada penerima akan di enkripsi terlebih dahulu, dan akan di dekripsi oleh penerima sehingga penerima dapat membaca isi pesan teks yang telah disampaikan. III.2. Penerapan Metode Metode yang digunakan di dalam penelitian ini adalah metode ElGamal dan RSA. III.2.1 Algoritma ElGamal Algoritma Elgamal merupakan salah satu algoritma kriptografi kunci-publik yang dibuat oleh Taher Elgamal pada tahun 1984. Algoritma ini pada umumnya digunakan untuk digital signature, namun kemudian dimodifikasi sehingga juga bisa digunakan untuk enkripsi dan deskripsi. ElGamal digunakan dalam perangkat lunak sekuriti yang dikembangkan oleh GNU,
program PGP, dan pada sistem sekuriti lainnya. Kekuatan algoritma ini terletak pada sulitnya menghitung logaritma diskrit. Besaran-besaran yang digunakan di dalam algoritma Elgamal : 1. Bilangan prima, p (tidak rahasia) 2. Bilangan acak, g ( g < p) (tidak rahasia) 3. Bilangan acak, x (x < p) (rahasia) 4. M (plainteks) (rahasia) 5. a dan b (cipherteks) (tidak rahasia) Prosedur membuat pasangan kunci pada algoritma ElGamal : 1. Pilih sembarang bilangan prima p. 2. Pilih dua buah bilangan acak, g dan x, dengan syarat g < p dan 1 x p 2. 3. Hitung y = gx mod p. 4. Kunci publik adalah y, kunci rahasia adalah x. Nilai g dan p tidak dirahasiakan dan dapat diumumkan kepada anggota kelompok. Algoritma proses enkripsi dilakukan dengan memilih bilangan acak k yang berada dalam himpunan 1 k p-2. Setiap blok plaintext m dienkripsi dengan persamaan sebagai berikut : a = gk mod p b = yk m mod p Proses dekripsi menggunakan kunci pribadi x dan p untuk mendekripsi a dan b menjadi plaintext m dengan persamaan sebagai berikut : (ax) -1 = a p-1-x mod p m =b*a x mod p Sehingga plaintext dapat ditemukan kembali dari pasangan ciphertext a dan b.
III.2.2 Algoritma RSA Algoritma RSA ditemukan oleh tiga peneliti dari MIT (Massachussets Institute of Technology), yaitu Ron Rivest, Adi Shamir, dan Len Adleman, pada tahun 1976. Keamanan algoritma RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktor-faktor prima. Langkah-langkah dalam pembangkitan kunci: 1. Pilih dua bilangan prima, p dan q (rahasia) 2. Hitung n = pq 3. H itung φ (n) = (p 1)(q 1) 4. Pilih sebuah bilangan bulat e untuk kunci publik, sebut, e relatif prima terhadap φ (n) 5. Hitung kunci dekripsi, d, dengan persamaan ed φ 1 (mod φ (n)) atau d φ e-1 mod (φ (n) ) Hasil dari algoritma di atas: 1. Kunci publik adalah pasangan (e, n) 2. Kunci privat adalah pasangan (d, n) Nilai dari n bersifat publik, dan diperlukan pada perhitungan enkripsi/dekripsi. Fungsi enkripsi dan dekripsinya dijabarkan dalam fungsi berikut : C = M e mod n ( fungsi enkripsi ) M = C d mod n (fungsi dekripsi) Keterangan : C = Cipherteks d = Kunci privat
M = Message / Plainteks n = Modulo pembagi e = Kunci publik Kedua pihak harus mengetahui nilai e dan nilai n ini, dan salah satu pihak harus memilki d untuk melakukan dekripsi terhadap hasil enkripsi dengan menggunakan public key e. Syarat nilai e dan dadalah gcd(d,e)=1. Contoh tahapan perhitungan pembangkit kunci pada RSA : 1. Pilih 2 bilangan prima, misalnya p = 17 dan q = 11. 2. Hitung n = p*q = 17 11 = 187. 3. Hitung Φ(n) = (p 1)(q 1) = 16 10 = 160. 4. Pilih nilai e sedemikian sehingga relatif prima terhadap Φ(n) = 160 dan kurang dari Φ(n); contoh pilih nilai e = 7. 5. Hitung d sedemikian sehingga de 1 (mod 160) dan d< 160.Nilai yang didapatkan d= 23,karena 23 7 = 161 = (1 160) + 1; d dapat dihitung dengan Extended Euclidean Algorithm. Nilai edisebut Public Key dan ddisebut sebagai dan Private Key. Sehingga Pasangan yang didapatkan adalah : Kunci Publik =(e, n) = {7,187} Kunci Privat = (d, n) = {23, 187} Selanjutnya kunci diatas dapat digunakan untuk melakukan enkripsi. Contoh, lakukan enkripsi angka 88 maka M = 88. Untuk proses enkripsi, kita akan menghitung dengan rumus : C = M e mod n = 88 7 mod 187
= 11 Maka didapatkan C atau hasil enkripsi =11. Selanjutnya, nilai C inilah yang akan dikirimkan kepada penerima untuk didekripsi dengan kunci privat miliknya. M = C d mod n =11 23 mod 187 = 88 III.3. Perancangan Adapun perancangan sistem dari aplikasi keamanan data teks dengan menggunakan algoritma Elgamal dan RSA ini yang digambarkan pada perancangan UML diantaranya sebagai berikut : III.3.1 Use Case Diagram Kegiatan interaksi antara aktor terhadap sistem ditunjukan pada use case diagram, Aktor yang terlibat dalam kegiatan tersebut adalah user. Use case diagram perangkat lunak yang dibangun terlihat pada gambar berikut:
System Masukkan Plainteks Masukkan Kunci Masukkan Kunci Masukkan Plainteks Proses Enkripsi Proses Dekripsi User Enkripsi Dekripsi User Hasil Enkripsi Teks Asli Gambar III.1 Use Case Diagram Aplikasi Keamanan Data Teks Dengan Menggunakan Algoritma Elgamal Pada usecase diagram diatas menggambarkan proses enkripsi dan dekripsi aplikasi keamanan data teks dengan menggunakan metode Elgamal dimana user menjalankan program Masuk ke Menu Elgamal. Pada menu elgamal diwajibkan user untuk memasukkan kunci yang berupa angka, kemudian memasukkan plainteks dan menekan tombol enkripsi sehingga menampilkan hasil dari enkripsi. Sedangkan pada proses dekripsi menu elgamal dengan memasukkan kunci verifikasi terlebih dahulu kemudian memasukkan plainteks dengan melanjutkan proses dari enkripsi atau memasukkan plainteks melalui tombol Buka File dan mengupload file teks yang telah disimpan pada proses enkripsi.
System Masukkan Plainteks Masukkan Cipherteks Dekripsi Proses Enkripsi Proses Dekripsi User Enkripsi User Hasil Enkripsi Teks Asli Gambar III.2 Use Case Diagram Aplikasi Keamanan Data Teks Dengan Menggunakan Algoritma RSA Pada proses enkripsi dan dekripsi algoritma RSA yaitu dengan memasukkan plainteks terlebih dahulu, kemudian menekan tombol enkripsi maka hasil cipherteks/hasil enkripsi dapat disimpan dengan menekan tombol simpan. Sedangkan untuk proses dekripsinya dengan melanjutkan langsung dari enkripsi dengan menekan tombol dekripsi atau dengan mengupload file teks hasil penyimpanan proses enkripsi kemudian melakukan dekripsi dengan menekan tombol dekripsi. Hasil dekripsi atau teks asli akan didapat dan disimpan dalam format notepad. III.3.2 Activity Diagram
Menu Elgamal Menu Enkripsi Menu Dekripsi Masukkan Plainteks Masukkan Kunci Masukkan Kunci Enkripsi Dekripsi Cipherteks Teks Asli Ya Tidak Gambar III.3 Activity Diagram Aplikasi Keamanan Data Teks Dengan Menggunakan Algoritma Elgamal Pada gambar activity diagram diatas menjelaskan proses enkripsi dan dekripsi algoritma elgamal dengan langkah awal masukkan plainteks dan kunci terlebih dahulu kemudian dapat melakukan proses enkripsi dan dekripsi sehingga menghasilkan teks asli.
Menu RSA Menu Enkripsi Menu Dekripsi Masukkan Cipherteks Enkripsi Dekripsi Plainteks Teks Asli Ya Tidak Gambar III.4 Activity Diagram Proses Dekripsi dengan menggunakan metode Elgamal dan RSA Pada gambar activity diagram diatas menjelaskan proses enkripsi dan dekripsi algoritma RSA dengan langkah awal masukkan plainteks terlebih dahulu kemudian dapat melakukan proses enkripsi dan dekripsi sehingga menghasilkan teks asli. III.4. Desain User Interface Dalam hal ini penulis akan membahas perancangan sistem yang akan dibangun secara terperinci, perancangan yang dibuat memuat dari perancangan system dan desain interface III.4.1 Tampilan Form Mulai
Rancangan form ini dibuat sebagai form mulai dimana di form ini adalah memberikan tampilan start up yang berfungsi memberikan pengenalan singkat untuk user. ARIF MUNANDA Pembelajaran Keamanan Data Teks Dengan Menggunakan Algoritma Elgamal dan RSA Gambar III.5 Tampilan Form Mulai Rancangan form ini terdapat Timer dengan ketentuan waktu yang ditentukan dan terdapat animasi gif yang memberikan kesan mewah dalam aplikasi yang dibuat, setelah timer yang ditentukan waktunya akan habis maka form utama akan terbuka. III.4.2 Tampilan Form Home Rancangan form ini dibuat sebagai form home dimana di form ini ada terdapat beberapa button yang disesuaikan dengan link halaman yang yang ada. Pembelajaran Keamanan Data Teks Dengan Menggunakan Algoritma Elgamal & RSA KRIPTOGRAFI ELGAMAL
KRIPTOGRAFI RSA TENTANG BANTUAN Gambar III.6 Tampilan Form Home Adapun terdapat lima button yang akan membuka form lain seperti form algoritma Elgamal, Form algoritma RSA, form Tentang, dan form Bantuan. Pada button keluar terdapat di pojok kanan bawah. III.4.3 Tampilan Form Kriptografi Elgamal Rancangan form ini dibuat untuk melakukan proses enkripsi dan dekripsi teks dengan menggunakan metode Elgamal. Berikut gambar form algoritma Elgamal. Kunci : Hapus Kriptografi Elgamal Enkripsi Plainteks Dekripsi Cipherteks Perhitungan Algoritma Cipherteks Plainteks
Hasil Perhitungan Tanpa File Gambar III.7 Tampilan Form Kriptografi Elgamal Berikut penjelasan form kriptografi elgamal diatas : 1. Textbox kunci berfungsi untuk memasukkan nilai kunci yang berupa angka. 2. Terdapat checkbox untuk menyembunyikan kunci menjadi kode #. 3. Terdapat dua buah groupbox enkripsi dan dekripsi untuk memberikan pengelompokan pada kedua proses. 4. Terdapat tiga textbox sebagai rumus perhitungan, perhitungan algoritma dan hasil perhitungan. 5. Terdapat empat buah textbox yang berupa plainteks dan cipherteks pada proses enkripsi dan dekripsi. Textbox plainteks merupakan teks asli yang diinput maupun hasil akhir dari proses kriptografi, sedangkan textbox cipherteks adalah hasil dari enkripsi teks yang berupa sandi yang telah terkodekan. 6. Terdapat button hapus untuk menghapus semua data yang telah diinput maupun hasil dari output. 7. Terdapat button enkripsi untuk melakukan proses enkripsi. 8. Terdapat button dekripsi untuk melakukan proses dekripsi. 9. Terdapat button simpan untuk menyimpan hasil enkripsi maupun dekripsi. 10. Terdapat checkbox tanpa file yang berfungsi untuk mengupload file teks yang telah disimpan dari proses enkripsi.
III.4.4 Tampilan Form Kriptografi RSA Rancangan form ini dibuat untuk melakukan proses enkripsi dan dekripsi teks dengan menggunakan metode RSA. Berikut gambar form algoritma RSA. Kriptografi RSA Hapus Plainteks Enkripsi Cipherteks Dekripsi Perhitungan Algoritma Cipherteks Plainteks Hasil Perhitungan Enkripsi Simpan Dekripsi Tanpa File Gambar III.8 Tampilan Form Kriptografi RSA Berikut penjelasan form kriptografi RSA diatas : 1. Terdapat dua buah groupbox enkripsi dan dekripsi untuk memberikan pengelompokan pada kedua proses. 2. Terdapat empat buah textbox yang berupa plainteks dan cipherteks pada proses enkripsi dan dekripsi. Textbox plainteks merupakan teks asli yang diinput maupun hasil akhir dari proses kriptografi, sedangkan textbox cipherteks adalah hasil dari enkripsi teks yang berupa sandi yang telah terkodekan.
3. Terdapat button hapus untuk menghapus semua data yang telah diinput maupun hasil dari output. 4. Terdapat button enkripsi untuk melakukan proses enkripsi. 5. Terdapat tiga textbox sebagai rumus perhitungan, perhitungan algoritma, dan hasil perhitungan. 6. Terdapat button dekripsi untuk melakukan proses dekripsi. 7. Terdapat button simpan untuk menyimpan hasil enkripsi maupun dekripsi. 8. Terdapat checkbox tanpa file yang berfungsi untuk mengupload file teks yang telah disimpan dari proses enkripsi. III.4.5 Tampilan Form Tentang Rancangan form ini dibuat untuk memberikan informasi dari pembuat program ini atau dapat dilihat pada gambar III.9 : x PEMBELAJARAN KEAMANAN DATA TEKS DENGAN MENGGUNAKAN ALGORIMA ELGAMAL DAN RSA SKRIPSI Oleh : ARIF MUNANDA 1210000137 LOGO UNIVERSITAS POTENSI UTAMA PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK DAN KOMPUTER UNIVERSITAS POTENSI UTAMA MEDAN 2016
Gambar III.9 Tampilan Form Tentang Pada form tentang memuat informasi pembuat aplikasi enkripsi data teks dengan menggunakan algoritma elgamal dan RSA. Informasi tersebut memuat tentang judul skripsi, nama dan nim pembuat program, logo dan informasi fakultas yang dijalani. Desain dibuat menyerupai cover pada skripsi. III.4.6 Tampilan Form Bantuan Rancangan form ini dibuat untuk membantu pengguna dalam menggunakan program ini atau dapat dilihat pada gambar III.10 : Bantuan Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Gambar III.10 Tampilan Form Bantuan Pada form bantuan memuat tentang penggunaan program yang dibuat, dimana user dipandu dengan cara penggunaan program melalui form bantuan ini.
Informasi panduan ini dibuat menggunakan label dengan isi yang disesuaikan dengan kebutuhan.