bab iii metodologi penelitian 3.1 analisis sistem
TRANSCRIPT
20
BAB III
METODOLOGI PENELITIAN
3.1 Analisis Sistem
Pada sub bab ini akan dibahas mengenai analisis sistem yang meliputi analisis
permasalahan sistem, deskripsi perangkat lunak, dan analisa kebutuhan sistem
fungsional maupun non fungsional.
3.1.1 Waterfall
Gambar 3.1 Metode Waterfall
3.1.2 Analisis Permasalahan Sistem
Permasalahan yang ditemukan yaitu banyak aplikasi enkripsi yang masih
menggunakan kriptografi klasik yang mudah ditebak sehingga kurangnya
keamanan data. Hal ini terjadi karena aplikasi yang sudah ada tersebut kebanyakan
masih menggunakan satu algoritma dan tidak melakukan kombinasi maupun
modifikasi dengan algoritma lain. Kelemahan pada algoritma vernam cipher dan
Rivest cipher yaitu terletak pada pemakaian XOR dalam melakukan enkripsi dan
dekripsi antara plaintext dan kunci yang hanya dilakukan satu kali pada masing-
21
masing algoritma. Kelebihan algoritma Rivest cipher yaitu kunci algoritma ini
hanya dapat digunakan sekali dalam melakukan enkripsi dan dekripsi, sulitnya
pihak tidak berwenang dalam mengetahui sebuah nilai dalam tabel yang telah di
generate ketika setiap kali melakukan proses enkripsi dan dekripsi. Maka dari itu,
aplikasi yang akan dibangun ini yaitu aplikasi yang dapat melakukan enkripsi dan
dekripsi menggunakan algoritma kombinasi vernam cipher dengan Rivest cipher 4
(RC4). Algoritma ini menggunakan kode bit dan teknik simetris dalam
mengamankan sebuah file teks, yaitu dimana kunci tersebut harus sama ketika
melakukan proses enkripsi maupun dekripsi file berupa teks.
3.1.3 Deskripsi Perangkat Lunak
Dalam perancangan sistem pembuatan aplikasi tugas akhir ini, secara umum
gambaran sistem adalah aplikasi dapat melakukan proses enkripsi dan dekripsi file
menggunakan algoritma kombinasi vernam cipher dengan rivest's cipher 4 (RC4).
Hal ini untuk mengamankan file dengan cara merubah file asli ke dalam kode yang
akan sulit dibaca oleh manusia yaitu kode berupa bit.
3.1.4 Analisis Kebutuhan Sistem
Untuk mempermudah menganalisis sistem aplikasi yang dibuat dibutuhkan
dua jenis kebutuhan yaitu kebutuhan fungsional dan kebutuhan nonfungsional.
Kebutuhan fungsional adalah kebutuhan yang berisi proses-proses apa saja yang
nantinya dilakukan oleh sistem. Sedangkan kebutuhan nonfungsional adalah
kebutuhan yang menitikberatkan pada properti perilaku yang dimiliki oleh sistem.
1. Kebutuhan Fungsional
a. User mencari file yang akan dienkripsi atau didekripsi.
b. User memilih file yang akan dienkripsi atau didekripsi.
c. User menekan tombol enkripsi atau dekripsi.
d. Sistem mampu melakukan proses enkripsi file teks tanpa merusak data
asli.
e. Sistem mampu melakukan proses dekripsi file teks tanpa merusak data
asli.
22
f. Sistem mampu menampilkan proses perhitungan algoritma yang
digunakan.
2. Kebutuhan Non Fungsional
a. Validasi mencari atau memilih file yang akan dienkripsi atau didekripsi.
b. Proses perhitungan secara bertahap berdasarkan algoritma yang
digunakan.
c. Kecepatan dalam melakukan proses enkripsi atau dekripsi file
menggunakan algoritma vernam cipher dengan Rivest cipher 4 (RC4).
d. Perbandingan isi file asli dengan file yang sudah dilakukan enkripsi atau
dekripsi.
e. Kecocokan kunci dalam melakukan proses enkripsi dan dekripsi.
f. Waktu yang dibutuhkan dalam proses enkripsi dan dekripsi.
3.2 Perancangan Sistem
Setelah tahap analisis sistem dibuat, pada sub bab berikutnya akan dibahas
lebih lanjut mengenai perancangan sistem dalam pembuatan program yang meliputi
arsitektur sistem, use case diagram, activity diagram, sequence diagram, class
diagram, algoritma vernam cipher, Rivest cipher 4 (RC4), desain aplikasi, dan
perancangan pengujian enkripsi maupun dekripsi.
3.2.1 Arsitektur Sistem
Gambar 3.2 Arsitektur Sistem
Dari tahapan sistem pada gambar 3.1 dapat dilihat bahwa user melakukan
proses mencari atau memilih file dari smartphone android kemudian user menekan
23
tombol enkripsi atau dekripsi yang disediakan oleh sistem. Setelah itu, jika user
memilih tombol enkripsi maka sistem akan melakukan proses enkripsi lalu user
dapat melihat hasil enkripsi. Jika user memilih tombol dekripsi maka sistem akan
melakukan proses dekripsi lalu user dapat melihat hasil dekripsi dari file enkripsi.
Algoritma yang digunakan dalam proses enkripsi dan dekripsi yaitu algoritma
kombinasi vernam cipher dengan rivest's cipher 4 (RC4).
3.2.2 Use Case Diagram
Gambar 3.3 Use Case Diagram
Dapat dilihat pada gambar 3.2 secara user melakukan pencarian dan memilih
file kemudian dilanjutkan dengan proses enkripsi atau dekripsi file. Penjelasan
selanjutnya dapat dilihat pada tabel definisi actor dan use case dibawah ini:
1. Definisi Aktor
Tabel 3.1 Definisi Aktor
Aktor Deskripsi
User Aktor user ini memiliki akses untuk melakukan proses
pencarian maupun pemilihan file berupa teks asli atau
teks sandi yang akan dienkripsi atau didekripsi.
24
2. Definisi Use Case
Tabel 3.2 Definisi Use Case
Use Case Deskripsi
Mencari dan memilih
file
Fungsionalitas ini untuk melakukan proses pencarian
dan pemilihan file pada memori smartphone android.
Enkripsi file Fungsionalitas ini untuk melakukan proses perubahan
file teks asli ke bentuk kode berupa bit menggunakan
algoritma kombinasi vernam cipher dengan Rivest
cipher 4 (RC4).
Dekripsi file Fungsionalitas ini untuk melakukan proses perubahan
file kode berupa bit ke bentuk teks asli menggunakan
algoritma kombinasi vernam cipher dengan Rivest
cipher 4 (RC4).
3.2.3 Activity Diagram Sistem
Activity diagram representasi grafis dari seluruh tahapan alur kerja yang
meliputi aktivitas, pilihan tindakan, perulangan dan hasil dari aktivitas tersebut.
Activity diagram pada aplikasi yang akan dibuat yaitu meliputi activity diagram cari
dan pilih file, enkripsi file, dan dekripsi file.
1. Activity Diagram Cari Dan Pilih File
Gambar 3.4 Activity Diagram Cari dan Pilih File
25
2. Activity Diagram Enkripsi File
Gambar 3.5 Activity Diagram Proses Enkripsi File
3. Activity Diagram Dekripsi File
Gambar 3.6 Activity Diagram Proses Dekripsi File
3.2.4 Sequence Diagram Sistem
Sequence diagram ini menunjukkan urutan interaksi objek didalam suatu
aplikasi. Sequence diagram yang dibuat meliputi sequence diagram cari dan pilih
file, enkripsi file, dan dekripsi file.:
26
1. Sequence Diagram Cari Dan Pilih File
Gambar 3.7 Sequence Diagram Cari dan Pilih File
2. Sequence Diagram Enkripsi File
Gambar 3.8 Sequence Diagram Proses Enkripsi File
27
3. Sequence Diagram Dekripsi File
Gambar 3.9 Sequence Diagram Proses Dekripsi File
3.2.5 Class Diagram
Class diagram digunakan untuk menampilkan kelas-kelas dan paket-paket di
dalam sistem dan memberikan gambaran sistem secara statis dan relasi. Class
diagram membantu pengembang mendapatkan struktur sistem untuk memastikan
bahwa sistem adalah desain terbaik.
Pada class diagram level desain ini terdapat 3 buah class yang digunakan,
yaitu:
Gambar 3.10 Class Diagram Enkripsi dan Dekripsi File
28
3.2.6 Perhitungan Manual Kombinasi Vernam Cipher dan Rivest Cipher 4.
1. Vernam Cipher
Pada perhitungan algoritma menggunakan rumus 2.4 pada bab 2 di sub
bab vernam cipher. Rumus enkripsi menggunakan operator XOR yang
diterapkan sebagai beirkut:
πΆπ = ππ β πΎπ β¦ β¦ β¦ β¦ . . β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ (π΅ππ 2 π π’ππ’π 2.4)
Tabel 3.3 Enkripsi Biner Karakter βUβ Dengan Kunci β8β
Teks Ascii Biner
XOR
Kunci Ascii Biner Hasil
U 85 01010101 8 56 00111000
0 0 0
1 0 1
0 1 1
1 1 0
0 1 1
1 0 1
0 0 0
1 0 1
Dapat dilihat pada tabel 3.3 hasil enkripsi bilangan biner yaitu
β01101101β sedangkan untuk ascii nya yaitu β109β dan jika enkripsi bilangan
biner diubah menjadi simbol teks yaitu βmβ.
Tabel 3.4 Enkripsi Biner Karakter βNβ Dengan Kunci 9
Teks Ascii Biner
XOR
Kunci Ascii Biner Hasil
N 78 01001110 9 57 00111001
0 0 0
1 0 1
0 1 1
0 1 1
1 1 0
1 0 1
1 0 1
0 1 1
29
Dapat dilihat pada tabel 3.4 hasil enkripsi bilangan biner yaitu
β01110111β sedangkan untuk ascii nya yaitu β119β dan jika enkripsi bilangan
biner diubah menjadi simbol teks yaitu βwβ.
Tabel 3.5 Enkripsi Biner Karakter βMβ Dengan Kunci 8
Teks Ascii Biner
XOR
Kunci Ascii Biner Hasil
M 77 01001101 8 56 00111000
0 0 0
1 0 1
0 1 1
0 1 1
1 1 0
1 0 1
0 0 0
1 0 1
Dapat dilihat pada tabel 3.5 hasil enkripsi bilangan biner yaitu
β01110101β sedangkan untuk ascii nya yaitu β117β dan jika enkripsi bilangan
biner diubah menjadi simbol teks yaitu βuβ.
Tabel 3.6 Enkripsi Biner Karakter βUβ Dengan Kunci 9
Teks Ascii Biner
XOR
Kunci Ascii Biner Hasil
U 85 01010101 9 57 00111001
0 0 0
1 0 1
0 1 1
1 1 0
0 1 1
1 0 1
0 0 0
1 1 0
30
Dapat dilihat pada tabel 3.6 hasil enkripsi bilangan biner yaitu
β01101100β sedangkan untuk ascii nya yaitu β108β dan jika enkripsi bilangan
biner diubah menjadi simbol teks yaitu βlβ.
Dari proses-proses pada tabel 1 sampai dengan 4 maka didapat hasil
enkripsi pada tabel 3.7 dibawah ini:
Tabel 3.7 Hasil Enkripsi Vernam Cipher
Teks U N M U
Ascii 85 78 77 85
Biner 01010101 01001110 01001101 01010101
Kunci 8 9 8 9
Ascii 56 57 56 57
Biner 00111000 00111001 00111000 00111001
Enkripsi Biner 01101101 01110111 01110101 01101100
Enkripsi Teks M w u l
Dapat dilihat pada tabel 3.7 hasil enkripsi menggunakan algoritma
vernam cipher yaitu βmwulβ. Selanjutnya dapat dilihat dibawah ini langkah
kedua menghitung proses enkripsi menggunakan algoritma Rivest cipher 4
(RC4).
2. Rivest Cipher 4 (RC4)
Langkah KSA (Key-Scheduling Algorithm)
Perhitungan ini bertujuan untuk membentuk tabel S-Box (tabel array
[S]) dan kunci (tabel array [T]) yang akan dipermutasi sebanyak jumlah
panjang tabel array (bit). Pada tahap ini penulis mengambil contoh dengan
jumlah 4 bit yaitu tabel S-Box β0123β, teks βUNMUβ, dan kunci β8989β agar
lebih mudah dalam menerapkan perhitungannya. Rumus untuk mencari
Langkah KSA dapat dilihat pada rumus bab 2 di sub bab Rivest cipher 4 yaitu
sebagai berikut:
π = (π + π [π] + π[π])πππ π. β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ . . (π΅ππ 2 π π’ππ’π 2.6)
π π€ππ π [π] πππ π [π]. β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ . (π΅ππ 2 π π’ππ’π 2.7)
31
β’ Iterasi 1
π = (0 + π [0] + π[0]) πππ· 4
π = (0 + 0 + 8) πππ· 4
π = 0
π π€ππ (π [0], π [0])
Hasil π΄ππππ¦ (π π€ππ) = 0 1 2 3
β’ Iterasi 3
π = (0 + π [2] + π[2]) πππ· 4
π = (2 + 1 + 8) πππ· 4
π = 3
π π€ππ (π [2], π [3])
Hasil π΄ππππ¦ (π π€ππ) = 0 2 3 1
β’ Iterasi 2
π = (0 + π [1] + π[1]) πππ· 4
π = (0 + 1 + 9) πππ· 4
π = 2
π π€ππ (π [1], π [2])
Hasil π΄ππππ¦ (π π€ππ) = 0 2 1 3
β’ Iterasi 4
π = (3 + π [3] + π[3]) πππ· 4
π = (3 + 1 + 9) πππ· 4
π = 1
π π€ππ (π [3], π [1])
Hasil π΄ππππ¦ (π π€ππ) = 0 1 3 2
Dari proses enkripsi diatas didapat S-Box terakhir yaitu β0,1,3,2β
kemudian proses enkripsi dilanjutkan menggunakan rumus sebagai berikut.
π = (π + 1)πππ π. β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ . . (π΅ππ 2 π π’ππ’π 2.8)
π = (π + π [π])πππ π. β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ . . (π΅ππ 2 π π’ππ’π 2.9)
π π€ππ π [π] πππ π [π]. β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ . . (π΅ππ 2 π π’ππ’π 2.10)
π‘ = (π [π] + π [π])πππ π. β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ . . (π΅ππ 2 π π’ππ’π 2.11)
Penerapan rumus diatas dapat dilihat pada tahapan β tahapan dibawah ini:
Langkah PRGA (Pseudo Random Generation Algorithm)
β’ Iterasi 1
π = 1 πππ· 4
π = 1
π = (0 + π [1]) πππ· 4
π = (0 + 1) πππ· 4
π = 1
π π€ππ (π [1], π [1])
Hasil π΄ππππ¦ (π π€ππ) = 0 1 3 2
K = S[(s[1] + s[1])mod 4]
K = S[(1 + 1)mod 4]
K = S[2]
K = 3 (00000011)
32
β’ Iterasi 2
π = 2 πππ· 4
π = 2
π = (1 + π [2]) πππ· 4
π = (1 + 3) πππ· 4
π = 0
π π€ππ (π [2], π [0])
Hasil π΄ππππ¦ (π π€ππ) = 3 1 0 2
K = S[(s[2] + s[0])mod 4]
K = S[(0 + 3)mod 4]
K = S[3]
K = 2 (00000010)
β’ Iterasi 3
π = 3 πππ· 4
π = 3
π = (0 + π [3]) πππ· 4
π = 4 πππ· 4
i = 0
π = (0 + 2) πππ· 4
π = 2
π π€ππ (π [3], π [2])
Hasil π΄ππππ¦ (π π€ππ) = 3 1 2 0
K = S[(s[3] + s[2])mod 4]
K = S[(0 + 2)mod 4]
K = S[2]
K = 2 (00000010)
β’ Iterasi 4
π = (2 + π [0]) πππ· 4
π = (2 + 3) πππ· 4
π = 1
π π€ππ (π [0], π [1])
Hasil π΄ππππ¦ (π π€ππ) = 1 3 2 0
K = S[(s[0] + s[1])mod 4]
K = S[(1 + 3)mod 4]
K = S[0] K = 1 (00000001)
33
Tabel 3.8 Hasil Enkripsi Rivest Cipher 4 (RC4)
Teks U N M U
Biner 01010101 01001110 01001101 01010101
Kunci 00000011 00000010 00000010 00000001
Enkripsi Biner 01010110 01001100 01001111 01010100
Enkripsi Teks V L O T
Dapat dilihat pada tabel 3.8 hasil enkripsi menggunakan algoritma
Rivest cipher 4 (RC4) yaitu βVLOTβ. Hasil enkripsi ini didapat dari operator
logika βxorβ caranya seperti tabel 3.3 sampai dengan tabel 3.7 pada algoritma
vernam cipher.
3. Kombinasi Vernam Cipher dan Rivest Cipher 4 (RC4)
Pada langkah kombinasi ini akan menggunakan rumus operator xor
dari hasil enkripsi masing-masing algoritma. Masing-masing bilangan biner
akan di XOR satu persatu sehingga didapatkan hasil enkripsi terakhir. Dapat
dilihat berikut ini:
Rumus yang akan digunakan yaitu seperti dibawah ini:
πΆπ = ππ β πΎπ β¦ β¦ β¦ β¦ . . β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ (π΅ππ 2 π π’ππ’π 2.4)
Tabel 3.9 Hasil Enkripsi Dua Kombinasi Algoritma Vernam Cipher
Dengan Rivest Cipher 4 (RC4)
Hasil Enkripsi Vernam Cipher (Biner)
01101101 01110111 01110101 01101100
Hasil Enkripsi Rivest Cipher 4 (Biner)
01010110 01001100 01001111 01010100
Hasil kombinasi dua Algoritma (Biner dan Teks Simbol)
00111011 00111011 00111010 00111000
; ; : 8
34
Pada langkah ketiga ini proses enkripsi telah selesai dilakukan. Dapat
dilihat pada tabel 3.9 hasil enkripsi menggunakan operator logika βxorβ
dengan mengkombinasikan dua algoritma enkripsi yaitu β;;:8β.
β’ Langkah Dekripsi Dari Enkripsi
Proses pertama mengembalikan ke enkripsi masing - masing algoritma
vernam cipher dan Rivest cipher 4 (RC4) menggunakan operator logika
βxorβ. Dapat dilihat pada tabel 3.10 dibawah ini:
ππ = πΆπ β πΎπ β¦ β¦ β¦ β¦ . . β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ β¦ . . β¦ (π΅ππ 2 ππ’ππ’π 2.5)
Tabel 3.10 Dekripsi Dua Kombinasi Algoritma
Indek Hasil Enkripsi Dua Kombinasi
0 00111011 00111011 00111010 00111000
Hasil Enkripsi Vernam Cipher
1 01101101 01110111 01110101 01101100
Hasil Dekripsi Rivest Cipher (RC4)
2 01010110 01001100 01001111 01010100
Hasil Enkripsi Rivest Cipher (RC4)
3 01010110 01001100 01001111 01010100
Hasil Dekripsi Vernam Cipher
4 01101101 01110111 01110101 01101100
Kunci Dekripsi
5 00000011 00000010 00000010 00000001
Hasil Dekripsi
6 01010101 01001110 01001101 01010101
7 01010101 01001110 01001101 01010101
U N M U
Dapat dilihat pada tabel 3.10 diatas, langkah awal yaitu melakukan
βxorβ indek 0 dengan indek 1 kemudian menghasilkan dekripsi Rivest Cipher
4 (RC4) pada indek 2. Langkah selanjutnya yaitu melakukan βxorβ indek 0
dengan indek 3 kemudian menghasilkan dekripsi Vernam Cipher pada indek
35
4. Setelah semua proses βxorβ dilakukan dan hasil dekripsi masing - masing
algoritma ditemukan maka langkah selanjutnya yaitu melakukan kondisi jika
hasil dari proses βxorβ indek 0, 1, dan kunci indek 5 sama dengan hasil βxorβ
indek 0 dan indek 3, dan kunci indek 5 maka teks akan dikembalikan ke teks
yang asli tetapi jika proses tidak sama maka tidak dapat melakukan dekripsi.
3.2.7 Desain Aplikasi
Desain aplikasi ini dirancang dengan tujuan mempermudah user
menggunakan, mengoperasikan, dan membuat interaksi user sesederhana dan
seefisien mungkin dalam hal mencapai tujuan user, menyeimbangkan antara fungsi
teknis dan elemen visual untuk menciptakan sebuah sistem yang tidak hanya bisa
beroperasi tetapi juga dapat digunakan dan disesuaikan dengan kebutuhan user.
Desain interface secara umum aplikasi yang akan dibuat, dapat dilihat pada
gambar 3.11 dibawah ini:
Gambar 3.11 Desain Interface Aplikasi
3.2.8 Tabel Pengujian Enkripsi Dan Dekripsi
Tabel ini menjelaskan pengujian yang akan dilakukan pada bab selanjutnya,
poin yang akan diuji yaitu dapat dilihat pada tabel dibawah ini:
36
Tabel 3.11 Tabel Pengujian Enkripsi
Teks Asli Kunci Hasil Uji
Aplikasi
Hasil Uji
Teori
Status
Pengujian
Tabel 3.12 Tabel Pengujian Dekripsi
3.2.9 Tabel Pengujian Black Box Testing
Tabel 3.13 Tabel Pengujian Black Box
No Identifikasi Keterangan
1
2
3
Teks asli Kunci Hasil Uji
Aplikasi
Hasil Uji
Teori
Status
Pengujian