Perancangan Sistem ANALISIS DAN PERANCANGAN SISTEM

3.3. Perancangan Sistem

3.3.1. Pembuatan Algoritma Program Pembuatan algoritma program adalah proses penerjemahan langkah-langkah algoritma ElGamal ke dalam sebuah bahasa pemrograman. Tahap-tahap yang dilalui dalam proses pembuatan algoritma program yaitu: 1. Pembuatan alur sistemsecara umum 2. Pembuatan alur sistem proses pembangkitan kunci, proses enkripsi, dan dekripsi dengan menggunakan algoritma ElGamal ke dalam bahasa pemrograman Java. 3.3.2. Alur Proses Sistem Secara Umum Alur proses sistem secara umum dibagi menjadi tiga yaitu proses pembangkitan kunci yang akan menghasilkan kunci publik dan kunci rahasia, proses enkripsi yang akan menghasilkan cipherteks, dan proses dekripsi yang akan mengembalikan cipherteks menjadi plainteks. Proses secara keseluruhan dapat dilihat pada flowchart gambaran umum sistem pada gambar 3.6. Gambar 3.6 Flowchart Gambaran Umum Sistem 3.3.3. Alur Proses Pembangkitan Kunci Pada agoritma ElGamal proses pembangkitan kunci dapat dijelaskan sebagai berikut : 4. Pilih sembarang bilangan prima p acak yang besar. Misal p = 421 5. Uji keprimaan dengan Fermat’s Little Theorema. Bila p = 421 Maka 1 ≤a 421, didapat a = {1, …, 420} a p-1 mod p Stop Bangkitkan kunci Kunci Publik Kunci Rahasia Input Nomor Tujuan Input Kunci Publik Penerima Input SMS Enkripsi SMS Cipherteks KirimSMS Mulai Menu Pembangkit kunci Buat SMS Kotak Masuk Informasi Pilih SMS Masukkan Kunci Rahasia Dekripsi SMS Dekripsi Pesan Plainteks Menampilkan Halaman Informasi Tidak Tidak Tidak Tidak Tidak Ya Ya Ya Ya Ya Ya Tidak 20 421-1 mod 421 = 20 420 mod 421 = 1 300 4-1 mod 421 = 30 420 mod 421 = 1 400 421-1 mod 421 = 400 420 mod 421 = 1 6. Pilih dua buah bilangan acakg dan x, dengan syarat g p dan 1 ≤ x ≤ p – 2 Misalnya g = 2 dan x = 162 7. Kemudian hitungy dengan persamaany = g x mod p y = 2 162 mod 421 y = 394 Hasil dari algoritma ini adalah kunci publik: tripel y, g, p yaitu 421, 2, 394yang dapat diumumkan ke publik dan kunci privat: pasangan p,x yaitu 421, 162 yang harus dirahasiakan. Alur proses pembangkitan kunci dapat dijelaskan pada flowchart seperti Gambar 3.7. Gambar 3.7 Flowchart Pembangkitan Kunci 3.3.4. Alur Proses Enkripsi Langkah-langkah dalam mengenkripsi pesan sebagai berikut : 6. Ketahui kunci publik y, g, p dari pengirim. 7. Ubah nilai blok pesan ke dalam nilai ASCII. 8. Pilih bilangan acak k, yang dalam hal ini 1 ≤ k ≤ p – 2. 9. Setiap blok m dienkripsi dengan persamaan a = g k mod p dan b = y k m mod p Pasangan a dan b adalah cipherteks untuk blok pesan m. Jadi, ukuran cipherteks dua kali ukuran plainteksnya. 10. Kirim a dan b ke pemilik kunci publik. Ani memperoleh kunci publik p, g, y =421, 2, 394 dari Budi untuk mengirimkan SMS berisi pesan rahasia “ILKOM13” kepada Budi. Selanjutnya Ani melakukan proses enkripsi yang dapat diliahat pada tabel 3.1 sebagai berikut : Tabel 3.1 Proses Enkripsi i mi Ki a = g k mod p a = 2 ki mod 421 b = y k m mod p b = 394 ki m mod 421 1 73 351 42 134 2 76 260 109 227 3 75 199 325 282 4 79 41 244 166 5 77 301 73 107 6 49 175 262 372 7 51 267 59 60 Berdasarkan tabel 3.1 diperoleh cipherteks a, b,I = 1,2,…,7 sebagai berikut : 42 134 109 227 325 282 244 166 73 107 262 372 59 60. Selanjutnya Ani mengirimkan SMS yang berupa cipherteks ini kepada Budi. Alur proses enkripsi menggunakan algoritma ElGamal pada aplikasi yang dirancang dapat dijelaskan pada flowchart seperti Gambar 3.8. Gambar 3.8 Flowchart Proses Enkripsi 3.3.5. Alur Proses Dekripsi Langkah-langkah dalam mendekripsi pesan: 4. Gunakan kunci privat x untuk menghitung a x – 1 = a p – 1 – x mod p 5. Hitung plainteks mdengan persamaanm = ba x – 1 mod p 6. Konversikan bilangan m ke dalam karakter sesuai dengan kode ASCII. Budi telah menerimaSMS yang berisi cipherteks dari Ani. Untuk mengetahui pesan asli dari SMS tersebut Ani melakukan proses dekripsi dengan kunci privat p, x = 421, 162 yang dapat dilihat pada tabel 3.2 berikut ini. Tabel 3.2 Proses Dekripsi i a b a x – 1 = a p – 1 – x mod p m = ba x – 1 mod p m 1 42 134 343 73 I 2 109 227 247 76 L 3 325 282 372 75 K 4 244 166 353 79 O 5 73 107 44 77 M 6 262 372 420 49 1 7 59 60 64 51 3 Mulai Input plainteks m Kunci Publik g,p,y Mengkonversi pesan m ke karakter Memilih k ∈ {0,1,…,p-2} Cipherteks Stop Berdasarkan perhitungan pada Tabel 3.2, Budi mengetahui isi SMS yang dikirim oleh Ani, yaitu “ILKOM13”. Alur proses dekripsi menggunakan algoritma ElGamal pada aplikasi yang dirancang dapat dijelaskan pada flowchart seperti Gambar 3.9. Gambar 3.9 Flowchart Proses Dekripsi 3.4. Perancangan Antarmuka Interface Perancangan Antarmuka Interface merupakan sarana interaksi antara pengguna dan sistem. Hal ini berfungsi untuk memudahkan pengguna dalam melakukan proses sistem. Mulai Terima Cipherteks Input Kunci Rahasia p,x Dekripsi pesan a x – 1 = a p – 1 – x mod p m = ba x – 1 mod p Mengkonversi pesan m ke table karakter Pesan Asli Stop 3.4.1. Rancangan Halaman Utama Halaman utama adalah halaman yang akan ditampilkan ketika pertama kali aplikasi dijalankan. Halaman ini memiliki empat tombol, yaitu Key Generator, New Message, Messaging dan Information. Rancangan tampilan halaman tersebut dapat dilihat pada Gambar 3.10. Gambar 3.10 Rancangan Antarmuka Halaman Utama Keterangan: 1. Label yang menampilkan judul aplikasi. 2. Tombol untuk membangkitkan kunci. 3. Tombol untuk membuat pesan baru. 4. Tombol untuk menampilkan pesan masuk dan pesan terkirim. 5. Tombol untuk menampilkan halaman informasi aplikasi 6. Tombol untuk keluar aplikasi. 3.4.2. Rancangan Halaman Pembangkit Kunci Rancangan halaman Pembangkit kunciberfngsi untuk menampilkan kunci rahasia dan kunci publik kriptografi ElGamal. Tampilan halaman menu ini dapat dilihat pada Gambar 3.11. ElGamal Crypto SMS 1 Petunjuk 5 Pesan Masuk 4 Buat Pesan 3 Pembangkit Kunci 2 Keluar 6 ElGamal Crypto SMS 1 Gambar 3.11 Rancangan Antarmuka HalamanPembangkit Kunci Keterangan: 1. Label yang menampilkan judul aplikasi. 2. Buttonyang berfungsi untuk membangkitkan kunci. 3. Text View yang berfungsi untuk menampilkan kunci rahasia p,x. 4. Text View yang berfungsi untuk menampilkan kunci publik p,g,y. 5. Button yang berfungsi untuk mengirim kunci publik. 3.4.3. Rancangan Halaman Kirim Kunci Rancangan halaman kirim knci publikberfngsi untuk menampilkan kunci rahasia dan kunci publik kriptografi ElGamal. Tampilan halaman menu ini dapat dilihat pada Gambar 3.12. Button 2 Text View 3 Text View 4 Button 5 ElGamal Crypto SMS 1 Gambar 3.12 Rancangan Antarmuka Halaman Kirim Kunci Publik Keterangan: 1. Label yang menampilkan judul aplikasi. 2. Text Box yang berfungsi untuk memasukkan nomor tujuan penerima pesan. 3. Tombol untuk mengambil nomor tujuan dari daftar kotak yang ada pada prangkat telepon. 4. Text Box yang berisi kunci publik yang sudah dibangkitkan. 5. Tombol yang berfungsi untuk mengirim pesan. 3.4.4. Rancangan Halaman Buat Pesan Baru Rancangan halaman untuk buat pesan baru berguna untuk membuat pesan baru sekaligus enkripsi pesan dengan terlebih dahulu memasukkan nomor telepon penerima dan kunci publik penerima yamg telah diketahui. Rancangan tampilanya dapat dilihat pada gambar 3.13 Text Box 2 3 Text Box 4 send 5 ElGamal Crypto SMS 1 Gambar 3.13 Rancangan Antarmuka Halaman Buat Pesan Baru Keterangan: 1. Label yang menampilkan judul aplikasi. 2. Text Box yang berfungsi untuk memasukkan nomor tujuan penerima pesan. 3. Tombol untuk mengambil nomor tujuan dari daftar kotak yang ada pada prangkat telepon. 4. Text Box yang berfungsi untuk menginput pesan. 5. Text Box yang berfungsi untuk memasukkan nilai p sebagai kunci publik. 6. Text Box yang berfungsi untuk memasukkan nilai g sebagai kunci publik. 7. Text Box yang berfungsi untuk memasukkan nilai y sebagai kunci publik. 8. Tombol untuk melakukan enkripsi pesan. 9. Tombol untuk mengirim pesan. 3.4.5. Rancangan Halaman Pesan Masuk Rancangan Halaman pesan masukberfungsi untuk menampilkan pesan masuk dan pesan terkirim. Rancangan tampilanya dapat dilihat pada gambar 3.14. Text Box 2 p : 5 g : 6 y : 7 3 Text Box 4 encrypt 8 send 9 ElGamal Crypto SMS 1 Pengirim 2 Isi Pesan 3 Pengirim Isi Pesan Pengirim Isi Pesan Pengirim Isi Pesan Gambar 3.14 Rancangan Antarmuka Halaman Pesan Masuk Keterangan: 1. Label yang menampilkan judul aplikasi. 2. Caption untuk menampikan pengirim pesan. 3. Caption untuk menampikan highlight isi pesan. 3.4.6. Rancangan Halaman Dekripsi Pesan Rancangan Halaman Messaging berfungsi untuk menampilkan pesan masuk sekaligus dekripsi pesan dengan terlebih dahulu memasukkan kunci rahasia. Rancangan halamam pesan masuk dapat dilihat pada gambar 3.15. ElGamal Crypto SMS 1 Caption 2 Text View 3 TextBox 4 TextBox 5 Decryp 6 Gambar 3.15 Rancangan Antarmuka Halaman Pesan Masuk Keterangan: 1. Label yang menampilkan judul aplikasi. 2. Caption yang berfungsi menampilkam nama pengirim pesan. 3. Text View yang berfungsi menampilkan isi pesan yang diterima. 4. Text Box yang berfunsi untuk mengimput nilai p sebagai kunci rahasia. 5. Text Box yang berfunsi untuk mengimput nilai x sebagai kunci rahasia. 6. Tombol yang digunakan untuk melakukan dekripsi pesan. 3.4.7. Rancangan HalamanPetunjuk Rancangan Halaman petunjukberfungsi untuk menampilkan keterangan dan penggunaan apliksi. Rancangan halamam ini dapat dilihat pada gambar 3.16. ElGamal Crypto SMS 1 Gambar 3.16 Rancangan Antarmuka Halaman Petunjuk Keterangan: 1. Label yang menampilkan judul aplikasi. 2. Text View yang berfungsi menampilkan keterangan dan petunjuk penggunaa aplikasi. Keterangan Aplikasi 3

BAB 4 IMPLEMENTASI DAN PENGUJIAN