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