Implementasi Algoritma Vigenere Cipher dan Metode Blowfish untuk Keamanan File Database Berbasis WEB Chapter III V
30
BAB III
ANALISIS DAN PERANCANGAN
Analisis sistem merupakan suatu tahapan dalam proses Software Development Life
Cycle (SDLC) yang berisi tentang uraian mengenai proses kerja sistem dari algoritma
Vigenere Cipher dan metode Blowfish yaitu terdiri dari flowchart, pseudocode,
Unified Modeling Language (UML) serta perancangan dari aplikasi.
3.1
Analisis Sistem
Analisis sistem terdiri dari tahap-tahap berbeda yang mendeskripsikan pengembangan
sistem. Dalam analisis sistem terdiri atas tiga tahap analisis yaitu analisis masalah,
analisis kebutuhan dan analisis proses. Analisis masalah bertujuan untuk memahami
kelayakan masalah. Analisis kebutuhan dilakukan untuk menjelaskan fungsi-fungsi
yang ditawarkan dan mampu dikerjakan sistem. Sedangkan analisis proses untuk
memodelkan tingkah laku sistem.
3.1.1 Analisis Masalah
Mengidentifikasi masalah merupakan langkah pertama yang dilakukan dalam tahap
analisis sistem. Masalah dapat didefinisikan sebagai pertanyaan yang diinginkan untuk
dipecahkan. Oleh karena itu langkah pertama yang harus dilakukan oleh ananlisis
sistem adalah mengidentifikasi terlebih dahulu masalah yang ada pada sistem.
Aspek keamanan dalam pengiriman suatu database yang merupakan sumber dari
informasi dan bersifat rahasia, rentan untuk disadap oleh pihak yang tidak berwenang
yang ingin mengetahui maupun mengubah isi dari database tersebut.
Masalah yang mungkin terjadi pada penelitian ini akan dianalisis dengan
metode diagram Ishikawa. Diagram Ishikawa yang sering disebut dengan Fishbone
atau cause and effect matrix adalah alat visual untuk mengidentifikasi, mengeksplorasi
dan secara grafik menggambarkan detail dari semua penyebab dan akibat yang
berhubungan dengan timbulnya masalah.
Grafik permasalahan pada penelitian ini ditunjukkan melalui diagram Ishikawa
seperti pada gambar 3.1 berikut.
Universitas Sumatera Utara
31
Gambar 3.1 Diagram Ishikawa
Pada gambar 3.1 ditunjukkan bahwa akar masalah muncul dari pihak ketiga
yang ingin mencuri maupun mengubah selama proses transmisi dan lemahnya kunci
terhadap ciphertext dan teknik kriptografi dalam pengamanan file yang hanya
menggunakan satu kunci dan satu metode, mempermudah pihak ketiga untuk
mengetahui plaintext yang telah dienkripsi sebelumnya.
Sehingga solusi yang ditemukan adalah dengan melakukan proses enkripsi data
menggunakan algoritma Vigenere Cipher dan Blowfish untuk lebih mengamankan
ciphertext yang dihasilkan dengan dua jenis kunci yang kompleks.
3.1.2 Analisis Kebutuhan
Analisis kebutuhan dibagi menjadi dua bagian penting, yaitu kebutuhan fungsional
dan kebutuhan non-fungsional.
3.1.2.1
Kebutuhan Fungsional
Kebutuhan fungsional merupakan proses dan hasil apa yang akan dilakukan sistem
yang dibuat. Pada penelitian ini kebutuhan yang harus dipenuhi oleh sistem secara
fungsional adalah:
1.
Fungsi Enkripsi
Sistem dapat melakukan proses enkripsi file database dengan menggunakan metode
vigenere cipher dan blowfish dengan kunci enkripsi masing-masing yang berbeda.
Universitas Sumatera Utara
32
2.
Fungsi Dekripsi
Sistem dapat melakukan dekripsi terhadap file database yang telah dienkripsi
sebelumnya dengan kunci enkripsi dan metode yang sama pada proses enkripsi.
3.1.2.2
Kebutuhan non-Fungsional
Kebutuhan non-fungsional merupakan kebutuhan yang mendeskripsikan perilaku dan
kerakteristik dari sistem. Aspek yang menjadi syarat kebutuhn non-fungsional pada
sistem yang dibuat yaitu :
1.
Sistem yang dibuat dapat melakukan pengamanan terhadap file database dengan
teknik kriptografi.
2.
Sistem dapat dimengerti dan digunakan dengan mudah oleh pengguna (User
Friendly).
3.
Sistem yang dibuat memuat informasi mengenai tingkah laku sistem untuk
meminimalisasi kesalahan yang terjadi oleh pengguna.
4.
Sistem tidak membutuhkan biaya yang terlalu besar dan kemungkinan tambahan
perangkat lainya.
3.1.3 Analisisi Proses
Pada penelitian ini sistem yang dibuat menggunakan algoritma Vigenere Cipher untuk
mengenkripsi file database dan kemudian enkripsi selajutnya dengan algoritma
Blowfish, sebalikanya untuk proses dekripsi kembali menggunakan algoritma yang
sama.
3.2.
Pemodelan Sistem
Pemodelan sistem merupakan langkah untuk mendeskripsikan gambaran dari setiap
komponen dan hubungan atau interaksi antar masing-masing komponen pada sistem
yang akan dibuat.
Pada penelitian ini pemodelan yang dilakukan untuk memdeskripsikan desain dan
rancangan sistem yang dibuat yaitu dengan menggunakan UML (Unified Modeling
Language). UML adalah suatu bahasa yang dapat digunakan menggambarkan
deskripsi dari setiap komponen dalam membuat sistem serta interaksi antara
komponen tersebut. Model UML yang digunakan dalam penelitian ini adalah use case
diagram, activity diagram dan sequence diagram.
Universitas Sumatera Utara
33
3.2.1
Use-case Diagram
Use-case Diagram merupakan suatu pemodelan yang menggambarkan kinerja
sebuah sistem yang dibuat, dan mendeskripsikan hubungan antara actor dan
komponen sistem yang akan dibuat. Actor adalah pengguna yang akan
mengoperasikan sistem tersebut. Pada Use-case Diagram akan dijelaskan apa saja
yang akan dilakukan oleh actor terhadap masing-masing komponen sistem yang
dibuat.
Gambar 3.2 Use-case Diagram
Pada gambar 3.2 Use-casae Diagram mendeskripsikan bahwa ada dua actor
yang berhubungan dengan sistem yaitu pengirim dan penerima. Pengirim akan
melakukan enkripsi file database yang akan ditransmisikan pada sistem dengan
memasukkan kunci untuk masing-masing algoritma. Setelah proses enkripsi selesai,
Universitas Sumatera Utara
34
pengirim akan mendapatkan file yang telah dienkripsi. Kemudian penerima
melakukan dekripsi kembali terhadap file enkripsi dengan memasukkan kunci yang
telah dikirim sebelumnya oleh pengirim untuk melakukan dekripsi mendapatkan file
asli databse yang diterima.
Setiap aksi yang dilakukan oleh pengirim terhadap sistem akan dijelaskan pada tabel
3.1 berikut.
Tabel 3.1 Narative Use-case Enkripsi file Database
Use-case Name
Enkripsi file Databasse
Design scope
Sistem (black box)
Goal level
User-goal
Pengirim dapat melakukan enkripsi file database dengan
kunci yang dirahasiakan untuk keamanan file databse
selama transmisi.
Pengirim memasukkan file yang akan dienkripsi dengan
Precondition
kunci enkripsi.
Sistem akan menampilkan pesan error jika proses enkripsi
Minimal Guarantee
gagal.
Sistem akan menampilakan peasan bahwa proses enkripsi
Success Guarantee
suskes.
1. Pengirim akan memasukkan file yang akan dienkripsi.
2. Pengirim memasukkan kunci untuk proses enkripsi.
Main Success Scenario 3. Sistem melakukan proses enkripsi.
4. Sistem menampilkan pesan bahwa proses enkripsi
sukses.
1. File yang dimasukkan tidak kompatibel terhadap
sistem.
a. Sistem akan menampilakan pesan untuk melakukan
cek ulang kembali terhadap tipe file yang
dimasukkan
Extensions
Stakeholder and
Interest
2. Kunci enkripsi yang dimasukkan tidak lengkap.
a. Sistem akan menampilakan pesan untuk melakukan
cek ulang kembali kunci yang dimasukkan
Universitas Sumatera Utara
35
Dan pada tabel 3.2 berikut dijelaskan aksi yang dilakaukan oleh penerima
terhadap sistem.
Tabel 3.2 Narative Use-case Dekripsi file Database
Use-case Name
Dekripsi file Databasse
Design scope
Sistem (black box)
Goal level
User-goal
Penerima dapat malakukan dekripsi terhadapa file yang
telah dienkrikpsi sebelumnya.
Penarima memasukkan file enkripsi dan kunci untuk proses
Precondition
dekripsi.
Sistem akan menampilkan pesan error jika proses dekripsi
Minimal Guarantee
gagal.
Sistem akan menampilakan peasan bahwa proses
Success Guarantee
dekripsisuskes.
1. Pengirim akan memasukkan file yang akan didekripsi.
2. Pengirim memasukkan kunci untuk proses dekripsi.
Main Success Scenario 3. Sistem melakukan proses dekripsi.
4. Sistem menampilakan pesan bahwa proses dekripsi
sukses.
1. File yang dimasukkan tidak kompatibel terhadap
sistem.
b. Sistem akan menampilakan pesan untuk melakukan
cek ulang kembali terhadap tipe file yang
dimasukkan
Extensions
Stakeholder and
Interest
1. Kunci dekripsi yang dimasukkan tidak lengkap.
b. Sistem akan menampilakan pesan untuk melakukan
cek ulang kembali kunci yang dimasukkan
3.2.2
Activity Diagram
Activity Diagram merupakan teknik pemodelan yang mendeskripsikan tentang
bagaimana alur kerja sistem yang akan dibuat mulai dari awal hingga akhir. Activity
Diagram bertujuan untuk menggambarkan hubungan antar masing-masing komponen
sistem yang ada dalam use-case diagram yang digunakan.
Pada penelitian ini model activity diagram pada sistem yang dibuat ditunjukkan pada
gambar 3.3 berikut.
Universitas Sumatera Utara
36
Gambar 3.3 Activity Diagram Sistem
3.2.3
Sequence Diagram
Sequence diagram merupakan diagram yang mendeskripsikan interaksi antar objek
didalam sistem yang disusun berurutan. Interaksi antar objek tersebut termasuk
pengguna dan sebagainya berupa pesan/message. Diagram ini khususnya berasosiasi
dengan use case diagram. Sequence diagram memperlihatkan tahap demi tahap apa
yang seharusnya terjadi untuk menghasilkan sesuatu didalam use case. Sequence
diagram biasanya digunakan untuk tujuan analisa dan desain, memfokuskan pada
identifikasi metode didalam sebuah sistem.
Pada penelitian ini sequence diagram terhadap sistem yang dibuat ditunjukkan pada
gambar 3.4 dan gambar 3.5 berikut.
Universitas Sumatera Utara
37
Gambar 3.4 Sequence Diagram untuk Enkripsi
Gambar 3.5 Sequence Diagram untuk Dekripsi
Universitas Sumatera Utara
38
3.3.
Flowchart Sistem
Flowchart merupakan suatu alur diagram yang digambarkan dari algoritma yang
digunakan didalam sistem yang akan dibuat dengan simbol tertentu dengan
menunjukkan
urutan
langkah
yang
dilakukan
untuk
menyelesaikan
suatu
permasalahan. Dengan adanya flowchart akan mempermudah untuk untuk
mendeskripsikan alur dari perilaku sistem yang akan dibuat. Pada penelitian ini
flowchart enkripsi dan dekripsi dari sistem yang akan dibuat ditunjukan pada gambar
3.6 dan gambar 3.7 berikut.
Gambar 3.6 Flowchart enkripsi file database
Universitas Sumatera Utara
39
Gambar 3.7 Flowchart dekripsi file databse
3.4.
Pseudocode Sistem
Pseudocode merupakan suatu cara untuk mendefinisikan proses dari algoritma yang
digunakan pada sistem yang dibuat dengan menggunakan cara penulisan bahasa
pemrograman sederhana sehingga belum bisa dieksekusi langsung pada aplikasi
pemrograman komputer. Pada dasarnya pseudocode dituliskan hanya untuk
mempermudah seseoreng untuk lebih memahami algoritma yang digunakan. Seperti
namanya pseudocode digunakan sebagai pendukung pada kegiatan membuat kode
program agar lebih terperinci dan terstruktur. Berikut adalah pseudocode dari
algoritma pada sistem yang akan dibuat.
3.4.1 Pseudocode enkripsi file database dengan Vigenere Cipher
key, newkey,plaintext : string;
karakter : aray [1…karakter.length] of string;
I,j : integer;
Input (key);
Universitas Sumatera Utara
40
Input (plaintext);
For ( I = 0; I < plaintext.length) do
J = i mod key.length();
Newkey = key(j);
End for;
Write (newkey);
Karakter[i] = plaintext;
For (int I = 0; I < karakter.length) do
Ciphertext = (char);
((95 +((karakter[i]- ‘’) + key(i)- ‘’)) mod 95+ ‘’);
End for;
Write (ciphertext);
3.4.2 Pseudocode dekripsi file database dengan Vigenere Cipher
key, newkey,ciphertext : string;
karakter : aray [1…karakter.length] of string;
I,j : integer;
Input (key);
Input (ciphertext);
For ( I = 0; I < ciphertext.length) do
J = i mod key.length();
Newkey = key.charAt(j);
End for;
Write (newkey);
Karakter[i] = ciphertext;
Key = get(key.ciphertext);
For (int I = 0; I < karakter.length) do
plaintext = (char);
(((95 + ((karakter[i]- ‘’) + key.charAt(i)- ‘’)) mod 95)+ ‘’);
End for;
Write (plainrtext);
3.4.3 Pseudocode enkripsi file database dengan Blowfish
(xL, xR) = X
Loop on i from = 1 to 16
xL = xL XOR Pi
xR = F(xL) XOR xR
Swap xL and xR
End of loop
Swap xL and xR
xR = xR XOR P17
Universitas Sumatera Utara
41
xL = xL XOR P18
C = (xL, xR)
3.4.4 Pseudocode enkripsi file database dengan Blowfish
(a, b, c, d) = xL
// Bagi xL jadi 4 bagian, 8-bit/bagian
(e, f, g, h) = xR
// Bagi xR jadi 4 bagian. 8-bit/bagian
F(xL) = ((S1[a] + S2[b] mod 2^32) XOR S3[c]) + S[d] mod 2^32
F(xR) = ((S1[e] + S2[f] mod 2^32) XOR S3[g]) + S[h] mod 2^32
3.5.
Perancangan Antarmuka Sistem
Tahap
perancangan
antarmuka
(interface)
merupakan
tahapan
yang
lebih
memperhatikan faktor pengguna dimana desain sistem yang dibuat harus
mempermudah pengguna dalam penggunaan sistem tersebut, sehinnga tidak terjadi
kesalahan manusia yang membuat sistem tidak berfungsi seperti seharusnya. Desain
dari sistem yang dibuat harus bisa member kenyamanan pada setiap tingkatan
pengguna yang mengoperasikan sistem.
3.5.1 Halaman Awal
Halaman awal merupakan tampilan awal yang muncul ketika pertama kali sistem
dijalankan. Gambar 3.8 merupakan perancangan utnuk halaman awal dari sistem yang
dibuat.
Gambar 3.8 Form Halaman Awal
Universitas Sumatera Utara
42
3.5.2 Halaman Enkripsi
Halaman enkripsi merupakan tampilan yang muncul setelah pengguna menu enkripsi
pada form halaman awal sebelumnya. Gambar 3.9 merupakan perancangan untuk
form halaman enkripsi pada sistem yang akan dibuat.
1
2
3
4
5
6
Gambar 3.9 Form Halaman Enkripsi
Pada form halaman enkripsi terdapat masing-masing tombol dan label yang akan
mempermudah pengguna untuk melakukan proses enkripsi. Deskripsi dari setiap
konten pada form halaman enkripsi dijelaskan pada tabel 3.3 berikut.
Tabel 3.3 Deskripsi Form Halaman Enkripsi
No
Keterangan
1
Tombol untuk mengarahkan pengguna memasukkan file yang akan dienkripsi
2
Label yang berisi tentang file yang telah dimasukkan
3
Textbox untuk memasukkan kunci Vigenere
4
Textbox untuk memasukkan kunci Blowfish
5
Tombol untuk mengenkripsi file yang telah dimasukkan
6
Tombol mereset semua masukan pada form Enkripsi
Universitas Sumatera Utara
43
3.5.3 Halaman Dekripsi
Halaman dekripsi merupakan tampilan yang muncul ketika pengguna memilih menu
dekripsi pada form halaman awal sebelumnya. Gambar 3.10 merupakan perancangan
untuk form halaman dekripsi pada sistem yang akan dibuat.
1
2
3
4
5
6
Gambar 3.10 Form Halaman Dekripsi
Pada form halaman dekripsi terdapat masing-masing tombol dan label yang akan
mempermudah pengguna untuk melakukan proses dekripsi didalam sistem. Deskripsi
dari setiap konten pada form halaman dekripsi dijelaskan pada tabel 3.4 berikut.
Tabel 3.4 Deskripsi Form Halaman Dekripsi
No
Keterangan
1
Tombol untuk mengarahkan pengguna memasukkan file yang akan didekripsi
2
Label yang berisi tentang file enkripsi yang telah dimasukkan
3
Textbox untuk memasukkan kunci Vigenere
4
Textbox untuk memasukkan kunci Blowfish
5
Tombol untuk mendekripsi file yang telah dimasukkan
6
Tombol mereset semua masukan pada form Enkripsi
Universitas Sumatera Utara
44
3.5.4 Halaman Bantuan
Halaman bantuan merupakan tampilan yang muncul setelah pengguna memilih menu
bantuan pada halaman awal sebelumnya. Gambar 3.11 merupakan perancangan untuk
form halaman bantuan pada sistem yang akan dibuat.
Gambar 3.11 Form Halaman Bantuan
Pada form halaman bantuan terdapat label yang berisi tentang perilaku sistem yang
dibuat untuk mengarahkan pengguna bagaimana untuk menggunakan sistem sehingga
dapat meminimalisasi kesalahan yang mungkin terjadi.
Universitas Sumatera Utara
45
3.5.5 Halaman Author
Halaman author merupakan tampilan yang muncul ketika pengguna memilih menu
author pada halaman awal sebelumnya. Gambar 3.12 merupakan perancangan untuk
form halaman author pada sistem yang akan dibuat.
Gambar 3.12 Form Halaman Author
Pada halaman author terdapat label yang berisi tentang pengembang yang membuat
sistem dan hal-hal yang berkaitan selama proses pembuatan sistem.
Universitas Sumatera Utara
BAB IV
IMPLEMENTASI DAN PENGUJIAN
4.1 Implementasi
Dalam tahap ini akan di jelaskan perhitangn manual dari algoritma yang di pakai beserta
potongan source code dan implementasi sistem menggunakan bahasa pemrograman Web
dengan Php.
4.1.1
Perhitungan Enkripsi dan Dekripsi
Perhitungan manual yang dijelaskan disini adalah perhitungan enkripsi dan dekripsi pada
algoritma Vigenere Cipher dan Blowfish beserta Super enkripsi .
4.1.1.1 Enkripsi dengan Algoritma Super Enkripsi
Algoritma super enkripsi yang digunakan dalam penelitian ini adalah kombinasi antara
algoritma Vigenere Cipher dengan metode Blowfish. Dalam proses enkripsi dengan
algoritma super enkripsi, plaintext akan dienkrispsi dengan algoritma Vigenere Cipher
terlebih dahulu, kemudian ciphertext dari Vigenere Cipher akan di enkripsi lagi dengan
metode Blowfish.
4.1.1.2 Perhitungan Enkripsi dengan Super Enkripsi
Plaintext= Dodie Hermawan Purba
Kunci Vigenere
= vigenere
Kunci Blowfish
= blowfish
Pertama-tama plaintext akan dienkripsi dengan Algoritma Vigenere Cipher dengan kata
kunci “vigenere” sehingga menghasilkan ciphertext. Kemudian ciphertext yang dienkripsi
dengan Algoritma Vigenere Cipher akan akan dienkripsi kembali dengan metode
Blowfish sehingga menghasilkan sebuah ciphertexct yang baru.
Universitas Sumatera Utara
47
Dari perhitungan yang dilakukan melalui sistem yang dibangun didapatkan hasil sebagai
berikut :
Ciphertext dari Algoritma Vigenere Cipher
= Ywjmr Lvvhicea Tlvwi
Kemudian ciphertext dari Algoritma Vigenere Cipher akan menjadi plaintext selanjutnya
yang akan dienkripsi dengan metode Blowfish.
Ciphertext dari Metode Blowfish
=
•ﻈ菽 ⦼ 죳戋
4.1.1.3 Perhitungan Dekripsi dengan Super Enkripsi
•ﻈ菽 ⦼ 죳戋
Ciphertext
=
Kunci Vigenere
= vigenere
Kunci Blowfish
= blowfish
Pertama ciphertext yang didapatkan akan dedekripsi dengan metode Blowfish melalui
kunci yang diberikan sehingga akan dihasilkan plaintext yang pertama. Kemudian
plaintext yang didapatkan tersebut didekripsi kembali dengan Algoritma Vigenere Cipher
sehingga plaintext yang baru akan dihasilkan.
Dari perhitungan yang dilakukan melalui sistem yang dibangun didapatkan hasil sebagai
berikut :
Plaintext dari metode Blowfish
= Ywjmr Lvvhicea Tlvwi
Kemudian plaintext dari metode Blowfish akan menjadi ciphertext selanjutnya yang akan
didekripsi dengan Algoritma Vigenere Cipher.
Plaintext dari Algoritma Vigenere Cipher
= Dodie Hermawan Purba
4.1.2.1 Enkripsi dengan Algoritma Vigenere Cipher
Proses enkripsi pada Algoritma Vigenere Cipher, masing-masing karakter pada plaintext
akan disubstitusi dengan kunci yang diberikan. Jika panjang kunci lebih pendek dengan
plaintext, maka kunci tersebut akan diulang secara periodik sehinnga panjang kunci
tersebut sama dengan panjang plaintextnya.
Universitas Sumatera Utara
48
4.1.2.2
Perhitungan Enkripsi dengan Algoritma Vigenere Cipher
Plaintext
= Dodie Hermawan Purba
Kunci
= vigenere
Pertama sekali substitusi kunci terhadap plaintext sehingga panjang karakternya sama.
a)
Karena panjang karakter lebih kecil dengan plainext maka kata kunci diulang
sehingga menjadi sama dengan panjang karakter plaintext sehingga
K = vigen erevigen erevi
Ci = (Ki+Pi) mod 26, maka
C1 = (K1+P1) mod 26
Melalui tabel Algoritma Vigenere Cipher maka tiap-tiap nilai C1 akan didapat
seperti berikut :
C1
= (3+21) mod 26
= 24
C2
= 22
C9
=7
C16
= 21
C3
=9
C10
=8
C17
= 22
C4
= 12
C11
=2
C18
=8
C5
= 17
C12
=4
C6
= 11
C13
=0
C7
= 21
C14
= 19
C8
= 21
C15
= 11
Maka C = 24 22 9 12 17 11 21 21 7 8 2 4 0 19 11 21 22 8
b)
Kemudian substitusi nilai C keseluruhan terhadap tabel Algoritma Vigenere
Cipher, sehingga diperoleh ciphertext : Ywjmr Lvvhicea Tlvwi
c)
Source code program enkripsi Algoritma Vigenere Cipher
function Cipher($input, $key, $encipher)
{
$keyLen = strlen($key);
for ($i = 0; $i < $keyLen; ++$i)
if (!ctype_alpha($key[$i]))
return ""; // Error
Universitas Sumatera Utara
49
$output = "";
$nonAlphaCharCount = 0;
$inputLen = strlen($input);
for ($i = 0; $i < $inputLen; ++$i)
{
if (ctype_alpha($input[$i]))
{
$cIsUpper = ctype_upper($input[$i]);
$offset = ord($cIsUpper ? 'A' : 'a');
$keyIndex = ($i - $nonAlphaCharCount) %
$keyLen;
$k = ord($cIsUpper ?
strtoupper($key[$keyIndex]) : strtolower($key[$keyIndex])) - $offset;
$k = $encipher ? $k : -$k;
$ch = chr((Mod(((ord($input[$i]) + $k) $offset), 26)) + $offset);
$output .= $ch;
}
else
{
$output .= $input[$i];
++$nonAlphaCharCount;
}
}
return $output;
}
function Encipher($input, $key)
{
return Cipher($input, $key, true);
}
function Decipher($input, $key)
{
return Cipher($input, $key, false);
}
Universitas Sumatera Utara
50
4.1.2.3
Dekripsi dengan Algoritma Vigenere Cipher
Prose dekripsi pada Algoritma Vigenere Cipher sama seperti proses enkripsi sebelumnya,
kunci diberikan disubstitusikan kembali dengan ciphertext yang dihasilkan hanya saja
berbeda pada perhitungan mencari nilai masing-masing Pi.
4.1.2.4
Perhitungan dekripsi dengan Algoritma Vigenere Cipher
Ciphertext
= Ywjmr Lvvhicea Tlvwi
Kunci
= vigenere
Pertama sekali substitusi kunci terhadap ciphertext sehingga panjang karakternya sama.
a)
Karena panjang karakter lebih kecil dengan plainext maka kata kunci diulang
sehingga menjadi sama dengan panjang karakter ciphertext sehingga
K = vigen erevigen erevi
Pi = (Ci – Ki) mod 26 ;
untuk Ci >= Ki
= (Ci + 26 – Ki) mod 26 ; untuk Ci bctx = array('p' => $this->parray,
'sb' => array( $this->sbox0, $this->sbox1,
$this->sbox2, $this->sbox3));
$this->_init($key);
}
function _blowfish_crypt(&$Xl, &$Xr)
{
for($i = 0; $i < 16; $i++)
{
$Xl = $Xl ^ $this->bctx['p'][$i];
$Xr = $this->_F($Xl) ^ $Xr;
$tmp = $Xl;
$Xl = $Xr;
$Xr = $tmp;
$tmp = $Xl;
$Xl = $Xr;
$Xr = $tmp;
$Xr = $Xr ^ $this->bctx['p'][16];
$Xl = $Xl ^ $this->bctx['p'][17];
}
Universitas Sumatera Utara
68
function _blowfish_decrypt(&$Xl, &$Xr)
{
for($i = 17; $i >= 2 ; $i--)
{
$Xl = $Xl ^ $this->bctx['p'][$i];
$Xr = $this->_F($Xl) ^ $Xr;
$tmp = $Xl;
$Xl = $Xr;
$Xr = $tmp;
}
$tmp = $Xl;
$Xl = $Xr;
$Xr = $tmp;
$Xr = $Xr ^ $this->bctx['p'][1];
$Xl = $Xl ^ $this->bctx['p'][0];
}
function _F($x)
{
$d = $x & 0xff;
$x = $x >> 8;
$c = $x & 0xff;
$x = $x >> 8;
$b = $x & 0xff;
$x = $x >> 8;
$a = $x & 0xff;
$y = $this->bctx['sb'][0][$a] + $this->bctx['sb'][1][$b];
$y = ($y ^ $this->bctx['sb'][2][$c]) + $this->bctx['sb'][3][$d];
return $y;
}
Universitas Sumatera Utara
69
4.1.2
Implementasi Desain Sistem
Perancangan sistem yang telah dibahas pada bab sebelumnya akan diimplementasikan
dengan menggunakan bahasa pemrograman Php dan desain menggunkan Html dan Css.
4.1.2.1
Tampilan Halaman awal
Tampilan halaman awal merupakan tampilan yang akan muncul pertama kali ketika
sistem dijalankan. Tampilan halaman awal dapat dilihat seperti pada gambar 4.2 berikut.
Gambar 4.2 Tampilan Awal
4.1.2.2
Halaman Enkripsi
Halaman enkripsi yaitu merupakan tampilan untuk melakukan proses enkripsi terhadap
file yang dimasukkan serta kunci untuk masing-masing algoritma. Tampilan halam
enkripsi dapat dilihat pada gambar 4.3 berikut.
Universitas Sumatera Utara
70
Gambar 4.3 Halaman Enkripsi
4.1.2.3
Halaman Dekripsi
Halaman dekripsi merupakan halaman untuk melakukan proses dekripsi terhadap file
yang telah dienkripsi sebelumnya dengan memasukkan file dan kunci yang sama ketika
melekukan proses enkripsi. Halaman dekripsi dapat dilihat seperti pada gambar 4.4
berikut.
Gambar 4.4 Halaman Dekripsi
Universitas Sumatera Utara
71
4.1.2.4
Halaman Bantuan
Halaman bantuan merupakan halaman yang berisi konten tentang bagaimana melakukan
proses enkripsi dan dekripsi didalam sistem Halaman bantuan dapat dilihat seperti pada
gambar 4.5 berikut.
Gambar 4.5 Halaman Bantuan
4.1.2.5
Halaman Author
Halaman author merupakan halaman yang berisi konten mengenai data perancang sistem.
Halaman author dapat dilihat seperti pada gambar 4.6 berikut.
Gambar 4.6 Halaman Author
Universitas Sumatera Utara
72
4.2.
Pengujian Sistem
Dalam tahapan ini akan dilakukan tahap pengujian terhadap sistem untuk mengamankan
file database dengan teknik enkripsi dan dekripsi menggunakan algoritma Vigenere
Cipher metode Blowfish.
4.2.1
Pengujian proses enkripsi
Pengujian proses enkripsi akan dilakukan pada halaman enkripsi sistem. Pada tahap ini
digunakan sampel suatu file database dengan format .sql. Selanjutnya file diupload
kedalam sistem untuk dienkripsi dengan masing-masing memasukkan kunci untuk setiap
algoritma, jadi akan diperlukan dua buah kunci yang harus diingat untuk proses dekripsi
selanjutnya.
Contoh pada pengujian ini file database adalah daftar_gaji.sql, dengan kunci untuk
algoritma Vigenere adalah vigenere dan kunci untuk metode Blowfish adalah blowfish.
Proses pengujian enkripsi dapat dilihat seperti pada gambar 4.7 berikut.
Gambar 4.7 Proses Enkripsi data
Pada gambar 4.7 berikut, file daftar_gaji.sql yang telah dienkripsi dapat diambil/diunduh
dari link yang muncul setelah data berhasil dienkripsi untuk dilakukan proses dekripsi
pada tahapan selanjutnya.
Universitas Sumatera Utara
73
4.2.2
Pengujian proses dekripsi
Pengujian proses dekripsi akan dilakukan pada halam dekripsi sistem. Pada tahap ini file
yang telah dienkripsi sebelumnya diupload untuk dilakukan proses dekripsi dengan
memasukkan kunci yang sama dari setiap algoritma ketika proses einkripsi dilakukan.
Pada tahapan ini contoh file yang didekripsi adalah file daftar_gaji.sql yang telah
dienkripsi sebelumnya yang telah berubah menjadi enkripsi-daftar_gaji.sql. Proses
pengujian dekripsi dapat dilihat seperti pada gambar 4.8 berikut.
Gambar 4.8 Proses Dekripsi data
Sama seperti ketika proses enkripsi, file yang didekripsi dapat diambil/diunduh melalui
link yang diberikan sistem setelah proses dekripsi terhadap file enkripsi berhasil
dilakukan.
Pada proses pengujian yang dilakukan file daftar_gaji.sql yang dienkripsi menjadi
enkripsi-daftar_gaji.sql memiliki format file yang sama .sql dan besar file yang juga sama
yaitu 39.4 KB (40,376 bytes) seperti yang ditunjukkan pada gambar 4.9 berikut.
Gambar 4. 9 Perbandingan file sebeleum dan setelah dienkripsi
Universitas Sumatera Utara
74
BAB IV
KESIMPULAN DAN SARAN
5.1.
Kesimpulan
Setelah melakukan tahapan analisis, perancangan dan pengujuian terhadap algoritma
Vigenere Cipher dan metode Blowfish melalui sistem yang dibangun maka diperoleh
kesimpulan sebagai berikut :
1.
Proses pengamanan file database dengan algoritma Vigenere Cipher dan metode
Blowfish memerlukan dua buah kunci sehingga data yang dienkripsi akan lebih aman
dari pihak yang ingin mencuri data tersebut.
2.
File yang sebelum dan sesudah dienkripsi pada sistem memiliki besar file yang sama,
jadi tidak akan terjadi pembengkakan kapasitas file setelah proses enkripsi maupun
dekripsi.
3.
Setelah melakukan pengujian, perbandingan waktu(s) eksekusi (running time)
terhadap besar file (Byte) yang akan dienkripsi yaitu 272 x 10-4 : 1.
5.2.
Saran
Saran-saran yang dapat dipertimbangkan untuk penelitian atau pengembangan selanjutnya
yang berhubungen dengan penelitian ini yaitu :
1.
untuk pengembangan selanjutnya diharapakan dapat
melakukan enkripsi dan
dekripsi tehadap semua jenis file database.
Universitas Sumatera Utara
75
2.
Untuk penelitian selanjutnya disarankan agar dapat menkonversi dua buah kunci
yang digunakan menjadi satu, sehingga waktu yang diperlukan lebih singkat ketika
melakukan enkripsi maupun dekripsi pada sistem yang dikembangakan.
3.
Dalam pengembangan selanjutnya diharapkan dapat membangun sistem yang lebih
efisien terhadap waktu(s) proses enkripsi maupun dekripsi.
Universitas Sumatera Utara
BAB III
ANALISIS DAN PERANCANGAN
Analisis sistem merupakan suatu tahapan dalam proses Software Development Life
Cycle (SDLC) yang berisi tentang uraian mengenai proses kerja sistem dari algoritma
Vigenere Cipher dan metode Blowfish yaitu terdiri dari flowchart, pseudocode,
Unified Modeling Language (UML) serta perancangan dari aplikasi.
3.1
Analisis Sistem
Analisis sistem terdiri dari tahap-tahap berbeda yang mendeskripsikan pengembangan
sistem. Dalam analisis sistem terdiri atas tiga tahap analisis yaitu analisis masalah,
analisis kebutuhan dan analisis proses. Analisis masalah bertujuan untuk memahami
kelayakan masalah. Analisis kebutuhan dilakukan untuk menjelaskan fungsi-fungsi
yang ditawarkan dan mampu dikerjakan sistem. Sedangkan analisis proses untuk
memodelkan tingkah laku sistem.
3.1.1 Analisis Masalah
Mengidentifikasi masalah merupakan langkah pertama yang dilakukan dalam tahap
analisis sistem. Masalah dapat didefinisikan sebagai pertanyaan yang diinginkan untuk
dipecahkan. Oleh karena itu langkah pertama yang harus dilakukan oleh ananlisis
sistem adalah mengidentifikasi terlebih dahulu masalah yang ada pada sistem.
Aspek keamanan dalam pengiriman suatu database yang merupakan sumber dari
informasi dan bersifat rahasia, rentan untuk disadap oleh pihak yang tidak berwenang
yang ingin mengetahui maupun mengubah isi dari database tersebut.
Masalah yang mungkin terjadi pada penelitian ini akan dianalisis dengan
metode diagram Ishikawa. Diagram Ishikawa yang sering disebut dengan Fishbone
atau cause and effect matrix adalah alat visual untuk mengidentifikasi, mengeksplorasi
dan secara grafik menggambarkan detail dari semua penyebab dan akibat yang
berhubungan dengan timbulnya masalah.
Grafik permasalahan pada penelitian ini ditunjukkan melalui diagram Ishikawa
seperti pada gambar 3.1 berikut.
Universitas Sumatera Utara
31
Gambar 3.1 Diagram Ishikawa
Pada gambar 3.1 ditunjukkan bahwa akar masalah muncul dari pihak ketiga
yang ingin mencuri maupun mengubah selama proses transmisi dan lemahnya kunci
terhadap ciphertext dan teknik kriptografi dalam pengamanan file yang hanya
menggunakan satu kunci dan satu metode, mempermudah pihak ketiga untuk
mengetahui plaintext yang telah dienkripsi sebelumnya.
Sehingga solusi yang ditemukan adalah dengan melakukan proses enkripsi data
menggunakan algoritma Vigenere Cipher dan Blowfish untuk lebih mengamankan
ciphertext yang dihasilkan dengan dua jenis kunci yang kompleks.
3.1.2 Analisis Kebutuhan
Analisis kebutuhan dibagi menjadi dua bagian penting, yaitu kebutuhan fungsional
dan kebutuhan non-fungsional.
3.1.2.1
Kebutuhan Fungsional
Kebutuhan fungsional merupakan proses dan hasil apa yang akan dilakukan sistem
yang dibuat. Pada penelitian ini kebutuhan yang harus dipenuhi oleh sistem secara
fungsional adalah:
1.
Fungsi Enkripsi
Sistem dapat melakukan proses enkripsi file database dengan menggunakan metode
vigenere cipher dan blowfish dengan kunci enkripsi masing-masing yang berbeda.
Universitas Sumatera Utara
32
2.
Fungsi Dekripsi
Sistem dapat melakukan dekripsi terhadap file database yang telah dienkripsi
sebelumnya dengan kunci enkripsi dan metode yang sama pada proses enkripsi.
3.1.2.2
Kebutuhan non-Fungsional
Kebutuhan non-fungsional merupakan kebutuhan yang mendeskripsikan perilaku dan
kerakteristik dari sistem. Aspek yang menjadi syarat kebutuhn non-fungsional pada
sistem yang dibuat yaitu :
1.
Sistem yang dibuat dapat melakukan pengamanan terhadap file database dengan
teknik kriptografi.
2.
Sistem dapat dimengerti dan digunakan dengan mudah oleh pengguna (User
Friendly).
3.
Sistem yang dibuat memuat informasi mengenai tingkah laku sistem untuk
meminimalisasi kesalahan yang terjadi oleh pengguna.
4.
Sistem tidak membutuhkan biaya yang terlalu besar dan kemungkinan tambahan
perangkat lainya.
3.1.3 Analisisi Proses
Pada penelitian ini sistem yang dibuat menggunakan algoritma Vigenere Cipher untuk
mengenkripsi file database dan kemudian enkripsi selajutnya dengan algoritma
Blowfish, sebalikanya untuk proses dekripsi kembali menggunakan algoritma yang
sama.
3.2.
Pemodelan Sistem
Pemodelan sistem merupakan langkah untuk mendeskripsikan gambaran dari setiap
komponen dan hubungan atau interaksi antar masing-masing komponen pada sistem
yang akan dibuat.
Pada penelitian ini pemodelan yang dilakukan untuk memdeskripsikan desain dan
rancangan sistem yang dibuat yaitu dengan menggunakan UML (Unified Modeling
Language). UML adalah suatu bahasa yang dapat digunakan menggambarkan
deskripsi dari setiap komponen dalam membuat sistem serta interaksi antara
komponen tersebut. Model UML yang digunakan dalam penelitian ini adalah use case
diagram, activity diagram dan sequence diagram.
Universitas Sumatera Utara
33
3.2.1
Use-case Diagram
Use-case Diagram merupakan suatu pemodelan yang menggambarkan kinerja
sebuah sistem yang dibuat, dan mendeskripsikan hubungan antara actor dan
komponen sistem yang akan dibuat. Actor adalah pengguna yang akan
mengoperasikan sistem tersebut. Pada Use-case Diagram akan dijelaskan apa saja
yang akan dilakukan oleh actor terhadap masing-masing komponen sistem yang
dibuat.
Gambar 3.2 Use-case Diagram
Pada gambar 3.2 Use-casae Diagram mendeskripsikan bahwa ada dua actor
yang berhubungan dengan sistem yaitu pengirim dan penerima. Pengirim akan
melakukan enkripsi file database yang akan ditransmisikan pada sistem dengan
memasukkan kunci untuk masing-masing algoritma. Setelah proses enkripsi selesai,
Universitas Sumatera Utara
34
pengirim akan mendapatkan file yang telah dienkripsi. Kemudian penerima
melakukan dekripsi kembali terhadap file enkripsi dengan memasukkan kunci yang
telah dikirim sebelumnya oleh pengirim untuk melakukan dekripsi mendapatkan file
asli databse yang diterima.
Setiap aksi yang dilakukan oleh pengirim terhadap sistem akan dijelaskan pada tabel
3.1 berikut.
Tabel 3.1 Narative Use-case Enkripsi file Database
Use-case Name
Enkripsi file Databasse
Design scope
Sistem (black box)
Goal level
User-goal
Pengirim dapat melakukan enkripsi file database dengan
kunci yang dirahasiakan untuk keamanan file databse
selama transmisi.
Pengirim memasukkan file yang akan dienkripsi dengan
Precondition
kunci enkripsi.
Sistem akan menampilkan pesan error jika proses enkripsi
Minimal Guarantee
gagal.
Sistem akan menampilakan peasan bahwa proses enkripsi
Success Guarantee
suskes.
1. Pengirim akan memasukkan file yang akan dienkripsi.
2. Pengirim memasukkan kunci untuk proses enkripsi.
Main Success Scenario 3. Sistem melakukan proses enkripsi.
4. Sistem menampilkan pesan bahwa proses enkripsi
sukses.
1. File yang dimasukkan tidak kompatibel terhadap
sistem.
a. Sistem akan menampilakan pesan untuk melakukan
cek ulang kembali terhadap tipe file yang
dimasukkan
Extensions
Stakeholder and
Interest
2. Kunci enkripsi yang dimasukkan tidak lengkap.
a. Sistem akan menampilakan pesan untuk melakukan
cek ulang kembali kunci yang dimasukkan
Universitas Sumatera Utara
35
Dan pada tabel 3.2 berikut dijelaskan aksi yang dilakaukan oleh penerima
terhadap sistem.
Tabel 3.2 Narative Use-case Dekripsi file Database
Use-case Name
Dekripsi file Databasse
Design scope
Sistem (black box)
Goal level
User-goal
Penerima dapat malakukan dekripsi terhadapa file yang
telah dienkrikpsi sebelumnya.
Penarima memasukkan file enkripsi dan kunci untuk proses
Precondition
dekripsi.
Sistem akan menampilkan pesan error jika proses dekripsi
Minimal Guarantee
gagal.
Sistem akan menampilakan peasan bahwa proses
Success Guarantee
dekripsisuskes.
1. Pengirim akan memasukkan file yang akan didekripsi.
2. Pengirim memasukkan kunci untuk proses dekripsi.
Main Success Scenario 3. Sistem melakukan proses dekripsi.
4. Sistem menampilakan pesan bahwa proses dekripsi
sukses.
1. File yang dimasukkan tidak kompatibel terhadap
sistem.
b. Sistem akan menampilakan pesan untuk melakukan
cek ulang kembali terhadap tipe file yang
dimasukkan
Extensions
Stakeholder and
Interest
1. Kunci dekripsi yang dimasukkan tidak lengkap.
b. Sistem akan menampilakan pesan untuk melakukan
cek ulang kembali kunci yang dimasukkan
3.2.2
Activity Diagram
Activity Diagram merupakan teknik pemodelan yang mendeskripsikan tentang
bagaimana alur kerja sistem yang akan dibuat mulai dari awal hingga akhir. Activity
Diagram bertujuan untuk menggambarkan hubungan antar masing-masing komponen
sistem yang ada dalam use-case diagram yang digunakan.
Pada penelitian ini model activity diagram pada sistem yang dibuat ditunjukkan pada
gambar 3.3 berikut.
Universitas Sumatera Utara
36
Gambar 3.3 Activity Diagram Sistem
3.2.3
Sequence Diagram
Sequence diagram merupakan diagram yang mendeskripsikan interaksi antar objek
didalam sistem yang disusun berurutan. Interaksi antar objek tersebut termasuk
pengguna dan sebagainya berupa pesan/message. Diagram ini khususnya berasosiasi
dengan use case diagram. Sequence diagram memperlihatkan tahap demi tahap apa
yang seharusnya terjadi untuk menghasilkan sesuatu didalam use case. Sequence
diagram biasanya digunakan untuk tujuan analisa dan desain, memfokuskan pada
identifikasi metode didalam sebuah sistem.
Pada penelitian ini sequence diagram terhadap sistem yang dibuat ditunjukkan pada
gambar 3.4 dan gambar 3.5 berikut.
Universitas Sumatera Utara
37
Gambar 3.4 Sequence Diagram untuk Enkripsi
Gambar 3.5 Sequence Diagram untuk Dekripsi
Universitas Sumatera Utara
38
3.3.
Flowchart Sistem
Flowchart merupakan suatu alur diagram yang digambarkan dari algoritma yang
digunakan didalam sistem yang akan dibuat dengan simbol tertentu dengan
menunjukkan
urutan
langkah
yang
dilakukan
untuk
menyelesaikan
suatu
permasalahan. Dengan adanya flowchart akan mempermudah untuk untuk
mendeskripsikan alur dari perilaku sistem yang akan dibuat. Pada penelitian ini
flowchart enkripsi dan dekripsi dari sistem yang akan dibuat ditunjukan pada gambar
3.6 dan gambar 3.7 berikut.
Gambar 3.6 Flowchart enkripsi file database
Universitas Sumatera Utara
39
Gambar 3.7 Flowchart dekripsi file databse
3.4.
Pseudocode Sistem
Pseudocode merupakan suatu cara untuk mendefinisikan proses dari algoritma yang
digunakan pada sistem yang dibuat dengan menggunakan cara penulisan bahasa
pemrograman sederhana sehingga belum bisa dieksekusi langsung pada aplikasi
pemrograman komputer. Pada dasarnya pseudocode dituliskan hanya untuk
mempermudah seseoreng untuk lebih memahami algoritma yang digunakan. Seperti
namanya pseudocode digunakan sebagai pendukung pada kegiatan membuat kode
program agar lebih terperinci dan terstruktur. Berikut adalah pseudocode dari
algoritma pada sistem yang akan dibuat.
3.4.1 Pseudocode enkripsi file database dengan Vigenere Cipher
key, newkey,plaintext : string;
karakter : aray [1…karakter.length] of string;
I,j : integer;
Input (key);
Universitas Sumatera Utara
40
Input (plaintext);
For ( I = 0; I < plaintext.length) do
J = i mod key.length();
Newkey = key(j);
End for;
Write (newkey);
Karakter[i] = plaintext;
For (int I = 0; I < karakter.length) do
Ciphertext = (char);
((95 +((karakter[i]- ‘’) + key(i)- ‘’)) mod 95+ ‘’);
End for;
Write (ciphertext);
3.4.2 Pseudocode dekripsi file database dengan Vigenere Cipher
key, newkey,ciphertext : string;
karakter : aray [1…karakter.length] of string;
I,j : integer;
Input (key);
Input (ciphertext);
For ( I = 0; I < ciphertext.length) do
J = i mod key.length();
Newkey = key.charAt(j);
End for;
Write (newkey);
Karakter[i] = ciphertext;
Key = get(key.ciphertext);
For (int I = 0; I < karakter.length) do
plaintext = (char);
(((95 + ((karakter[i]- ‘’) + key.charAt(i)- ‘’)) mod 95)+ ‘’);
End for;
Write (plainrtext);
3.4.3 Pseudocode enkripsi file database dengan Blowfish
(xL, xR) = X
Loop on i from = 1 to 16
xL = xL XOR Pi
xR = F(xL) XOR xR
Swap xL and xR
End of loop
Swap xL and xR
xR = xR XOR P17
Universitas Sumatera Utara
41
xL = xL XOR P18
C = (xL, xR)
3.4.4 Pseudocode enkripsi file database dengan Blowfish
(a, b, c, d) = xL
// Bagi xL jadi 4 bagian, 8-bit/bagian
(e, f, g, h) = xR
// Bagi xR jadi 4 bagian. 8-bit/bagian
F(xL) = ((S1[a] + S2[b] mod 2^32) XOR S3[c]) + S[d] mod 2^32
F(xR) = ((S1[e] + S2[f] mod 2^32) XOR S3[g]) + S[h] mod 2^32
3.5.
Perancangan Antarmuka Sistem
Tahap
perancangan
antarmuka
(interface)
merupakan
tahapan
yang
lebih
memperhatikan faktor pengguna dimana desain sistem yang dibuat harus
mempermudah pengguna dalam penggunaan sistem tersebut, sehinnga tidak terjadi
kesalahan manusia yang membuat sistem tidak berfungsi seperti seharusnya. Desain
dari sistem yang dibuat harus bisa member kenyamanan pada setiap tingkatan
pengguna yang mengoperasikan sistem.
3.5.1 Halaman Awal
Halaman awal merupakan tampilan awal yang muncul ketika pertama kali sistem
dijalankan. Gambar 3.8 merupakan perancangan utnuk halaman awal dari sistem yang
dibuat.
Gambar 3.8 Form Halaman Awal
Universitas Sumatera Utara
42
3.5.2 Halaman Enkripsi
Halaman enkripsi merupakan tampilan yang muncul setelah pengguna menu enkripsi
pada form halaman awal sebelumnya. Gambar 3.9 merupakan perancangan untuk
form halaman enkripsi pada sistem yang akan dibuat.
1
2
3
4
5
6
Gambar 3.9 Form Halaman Enkripsi
Pada form halaman enkripsi terdapat masing-masing tombol dan label yang akan
mempermudah pengguna untuk melakukan proses enkripsi. Deskripsi dari setiap
konten pada form halaman enkripsi dijelaskan pada tabel 3.3 berikut.
Tabel 3.3 Deskripsi Form Halaman Enkripsi
No
Keterangan
1
Tombol untuk mengarahkan pengguna memasukkan file yang akan dienkripsi
2
Label yang berisi tentang file yang telah dimasukkan
3
Textbox untuk memasukkan kunci Vigenere
4
Textbox untuk memasukkan kunci Blowfish
5
Tombol untuk mengenkripsi file yang telah dimasukkan
6
Tombol mereset semua masukan pada form Enkripsi
Universitas Sumatera Utara
43
3.5.3 Halaman Dekripsi
Halaman dekripsi merupakan tampilan yang muncul ketika pengguna memilih menu
dekripsi pada form halaman awal sebelumnya. Gambar 3.10 merupakan perancangan
untuk form halaman dekripsi pada sistem yang akan dibuat.
1
2
3
4
5
6
Gambar 3.10 Form Halaman Dekripsi
Pada form halaman dekripsi terdapat masing-masing tombol dan label yang akan
mempermudah pengguna untuk melakukan proses dekripsi didalam sistem. Deskripsi
dari setiap konten pada form halaman dekripsi dijelaskan pada tabel 3.4 berikut.
Tabel 3.4 Deskripsi Form Halaman Dekripsi
No
Keterangan
1
Tombol untuk mengarahkan pengguna memasukkan file yang akan didekripsi
2
Label yang berisi tentang file enkripsi yang telah dimasukkan
3
Textbox untuk memasukkan kunci Vigenere
4
Textbox untuk memasukkan kunci Blowfish
5
Tombol untuk mendekripsi file yang telah dimasukkan
6
Tombol mereset semua masukan pada form Enkripsi
Universitas Sumatera Utara
44
3.5.4 Halaman Bantuan
Halaman bantuan merupakan tampilan yang muncul setelah pengguna memilih menu
bantuan pada halaman awal sebelumnya. Gambar 3.11 merupakan perancangan untuk
form halaman bantuan pada sistem yang akan dibuat.
Gambar 3.11 Form Halaman Bantuan
Pada form halaman bantuan terdapat label yang berisi tentang perilaku sistem yang
dibuat untuk mengarahkan pengguna bagaimana untuk menggunakan sistem sehingga
dapat meminimalisasi kesalahan yang mungkin terjadi.
Universitas Sumatera Utara
45
3.5.5 Halaman Author
Halaman author merupakan tampilan yang muncul ketika pengguna memilih menu
author pada halaman awal sebelumnya. Gambar 3.12 merupakan perancangan untuk
form halaman author pada sistem yang akan dibuat.
Gambar 3.12 Form Halaman Author
Pada halaman author terdapat label yang berisi tentang pengembang yang membuat
sistem dan hal-hal yang berkaitan selama proses pembuatan sistem.
Universitas Sumatera Utara
BAB IV
IMPLEMENTASI DAN PENGUJIAN
4.1 Implementasi
Dalam tahap ini akan di jelaskan perhitangn manual dari algoritma yang di pakai beserta
potongan source code dan implementasi sistem menggunakan bahasa pemrograman Web
dengan Php.
4.1.1
Perhitungan Enkripsi dan Dekripsi
Perhitungan manual yang dijelaskan disini adalah perhitungan enkripsi dan dekripsi pada
algoritma Vigenere Cipher dan Blowfish beserta Super enkripsi .
4.1.1.1 Enkripsi dengan Algoritma Super Enkripsi
Algoritma super enkripsi yang digunakan dalam penelitian ini adalah kombinasi antara
algoritma Vigenere Cipher dengan metode Blowfish. Dalam proses enkripsi dengan
algoritma super enkripsi, plaintext akan dienkrispsi dengan algoritma Vigenere Cipher
terlebih dahulu, kemudian ciphertext dari Vigenere Cipher akan di enkripsi lagi dengan
metode Blowfish.
4.1.1.2 Perhitungan Enkripsi dengan Super Enkripsi
Plaintext= Dodie Hermawan Purba
Kunci Vigenere
= vigenere
Kunci Blowfish
= blowfish
Pertama-tama plaintext akan dienkripsi dengan Algoritma Vigenere Cipher dengan kata
kunci “vigenere” sehingga menghasilkan ciphertext. Kemudian ciphertext yang dienkripsi
dengan Algoritma Vigenere Cipher akan akan dienkripsi kembali dengan metode
Blowfish sehingga menghasilkan sebuah ciphertexct yang baru.
Universitas Sumatera Utara
47
Dari perhitungan yang dilakukan melalui sistem yang dibangun didapatkan hasil sebagai
berikut :
Ciphertext dari Algoritma Vigenere Cipher
= Ywjmr Lvvhicea Tlvwi
Kemudian ciphertext dari Algoritma Vigenere Cipher akan menjadi plaintext selanjutnya
yang akan dienkripsi dengan metode Blowfish.
Ciphertext dari Metode Blowfish
=
•ﻈ菽 ⦼ 죳戋
4.1.1.3 Perhitungan Dekripsi dengan Super Enkripsi
•ﻈ菽 ⦼ 죳戋
Ciphertext
=
Kunci Vigenere
= vigenere
Kunci Blowfish
= blowfish
Pertama ciphertext yang didapatkan akan dedekripsi dengan metode Blowfish melalui
kunci yang diberikan sehingga akan dihasilkan plaintext yang pertama. Kemudian
plaintext yang didapatkan tersebut didekripsi kembali dengan Algoritma Vigenere Cipher
sehingga plaintext yang baru akan dihasilkan.
Dari perhitungan yang dilakukan melalui sistem yang dibangun didapatkan hasil sebagai
berikut :
Plaintext dari metode Blowfish
= Ywjmr Lvvhicea Tlvwi
Kemudian plaintext dari metode Blowfish akan menjadi ciphertext selanjutnya yang akan
didekripsi dengan Algoritma Vigenere Cipher.
Plaintext dari Algoritma Vigenere Cipher
= Dodie Hermawan Purba
4.1.2.1 Enkripsi dengan Algoritma Vigenere Cipher
Proses enkripsi pada Algoritma Vigenere Cipher, masing-masing karakter pada plaintext
akan disubstitusi dengan kunci yang diberikan. Jika panjang kunci lebih pendek dengan
plaintext, maka kunci tersebut akan diulang secara periodik sehinnga panjang kunci
tersebut sama dengan panjang plaintextnya.
Universitas Sumatera Utara
48
4.1.2.2
Perhitungan Enkripsi dengan Algoritma Vigenere Cipher
Plaintext
= Dodie Hermawan Purba
Kunci
= vigenere
Pertama sekali substitusi kunci terhadap plaintext sehingga panjang karakternya sama.
a)
Karena panjang karakter lebih kecil dengan plainext maka kata kunci diulang
sehingga menjadi sama dengan panjang karakter plaintext sehingga
K = vigen erevigen erevi
Ci = (Ki+Pi) mod 26, maka
C1 = (K1+P1) mod 26
Melalui tabel Algoritma Vigenere Cipher maka tiap-tiap nilai C1 akan didapat
seperti berikut :
C1
= (3+21) mod 26
= 24
C2
= 22
C9
=7
C16
= 21
C3
=9
C10
=8
C17
= 22
C4
= 12
C11
=2
C18
=8
C5
= 17
C12
=4
C6
= 11
C13
=0
C7
= 21
C14
= 19
C8
= 21
C15
= 11
Maka C = 24 22 9 12 17 11 21 21 7 8 2 4 0 19 11 21 22 8
b)
Kemudian substitusi nilai C keseluruhan terhadap tabel Algoritma Vigenere
Cipher, sehingga diperoleh ciphertext : Ywjmr Lvvhicea Tlvwi
c)
Source code program enkripsi Algoritma Vigenere Cipher
function Cipher($input, $key, $encipher)
{
$keyLen = strlen($key);
for ($i = 0; $i < $keyLen; ++$i)
if (!ctype_alpha($key[$i]))
return ""; // Error
Universitas Sumatera Utara
49
$output = "";
$nonAlphaCharCount = 0;
$inputLen = strlen($input);
for ($i = 0; $i < $inputLen; ++$i)
{
if (ctype_alpha($input[$i]))
{
$cIsUpper = ctype_upper($input[$i]);
$offset = ord($cIsUpper ? 'A' : 'a');
$keyIndex = ($i - $nonAlphaCharCount) %
$keyLen;
$k = ord($cIsUpper ?
strtoupper($key[$keyIndex]) : strtolower($key[$keyIndex])) - $offset;
$k = $encipher ? $k : -$k;
$ch = chr((Mod(((ord($input[$i]) + $k) $offset), 26)) + $offset);
$output .= $ch;
}
else
{
$output .= $input[$i];
++$nonAlphaCharCount;
}
}
return $output;
}
function Encipher($input, $key)
{
return Cipher($input, $key, true);
}
function Decipher($input, $key)
{
return Cipher($input, $key, false);
}
Universitas Sumatera Utara
50
4.1.2.3
Dekripsi dengan Algoritma Vigenere Cipher
Prose dekripsi pada Algoritma Vigenere Cipher sama seperti proses enkripsi sebelumnya,
kunci diberikan disubstitusikan kembali dengan ciphertext yang dihasilkan hanya saja
berbeda pada perhitungan mencari nilai masing-masing Pi.
4.1.2.4
Perhitungan dekripsi dengan Algoritma Vigenere Cipher
Ciphertext
= Ywjmr Lvvhicea Tlvwi
Kunci
= vigenere
Pertama sekali substitusi kunci terhadap ciphertext sehingga panjang karakternya sama.
a)
Karena panjang karakter lebih kecil dengan plainext maka kata kunci diulang
sehingga menjadi sama dengan panjang karakter ciphertext sehingga
K = vigen erevigen erevi
Pi = (Ci – Ki) mod 26 ;
untuk Ci >= Ki
= (Ci + 26 – Ki) mod 26 ; untuk Ci bctx = array('p' => $this->parray,
'sb' => array( $this->sbox0, $this->sbox1,
$this->sbox2, $this->sbox3));
$this->_init($key);
}
function _blowfish_crypt(&$Xl, &$Xr)
{
for($i = 0; $i < 16; $i++)
{
$Xl = $Xl ^ $this->bctx['p'][$i];
$Xr = $this->_F($Xl) ^ $Xr;
$tmp = $Xl;
$Xl = $Xr;
$Xr = $tmp;
$tmp = $Xl;
$Xl = $Xr;
$Xr = $tmp;
$Xr = $Xr ^ $this->bctx['p'][16];
$Xl = $Xl ^ $this->bctx['p'][17];
}
Universitas Sumatera Utara
68
function _blowfish_decrypt(&$Xl, &$Xr)
{
for($i = 17; $i >= 2 ; $i--)
{
$Xl = $Xl ^ $this->bctx['p'][$i];
$Xr = $this->_F($Xl) ^ $Xr;
$tmp = $Xl;
$Xl = $Xr;
$Xr = $tmp;
}
$tmp = $Xl;
$Xl = $Xr;
$Xr = $tmp;
$Xr = $Xr ^ $this->bctx['p'][1];
$Xl = $Xl ^ $this->bctx['p'][0];
}
function _F($x)
{
$d = $x & 0xff;
$x = $x >> 8;
$c = $x & 0xff;
$x = $x >> 8;
$b = $x & 0xff;
$x = $x >> 8;
$a = $x & 0xff;
$y = $this->bctx['sb'][0][$a] + $this->bctx['sb'][1][$b];
$y = ($y ^ $this->bctx['sb'][2][$c]) + $this->bctx['sb'][3][$d];
return $y;
}
Universitas Sumatera Utara
69
4.1.2
Implementasi Desain Sistem
Perancangan sistem yang telah dibahas pada bab sebelumnya akan diimplementasikan
dengan menggunakan bahasa pemrograman Php dan desain menggunkan Html dan Css.
4.1.2.1
Tampilan Halaman awal
Tampilan halaman awal merupakan tampilan yang akan muncul pertama kali ketika
sistem dijalankan. Tampilan halaman awal dapat dilihat seperti pada gambar 4.2 berikut.
Gambar 4.2 Tampilan Awal
4.1.2.2
Halaman Enkripsi
Halaman enkripsi yaitu merupakan tampilan untuk melakukan proses enkripsi terhadap
file yang dimasukkan serta kunci untuk masing-masing algoritma. Tampilan halam
enkripsi dapat dilihat pada gambar 4.3 berikut.
Universitas Sumatera Utara
70
Gambar 4.3 Halaman Enkripsi
4.1.2.3
Halaman Dekripsi
Halaman dekripsi merupakan halaman untuk melakukan proses dekripsi terhadap file
yang telah dienkripsi sebelumnya dengan memasukkan file dan kunci yang sama ketika
melekukan proses enkripsi. Halaman dekripsi dapat dilihat seperti pada gambar 4.4
berikut.
Gambar 4.4 Halaman Dekripsi
Universitas Sumatera Utara
71
4.1.2.4
Halaman Bantuan
Halaman bantuan merupakan halaman yang berisi konten tentang bagaimana melakukan
proses enkripsi dan dekripsi didalam sistem Halaman bantuan dapat dilihat seperti pada
gambar 4.5 berikut.
Gambar 4.5 Halaman Bantuan
4.1.2.5
Halaman Author
Halaman author merupakan halaman yang berisi konten mengenai data perancang sistem.
Halaman author dapat dilihat seperti pada gambar 4.6 berikut.
Gambar 4.6 Halaman Author
Universitas Sumatera Utara
72
4.2.
Pengujian Sistem
Dalam tahapan ini akan dilakukan tahap pengujian terhadap sistem untuk mengamankan
file database dengan teknik enkripsi dan dekripsi menggunakan algoritma Vigenere
Cipher metode Blowfish.
4.2.1
Pengujian proses enkripsi
Pengujian proses enkripsi akan dilakukan pada halaman enkripsi sistem. Pada tahap ini
digunakan sampel suatu file database dengan format .sql. Selanjutnya file diupload
kedalam sistem untuk dienkripsi dengan masing-masing memasukkan kunci untuk setiap
algoritma, jadi akan diperlukan dua buah kunci yang harus diingat untuk proses dekripsi
selanjutnya.
Contoh pada pengujian ini file database adalah daftar_gaji.sql, dengan kunci untuk
algoritma Vigenere adalah vigenere dan kunci untuk metode Blowfish adalah blowfish.
Proses pengujian enkripsi dapat dilihat seperti pada gambar 4.7 berikut.
Gambar 4.7 Proses Enkripsi data
Pada gambar 4.7 berikut, file daftar_gaji.sql yang telah dienkripsi dapat diambil/diunduh
dari link yang muncul setelah data berhasil dienkripsi untuk dilakukan proses dekripsi
pada tahapan selanjutnya.
Universitas Sumatera Utara
73
4.2.2
Pengujian proses dekripsi
Pengujian proses dekripsi akan dilakukan pada halam dekripsi sistem. Pada tahap ini file
yang telah dienkripsi sebelumnya diupload untuk dilakukan proses dekripsi dengan
memasukkan kunci yang sama dari setiap algoritma ketika proses einkripsi dilakukan.
Pada tahapan ini contoh file yang didekripsi adalah file daftar_gaji.sql yang telah
dienkripsi sebelumnya yang telah berubah menjadi enkripsi-daftar_gaji.sql. Proses
pengujian dekripsi dapat dilihat seperti pada gambar 4.8 berikut.
Gambar 4.8 Proses Dekripsi data
Sama seperti ketika proses enkripsi, file yang didekripsi dapat diambil/diunduh melalui
link yang diberikan sistem setelah proses dekripsi terhadap file enkripsi berhasil
dilakukan.
Pada proses pengujian yang dilakukan file daftar_gaji.sql yang dienkripsi menjadi
enkripsi-daftar_gaji.sql memiliki format file yang sama .sql dan besar file yang juga sama
yaitu 39.4 KB (40,376 bytes) seperti yang ditunjukkan pada gambar 4.9 berikut.
Gambar 4. 9 Perbandingan file sebeleum dan setelah dienkripsi
Universitas Sumatera Utara
74
BAB IV
KESIMPULAN DAN SARAN
5.1.
Kesimpulan
Setelah melakukan tahapan analisis, perancangan dan pengujuian terhadap algoritma
Vigenere Cipher dan metode Blowfish melalui sistem yang dibangun maka diperoleh
kesimpulan sebagai berikut :
1.
Proses pengamanan file database dengan algoritma Vigenere Cipher dan metode
Blowfish memerlukan dua buah kunci sehingga data yang dienkripsi akan lebih aman
dari pihak yang ingin mencuri data tersebut.
2.
File yang sebelum dan sesudah dienkripsi pada sistem memiliki besar file yang sama,
jadi tidak akan terjadi pembengkakan kapasitas file setelah proses enkripsi maupun
dekripsi.
3.
Setelah melakukan pengujian, perbandingan waktu(s) eksekusi (running time)
terhadap besar file (Byte) yang akan dienkripsi yaitu 272 x 10-4 : 1.
5.2.
Saran
Saran-saran yang dapat dipertimbangkan untuk penelitian atau pengembangan selanjutnya
yang berhubungen dengan penelitian ini yaitu :
1.
untuk pengembangan selanjutnya diharapakan dapat
melakukan enkripsi dan
dekripsi tehadap semua jenis file database.
Universitas Sumatera Utara
75
2.
Untuk penelitian selanjutnya disarankan agar dapat menkonversi dua buah kunci
yang digunakan menjadi satu, sehingga waktu yang diperlukan lebih singkat ketika
melakukan enkripsi maupun dekripsi pada sistem yang dikembangakan.
3.
Dalam pengembangan selanjutnya diharapkan dapat membangun sistem yang lebih
efisien terhadap waktu(s) proses enkripsi maupun dekripsi.
Universitas Sumatera Utara