BAB III ANALISA DAN PERANCANGAN
III.1. Analisa Masalah Perancangan aplikasi chatting menggunakan algoritma vigenere cipher sebagai pengaman pesan pada jaringan LAN (Local Area Network), penulis bertujuan membuat aplikasi komunikasi yang dapat digunakan bersama-sama (group) dengan menyertakan kriptografi dalam distribusi pesan. Pesan sebelum dikirim di enkripsi menggunakan kunci (key), menghasilkan bentuk pesan berupa huruf
acak.
Pengguna
(user)
yang
tidak
berkepentingan
tidak
dapat
menterjemahkan isi dari pesan tersebut. Proses dekripsi untuk mengembalikan pesan ke bentuk semula dilakukan pihak penerima pesan menggunakan kunci (key) yang di pakai untuk mengenkripsi pesan tersebut. Jadi, keamanan pesan aplikasi chatting tergantung dari keamanan kunci (key) yang digunakan untuk mengenkripsi pesan. Selama kunci (key) tidak diketahui oleh pihak yang tidak berkepentingan, maka pesan rahasia tetap aman. Pengirim harus mencari cara yang aman untuk memberitahukan kunci tersebut kepada penerima pesan. Proses enkripsi dan pengiriman pesan pada aplikasi chatting, di lakukan dengan cara sebagai berikut: 1. Langkah pertama adalah mengetikkan pesan teks (plainteks) yang akan dikirim. 2. Selanjutnya menginputkan kunci (key) yang digunakan untuk mengenkripsi pesan teks (plaintext) tersebut.
32
3. Setelah hasil enkripsi diperoleh, selanjutnya pesan yang berupa ciphertext dikirim. 4. Pengirim memberikan kunci (key) melalui pengiriman pesan private kepada penerima, sehingga user lain yang berada dalam satu chat room tidak memperoleh kunci tersebut. 5. Setelah pesan (ciphertext) diterima, kemudian pesan (ciphertext) tersebut di dekripsi dengan kunci (key) yang diterima melalui pesan private tersebut. 6. Hasil proses dekripsi berupa plainteks, penerima dapat membaca pesan yang dikirim tersebut dan dapat membalas pesan dengan cara yang sama. Sebagai contoh, dilakukan enkripsi terhadap sebuah pesan teks “Belajar Kriptografi” menggunakan perangkat lunak yang dirancang. Langkah pertama yang dilakukan, membaca kata kunci (keyword) vigenere dari pengguna. Kata kunci dibutuhkan untuk proses menghasilkan ciphertext, disebut proses enkripsi. Pada contoh ini kata kunci (keyword)
yang digunakan adalah “vigenere”.
Berdasarkan kata kunci ini, perangkat lunak akan memproses setiap karakter dari pesan teks
yang diketik
sehingga menghasilkan
ciphertext
“Wmrewei
Omqvxbkieaq”. Perhitungan matematis untuk menghasilkan ciphertext tersebut secara manual adalah : Plaintext
B
E
L
A
J
A R K
R
I
P
T
O G R A
F
I
Key
V
i
g
e
n
e
r
E
v
i
g
e
n
e
r
e
v
i
E W E
I
O M Q V X B K
I
E
A Q
Ciphertext W M R
33
Pada contoh, setiap huruf dienkripsi dengan karakter kunci dengan rumus : (1≤ i≤ t)
Ci = ( Pi + Ki ) mod 26 dengan Ci
= bentuk pesan tersandi ( ciphertext ).
Pi
= bentuk pesan teks jelas ( plaintext ).
Ki
= kunci ( key ).
Mod 26 = sisa bagi ( modulo ) dari 26 huruf alphabet. Untuk enkripsi dan dekripsi menggunakan algoritma vigenere cipher, perhitungan dilakukan terhadap nilai numeric dari 26 huruf alphabet. Nilai numeric dari abjad atau huruf alphabet tersebut yang dimulai dari angka 0 adalah sebagai berikut : A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
0
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17
S
T
U
V
W
X
Y
Z
18 19 20 21 22 23 24 25
Maka, untuk perhitungan matematis enkripsi adalah sebagai berikut : ( B + v ) mod 26 = ( 1 + 21 ) mod 26 = 22 = W ( E + i ) mod 26 = ( 4 + 8
) mod 26 = 12 = M
( L + g ) mod 26 = ( 11 + 6
) mod 26 = 17 = R
( A + e ) mod 26 = ( 0 + 4
) mod 26 = 4
( J
= E
+ n ) mod 26 = ( 9 + 13 ) mod 26 = 22 = W
( A + e ) mod 26 = ( 0 + 4
) mod 26 = 4
= E
( R + r ) mod 26 = ( 17 + 17 ) mod 26 = 8
= I
P
Q
R
34
( K + e ) mod 26 = ( 10 + 4
) mod 26 = 14 = O
( R + v ) mod 26 = ( 17 + 21 ) mod 26 = 12 = M ( I
+ i ) mod 26 = ( 8 + 8
) mod 26 = 16 = Q
( P + g ) mod 26 = ( 15 + 6
) mod 26 = 21 = V
( T + e ) mod 26 = ( 19 + 4
) mod 26 = 23 = X
( O + n ) mod 26 = ( 14 + 13 ) mod 26 = 1 ( G + e ) mod 26 = ( 6 + 4
= B
) mod 26 = 10 = K
( R + r ) mod 26 = ( 17 + 17 ) mod 26 = 8
= I
( A + e ) mod 26 = ( 0 + 4
) mod 26 = 4
= E
( F + v ) mod 26 = ( 5 + 21 ) mod 26 = 0
= A
( I
+ i ) mod 26 = ( 8 + 8
) mod 26 = 16 = Q
Untuk dekripsi ciphertext dilakukan dengan cara
yang berkebalikan.
Perhitungan matematis untuk menghasilkan plaintext kembali, secara manual adalah sebagai berikut: Ciphertext W M R
E W E
I
O M Q V X B
K
I
E
A Q
Key
v
i
g
e
n
e
r
e
v
i
g
e
n
e
r
e
v
i
Plaintext
B
E
L
A
J
A R K
R
I
P
T
O G R A
F
I
Secara matematis dekripsi dinyatakan dengan rumus persamaan : Pi = ( Ci - Kr ) mod 26 dengan Pi
(1≤ r≤ t)
= bentuk pesan teks jelas ( plaintext ).
Ci
= bentuk pesan tersandi ( ciphertext ).
Ki
= kunci ( key ).
35
Mod 26 = sisa bagi ( modulo ) dari 26 huruf alphabet. Maka, untuk perhitungan matematis adalah sebagai berikut : ( W-
v ) mod 26 = ( 22 - 21 ) mod 26 = 1
= B
( M - i ) mod 26 = ( 12 - 8
) mod 26 = 4
= E
( R - g ) mod 26 = ( 17 - 6
) mod 26 = 11 = L
( E - e ) mod 26 = ( 4 - 4
) mod 26 = 0 = A
( W - n ) mod 26 = ( 22 - 13 ) mod 26 = 9 = J ( E - e ) mod 26 = ( 4 - 4 ( I
) mod 26 = 0 = A
- r ) mod 26 = ( 8 - 17 ) mod 26 = 17 = R
( O - e ) mod 26 = ( 14 - 4
) mod 26 = 10 = K
( M - v ) mod 26 = ( 12 - 21 ) mod 26 = 17 = R ( Q - i ) mod 26 = ( 16 - 8
) mod 26 = 8
= I
( V - g ) mod 26 = ( 21 - 6
) mod 26 = 15 = P
( X - e ) mod 26 = ( 23 - 4 ) mod 26 = 19 = T ( B - n ) mod 26 = ( 1 - 13 ) mod 26 = 14 = O ( K - e ) mod 26 = ( 10 - 4 ( I
) mod 26 = 6
= G
- r ) mod 26 = ( 8 - 17 ) mod 26 = 17 = R
( E - e ) mod 26 = ( 4 - 4
) mod 26 = 0
= A
( A - v ) mod 26 = ( 0 - 21 ) mod 26 = 5
= F
( Q - i ) mod 26 = ( 16 - 8
= I
) mod 26 = 8
Dengan demikian dapat kita peroleh kembali plaintext yang telah di enkripsi menggunakan algoritma kriptografi vigenere cipher. Algoritma kriptografi
vigenere cipher
inilah
yang akan penulis gunakan
dalam
36
mengamankan pesan, agar pesan dikirim tidak dapat dibaca oleh sembarang pihak. Hanya pihak yang mengetahui kunci dalam mengenkripsi dan mendekripsi pesan yang dapat membaca pesan yang dikirim. Dalam penerapannya, proses distribusi pesan dilakukan pada komputer yang terhubung jaringan LAN (Local Area Network). Hardware dan software yang digunakan dalam perancangan program aplikasi chatting menggunakan algoritma vigenere cipher
tersebut,
antara lain sebagai berikut : a. Spesifikasi hardware yang digunakan adalah sebagai berikut: 1. Prosesor Pentium IV. 2. RAM 2 Giga. 3. Hardisk 80 Giga. 4. Kabel UTP (Unshielded Twisted Pair). 5. Switch untuk koneksi jaringan LAN. b. Spesifikasi software yang akan di gunakan adalah sebagai berikut: 1. Sistem operasi Windows Xp. 2. Perangkat lunak editor NetBeans untuk bahasa pemrograman Java SE.
III.2. Strategi Pemecahan Masalah Adapun langkah-langkah yang penulis lakukan dalam menyelesaikan masalah keamanan dalam pengiriman pesan chatting ini adalah : 1. Mengumpulkan teori dan contoh-contoh kasus. Dalam tahapan ini, penulis mengumpulkan teori - teori yang berhubungan dengan masalah keamanan pesan menggunakan metode vigenere cipher. Teori-
37
teori ini penulis kumpulkan dari beberapa sumber seperti buku-buku di perpustakaan, artikel – artikel di internet dan lainnya. 2. Merancang program. Setelah teori-teori dan contoh kasus penunjang penulis dapatkan, langkah selanjutnya penulis melakukan perancangan terhadap program. Program aplikasi yang penulis rancang untuk dapat melakukan pengiriman pesan dengan metode algoritma vigenere cipher melalui jaringan LAN (Local Area Network ) yang berbasis java. Langkah pertama dalam perancangan program ini adalah merancang proses kerja sistem. Proses kerja sistem penulis rancang menggunakan Unified Modelling language (UML) dan bagan alir sistem (flowchart).
III.3. Perancangan Pada perancangan aplikasi chatting menggunakan algoritma vigenere cipher pada jaringan LAN (Local Area Network) berbasis java, sistem yang dirancang menggunakan Unified Modelling Language (UML). UML merupakan sebuah bahasa yg telah menjadi standar dalam industri untuk visualisasi, merancang dan mendokumentasikan sistem piranti lunak. Dengan menggunakan UML kita dapat membuat model untuk semua jenis aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman apapun. Tetapi karena UML juga menggunakan class dan operation dalam konsep dasarnya, maka ia lebih cocok untuk penulisan piranti lunak dalam bahasa berorientasi objek seperti C++, Java,
38
C# atau VB.NET. Unified Modelling Language (UML) dari aplikasi chatting yang di rancang adalah sebagai berikut : 1. Use case diagram pengiriman kunci pada pesan private.
Buka aplikasi chatting
memilih menu connect
Input nickname dan IPserver
Memilih user tujuan pada list user Pengirim
Input pesan private
Kirim pesan berupa kunci enkripsi ke user tujuan
Gambar III.1 Use case diagram pengiriman kunci pada pesan private. (Sumber : P. Widodo dan Herlawati, Menggunakan UML, 2011)
Keterangan : a. Setelah aplikasi dibuka, pengirim melakukan koneksi dengan server agar terhubung ke dalam chat room.
39
b. Setelah terhubung, pengirim memilih nama user yang dituju pada list user yang tergabung dalam chat room. c. Pengirim menginput pesan private berupa kunci untuk enkripsi dan dekripsi pesan ciphertext. d. Selanjutnya, pesan private dikirim kepada user tujuan.
2. Use case diagram penerimaan kunci pada pesan private.
Gambar III.2 Use case diagram penerimaan kunci pada pesan private. (Sumber : P. Widodo dan Herlawati, Menggunakan UML, 2011)
Keterangan : a. Setelah aplikasi dibuka, penerima melakukan koneksi dengan server agar terhubung ke dalam chat room.
40
b. Setelah terhubung, penerima akan menerima pesan private berupa kunci yang nantinya digunakan sebagai kunci enkripsi dan dekripsi pesan dalam komunikasi chat room. c. Dengan cara seperti ini hanya kedua pihak yang mengetahui kunci pesan dan dapat membaca pesan yang dienkripsi.
3. Use case diagram pengiriman pesan enkripsi pada pesan publik.
Gambar III.3 Use case diagram pengiriman pesan enkripsi pada pesan publik. (Sumber : P. Widodo dan Herlawati, Menggunakan UML, 2011)
Keterangan : a. Pengirim input pesan berupa plaintext.
41
b. Pengirim input kunci (key) untuk enkripsi pesan (plaintext). c. Memilih mode enkripsi. d. Selanjutnya, menekan tombol proses untuk menghasilkan pesan berupa ciphertext. Pesan ciphertext dikirim dengan menekan tombol kirim.
4. Use case diagaram penerimaan pesan enkripsi pada pesan public.
Gambar III.4 Use case diagaram penerimaan pesan enkripsi pada pesan public. (Sumber : P. Widodo dan Herlawati, Menggunakan UML, 2011)
42
Keterangan : a. Pesan public diterima oleh user pada layar history pesan b. Pesan ciphertext dipindahkan kedalam kotak message. c. User menginput kunci yang diterimanya. d. Memilih mode dekripsi untuk mendekripsi pesan ciphertext tersebut. e. User menekan tombol proses untuk mengembalikan pesan ciphertext ke bentuk plaintext agar dapat diterjemahkan. f. User dapat membaca pesan yang diterima.
5. Sequence diagram aplikasi chatting Pembangunan koneksi antara user dengan server dilakukan dengan cara user mendaftarkan channel
yang digunakan dalam melakukan komunikasi
menggunakan sebuah port, server akan melakukan hal yang sama namun server akan melakukan proses listening. Jika ada user yang melukukan koneksi, server akan menyetujui request yang masuk ke server, sehingga koneksi antar user dan server terjadi. Setiap user harus mengetahui IP Address dari server untuk dapat melakukan koneksi. Port atau terminal yang akan digunakan untuk melakukan koneksi haruslah merupakan Port yang kosong. Sequence diagram aplikasi chatting ditunjukkan pada gambar III.5.
43
Gambar III.5 Sequence diagram koneksi antara user dengan server. (Sumber : P. Widodo dan Herlawati, Menggunakan UML, 2011)
44
6. Activity diagram pengiriman pesan private aplikasi chatting. User
Membuka aplikasi chatting
System
Menampilkan halaman utama
Membuka koneksi dengan server
Menampilkan halaman koneksi
Entry nickname dan IPserver
Menunggu koneksi dengan server
ya
Server aktif ?
Tergabung kedalam chat room
tidak
Koneksi gagal
Memilih user tujuan pada list user
Menampilkan form private pesan
Mengirim pesan private
Gambar III.6 Activity diagram pengiriman pesan private aplikasi chatting. (Sumber : P. Widodo dan Herlawati, Menggunakan UML, 2011)
45
7. Activity diagram pengiriman pesan public aplikasi chatting. User
Membuka aplikasi chatting
System
Menampilkan halaman utama
Membuka koneksi dengan server
Menampilkan halaman koneksi
Entry Username dan Ip Address
Menunggu koneksi dengan server
ya
Server aktif ?
Menerima respon koneksi dari server
tidak
Koneksi gagal
Entry pesan dan key enkripsi
Mengirim pesan chatting
Kirim pesan ke dalam chat room
Gambar III.7 Activity diagram pengiriman pesan public aplikasi chatting (Sumber : P. Widodo dan Herlawati, Menggunakan UML, 2011)
46
8. Activity diagram penerimaan pesan chatting. User
Membuka aplikasi chatting
System
Menampilkan halaman utama
Membuka koneksi dengan server
Menampilkan halaman koneksi
Entry nickname dan IPserver
Menunggu koneksi dengan server
ya
Server aktif ?
Tergabung ke dalam chatroom
Menampilkan pesan public dan private
Tutup aplikasi chatting
Gambar III.8 Activity diagram penerimaan pesan chatting. (Sumber : P. Widodo dan Herlawati, Menggunakan UML, 2011)
tidak
Koneksi gagal
47
III.3.1. Rancangan Layar Aplikasi Chatting Rancangan layar dari aplikasi chatting menggunakan algoritma vigenere cipher sebagai pengaman pesan pada jaringan LAN (Local Area Network) berbasis java adalah sebagai berikut : 1. Rancangan layar aplikasi chatting. Layar aplikasi chatting berfungsi untuk menampilkan pesan yang dikirim dan diterima oleh user yang tergabung dalam chat room. Pesan akan dikirim kepada user yang tergabung ke dalam chat room. Pengguna juga dapat melihat list user yang sedang aktif. Bentuk rancangan layar aplikasi chatting ditunjukkan pada gambar III.9.
48
15
16
17
Command
Help
18
Jam : Menit : Detik
Tanggal
14
19 20
13 12 11 21
10
1
9
8
Message
7
Key
6
Mode
5
Powered by.@ Heri Kurniawan 2012
Kirim
2
3 Proses
Gambar III.9 Rancangan layar aplikasi chatting.
4
49
Tabel III.1 Tabel keterangan rancangan layar aplikasi chatting. No
Komponen
Properties Variable Name
1
2
3
4
JFrame
Vmessenger
defaultCloseOperation EXIT_ON_CLOSE Variable Name
buttonkirim
Text
Kirim
Variable Name
JPasswordkey
Enable
True
VariableName
buttonproses
Text
Proses
JButton
JPasswordField
JButton
5
JLabel
VariableName
lblsign
6
JLabel
VariableName
lblmode
7
JLabel
VariableName
lblkey
8
JLabel
VariableName
lblMessage
9
JTextArea
VariableName
txtinput
VariableName
cmbmode
10
JComboBox model
Enkripsi, Dekripsi
VariableName
txtchat
editable
False
VariableName
buttonhelp
icon
about.gif
VariableName
buttondiskoneksi
icon
logoff.gif
VariableName
buttonkoneksi
icon
koneksi.png
VariableName
lblwaktu
11
12
13
14 15
JTextArea
JButton
JButton
JButton JLabel
50
16
JMenu
VariableName
Menucommand
17
JMenu
VariableName
MenuHelp
18
JLabel
VariableName
lblsearch
19
JLabel
VariableName
lbltgl
20
JTextField
VariableName
txtsearch
21
JList
VariableName
nickList
2. Rancangan layar jendela koneksi Pemanggilan class JoptionPane dari package java swing untuk menampilkan jendela koneksi yang berisi form untuk nama user dan IP Address server. Form ini berfungsi untuk melakukan permintaan (request) koneksi kepada server. IP Address yang dimasukkan harus sesuai dengan IPAddress dimana server berjalan. Bentuk dari layar jendela koneksi adalah sebagai berikut :
X
Input Masukkan IP Server :
OK
Cancel
Gambar III.10 Rancangan layar koneksi Server
51
X
Input
Masukkan Nickname anda :
OK
Cancel
Gambar III.11 Rancangan layar nama user
3. Rancangan layar jendela pesan private Rancangan layar jendela pesan private dibuat dengan menggunakan JOptionPane pada java. Layar pesan private berfungsi sebagai tempat mengetikkan pesan private. Dengan layar ini, user mengirim pesan pribadinya kepada user yang dipilihnya. Pesannya akan diterima oleh user yang dipilih dari list user. Berikut rancangan layar form pesan private. X
Input Masukkan pesan anda :
OK
Cancel
Gambar III.12 Rancangan layar jendela pesan private
52
III.3.2. Flowchart Aplikasi Chatting Flowchart dari aplikasi chatting menggunakan algoritma vigenere cipher sebagai pengaman pesan pada jaringan LAN (Local Area network) berbasis java menjelaskan bagaimana sistem pada aplikasi chatting tersebut berjalan. Bentuk flowchart diagram dari aplikasi chatting yang dirancang ditunjukkan pada gambar III.13, gambar III.14, dan gambar III.15. 1. Flowchart pengiriman pesan public.
Gambar III.13 Flowchart pengiriman pesan public.
Berdasarkan gambar flowchart diagram tersebut, cara kerja dari aplikasi chatting adalah sebagai berikut : Pertama, user harus menginputkan nick name dan IPAddress kemudian user akan meminta koneksi kepada server. Jika server tidak
53
aktif maka koneksi gagal, jika server aktif atau ditemukan maka user masuk ke dalam chat room dan dapat mengirim pesan enkripsi. Pesan dan nama pengirim terkirim kedalam chat room dan semua pengguna yang ada di list user dapat melihat pesan masuk, namun untuk membaca pesan yang di enkripsi user harus menggunakan kunci algoritma vigenere cipher, kecuali pesan yang dikirim bukan merupakan pesan enkripsi atau berupa pesan biasa. 2. Flowchart pengiriman pesan private.
Start
Menampilkan Interface Aplikasi chatting
Input nickname dan IPserver
Kirim pesan private dan nama user
User memulai chatting
Input pesan private
Finish
Memilih user pada list user
Ya
Tidak
Meminta Koneksi Ke Server
Server Aktif
Gambar III.14 Flowchart pengiriman pesan private. Berdasarkan gambar flowchart diagram tersebut proses pengiriman pesan private adalah sebagai berikut : Setelah user terkoneksi ke dalam chat room, user memilih salah satu dari daftar user yang tergabung di dalam chat room. User mengirim pesan pribadinya kepada user yang dipilih. User lain yang berada di
54
dalam satu group chat room tidak akan menerima pesan private tersebut. Fungsi utama pesan private adalah sebagai jalur untuk mendistribusikan kunci dekripsi pesan yang di enkripsi menggunakan algoritma vigenere cipher.
3. Flowchart aplikasi server.
Gambar III.15 Flowchart aplikasi server Berdasarkan gambar flowchart tersebut cara kerja dari server tersebut adalah : Pada saat server diaktifkan maka server akan melakukan listening untuk menampung permintaan koneksi dari user. Server akan menampilkan nama user yang terkoneksi. Segala aktivitas pengiriman pesan akan melewati server untuk diteruskan ke user tujuan. Server akan menampilan aktivitas seperti user masuk (log in), user keluar ( log out ), dan distribusi pesan.