Implementasi Algoritma Blowfish untuk Enkripsi Database ...

19
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

Transcript of Implementasi Algoritma Blowfish untuk Enkripsi Database ...

Page 1: Implementasi Algoritma Blowfish untuk Enkripsi Database ...

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

Page 2: Implementasi Algoritma Blowfish untuk Enkripsi Database ...
Page 3: Implementasi Algoritma Blowfish untuk Enkripsi Database ...
Page 4: Implementasi Algoritma Blowfish untuk Enkripsi Database ...
Page 5: Implementasi Algoritma Blowfish untuk Enkripsi Database ...
Page 6: Implementasi Algoritma Blowfish untuk Enkripsi Database ...

.

Page 7: Implementasi Algoritma Blowfish untuk Enkripsi Database ...

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

Page 8: Implementasi Algoritma Blowfish untuk Enkripsi Database ...

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 :

Page 9: Implementasi Algoritma Blowfish untuk Enkripsi Database ...

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.

Page 10: Implementasi Algoritma Blowfish untuk Enkripsi Database ...

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

Page 11: Implementasi Algoritma Blowfish untuk Enkripsi Database ...

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.

Page 12: Implementasi Algoritma Blowfish untuk Enkripsi 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

Page 13: Implementasi Algoritma Blowfish untuk Enkripsi Database ...

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:

Page 14: Implementasi Algoritma Blowfish untuk Enkripsi Database ...

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());

Page 15: Implementasi Algoritma Blowfish untuk Enkripsi Database ...

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.

Page 16: Implementasi Algoritma Blowfish untuk Enkripsi Database ...

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:

Page 17: Implementasi Algoritma Blowfish untuk Enkripsi Database ...

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:

Page 18: Implementasi Algoritma Blowfish untuk Enkripsi Database ...

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.

Page 19: Implementasi Algoritma Blowfish untuk Enkripsi Database ...

[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.