implementasi algoritma blowfish untuk enkripsi database...
TRANSCRIPT
Implementasi Algoritma Blowfish untuk Enkripsi
Database Mysql pada Sistem Informasi Data Aset
Berbasis Web
Artikel Ilmiah
Kepada
Fakultas Teknologi Informasi
untuk memperoleh Gelar Sarjana Komputer
Peneliti :
Titus Debby Utomo(672013156)
Dr. Sri Yulianto J.P., S.Si., M.Kom.
Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Salatiga
Agustus 2017
.
1. Pendahuluan
Aset merupakan barang atau benda yang terdiri dari benda yang bersifat
tidak bergerak dan benda yang bersifat bergerak, baik yang berwujud (tangible)
dan tidak berwujud (intangible) yang tercakup dalam aktiva/kekayaan perusahaan
ataupun instansi. Kebutuhan informasi mengenai data dan informasi suatu aset
sangatlah penting guna untuk memperbaiki kinerja atau efisiensi di dalam suatu
instansi / lembaga. [1]. Penyimpanan aset merupakan bagian yang sangat penting
bagi suatu instansi / lembaga. Sebuah manajemen aset yang terpadu dapat
mencegah adanya penyimpangan aset. Masalah lain yang dapat terjadi adalah
kesalahan pengelolaan aset, sehingga berdampak kerugian yang tidak sedikit
karena sulitnya mengetahui apakah suatu aset sudah saatnya untuk diganti atau
masih layak untuk dipergunakan sebab tidak adanya informasi/data yang jelas
tentang aset tersebut.
Sistem manajemen data (database) diperlukan untuk mendata inventaris
barang-barang yang dapat digunakan pada bagian administrasi dan unit gudang
pada Lembaga Penjaminan Mutu dan Audit Internal UKSW, agar dapat
memantau inventaris barang-barang yang ada. Dimana sistem monitoring
inventaris barang ini juga memberikan kemudahan bagi karyawan Lembaga
Penjaminan Mutu dan Audit Internal UKSW untuk mendapatkan informasi
mengenai data-data barang yang tersimpan secara rapi, integritasnya terjamin,
serta pengolahan data atau informasi dapat dilakukan secara lengkap, cepat, tepat
dan akurat. Data yang terdapat didalam database tersebut dapat diakses kapan
saja. Dengan mudahnya akses untuk melihat isi dari sebuah database, maka
tingkat keamanan data akan menjadi berkurang. Untuk itu diperlukan suatu sistem
untuk menjaga keamanan data tersebut.
Berdasarkan permasalahan yang ada, maka dibangun sistem keamanan
database pada aplikasi sistem data aset LPMAI. Teknik pengamanan tersebut
dikenal dengan nama kriptografi, sebagai suatu ilmu untuk mengamankan data
[2]. Teknik enkripsi dan dekripsi yang digunakan dalam penelitian ini adalah
algoritma blowfish. Algoritma Blowfish merupakan sebuah algoritma enkripsi
simetris yang berarti bahwa algoritma ini menggunakan kunci yang sama baik
untuk melakukan enkripsi dan dekripsi. Dengan menggunakan algoritma blowfish
maka keamananpun akan lebih meningkat.
Tujuan dari pembuatan aplikasi ini adalah untuk mengenkripsi data ke
dalam database MySQL sehingga tidak semua orang dapat melihat data dalam
database. Serta manfaat pembuatan aplikasi ini adalah keamanan informasi dalam
sebuah database akan lebih terjamin [3].
2. Tinjauan Pustaka
Pada penelitian terdahulu yang berjudul “Rancang Bangun Aplikasi
Enkripsi Database MySQL dengan Algoritma Blowfish” membahas mengenai
penggunaan algoritma blowfish untuk mengamankan data dalam database yang
meliputi database, tabel, dan record. Dalam penelitian ini database yang akan
diamankan datanya adalah MySQL. Data dalam database tidak dapat terbaca
karena telah terenkripsi, sehingga hanya user tertentu yang dapat membaca isi dari
database dengan cara mendekripsinya. Algoritma Blowfish dipilih dalam
penelitian ini karena algoritma tersebut mampu bekerja pada komputer dengan
spesifikasi minim, cepat dan mudah dimengerti [3].
Penelitian lain yang berjudul “Aplikasi Teknik Enkripsi dan Dekripsi File
dengan Algoritma Blowfish pada Perangkat Mobile Berbasis Android”
menyatakan bahwa tingkat keamanan dari aplikasi yang dibuat cukup aman
karena algoritma Blowfish memiliki panjang kunci yang besar. Dengan
menggunakan kunci berjumlah 72 bit atau 9 karakter dibutuhkan waktu 1,49x108
tahun untuk membongkarnya dengan kecepatan komputasinya adalah 106 key/sec
[4].
Penelitian lain yang berjudul “Penggunaan Algoritma Blowfish Dalam
Kriptografi” menjelaskan bahwa algoritma blowfish merupakan salah satu solusi
yang baik untuk mengatasi masalah keamanan dan kerahasiaan data yang
memerlukan kriptografi di dalamnya. Algoritma ini menggunakan jaringan feistel
dan tingkat keamanannya ditentukan oleh jumlah iterasi dan panjang kunci yang
digunakan. Implementasi algoritma blowfish yang optimal dapat dilakukan
dengan aplikasi yang tidak sering berubah-ubah kunci. Setiap algoritma sandi
memiliki kelemahan, demikian juga algortima blowfish. Dalam algoritma
blowfish mungkin terjadi weak key dimana kemungkinannya terjadinya cukup
kecil [6].
Berdasarkan penelitian-penelitian yang terkait dengan algoritma blowfish
tersebut, para peneliti menggunakan algoritma blowfish karena algoritma tersebut
mampu bekerja pada komputer dengan spesifikasi minim, cepat dan mudah
dimengerti. Tingkat keamanan dari algoritma ini ditentukan oleh jumlah iterasi
dan panjang kunci yang digunakan. Dalam penelitian ini dilakukan enkripsi data
yang diinputkan ke dalam database menggunakan algoritma blowfish. Data secara
otomatis akan terenkripsi saat masuk ke dalam database. Teknik dalam algoritma
blowfish ini didukung dengan mcrypt. Mcrypt menunjang penggunaan algoritma
yang digunakan untuk enkripsi dan dekripsi data. Mcrypt mendukung berbagai
macam algoritma enkripsi yang sifatnya dua arah, salah satu contohnya berupa
algoritma blowfish. Fungsi ini mempermudah program agar lebih mudah, cepat,
dan efisien dalam pembuatannya.
Algoritma blowfish tidak memiliki karakteristik lainnya yang harus
dipenuhi untuk menjalankan enkripsi dengan menggunakan algoritman blowfish.
Ternyata selama aplikasi yang digunakan tidak sering berganti kunci, algoritma
blowfish merupakan algoritma yang cepat, dan selama tidak dilakukan
pengurangan jumlah iterasi Algoritma blowfish merupakan algoritma enkripsi
yang aman. Algoritma ini menggunakan kunci simetrik cipher blok dengan
panjang blok tetap sepanjang 64 bit. Algortima tersebut juga menerapkan teknik
kunci yang berukuran sembarang. Ukuran kunci yang dapat diterima oleh
blowfish adalah antara 32 hingga 448 bit, dengan ukuran standar sebesar 128 bit.
Blowfish memanfaatkan teknik pemanipulasian bit dan teknik pemutaran ulang
dan pergiliran kunci yang dilakukan sebanyak 16 kali. Algoritma utama terbagi
menjadi dua sub-algoritma utama, yaitu bagian ekspansi kunci dan bagian
enkripsi-dekripsi data.
Bagian-Bagian dalam Algoritma Blowfish :
Blowfish termasuk dalam enkripsi block Chiper 64-bit dengan panjang
kunci minimal 32-bit sampai 448-bit. Algoritma Blowfish terdiri atas dua bagian
(Schneier, 1996). :
1) Key-Expansion Berfungsi merubah kunci (Minimum 32-bit, Maksimum
448-bit) menjadi beberapa array subkunci r(subkey) dengan total 4168
byte.
2) Enkripsi Data Terdiri dari iterasi fungsi sederhana (Feistel Network)
sebanyak 16 kali putaran. Setiap putaran terdiri dari permutasi kunci-
dependent dan substitusi kunci dan datadependent. Semua operasi adalah
penambahan (addition) dan XOR pada variabel 32-bit. Operasi tambahan
lainnya hanyalah empat penelusuran tabel (table lookup) array berindeks
untuk setiap putaran [6].
Proses enkripsi data terjadi pada jaringan feistel (Feistel Network),
mengandung fungsi pengulangan sederhana sebanyak enam belas kali. Setiap
iterasi, terdiri dari sebuah permutasi yang tidak bergantung pada kunci dan sebuah
substitusi yang tidak bergantung pada data dan kunci. Semua operasi merupakan
penambahan dan XOR pada word 32-bit. Operasi penambahan yang dilakukan
hanya merupakan empat indeks array data lookup pada setiap iterasi. Input adalah
elemen 64-bit, X.
Alur algoritma blowfish :
Untuk alur algoritma enkripsi dengan metode blowfish dijelaskan sebagai
berikut:
a. Bentuk inisial array P sebanyak 18 buah (P1,P2,………….P18) masing-
masing bernilai 32-bit. Array P terdiri dari delapan belas kunci 32-bit
subkunci :
P1,P2,…….,P18
b. Bentuk S-box sebanyak 4 buah masing-masing bernilai 32-bit yang
memiliki masukan 256. Empat 32-bit S-box masing-masing mempunyai
256 entri :
S1,0,S1,1,………………..,S1,255
S2,0,S2,1,………………..,S2,255
S3,0,S3,1,………………..,S3,255
S4,0,S4,1,………………..,S4,255
c. Plainteks yang akan dienkripsi diasumsikan sebagai masukan, Plainteks
tersebut diambil sebanyak 64-bit, dan apabila kurang dari 64-bit maka
kita tambahkan bitnya, supaya dalam operasi nanti sesuai dengan
datanya.
d. Hasil pengambilan tadi dibagi 2, 32-bit pertama disebut XL, 32-bit yang
kedua disebut XR.
e. Selanjutnya lakukan operasi XL = XL xor Pi dan XR = F(XL) xor XR.
f. Hasil dari operasi di atas ditukar XL menjadi XR dan XR menjadi XL.
g. Lakukan sebanyak 16 kali, perulangan yang ke- 16 lakukan lagi proses
penukaran XL dan XR.
h. Pada proses ke-17 lakukan operasi untuk XR = XR xor P17 dan XL = XL
xor P18.
i. Proses terakhir satukan kembali XL dan XR sehingga menjadi 64-bit
kembali.
3. Metode dan Perancangan
Pada penelitian ini, akan dilakukan beberapa tahapan penelitian yang secara
garis besar terbagi dalam 5 tahapan, yaitu: pengumpulan data, analisis kebutuhan,
perancangan sistem, pengujian sistem, dan penulisan hasil penelitian.
Gambar 1 Tahapan Penelitian
Berdasarkan pada Gambar 1, tahapan penelitian dijelaskan sebagai berikut,
tahap pertama adalah pengumpulan data, pada tahap ini dipersiapkan segala data
yang dibutuhkan untuk merancang kriptografi menggunakan algoritma blowfish.
Data yang dimaksud meliputi referensi jurnal-jurnal, buku-buku yang berguna
sebagai sumber dan acuan proses pembuatan kriptografi menggunakan algoritma
blowfish berbasis web. Tahap kedua adalah analisis kebutuhan, pada tahap ini
dilakukan analisis kebutuhan untuk merancang kriptografi menggunakan
algoritma blowfish. Kebutuhan yang dibutuhkan seperti laptop atau pc, web server
seperti xampp, dan aplikasi sublime untuk membuat aplikasi kriptografi
menggunakan algoritma blowfish berbasis web. Tahap ketiga yaitu perancangan
sistem. Pada tahap ini dilakukan pembuatan sistem kriptografi menggunakan
algoritma blowfish. Tahap awal yaitu dengan melakukan komputasi kunci-kunci
yang nantinya akan dilakukan proses enkripsi dan dekripsi. Tahap keempat yaitu
pengujian sistem. Pada tahap ini sistem kriptografi menggunakan algoritma
blowfish akan diimplementasi dan diuji. Selanjutnya, akan dianalisis terhadap
hasil pengujian. Tahap kelima dilakukan penulisan laporan hasil penelitian dan
artikel ilmiah. Tahap ini merupakan tahap dokumentasi terhadap penelitaian yang
telah dilakukan dalam bentuk laporan.
Dalam perancangan kriptografi algoritma blowfish ini dilakukan proses
komputasi kunci yang nantinya dilanjutkan dengan proses enkripsi dan dekripsi.
Algoritma blowfish ini menggunakan kunci simetris (kunci untuk menutup dan
membuka sama). Berikut adalah alur program:
Pengumpulan Data
Analisis Kebutuhan
Perancangan Sistem
Kriptografi
Pengujian Sistem
Penulisan Laporan Hasil Penelitian
Gambar 2 Flowchart Sistem
Gambar 2 menunjukkan alur proses sistem kriptografi menggunakan
algoritma blowfish secara keseluruhan, langkah-langkah tersebut akan dijelaskan
sebagai berikut:
a) Menyiapkan kunci.
b) Melakukan pengkomputasian kunci.
c) Menyiapkan plainteks.
d) Melakukan proses enkripsi. Pada langkah ini plainteks di XOR dengan kunci
dan menghasilkan data enkripsi berupa cipherteks.
e) Hasil enkripsi otomatis masuk ke dalam database.
f) Melakukan proses dekripsi. Dekripsi sama persis dengan enkripsi, namun
sebagai masukkanya adalah cipherteks.
g) Hasil dari dekripsi adalah plainteks yang akan ditampilkan di user interface
web.
Blowfish menggunakan subkunci berukuran besar. Kunci-kunci tersebut
harus dikomputasikan pada saat awal sebelum pengkomputasian enkripsi dan
dekripsi data. Langkah-langkahnya adalah sebagai berikut:
a) Terdapat kotak permutasi (P-box) yang terdiri dari 18 buah 32 bit subkunci:
P1, P2, P3,..., P18. P-box ini telah ditetapkan sejak awal, 4 buah P-box awal
adalah sebagai berikut:
P1 = 0x243f6a88
P2 = 0x85a308d3
P3 = 0x13198a2e
P4 = 0x03707344
b) XORkan P1 dengan 32 bit awal kunci, XORkan P2 dengan 32 bit berikutnya
dari kunci, dan teruskan hingga sekuruh panjang kunci telah terXORkan
(kemungkinan sampai P14, 14x32 = 448, panjang maksimal kunci).
c) Terdapat 64 bit dengan isi kosong, bit-bit tersebut dimasukkan ke langkah 2.
d) Gantkan P1 dan P2 dengan keluaran dari langkah 3.
e) Enkripsikan keluaran langkah 3 dengan langkah 2 kembali, namun dengan
subkunci yang berbeda (sebab langkah 2 menghasilkan subkunci baru).
f) Gantikan P3 dan P4 dengan keluaran dari langkah 5.
g) Lakukan seterusnya hingga sekuruh P-box teracak sempurna.
h) Total keseluruhan, terdapat 521 iterasi untuk menghasilkan subkunci-subkunci
yang dibutuhkan.
Pada bagian ini, menjelaskan tentang pseudo-code pada implementasi
algoritma blowfish untuk enkripsi database mysql pada sistem informasi data aset
LPMAI berbasis web. Berikut pseudo-code algoritma enkripsinya:
Proses Enkripsi
{Program ini digunakan untuk melakukan proses enkripsi data}
Kamus
Pi, P17,P18 = string
X,XL,XR,F = integer
Start
Bagi X menjadi dua 32-bit:
XL, XR
For i = 1 sampai 16
XL = XL xor Pi
XR = F(XL) xor XR
Tukar XL dan XR
Tukar XL dan XR /*untuk membatalkan penukaran terakhir*/
XR = XR xor P17
XL = XL xor P18
Kombinasikan kembali XL dan XR
/*hasil chiperteks dari blok plainteks X*/
End
Pada algoritma di atas dituliskan mengenai fungsi F. Fungsi F adalah:
Bagi XL menjadi empat bagian 8-bit: a,b,c, dan d. F(XL) = ((S1,a + S2,b mod 232)
XOR S3,c) + S4,d mod 232.
Pada algoritma blowfish terdapat keunikan dalam proses deskripsinya, yaitu
proses dekripsi dilakukan dengan urutan yang sama persis dengan proses enkripsi,
hanya saja pada proses dekripsi P1,P2,...,P18 digunakan dalam urutan yang
terbalik.
4. Hasil dan Pembahasan
Pada bagian ini akan membahas algoritma blowfish untuk enkripsi database
mysql pada sistem informasi data aset lpmai berbasis web secara lebih rinci.
Data yang diinputkan pada sistem ini berasal dari inputan data aset pada
halaman adminhome.php .
Gambar 3 Form Input Data
Gambar 3 merupakan form untuk menginputkan data aset. Setelah mengklik
tombol “Tambah” maka secara otomatis data akan dilakukan proses enkripsi. Data
yang sudah terenkripsi secara otomatis akan disimpan ke dalam database. Berikut
adalah alur untuk proses enkripsi pada sistem data aset lpmai berbasis web:
Gambar 4 Flowchart Enkripsi
Pada proses enkripsi, pengguna hanya tinggal menginputkan datanya saja
karena kunci yang digunakan untuk enkripsi sudah berada di dalam program.
Hasil dari inputan tadi akan langsung dienkripsi dan disimpan ke dalam database
dalam bentuk plainteks menggunakan bahasa php.
Kode Program 1 Proses input data dan enkripsi data 1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
<?php
include("koneksi.php");
include("library/func.php");
require("cipher.php");
$cipher = new Cipher(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB);
$kunci = "qwertyuiop";
if(isset($_POST['addAset'])){
$kode_aset = aman($_POST['kode_aset']);
$nama = aman($_POST['nama']);
$jenis = aman($_POST['jenis']);
$deskripsi = aman($_POST['deskripsi']);
$kode_divisi = aman($_POST['divisi']);
$kategori = aman($_POST['kategori']);
$harga = aman($_POST['harga']);
$kondisi = aman($_POST['kondisi']);
$tanggal_masuk = date("Y-m-d");
$enNama = $cipher->encrypt($nama, $kunci);
$enJenis = $cipher->encrypt($jenis, $kunci);
$enDeskripsi = $cipher->encrypt($deskripsi, $kunci);
$cek = mysqli_query($koneksi, "SELECT * FROM tb_aset WHERE
kode_aset='$kode_aset'");
if(mysqli_num_rows($cek) == 0){
$insert = mysqli_query($koneksi, "INSERT INTO tb_aset(kode_aset,
gambar, nama, jenis, deskripsi, kode_divisi, kategori,
kondisi, harga, tanggal_masuk) VALUES ('$kode_aset',
'avatar.png', '$enNama', '$enJenis', '$enDeskripsi',
'$kode_divisi', '$kategori', '$kondisi', '$harga',
'$tanggal_masuk')") or die(mysqli_error());
Pada kode program 1, langkah pertama adalah memanggil file cipher.php
pada baris ke-4. Dalam file cipher.php berisi fungsi pengkomputasian kunci,
fungsi enkripsi, dan fungsi dekripsi. Pada baris ke-6 adalah fungsi algoritma yang
digunakan yaitu algoritma blowfish. Penelitian ini menggunakan mcrypt untuk
mendukung algoritma enkripsi seperti algoritma blowfish.
Pada baris ke-7 merupakan kunci yang digunakan untuk proses enkripsi.
Kunci yang digunakan adalah sembarang. Ukuran kunci yang dapat diterima oleh
blowfish adalah antara 32 hingga 448 bit, dengan ukuran standar sebesar 128 bit.
Blowfish memanfaatkan teknik pemanipulasian bit dan teknik pemutaran ulang
dan pergiliran kunci yang dilakukan sebanyak 16 kali.
Berikut adalah algoritma program saat proses pengkomputasian kunci yang
digunakan untuk enkripsi:
Kode Program 2 Proses Komputasi Kunci 1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
private function setKey($key) {
if (!is_null($key)) {
$key_size = mcrypt_get_key_size($this->algo, $this->mode);
$this->key = hash("sha256", $key, true);
$this->key = substr($this->key, 0, $key_size);
}
if (is_null($this->key)) {
trigger_error("You must specify a key at least once in either
Cipher::encrpyt() or Cipher::decrypt().", E_USER_ERROR);
}
}
Setelah kunci berhasil dikomputasi, output kunci akan dimasukkan ke dalam
parameter fungsi enkripsi. Parameter fungsi enkripsi terdiri dari plainteks dan
kunci.
Kode Program 3 Fungsi Enkripsi 1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public function encrypt($data, $key = null, $iv = null) {
$key = (strlen($key) == 0) ? $key = null : $key;
$this->setKey($key);
$this->setIV($iv);
$out = mcrypt_encrypt($this->algo, $this->key, $data, $this->mode,
$this->iv);
return base64_encode($out);
}
Pada kode program 3 merupakan fungsi untuk proses enkripsi. Dalam fungsi
ini terdapat parameter utama yaitu plainteks dan kunci. Nilai plainteks diambil
dari inputan pengguna, sedangkan nilai kunci diambil dari fungsi
pengkomputasian kunci pada kode program 2. Mcrypt_encrypt digunakan untuk
mendukung proses enkripsi.
Pada kode program 3 baris ke-9, terdapat base64_encode yang berfungsi
untuk melakukan encoding (penyandian) terhadap data biner sehingga menjadi
printable atau pendek kata data biner disandikan menjadi format 7 bit karakter.
Berikut proses teknik base64:
1. Cari kode ASCII dari masing-masing teks.
2. Cari bilangan biner 8 bit dari kode ASCII yg ada.
3. Gabungkan 8 bit tadi menjadi 24 bit.
4. Pecah 24 bit tadi menjadi 6 bit. Makaakan menghasilkan 4 pecahan.
5. Masing-masing pecahan diubah kedalam nilai desimal.
6. Jadikan nilai-nilai desimal tersebut menjadi indeks untuk memilih karakter
penyusun dari base64 dan maksimal adalah 63 atau indeks ke 64.
Dalam bagian ini akan menjelaskan proses enkripsi pada salah satu kalimat
atau plainteks yaitu kata “Harga BBM Naik” secara rinci. Langkah-langkah proses
enkripsi akan dijelaskan sebagai berikut:
1. Cari kode ASCII masing-masing teks:
Teks H a r g a B B M N a i k
ASCII 72 97 114 103 97 32 66 66 77 32 78 97 105 107
2. Cari bilangan biner 8 bit dari kode ASCII yang ada:
Contoh :
Teks H a r
ASCII 72 97 114
Kode biner dari 72 sebagai berikut:
a. Buatlah deret bilangan 2 pangkat yang dimulai dari 20. Penulisan dimulai
dari sebelah kanan. Batas bilangan harus kurang dari atau sama dengan
(<=) nilai ASCII. Pada nilai 72 berarti harus dituliskan sebagai berikut: 2
6 2
5 2
4 2
3 2
2 2
1 2
0
64 32 16 8 4 2 1
b. Kurangi 72 dengan 64. 72 bisa dikurangi dengan 64 maka dituliskan 1.
72 – 64 = 8. Hasil 8 dikurangkan dengan 32. 8 tidak bisa dikurangi
dengan 32, maka dituliskan 0. Kemudian 8 – 16, karena tidak bisa lagi
dituliskan 0. Seterusnya sampai 1 sehingga dari nilai 72 akan terbentuk
bilangan 1 0 0 1 0 0 0. Oleh karena hanya ada 7 bilangan maka
ditambahkan 0 di depan menjadi 0 1 0 0 1 0 0 0. Sehingga sudah
menemukan biner 8 bit dari H.
72 8 8 8 0 0 0
64 32 16 8 4 2 1
1 0 0 1 0 0 0
Tambahkan 0 di depan menjadi 010 0 10 0 0.
3. Gabungkan 8 bit tadi menjadi 24 bit.
8 bit 01001000 01100001 01110010
24 bit 010010000110000101110010
4. Pecah 24 bit menjadi 6 bit:
24 bit 010010000110000101110010
6 bit 010010 000110 000101 110010
5. Masing-masing pecahan diubah kedalam nilai desimal.
010010,000110,000101,110010. Cari nilai desimal:
0 1 0 0 1 0
25 2
4 2
3 2
2 2
1 2
0
16 + 2 = 18
Nilai desimal untuk “Har” = 18,6,5,50.
6. Jadikan nilai-nilai tersebut menjadi indeks untuk memilih karakter penyusun
dari base64.
Tabel 1 Tabel Indeks Base64
Value Char Value Char Value Char Value Char
0 A 16 Q 32 g 48 w
1 B 17 R 33 h 49 x
2 C 18 S 34 i 50 y
3 D 19 T 35 j 51 z
4 E 20 U 36 k 52 0
5 F 21 V 37 l 53 1
6 G 22 W 38 m 54 2
7 H 23 X 39 n 55 3
8 I 24 Y 40 o 56 4
9 J 25 Z 41 p 57 5
10 K 26 a 42 q 58 6
11 L 27 b 43 r 59 7
12 M 28 c 44 s 60 8
13 N 29 d 45 t 61 9
14 O 30 e 46 u 62 +
15 P 31 f 47 v 63 /
a. Berdasarkan tabel 1, maka :
Value 18 6 5 50
Char S G F y
”Har” yang mempunyai nilain18,6,5,50 akan menjadi “SGFy”.
b. “ga ” = “Z2Eg” (spasi termasuk 1 karakter ) lakukan seterusnya untuk 3
bytes berikutnya.
c. Pada karakter terakhir “ik” ini tidak genap 3 bytes ini yang dinamakan
terjadi “pad”.
105,107 = 01101001,01101011 = 011010,010110,1011
011010,010110,1011 + 00 = 011010,010110,101100 = 26,22,44
a. “ik” = “aWs”, tambahkan “=” sebagai penggenap sehingga lengkapnya
sebagai berikut: SGFyZ2EgQkJNIE5haWs=.
Pada bagian ini akan ditampilkan hasil dari proses enkripsi menggunakan
algoritma blowfish. Hasil dari output merupakan cipherteks dan disimpan ke
dalam database. Berikut hasil yang telah diuji dengan data yang nyata:
Tabel 2 Tabel Hasil Pengujian Enkripsi
Plainteks Cipherteks
Lenovo C320 l4v2ZrHhbnhDIP5+iYKx9g==
Daikin FTNE MV nUd3NPPmGEoObmixQVdHEA==
Daikin FTM50JV14 nUd3NPPmGErlRrxIKu26mQ==
Panasonic CS-YN9RKJ PU/1PxYuhtq+CRZ9bGwCz5xcSPNfRMZZ
Panasonic CS-YN5SKJ PU/1PxYuhtppwMRbZRHk2Ad2dga8lLAZ
HP EliteOne 800 G2 PrldZqRDuNqSi9bPAWafQbT19CrGOMbQ
HP ProOne 440 G3 c5GvT2Bmz+502lQswIIUuw==
Dokumen dosen UKSW wZFeuvnjMZnxjqwvYRpwVEnb3MlyYTrK
Jurnal dosen Z2MKKr5j0f7MJ8VhEWwXiw==
Uno Classic Meja Kantor kMW2nmJM4NgtOCOHW9fA78m7MO4Kb2X+
Tabel 2 merupakan hasil dari plainteks yang sudah terenkripsi yang sudah
disimpan dalam database. Apabila dalam proses encoding terdapat sisa pembagi,
maka akan ditambahkan sebagai penggenap sisa tersebut karakter ‘=’. Maka
terkadang pada base64 akan muncul satu atau dua karakter ‘=’ seperti yang dapat
dilihat pada tabel 2.
5. Simpulan
Berdasarkan keseluruhan proses yang dilakukan untuk membangun
implementasi algoritma blowfish untuk enkripsi database mysql pada sistem
informasi data aset berbasis web ini dapat disimpulkan bahwa aplikasi ini telah
berhasil dibangun dan dapat berfungsi sesuai dengan tujuan, yaitu mengamankan
informasi database dengan mengubah data asli menjadi cipherteks sehingga tidak
dapat dibaca atau dimengerti. Algoritma blowfish dipilih dalam penelitian ini
karena algoritma tersebut mampu bekerja pada komputer dengan spesifikasi
minim, cepat. Dan mudah dimengerti.
Penelitian ini telah berhasil dan dapat diketahui bahwa enkripsi suatu
database dapat dilakukan dengan menggunakan algoritma blowfish dengan
bahasa php sebagai bahasa pemrogramannya.
6. Daftar Pustaka
[1] Yahya, Mochammad Indra. 2012. Perancangan Sistem Informasi Aset
Manajemen Berbasis Web di SMP Negeri 35 Surabaya. Surabaya :
Universitas Pembangunan Nasional.
[2] Munir, R., 2006, “Kriptografi”, Bandung: Informatika.
[3] Tetuko, Anita Qoiriah. 2013. Rancang Bangun Aplikasi Enkripsi Database
Mysql dengan Algoritma Blowfish. Surabaya : Universitas Negeri Surabaya.
[4] Siswo Wardoyo, dkk. 2014. Aplikasi Teknik Enkripsi dan Dekripsi File
dengan Algoritma Blowfish pada Perangkat Mobile Berbasis Android.
Cilegon : Universitas Sultan Ageng Tirtayasa Cilegon, Indonesia.
[5] Suriski Sitinjak, dkk. 2010. Aplikasi Kriptografi File menggunakan
Algoritma Blowfish. Yogyakarta: UPN.
[6] Sutanto, Alim. 2009. Penggunaan Algoritma Blowfish dalam Kriptografi.
Bandung: Institut Teknologi Bandung.
[7] Utami Ema, dkk. 2010. Penerapan Algoritma Blowfish untuk Membuat
Sebuah Model Kriptosistem Algoritma dan Menganalisis Kinerja Algoritma
Blowfish dengan Simulasi Data Terbatas. Yogyakarta: STMIK AMIKOM.