2.8 Tinjauan Penelitian yang Relevan
Berikut adalah penelitian yang membahas seputar algoritma kriptografi ElGamal: a.
Andrian. Y. 2013 membuat penelitian yang berfokus pada penggunaan elemen primitif dan elemen non-primitif pada kunci publik ElGamal. Hasil penelitian
menunjukkan bahwa Elemen primitif maupun elemen non-primitif tidak mempengaruhi proses enkripsi, proses dekripsi, dan besarnya file hasil enkripsi.
b. Asmar. N. D. 2008 membentuk sebuah sistem yang mengamankan data dan
informasi dengan menggunakan Algoritma ElGamal. Hasil penelitian mengungkapkan bahwa Algoritma kriptografi asimetris seperti ElGamal sangat
baik digunakan untuk mengatasi masalah distribusi kunci. c.
Wijayanti. R. Y. 2013 membuat penelitian yang berfokus pada analisa metode pembangkitan bilangan prima yang lebih baik dalam membuat kunci pada
algoritma ElGamal. Hasil penelitian mengungkapkan bahwa waktu enkripsi dengan menggunakan metode Lucas-Lehmer lebih cepat daripada metode Fermat.
d. Putra, E. 2013 mengkaji bagaimana menyederhanakan perhitungan pada
kriptografi kurva eliptik dan berusaha mempersingkat waktu proses tanpa mengurangi tingkat keamanan dengan menggunakan metode enkripsi Algoritma
ElGamal, implementasi juga melibatkan pembangkitan kunci dengan metode pembangkitan bilangan prima Rabin-Miller. Hasil pengujian menunjukkan bahwa
dengan membatasi nilai a dan b menjadi 1 pada fungsi kurva eliptik serta membatasi bilangan prima sebanyak dua digit, berhasil mempersingkat waktu
proses, enkripsi juga berlangsung dengan baik dan cepat.
Universitas Sumatera Utara
BAB 3 ANALISIS DAN PERANCANGAN
3.1. Analisis Sistem
Analisis sistem bertujuan untuk memecah sistem ke dalam komponen-komponen subsistem yang lebih kecil untuk mengetahui hubungan setiap komponen tersebut
dalam mencapai tujuan. Whitten, 2007 3.1.1. Analisis Masalah
Masalah yang diangkat dalam penulisan skripsi ini adalah pembuatan sistem kriptografi untuk merahasiakan pesan menggunakan algoritma ElGamal, dan
pemecahan kunci privat menggunakan algoritma Silver-Pohlig-Hellman. Secara umum masalah dalam penelitian dapat dilihat pada Gambar 3.1 yang dirancang dalam
bentuk Diagram Ishikawa.
Gambar 3.1 Diagram Ishikawa Masalah Penelitian
Skenario dari penggunaan sistem dimulai dari pemilik kunci membangkitkan kunci, lalu mendistribusikan kunci publik dan merahasiakan kunci privat. Kemudian
pengirim pesan mengirimkan pesan yang telah dienkripsi menggunakan kunci publik yang diberikan oleh pemilik kunci. Kunci publik yang diberikan oleh pemilik kunci
Universitas Sumatera Utara
tidak hanya diketahui oleh pengirim pesan, namun juga pihak lain yang mencoba untuk mengetahui pesan yang akan dikirimkan dengan cara mencoba membongkar
kunci privat dengan modal kunci publik yang tersedia menggunakan algoritma Silver- Pohlig-Hellman. Oleh karena itu sistem ini akan melakukan proses hacking pada
kunci publik yang diketahui untuk menemukan kunci privat yang dirahasiakan. Setelah kunci privat berhasil diketahui, pesan terenkripsi akan didekripsi kembali ke
bentuk awal. 3.1.2. Analisis Requirement
Analisis requirement meliputi analisis functional requirement dan non fuctional requirement. Functional requirement mendeskripsikan fungsi-fungsi yang harus
dilakukan oleh sebuah sistem untuk mencapai tujuan. Sedangkan non functional requirement mendeskripsikan fitur lain seperti karakteristik, batasan sistem, performa,
dokumentasi dan yang lainnya agar sistem berjalan sukses. a. Analisis functional requirement
Untuk dapat melakukan pencarian kunci privat menggunakan algoritma Silver-Pohlig- Hellman pada algoritma kriptografi ElGamal, functional requirement yang harus
dipenuhi adalah perangkat lunak dapat: 1.
Membangkitkan kunci mulai dari 4-digit sampai 16-digit bilangan prima. 2.
Membaca masukan berupa file text sebagai kunci, plaintext dan ciphertext. 3.
Melakukan enkripsi plaintext dengan kunci publik yang diberikan. 4.
Memecahkan kunci privat berdasarkan kunci publik yang diberikan. 5.
Mendekripsi ciphertext menjadi plaintext berdasarkan kunci privat yang diberikan.
6. Menyimpan Kunci, Plaintext dan ciphertext ke dalam file teks.
7. Menghitung berapa lama waktu yang dibutuhkan untuk pembangkitan kunci
dan pemecahan kunci privat. b. Analisis non functional requirement
Nonfunctional requirement yang harus dipenuhi oleh sistem adalah sebagai berikut: 1.
Waktu pemrosesan kunci, enkripsi, dan dekripsi pesan dapat dilakukan dengan cepat.
Universitas Sumatera Utara
2. Antarmuka sistem dapat dimengerti dan digunakan dengan mudah oleh
pengguna. 3.
Sistem yang dibangun memiliki panduan penggunaan. 3.1.3 Analisis Pemodelan Perangkat Lunak
Pemodelan sistem bertujuan untuk menampilkan kebutuhan dari sebuah perangkat lunak. Salah satu jenis pemodelan kebutuhan sistem adalah model berbasis skenario,
model ini menggambarkan spesifikasi kebutuhan perangkat lunak dari berbagai sudut pandang aktor di dalam perangkat lunak Pressman, 2010. Perangkat lunak yang akan
dibangun di dalam penelitian ini dimodelkan dengan diagram Use Case. Use case mendeskripsikan suatu skenario penggunaan yang bersifat spesifik
dalam bahasa yang jelas dari sudut pandang aktor dengan sistem Pressman, 2010. Aktor yang berinteraksi dengan sistem ini yaitu: pemilik kunci, pengenkripsi
pesan, dan kriptanalis. Use case diagram yang menggambarkan interaksi aktor dengan sistem disajikan pada Gambar 3.2.
Gambar 3.2 Use case diagram.
Universitas Sumatera Utara
Spesifikasi untuk use case Bangkitkan Kunci disajikan pada Tabel 3.1
Tabel 3.1 Spesifikasi Use Case Bangkitkan kunci.
Use Case Bangkitkan Kunci
Aktor Utama Pemilik Kunci
Sasaran Konteks Membangkitkan kunci publik dan kunci
privat yang nantinya akan digunakan untuk mengenkripsi
dan mendekripsi
pesan menggunakan
algoritma kriptografi
elgamal. Prakondisi
. Pemicu
Pengguna meng- klik tombol „Generate‟
Skenario penggunaan perangkat lunak 1.
Pengguna memilih panjang kunci yang ingin dibangkitkan antara 4 sampai 16
digit. 2.
Pengguna menekan tombol „Generate‟ 3.
Perangkat lunak membangkitkan kunci publik
dan kunci
privat, lalu
menampilkannya pada kolom „Kunci Publik‟ dan „Kunci Privat‟.
4. Jika pengguna mau meng-eksport kunci
yang telah
dibangkitkan, maka
pengguna akan
menekan tombol
„Eksport‟ pada bagian kunci publik dan kunci privat.
Prioritas Penting.
Diagram aktivitas Diagram aktivitas dari use case Bangkitkan Kunci disajikan pada Gambar 3.3.
Universitas Sumatera Utara
Gambar 3.3. Diagram Aktivitas Bangkitkan Kunci
Universitas Sumatera Utara
Spesifikasi untuk use case Enkripsi Pesan disajikan pada Tabel 3.2.
Tabel 3.2 Spesifikasi Use Case Enkripsi Pesan
Use Case Enkripsi Pesan
Aktor Utama Pengirim Pesan
Sasaran Konteks Mengenkripsi pesan asli plaintext ke dalam
ciphertext menggunakan kunci publik yang diperoleh
dari pemilik
kunci dan
menampilkannya di kolom „Ciphertext‟.
Prakondisi Pengguna memiliki kunci publik dan pesan
yang akan dienkripsi. Pemicu
Pengguna meng- klik tombol „Enkripsi‟.
Skenario penggunaan perangkat lunak 1.
Pengguna menginput kunci publik dengan
cara meng-import
atau mengetikkan secara manual ke kolom
„Kunci Publik‟. 2.
Pengguna menginput pesan ke kolom „Pesan‟ dengan cara meng-import atau
mengetikkan secara manual. 3.
Pengguna meng-klik tombol „Enkripsi‟ 4.
Perangkat lunak mengenkripsi pesan ke dalam ciphertext dan menampilkannya
pada kolom „Ciphertext‟ 5.
Jika pengguna mau meng-eksport ciphertext yang telah didapat, maka
pengguna akan
menekan tombol
„Eksport‟. Prioritas
Menengah, akan diimplementasikan setelah fungsi
„Bangkitkan Kunci‟
diimplementasikan. Diagram aktivitas
Diagram aktivitas dari use case Enkripsi Pesan disajikan pada Gambar 3.4.
Universitas Sumatera Utara
Gambar 3.4 Diagram Aktivitas Enkripsi Pesan
Universitas Sumatera Utara
Spesifikasi untuk use case Dekripsi Pesan disajikan pada Tabel 3.3.
Tabel 3.3 Spesifikasi Use Case Dekripsi Pesan
Use Case Dekripsi Pesan
Aktor Utama Pemilik Kunci
Sasaran Konteks Mendekripsi ciphertext kembali menjadi
pesan asli plaintext menggunakan kunci privat yang dimiliki oleh pemilik kunci dan
menampilkannya di kolom „Plaintext‟. Prakondisi
Pengguna memiliki kunci privat untuk ciphertext yang akan didekripsi.
Pemicu Pengguna meng-
klik tombol „Dekripsi‟. Skenario penggunaan perangkat lunak
1. Pengguna menginput kunci privat
dengan cara
meng-import atau
mengetikkan secara manual ke kolom „Kunci Privat‟.
2. Pengguna menginput ciphertext ke
kolom „Ciphertext dengan cara meng- import atau mengetikkan secara manual.
3. Pengguna meng-klik tombol „Dekripsi‟.
4. Perangkat lunak mendekripsi ciphertext
kembali menjadi
plaintext dan
menampilkannya pada kolom „Plaintext‟ 5.
Jika pengirim pesan mau meng-eksport plaintext yang telah didapat, maka
pengirim pesan akan menekan tombol „Eksport‟.
Prioritas Menengah, akan diimplementasikan setelah
fungsi „Bangkitkan Kunci‟, dan „Enkripsi‟ diimplementasikan.
Diagram aktivitas Diagram aktivitas dari use case Dekripsi Pesan disajikan pada Gambar 3.5.
Universitas Sumatera Utara
Gambar 3.5. Diagram Aktivitas Dekripsi Ciphertext
Universitas Sumatera Utara
Spesifikasi untuk use case Pecahkan Kunci Privat disajikan pada Tabel 3.4.
Tabel 3.4 Spesifikasi Use Case Pecahkan Kunci Privat
Use Case Pecahkan Kunci Privat
Aktor Utama Kriptanalis
Sasaran Konteks Menemukan kunci privat dari kunci publik
yang telah diketahui. Prakondisi
Pengguna memiliki kunci publik. Pemicu
Pengguna meng- klik tombol „Hack‟.
Skenario penggunaan perangkat lunak 1.
Pengguna menginput kunci publik dengan
cara meng-import
atau mengetikkan secara manual ke kolom
„Kunci Publik‟. 2.
Pengguna mencoba menemukan kunci privat dengan meng-
klik tombol „Hack‟. 3.
Perangkat lunak mencoba menemukan kunci privat berdasarkan kunci publik
yang diberikan. 4.
Setelah kunci privat ditemukan, perangkat lunak akan menampilkannya
pada kolom „Kunci Privat‟ dan menampilkan waktu yang dibutuhkan
untuk pemecahan kunci pada label „Waktu pemecahan kunci‟.
5. Jika pengguna mau meng-eksport kunci
privat yang telah ditemukan, maka pengguna
akan menekan
tombol „Eksport‟.
Prioritas Menengah, akan diimplementasikan setelah
fungsi „Bangkitkan
Kunci‟ diimplementasikan.
Diagram aktivitas Diagram aktivitas dari use case Pecahkan Kunci Privat disajikan pada Gambar 3.6.
Universitas Sumatera Utara
Gambar 3.6. Diagram Aktivitas Pecahkan Kunci Privat
Universitas Sumatera Utara
3.2 Perancangan Perangkat Lunak