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