Anda di halaman 1dari 15

Page 1 of 15 

EVALUASI PENGAMANAN DATA PADA ENKRIPSI SIMETRIS DENGAN


ALGORITMA BLOWFISH

Ade Ramadhan
NIM: 200781142
Jurusan Teknik Informatika, Fakultas Ilmu Komputer, Universitas Esa Unggul
JL TERUSAN ARJUNA TOL TOMANG KEBON JERUK JAKARTA 11470
Nomor Telepon: 021-5674223 Nomor Fax: 021-5682503
E-mail: 200781142@student.indonusa.ac.id
ABSTRAK
Kriptografi merupakan suatu ilmu untuk menjaga kerahasiaan data / pesan sehingga data tidak
dapat diketahui oleh pihak lain. Algoritma Blowfish merupakan salah satu algoritma kriptografi
modern yang telah teruji dan banyak dipakai oleh berbagai pihak. Sistem operasi OpenBSD
memasukkan Blowfish sebagai algoritma enkripsi utama dalam mengamankan user di dalam
sistemnya (user authentication). Selain itu, PuTTY sebuah program SSH (Secure Shell) Client untuk
Microsoft® Windows® pun juga menggunakan Blowfish sebagai salah satu metode enkripsinya.
Algoritma Blowfish merupakan algoritma yang berjalan pada mode cipher blok dengan operasi
yang sangat sederhana. Blowfish menggunakan operasi penambahan, ekslusif OR (XOR) dan
penelusuran tabel.
Tujuan penelitian ini adalah membuat aplikasi sederhana enkripsi data pada file dengan
menggunakan algoritma Blowfish dalam mode enkripsi CBC (Cipher Block Chainning). Metode yang
digunakan dalam menulis skripsi adalah studi literatur tentang keamanan data, kriptografi
(algoritma Blowfish), perencanaan sistem pembuatan aplikasi algoritma Blowfish, pengujian dan
analisa aplikasi algoritma Blowfish.

Kata kunci : Algoritma Blowfish, Algoritma Kriptografi, Enkripsi, Dekripsi, Kunci Simetrik, Cipher
Blok, S-Box, Jaringan Feistel, XOR.

1. PENDAHULUAN
Dalam dunia modern ini, dengan yaitu sebuah seni dan bidang keilmuan dalam
kemajuan teknologi komputer, jaringan dan penyandian informasi atau data dengan tujuan
internet, hal ini menjadikan situasi dimana menjaga keamanannya. Walaupun telah
informasi dapat tersedia secara digital dalam berkembang sejak zaman dahulu kala, teknik
berbagai bentuk. Tetapi dengan kemajuan kriptografi yang dibutuhkan masa kini harus
teknologi itu pula dapat mengakibatkan menyesuaikan dirinya terhadap meluasnya
informasi yang ditukar bisa terganggu dan bisa penggunaan komputer digital pada masa kini.
saja dapat diubah oleh orang lain yang tidak Penggunaan komputer digital mendorong
berhak. berkembangnya kriptografi modern yang
Keamanan dan kerahasiaan sebuah data beroperasi dalam mode bit (satuan terkecil
atau informasi dalam komunikasi dan dalam dunia digital) daripada dalam mode
pertukaran informasi menjadi hal yang sangat karakter yang biasa digunakan dalam
penting. Hal ini dikarenakan data atau kriptografi klasik. Akan tetapi, kriptografi
informasi yang penting kadang tidak sampai modern tetap menggunakan prinsip substitusi
ke tangan penerima atau juga bahkan sampai dan transposisi yang sudah berkembang sejak
ke tangan penerima tetapi data yang diterima kriptografi klasik. Tetapi kriptografi modern
tersebut disadap terlebih dahulu tanpa memiliki tingkat kerumitan yang lebih lebih
pengetahuan dari pengirim maupun oleh dibanding kriptografi klasik. Dalam kriptografi
penerima itu sendiri. Dan bisa saja data asli modern dikenal 2 model kriptografi yaitu
tersebut oleh penyadap diubah sehingga data kriptografi simetrik dan kriptografi asimetrik.
yang seharusnya diterima dalam keadaan asli
menjadi data yang tidak sesuai. Algoritma Blowfish masih tergolong aman
karena sampai saat ini belum ada metode
Karena itulah dibutuhkan suatu metode kriptoanalis yang lebih efisien yang dapat
yang dapat menjaga kerahasiaan informasi ini. digunakan untuk menyerang 16 putaran penuh
Metode yang dimaksud adalah kriptografi algoritma Blowfish. Sejauh ini tidak ada

Universitas Esa Unggul NIM: 200781142 Ade Ramadhan


Page 2 of 15 

kelemahan yang berarti dari algoritma kecuali Implementasi Blowfish tidak menggunakan
adanya kunci lemah (weak key) dimana dua sumber daya memori yang banyak, hal ini
entri dari kotak-S (S-box) mempunyai nilai menyebabkan algoritma tersebut banyak
yang sama. digunakan pada embedded system. Algoritma
Algoritma Blowfish merupakan salah satu Blowfish juga merupakan metode enkripsi
metode enkripsi blok (block cipher) yang yang bebas paten. Oleh karena alasan – alasan
tercepat, kecuali apabila terjadi penggantian tersebut algoritma Blowfish dapat
kunci, di mana setiap penggantian kunci diimplementasikan pada perangkat lunak
memerlukan proses yang setara dengan enkripsi file.
enkripsi teks berukuran 4 kilobytes.
data/file. Untuk melihat sejuah mana kinerja
2. TUJUAN dari algoritma Blowfish, maka akan dilakukan
sejumlah analisa terkait dengan proses enkripsi
Pada penelitian ini akan dibahas tentang dan dekripsi dengan sejumlah kondisi, antara
sejauh mana konsep dasar kriptografi serta lain : waktu proses, ukuran file, panjang kunci,
implementasi dari algoritma Blowfish dalam proses dengan latar belakang sejumlah aplikasi
proses enkripsi dan dekripsi data. yg berjalan serta analisa singkat algoritma
Implementasi diwujudkan dalam sebuah Blowfish.
aplikasi yang dapat digunakan untuk
melakukan proses enkripsi dan dekripsi
mendalami ilmu dan seni dalam membuka
atau memecahkan suatu algoritma kriptografi
3. DASAR TEORI tanpa harus mengetahui kuncinya disebut
kriptoanalis.
3.1 Kriptografi Seiring dengan perkembangan teknologi,
Kriptografi berasal dari kata Yunani, yaitu algoritma kriptografi pun mulai berubah
Crypto yang berarti rahasia dan Grapho yang menuju arah algoritma kriptografi yang lebih
berarti menulis. Secara umum Kriptografi rumit dan kompleks. Kriptografi mau tidak
adalah ilmu dan seni untuk menjaga keamanan mau harus diakui mempunyai peranan yang
pesan (Cryptography is the art and science of paling penting dalam peperangan sehingga
keeping messages secure) [5]. Sebagai algoritma kriptografi berkembang cukup pesat
pembanding, terdapat pula definisi yang pada saat perang dunia I dan perang dunia ke
berbeda, Kriptografi adalah ilmu yang II. Menurut catatan sejarah, terdapat beberapa
mempelajari teknik-teknik matematika yang algoritma kriptografi yang pernah digunakan
berhubungan dengan aspek keamanan dalam peperangan, diantaranya adalah
informasi seperti kerahasiaan, integritas data, ADFVGX yang dipakai oleh Jerman pada
serta otentikasi [7]. Kata “seni” di dalam perang dunia I, Sigaba/M-134 yang digunakan
definisi di atas berasal dari fakta sejarah oleh Amerika Serikat pada perang dunia II,
bahwa pada masa-masa awal sejarah Typex oleh Inggris , dan Purple oleh Jepang.
kriptografi, setiap orang mungkin mempunyai Selain itu jerman juga mempunyai mesin
cara yang unik untuk merahasiakan pesan. legendaris yang dipakai untuk memecahkan
Cara-cara unik tersebut mungkin berbeda-beda sandi yang dikirim oleh pihak musuh dalamn
pada setiap pelaku kriptografi sehingga setiap peperangan yaitu, Enigma.
cara menulis pesan rahasia pesan mempunyai Algoritma kriptografi yang baik tidak
nilai estetika tersendiri sehingga kriptografi ditentukan oleh kerumitan dalam mengelolah
berkembang menjadi sebuah seni data atau pesan yang akan disampaikan. Yang
merahasiakan pesan (kata “graphy” di dalam penting, algoritma tersebut memiliki 4
“cryptography” itu sendiri sudah menyiratkan persyaratan berikut:
sebuah seni). • Kerahasiaan. Pesan (plaintext) hanya
Menurut catatan sejarah, kriptografi sudah dapat dibaca oleh pihak yang memiliki
digunakan oleh bangsa Mesir sejak 4000 tahun kewenangan.
yang lalu oleh raja-raja Mesir pada saat perang • Autentikasi. Pengirim pesan harus dapat
untuk mengirimkan pesan rahasia pada diidentifikasi dengan pasti, penyusup
panglima perangnya melalui kurir-kurirnya. harus dipastikan tidak bisa berpura-pura
Orang yang melakukan penyandian ini disebut menjadi orang lain.
Cryptographer, sedangkan orang yang

Universitas Esa Unggul NIM: 200781142 Ade Ramadhan


Page 3 of 15 

• Integritas. Penerima pesan harus dapat 3.2. Panjang Kunci


memastikan bahwa pesan yang dia terima Keamanan dari sebuah teknik menyandian
tidak dimodifikasi ketika sedang dalam tergantung dari dua hal: algoritma penyandian
proses transmisi data. dan panjang kunci (key). Algoritma sangat
• Non-Repudiation. Pengirim pesan harus menentukan kekuatan dari sebuah teknik
tidak bisa menyangkal pesan yang dia penyandian, tetapi panjang kunci juga tidak
kirimkan. kalah penting dalam menentukan kekuatan
sebuah teknik penyandian.
Kriptografi pada dasarnya terdiri dari dua Sebagai contoh, apabila seorang kriptoanalis
proses, yaitu proses enkripsi dan proses mengetahui algoritma yang dipakai untuk
dekripsi. Proses enkripsi adalah proses melakukan teknik penyandian terhadap suatu
penyandian pesan terbuka menjadi pesan pesan, maka kriptoanalis tersebut harus
rahasia (ciphertext). Ciphertext inilah yang mendapatkan kunci yang dipakai terlebih
nantinya akan dikirimkan melalui saluran dahulu sebelum dapat melakukan dekripsi
komunikasi terbuka. Pada saat ciphertext terhadap semua ciphertext yang dia punya.
diterima oleh penerima pesan, maka pesan Satu-satunya cara untuk mendapatkan kunci
rahasia tersebut diubah lagi menjadi pesan yang dipakai adalah dengan cara mencoba
terbuka melalui proses dekripsi sehingga pesan semua variasi kunci yang ada. Teknik
tadi dapat dibaca kembali oleh penerima serangan ini sering dikenal dengan nama Brute
pesan. Secara umum, proses enkripsi dan force.
dekripsi dapat digambarkan sebagai berikut Adalah mudah menghitung banyaknya
[10]: variasi kunci yang ada. Apabila panjang kunci
adalah 8 bit, maka 28 atau 256 kemungkinan
kunci yang dapat dicoba. Dari 256 percobaan
ini, peluang untuk mendapatkan kunci yang
benar adalah 50% setelah melalui setengah
usaha percobaan. Bila panjang kunci 56 bit,
maka ada 256 kemungkinan variasi kunci.
Dengan menganggap sebuah superkomputer
Gambar 1. Proses Enkripsi dan Dekripsi dapat mencoba satu juta kunci per detik, maka
diperkirakan sekitar 2285 tahun untuk
Dalam sistem komputer, pesan terbuka menemukan kunci yang benar. Bila
(plaintext) diberi lambang M, yang merupakan menggunakan panjang kunci 64 bit, maka
singkatan dari message. Plaintext ini dapat dengan superkomputer yang sama akan
berupa tulisan, foto, atau video yang berbentuk membutuhkan 585 ribu tahun. Dengan jangka
data biner. Plaintext inilah yan nantinya akan waktu yang lama ini, maka dapat dipastikan
dienkripsi menjadi pesan rahasia atau bahwa pesan yang disandikan tersebut tidak
ciphertext yang dilambangkan dengan C mempunyai arti lagi apabila telah berhasil
(ciphertext). Secara matematis, fungsi enkripsi dilakukan dekripsi.
ini dinotasikan dengan: Dengan melihat situasi ini, maka
kriptografi yang baik akan memilih untuk
E(M) = C menggunakan sepanjang mungkin kunci yang
akan digunakan, namun hal ini tidak dapat
Sedangkan fungsi dekripsi adalah proses diterapkan begitu saja. Semakin panjang
pembalikan dari ciphertext menjadi plaintext kunci, semakin lama pula waktu yang
kembali,secara matematis dinotasika sebagai digunakan oleh komputer untuk melakukan
berikut: proses enkripsi. Oleh sebab itu, panjang kunci
D(C) = M yang akan digunakan hendaknya
D(E(M)) = M memperhatikan tiga hal, yaitu seberapa
penting data yang akan dirahasiakan, berapa
lama waktu yang dibutuhkan agar data
tersebut tetap aman, dan seberapa kuat
kemampuan kriptoanalis dalam memecahkan
teknik penyandian kita.

Universitas Esa Unggul NIM: 200781142 Ade Ramadhan


Page 4 of 15 

3.3. Kriptografi Kunci Rahasia dan 3.3.2. Kriptografi Kunci Publik


Kunci Publik Kriptografi public key sering disebut
Pada dasarnya terdapat dua jenis algoritma dengan kriptografi asimetris. Berbeda dengan
kriptografi berdasarkan kunci yang digunakan. kriptografi secret key, kunci yang digunakan
Yang pertama adalah kriptografi dengan pada proses enkripsi dan proses dekripsi pada
mengunakan secret key dan yang kedua adalah kriptografi public key ini berbeda satu sama
kriptografi yang menggunakan public key. lain. Jadi dalam kriptografi public key, suatu
Public key menggunakan dua kunci yang key generator akan menghasilkan dua kunci
berbeda dimana satu kunci digunakan untuk berbeda dimana satu kunci digunakan untuk
melakukan enkripsi dan kunci yang lain melakukan proses enkripsi dan kunci yang
digunakan untuk melakukan dekripsi [9]. lain digunakan untuk melakukan proses
dekripsi.
3.3.1. Kriptografi Kunci Rahasia Kunci yang digunakan untuk melakukan
Kriptografi kunci rahasia atau secret key enkripsi akan dipublikasikan kepada umum
adalah kriptografi yang hanya melibatkan satu untuk dipergunakan secara bebas. Oleh sebab
kunci dalam satu proses enkripsi dan dekripsi. itu, kunci yang digunakan untuk melakukan
Proses dekripsi dalam kriptografi secret key ini enkripsi disebut juga sebagai public key.
adalah kebalikan dari proses enkripsi. Sedangkan kunci yang digunakan untuk
melakukan dekripsi akan disimpan oleh
pembuat kunci dan tidak akan dipublikasikan
kepada umum. Kunci untuk melakukan
dekripsi ini disebut private key.

Gambar 2. kriptografi Simetris

Kriptografi secret key seringkali disebut


sebagai kriptografi konvensional atau
kriptografi simetris (Symmetric Cryptography)
dimana proses dekripsi adalah kebalikan dari
proses enkripsi dan menggunakan kunci yang
sama [11].
Kriptografi simetris dapat dibagi menjadi
dua, yaitu penyandian blok (block cipher) dan Gambar 3. kriptografi Asimetris
penyandian alir (stream cipher) [9].
Penyandian blok bekerja pada suatu data yang Dengan cara demikian, semua orang yang
terkelompok menjadi blok-blok data atau akan mengirimkan pesan kepada pembuat
kelompok data dengan panjang data yang telah kunci dapat melakukan proses enkripsi
ditentukan. Pada penyandian blok, data yang terhadap pesan tersebut, sedangkan proses
masuk akan dipecah-pecah menjadi blok data dekripsi hanya dilakukan oleh pembuat atau
yang telah ditentukan ukurannya. Penyandian pemilik kunci dekripsi. Dalam kenyataannya,
alir bekerja pada suatu data bit tunggal atau kriptografi asimetris ini dipakai dalam ssh,
terkadang dalam satu byte. Jadi format data suatu layanan untuk mengakses suatu server.
yang mengalami proses enkripsi dan dekripsi
adalah berupa aliran bit-bit data. 3.4. Penyandian Blok
Algoritma yang ada saat ini kebanyakan Penyandian blok pada dasarnya adalah
bekerja untuk penyandian blok karena proses penyandian blok data yang jumlahnya
kebanyakan proses pengiriman data pada saat sudah ditentukan. Untuk sistem penyandian
ini menggunakan blok-blok data yang telah blok terdapat empat jenis mode operasi, yaitu
ditentukan ukurannya untuk kemudian dikirim Electronic Code Book (ECB), Cipher Block
melalui saluran komunikasi.

Universitas Esa Unggul NIM: 200781142 Ade Ramadhan


Page 5 of 15 

Chaining (CBC), Cipher Feedback (CFB), memodifikasi proses enkripsi dan dekripsi
Output Feedback (OFB). pada blok berikutnya.

3.4.1. Electronic Code Book (ECB)


Mode ECB adalah mode yang paling
umum dan paling mudah untuk
diimplemantasikan. Cara yang digunakan
adalah dengan membagi data ke dalam blok-
blok data terlebih dahulu yang besarnya sudah
ditentukan. Blok-blok data inilah yang disebut
plaintext karena blok data ini belum
disandikan. Proses enkripsi yang langsung
akan mengolah plaintext menjadi ciphertext
tanpa melakukan operasi tambahan. Suatu
blok plaintext yang dienkripsi dengan
menggunakan kunci yang sama akan
menghasilkan ciphertext yang sama. Gambar 5. Mode Operasi CBC

Pada CBC diperlukan data acak sebagai


blok pertama. Blok data acak ini sering disebut
initialization vector atau IV. IV digunaka
hanya untuk membuat suatu pesan yang jadi
unik dan IV tidak mempnyai arti yang penting
sehingga IV tidak perlu dirahasiakan.

3.4.3. Cipher Feedback (CFB)


Pada mode CBC, proses enkripsi atau
dekripsi tidak dilakukan sebelum blok data
yang diterima lengkap terlebih dahulu.
Masalah ini diatasi pada mode Cipher
Feedback (CFB). Pada mode CFB, data dapat
dienkripsi pada unit-unit yang lebih kecil atau
Gambar 4. Mode Operasi ECB sama dengan ukuran satu blok. Misalkan pada
CFB 8 bit, maka data akan diproses tiap 8 bit.
Keuntungan dari mode OBC ini adalah
kemudahan dalam implementasi dan
pengurangan resiko salahnya semua plaintext
akibat kesalahan pada salah satu plaintext.
Namun mode ini memiliki kelemahan pada
aspek keamanannya. Dengan mengetahui
pasangan plaintext dan ciphertext, seorang
kriptoanalis dapat menyusun suatu code book
tanpa perlu mengetahui kuncinya.

Gambar 6. Mode Operasi CFB Enkripsi


3.4.2. Cipher Block Chaining (CBC)
Pada CBC menggunakan operasi umpan
balik atau dikenal dengan operasi berantai
(chaining). Pada CBC, hasil enkripsi dari blok
sebelumnya adalah feedback untuk enkripsi
dan dekripsi pada blok berikutnya. Dengan
kata lain, setiap blok ciphertext dipakai untuk

Universitas Esa Unggul NIM: 200781142 Ade Ramadhan


Page 6 of 15 

Gambar 7. Mode Operasi CFB Dekripsi 3.5. Prinsip Perancangan Cipher Blok
Perancangan cipher blok harus
Pada permulaan proses enkripsi, IV akan memperhatikan beberapa prinsip perancangan
dimasukan suatu register geser. IV ini akan yang telah biasa digunakan. Beberapa prinsip
dienkripsi dengan menggunakan kunci yang perancangan cipher blok adalah: cipher
sudah ada. Dari hasil enkripsi tersebut, akan berulang (Iterated Cipher), jaringan Feistel
diambil 8 bit dari paling kiri atau Most (Feistel Network), dan kotak-S (S-box) [8].
Significant Bit untuk di-XOR dengan 8 bit dari
plaintext. Hasil dari operasi XOR inilah yang 3.5.1. Cipher Berulang (Iterated Cipher)
akan menjadi ciphertext dimana ciphertext ini Cipher berulang merupakan fungsi
tidak hanya dikirim untuk ditranmisikan tetapi transformasi sederhana yang mengubah
juga dikirim sebagai feedback ke dalam plaintext menjadi ciphertext dengan proses
register geser untuk dilkukan proses enkripsi perulangan sejumlah kali [8]. Pada setiap
untuk 8 bit berikutnya. putaran digunakan upa-kunci (sub key) atau
kunci putaran (round key) yang
3.4.4. Output Feddback (OFB) dikombinasikan dengan plaintext. Secara
Sama pada mode CFB, mode OFB juga formal, cipher berulang dinyatakan sebagai
memerlukan sebuah register geser dalam berikut:
pengoperasiannya. Pertama kali, IV akan Ci = f(Ci – 1, Ki)
masuk ke dalam register geser dan dilakukan Keterangan:
enkripsi terhadap IV tersebut. Dari hasil i = 1, 2, …, r (r adalah jumlah putaran).
enkripsi tersebut akan diambil 8 bit dari paling Ki = upa-kunci (subkey) pada putaran ke-i.
kiri untuk dilakukan XOR dengan plaintext f = fungsi transformasi (di dalamnya terdapat
yang nantinya akan menghasilkan ciphertxt. fungsi substitusi, permutasi, dan/atau ekspansi,
Ciphertext tidak akan diumpan balik ke dalam kompresi).
register geser, tetapi yang akan diumpan balik Plaintext dinyatakan dengan C0 dan ciphertext
adalah hasil dari enkripsi IV. dinyatakan dengan Cr.

3.5.2. Jaringan Feistel (Feistel Network)


Hampir semua algoritma cipher block
bekerja dalam model jaringan Feistel.
Jaringan Feistel ditemukan oleh Horst Feistel
pada tahun 1970.
Model jaringan Feistel adalah sebagai berikut
[8]:
1. Bagi blok yang panjangnya n bit menjadi
dua bagian, kiri (L) dan kanan (R), yang
masing - masing panjangnya n/2 (hal ini
mensyaratkan n harus genap).
Gambar 8. Mode Operasi OFB Enkripsi 2. Definisikan cipher blok berulang dimana
hasil dari putaran ke-i ditentukan dari hasil
putaran sebelumnya (lihat Gambar 10),
yaitu
Li = Ri+1
Ri = Li – 1 ⊕ f(Ri – 1, Ki)

Keterangan:
i = 1, 2, …, r (r adalah jumlah putaran).
Ki = upa-kunci (subkey) pada putaran ke-i.
f = fungsi transformasi (di dalamnya terdapat
Gambar 9. Mode Operasi OFB Dekripsi fungsi substitusi, permutasi, dan/atau ekspansi,
kompresi).

Universitas Esa Unggul NIM: 200781142 Ade Ramadhan


Page 7 of 15 

operasinya adalah look-up table. Masukan dari


operasi look-up table dijadikan sebagai indeks
kotak-S, dan keluarannya adalah entry di
dalam kotak-S.

Contoh: Kotak-S di dalam algoritma DES


adalah 6 × 4 S-box yang berarti memetakan 6
bit masukan menjadi 4 bit keluaran. Salah satu
kotak-S yang ada di dalam algoritma DES
adalah dapat dilihat pada Tabel 1.

Tabel 1. Salah Satu Kotak S-Box pada DES

Gambar 10. Jaringan Feistel

Plaintext adalah gabungan L dan R awal,


atau secara formal dinyatakan dengan (L0, R0),
sedangkan ciphertext didapatkan dari L dan R
Baris diberi nomor dari 0 sampai 3
hasil dari putaran terakhir setelah terlebih
Kolom diberi nomor dari 0 sampai 15
dahulu dipertukarkan, atau secara formal
Masukan untuk proses substitusi adalah 6 bit,
dinyatakan sebagai (Rr, Lr).
yaitu b1b2b3b4b5b6
Jaringan Feistel banyak dipakai pada
Nomor baris dari tabel ditunjukkan oleh string
algoritma kriptografi DES (Data Encryption
bit b1b6 (menyatakan 0 sampai 3 desimal).
Standard), LOKI, GOST, FEAL, Lucifer,
Sedangkan nomor kolom ditunjukkan oleh
Blowfish, Khufu, Khafre, dan lain-lain karena
string bit b2b3b4b5 (menyatakan 0 sampai 15).
model ini bersifat reversible untuk proses
enkripsi dan dekripsi. Maksud dari sifat
Misalkan masukan adalah 110100
reversible ini adalah mampu mengembalikan
Nomor baris tabel = 10 (artinya baris 2
ciphertext hasil enkripsi kembali ke plaintext
desimal)
melalui proses dekripsi. Dengan sifat
Nomor kolom tabel = 1010 (artinya kolom 10
reversible ini maka tidak perlu membuat
desimal)
algoritma baru unruk mendekripsi ciphertext
Jadi, substitusi untuk 110100 adalah entry
menjadi plaintext. Karena operator XOR
pada baris 2 dan kolom 10, yaitu 0100 (atau 4
mengkombinasikan setengah bagian kiri
desimal).
dengan hasil dari fungsi transformasi f, maka
kesamaan berikut pasti benar:
Perancangan kotak-S menjadi isu penting
karena kotak-S harus dirancang sedemikian
Li – 1 ⊕ f(Ri – 1, Ki) ⊕ f(Ri – 1, Ki) = Li – 1 sehingga kekuatan kriptografinya bagus dan
mudah diimplementasikan. Ada empat cara
Sifat reversible tidak bergantung pada fungsi f (pendekatan) yang dapat digunakan dalam
sehingga fungsi f dapat dibuat serumit mengisi kotak-S:
mungkin. 1. Dipilih secara acak
Untuk kotak-S yang kecil, cara pengisian
3.5.3. Kotak-S (S-Box) secara acak tidak aman, namun untuk
Kotak-S adalah matriks yang berisi kotak-S yang besar cara ini cukup bagus.
substitusi sederhana yang memetakan satu atau
lebih bit dengan satu atau lebih bit yang lain 2. Dipilih secara acak lalu diuji
[8]. Pada kebanyakan algoritma cipher blok, Sama seperti cara nomor 1, namun nilai
kotak-S memetakan m bit masukan menjadi n acak yang dibangkitkan diuji apakah
bit keluaran, sehingga kotak-S tersebut memenuhi sifat tertentu.
dinamakan kotak m × n S-box. 3. Dibuat oleh orang (man-made)
Kotak-S merupakan satu-satunya langkah
nirlanjar di dalam algoritma, karena

Universitas Esa Unggul NIM: 200781142 Ade Ramadhan


Page 8 of 15 

Entry di dalam kotak-S dibangkitkan bahasa Java, Pascal, C, Visual Basic atau yang
dengan teknik yang lebih intuitif. lainnya. Untuk membuat sebuah program,
Perancang kotak-S mengisi kotak-S secara seseorang harus memiliki daya pikir yang
intuitif. bagus. Dan untuk menghasilkan sebuah
4. Dihitung secara matematis (math-made) program yang berbeda dengan yang lainnya,
Entry di dalam kotak-S dibangkitkan maka orang tersebut harus memiliki
berdasarkan prinsip matematika yang kreativitas. Berikut adalah Tabel Perbandingan
terbukti aman dari serangan kriptoanalis. Algoritma Enkripsi Populer [13]:

Tabel 2. Tabel Perbandingan Algoritma


3.6 Algoritma Enkripsi Populer
Kata algoritma berasal dari bahasa Arab
yaitu Algorism yang berarti proses menghitung
dengan angka Arab. Sedangkan Algorist
adalah orang yang menghitung dengan angka
Arab. Sebenarnya, algoritma itu sendiri berasal
dari nama seorang ahli matematika dari
Uzbekistan yaitu Abu Abdullah Muhammad
Ibn Mūsā al-khwārizmī yang dibaca oleh
orang barat menjadi Algorism.
Menurut Muhammad Ibn Mūsā al-
khwārizmī algoritma adalah : “Suatu metode
khusus untuk menyelasaikan suatu persoalan
“. Menurut Godman hedet Niemi algoritma
adalah : “urut-urutan terbatas dari operasi
terdefinisi dengan baik, yang masing-masing
membutuhkan memori dan waktu yang
terbatas untuk menyelesaikan suatu masalah“.
Algoritma merupakan tahapan-tahapan
untuk mencapai hasil. Jadi algoritma tidak
selalu berhubungan dengan ilmu komputer.
3.6.1. Algoritma Blowfish
Misalkan cara membuat cake. Pertama kita
harus mempersiapkan adonan cake. Kemudian Blowfish alias "OpenPGP.Cipher.4"
apabila adonan tersebut telah jadi, panaskan merupakan enkripsi yang termasuk dalam
oven. Kemudian taruh adonan cake tersebut golongan Symmetric Cryptosystem, metoda
kedalam loyang yang telah dioleskan mentega enkripsinya mirip dengan DES (DES-like
dan ditaburi sedikit tepung. Apabila adona Cipher) diciptakan oleh seorang kriptoanalis
tersebut telah dimasukkan ke dalam loyang, bernama Bruce Schneier Presiden perusahaan
masukkan loyang berisi adonan cake tersebut Counterpane Internet Security, Inc
kedalam oven yang telah ditentukan suhunya (Perusahaan konsultan tentang kriptografi dan
tadi. Tunggulah kira-kira setengah jam. Maka keamanan Komputer) dan dipublikasikan
adonan cake tersebut akan menjadi kue cake. tahun 1994. Sejak saat itu telah dilakukan
Yang diambil dari contoh di atas adalah berbagai macam analisis, dan perlahan-lahan
untuk menghasilkan sesuatu, maka diperlukan mulai mendapat penerimaan sebagai algoritma
proses. Proses tersebut terdiri dari tahapan- enkripsi yang kuat. Dibuat untuk digunakan
tahapan yang logis. Jadi secara umum inti dari pada komputer yang mempunyai microposesor
algoritma adalah tahapan-tahapan yang logis besar (32-bit keatas dengan cache data yang
yang harus dipenuhi untuk mencapai suatu besar). Sampai saat ini belum ada attack yang
hasil. dapat memecahkan Blowfish.
Algoritma dalam ilmu komputer adalah Algoritma utama terbagi menjadi dua sub
urutan-urutan yang logis dan tepat untuk algoritma utama, yaitu bagian ekspansi kunci
memecahkan permasalahan yang dan bagian enkripsi-dekripsi data [5].
menggunakan komputer dengan bahasa Pengekspansian kunci dilakukan pada saat
pemrograman yang telah ditentukan seperti awal dengan masukan sebuah kunci dengan

Universitas Esa Unggul NIM: 200781142 Ade Ramadhan


Page 9 of 15 

panjang 32 bit hingga 448 bit, dan keluaran digunakan pada aplikasi kartu pintar (smart
adalah sebuah array subkunci dengan total card) karena memerlukan memori yang besar.
4168 byte. Algoritma Blowfish terdiri atas dua bagian [5]
Bagian enkripsi-dekripsi data terjadi :
dengan memanfaatkan perulangan 16 kali ¾ Key-Expansion
terhadap jaringan feistel [5]. Setiap perulangan Berfungsi merubah kunci (Minimum 32-
terdiri dari permutasi dengan masukan adalah bit, Maksimum 448-bit) menjadi beberapa
kunci, dan substitusi data. Semua operasi array subkunci (subkey) dengan total 4168
dilakukan dengan memanfaatkan operator Xor byte.
dan penambahan. Operator penambahan ¾ Enkripsi Data
dilakukan terhadap empat array lookup yang Terdiri dari iterasi fungsi sederhana
dilakukan setiap putarannya. (Feistel Network) sebanyak 16 kali
Blowfish juga merupakan cipher blok, yang putaran. Setiap putaran terdiri dari
berarti selama proses enkripsi dan dekripsi, permutasi kunci-dependent dan substitusi
Blowfish akan membagi pesan menjadi blok- kunci- dan data-dependent. Semua operasi
blok dengan ukuran yang sama panjang. adalah penambahan (addition) dan XOR
Panjang blok untuk algoritma Blowfish adalah pada variabel 32-bit. Operasi tambahan
64-bit. Pesan yang bukan merupakan kelipatan lainnya hanyalah empat penelusuran tabel
delapan byte akan ditambahkan bit-bit (table lookup) array berindeks untuk setiap
tambahan (padding) sehingga ukuran untuk putaran.
tiap blok sama. Blowfish menggunakan subkunci yang
Blowfish adalah algoritma yang tidak besar. Kunci tersebut harus dihitung sebelum
dipatenkan dan license free, dan tersedia enkripsi atau deskripsi data. Blowfish adalah
secara gratis untuk berbagai macam kegunaan. algoritma yang menerapkan jaringan Feistel
Blowfish dirancang dan diharapkan (Feistel Network) yang terdiri dari 16 putaran.
mempunyai kriteria perancangan yang Input adalah elemen 64-bit, X. Blowfish
diiginkan sebagai berikut : termasuk dalam kategori Kriptografi kunci
1. Cepat, Blowfish melakukan enkripsi data Simetri yang mana kunci yang dipakai untuk
pada microprocessor 32-bit dengan rate 26 menutup dan membuka itu menggunakan
clock cycles per byte. kunci yang sama.
2. Sederhana, Blowfish hanya menggunakan
operasi – operasi sederhana, Blowfish 3.6.1.1. Enkripsi Algoritma Blowfish
hanya menggunakan operasi – operasi
sederhana, seperti : penambahan, XOR, Blowfish menggunakan subkunci
dan lookup tabel pada operan 32-bit. berukuran besar. Kunci-kunsi tersebut harus
3. Memiliki tingkat keamanan yang dikomputasikan pada saat awal, sebelum
bervariasi, panjang kunci yang digunakan pengkomputasian enkripsi dan dekripsi data.
oleh Blowfish dapat bervariasi dan bisa Langkah-langkahnya adalah sebagai berikut:
sampai sepanjang minimal 32-bit, 1. Terdapat kotak permutasi (P-box) yang
maksimal 448 -bit, default 128 bit. terdiri dari 18 buah 32 bit subkunci: P1, P2,
P3, ... P18.
Blowfish dioptimasikan untuk berbagai 2. Xor kan P1 dengan 32 bit awal kunci, xor
aplikasi dimana kunci tidak sering berubah, kan P2 dengan 32 bit berikutnya dari
seperti pada jaringan komunikasi atau enkripsi kunci, dan teruskan hingga seluruh
file secara otomatis. Dalam panjang kunci telah ter xor kan
pengimplementasiannya dalam komputer (kemungkinan sampai P14, 14x32 = 448,
bermicroprosesor 32-bit dengan cache data panjang maksimal kunci).
yang besar (Pentium dan Power PC) Blowfish 3. Terdapat 64 bit dengan isi kosong, bit-bit
terbukti jauh lebih cepat dari DES. Tetapi tersebut dimasukkan ke langkah 2.
Blowfish tidak cocok dengan aplikasi dengan 4. Gantikan P1 dan P2 dengan keluaran dari
perubahan kunci yang sering atau sebagai langkah 3.
fungsi hast satu arah seperti pada aplikasi 5. Enkripsikan keluaran langkah 3 dengan
packet switching. Blowfish pun tidak dapat langkah 2 kembali, namun kali ini dengan

Universitas Esa Unggul NIM: 200781142 Ade Ramadhan


Page 10 of 15 

subkunci yang berbeda (sebab langkah 2 Proses dekripsi dilakukan dengan langkah-
menghasilkan subkunci baru). langkah sebagai berikut :
6. Gantikan P3 dan P4 dengan keluaran dari Input:
langkah 5 CC: 64 bits dari cipher text
7. Lakukan seterusnya hingga seluruh P-box P1, P2, …, P18: 18 sub-kunci
teracak sempurna F(): fungsi f (Round function)
8. Total keseluruhan, terdapat 512 iterasi Output:
untuk menghasilkan subkunci-subkunci TT: 64 bit clear text
yang dibutuhkan. Aplikasi hendaknya Algoritma:
menyimpannya daripada menghasilkan (LL0, RR0) = CC, CC dibagi menjadi 2 bagian
ulang subkunci-subkunci tersebut. yang masing-masing sebesar 32 bit.
Kunci- kunci yang digunakan antara lain LL1 = LL0 XOR P18
terdiri dari, 18 buah 32-bit subkey yang RR2 = RR0 XOR F(LL1) XOR P17
tergabung dalam P-array (P1, P2, ..., P18). LL3 = LL1 XOR F(RR2) XOR P16
Selain itu, ada pula empat 32-bit S-box yang RR4 = RR2 XOR F(LL3) XOR P15
masing-masingnya memiliki 256 entri : LL5 = LL3 XOR F(RR4) XOR P14
S1,0,S1,1,..., S1,255; S2,0, S2,1,..,, S2,255; RR6 = RR4 XOR F(LL5) XOR P13
S3,0, S3,1,..., S3,255; S4,0, S4,1,..,, S4,255. LL7 = LL5 XOR F(RR6) XOR P12
Pada jaringan feistel, Blowfish memiliki 16 RR8 = RR6 XOR F(LL7) XOR P11
iterasi, masukannya adalah 64-bit elemen data, LL9 = LL7 XOR F(RR8) XOR P10
X. Untuk melakukan proses enkripsi: RR10 = RR8 XOR F(LL9) XOR P9
1. Bagi X menjadi dua bagian yang masing- LL11 = LL9 XOR F(RR10) XOR P8
masing terdiri dari 32-bit: L dan R RR12 = RR10 XOR F(LL11) XOR P7
2. L1 = L0 XOR P1 LL13 = LL11 XOR F(RR12) XOR P6
R2 = R0 XOR F(L1) XOR P2 RR14 = RR12 XOR F(LL13) XOR P5
L3 = L1 XOR F(R2) XOR P3 LL15 = LL13 XOR F(RR14) XOR P4
R4 = R2 XOR F(L3) XOR P4 RR16 = RR14 XOR F(LL15) XOR P3
L5 = L3 XOR F(R4) XOR P5 LL17 = LL15 XOR F(RR16) XOR P2
R6 = R4 XOR F(L5) XOR P6 RR18 = RR16 XOR P18
L7 = L5 XOR F(R6) XOR P7 T = (RR18, LL17)
R8 = R6 XOR F(L7) XOR P8
L9 = L7 XOR F(R8) XOR P9 4. PERANCANGAN DAN
R10 = R8 XOR F(L9) XOR P10 IMPLEMENTASI
L11 = L9 XOR F(R10) XOR P11
R12 = R10 XOR F(L11) XOR P12 4.1. Desain dan Rancangan Aplikasi
L13 = L11 XOR F(R12) XOR P13 Block diagram dari program implementasi
R14 = R12 XOR F(L13) XOR P14 secara umum algoritma Blowfish yang akan
L15 = L13 XOR F(R14) XOR P15 dibuat diperlihatkan pada gambar 11. Pertama-
R16 = R14 XOR F(L15) XOR P16 tama yang dilakukan adalah inisialisasi data
L17 = L15 XOR F(R16) XOR P17 asli. Data ini akandisandikan/dienkripsi
R18 = R16 XOR P18 dengan menggunakan algoritma Blowfish
C = (R18, L17) kemudian hasilnya akan ditampilkan, dari data
3. C adalah ciphe text, gabungan dari R dan yang telah disandikan akan dikembalikan ke
L data asli dengan proses dekripsi. Proses
enkripsi/dekrispi memerlukan masukan/input
3.6.1.2. Dekripsi Algoritma Blowfish key yaitu berupa karakter ASCII. Key input
Dekripsi sama persis dengan enkripsi, digunakan untuk masukan baik sebelum
kecuali P1, P2, . . . , P18 digunakan pada urutan enkripsi maupun dekripsi. Operasi key
yang terbalik. kecuali bahwa P1, P2,…, P18. dimasukan sebagai kunci untuk proses dekripsi
Dekripsi untuk Blowfish bersifat maju atau pengubahan data sandi ke data asli, data
kedepan. Mengakibatkan dekripsi bekerja yang disandikan tidak dapat dikembailkan ke
dalam arah algoritma yang sama seperti halnya data asli jika kita tidak mempunyai kunci atau
dengan enkripsi, namun sebagai masukannya key yang pernah dimasukan pada waktu proses
adalah chipertext. enkripsi.

Universitas Esa Unggul NIM: 200781142 Ade Ramadhan


Page 11 of 15 

4.2. Implementasi Hasil


Implementasi aplikasi terdiri dari browse
file yang akan dienkripsi, save file hasil
enkripsi, browse file enkripsi yang akan
dideskripsi, save file hasil dekripsi, tombol
enkripsi file, tombol dekripsi file, clear file,
chek boks untuk pilihan hapus file, serta
informasi file yang terdiri nama file yang akan
dienkripsi dan dekripsi, ukuran file dan waktu
proses enkripsi dan dekripsi file. Subrutin
program enkripsi dan dekripsi file ini:
a. Proses Enkripsi File
Proses ini merupakan proses untuk
enkripsi file. Operasi program dimulai dari
inisialisasi masukkan program berupa file
atau data elektronik kemudian pemberian
key (kunci) dan setelah proses enkripsi
yang akan menyimpan file enkripsi
tersebut ke dalam file berekstensi yang
sama dengan file sebelum dilakukan
proses enkripsi.
b. Proses Deskripsi File
Proses ini adalah proses untuk dekripsi
Gambar 11. Flowchart Perancangan Program yaitu membuka kembali file yang telah
Secara Umum dienkripsi. Operasi program dimulai dari
inisialisasi file yang telah terenkripsi
Dari flow chart tersebut diatas dapat dijelaskan kemudian memasukkan key (kunci) untuk
sebagai berikut: membuka file enkripsi tersebut dan
1. Tampilan menu program untuk menyimpannya ke dalam file semula
mengenkripsi dan mendekripsi file c. Informasi waktu proses dan informasi
2. Menginisialisasi file yang akan diproses ukuranfile.
3. Input key Waktu proses ditampilkan ketika
4. Cek, Apakah proses untuk enkripsi file ? mengenkripsi dan mendekripsi file yang
5. Jika ya maka memberikan informasi tentang kecepatan
9 Membaca file algoritma Blowfish, serta kapasitas file
9 Cek, apakah file ditemukan ? yang dapat dilihat pada informasi file atau
9 Jika ya maka pada objek preview.
ƒ Proses Enkripsi Berikut adalah tampilan interface aplikasi
ƒ Menampilkan file hasil enkripsi kriptografi dengan algoritma Blowfish yang
9 Jika tidak dibuat oleh penulis:
ƒ Finish
• Jika tidak maka cek, apakah untuk
dekripsi file ?
• Jika ya maka
9 Membaca file
9 Cek, apakah file ditemukan ?
9 Jika ya maka
ƒ Proses Dekripsi
ƒ Menampilkan hasil dekripsi
9 Jika tidak
ƒ Finish
• Jika tidak finish

Universitas Esa Unggul NIM: 200781142 Ade Ramadhan


Page 12 of 15 

Gambar 12. Interface Aplikasi kriptografi

Gambar 14. Tampilan Interface pada saat


proses Dekripsi

5. EVALUASI HASIL

5.1. Evaluasi Waktu Proses Terhadap


Ukuran File

Waktu proses enkripsi/dekripsi file


tergantung pada ukuran file yang akan
dienkripsi/dekripsi. Pada uji coba proses
enkripsi dengan menggunakan beberapa
ekstensi file dengan ukuran yang berbeda-
beda. Hasil uji coba dapat dilihat pada tabel di
bawah ini:
Tabel 3. Evalusi waktu proses
enkripsi/dekripsi terhadap ukuran file

Gambar 13. Tampilan Interface pada saat


proses Enkripsi

Universitas Esa Unggul NIM: 200781142 Ade Ramadhan


Page 13 of 15 

Berdasarkan data Tabel 3 diatas, maka Tabel 5. Evalusi Proses Enkripsi Terhadap
dapat diketahui bahwa perbandingan antara Panjang Kunci
ukuran file dan waktu proses enkripsi /
dekripsi adalah berbanding lurus . Hal ini
disebabkan oleh efek cache dan efek
penanganan file (file handling) oleh Sistem
Operasi.

5.2. Evaluasi Ukuran File Terhadap Proses


Enkripsi

Evaluasi ini membandingkan ukuran file


sebelum dienkripsi dan setelah file dienkripsi

Tabel 4. Evalusi Ukuran file Terhadap Proses Berdasarkan tabel 5 diatas, dapat diketahui
Enkripsi bahwa menggunakan file yang sama dengan
ukuran kunci yang berbeda-beda dari 1
karakter sampai sampai panjang kunci 32
karakter terdapat perbedaan kecepatan proses
enkripsi. Kecepatan proses enkripsi / dekripsi
tidak dipengaruhi oleh panjang kunci. Hal
yang mempengaruhi terjadinya perbedaan
kecepatan proses yaitu, kecepatan dari sistem
komputer dan adanya aplikasi atau proses lain
yang sedang berjalan.

5.4. Evaluasi Waktu Proses Terhadap


Pengaruh Aplikasi Yang Berjalan

Pada tabel berikut akan digambarkan lebih


lanjut pengaruh adanya aplikasi yang berjalan
terhadap waktu yang dibutuhkan pada saat
proses enkripsi.

Dari tabel 4 diatas dapat dilihat bahwa Tabel 6. Evalusi Proses Enkripsi Terhadap
ukuran file sebelum enkripsi dan ukuran file Pengaruh Aplikasi yang Berjalan
setelah proses enkripsi tidak mengalami
perubahan yang mencolok. Perubahan yang
terjadi sangat kecil, hal ini terjadi karena ada
proses padding.

5.3. Evaluasi Proses Enkripsi Terhadap


Panjang Kunci

Pada tabel dibawah ini menunjukkan


hasil evaluasi terhadap file yang sama dengan Dari tabel 6 diatas, dapat terlihat jelas
menggunakan ukuran panjang kunci yang bahwa banyaknya aplikasi yang berjalan
berbeda untuk mengetahui pengaruh panjang sangat mempengaruhi kecepatan dari proses
kunci terhadap kecepatan proses enkripsi. enkripsi maupun dekripsi. Hal ini disebabkan
karena adanya fungsi schedulling pada sistem
operasi yang mengatur processor untuk
membagi waktu proses tiap apliasi sedang
berjalan. Jadi semakin banyak aplikasi yang
berjalan pada sebuah komputer, maka

Universitas Esa Unggul NIM: 200781142 Ade Ramadhan


Page 14 of 15 

kecepatan dari proses enkripsi akan semakin Gambar 16. Gambar file dengan format .doc
berkurang. setelah dienkripsi

5.5. Keamanan Algoritma Blowfish


Dalam algoritma enkripsi, panjang kunci
yang biasanya dalam ukuran bit, juga
menentukan kekuatan dari enkripsi. Kunci
yang lebih panjang biasanya lebih aman dari
pada kunci yang pendek. Jadi enkripsi dengan
menggunakan kunci 128-bit lebih sukar
dipecahkan dengan algoritma enkripsi yang Gambar 17. Gambar file dengan format .ppt
sama tetapi memiliki kunci 56-bit. Semakin setelah dienkripsi
panjang sebuah kunci, semakin besar keyspace
yang harus dijalani untuk mencari kunci
dengan cara brute force attack atau coba-coba
karena keyspace yang harus dilihat merupakan
pangkat bilangan dari 2. Jadi kunci 128-bit
memiliki keyspace 2128 , sedangkan kunci 56-
bit memiliki keyspace 256. Artinya semakin
lama kunci baru.
Pada intinya, keamanan suatu pesan tidak
tergantung pada sulitnya algoritma tetapi pada
kunci yang digunakan. Pada algoritma
Blowfish, dengan adanya f-fungsi yang tidak
membalik dapat memberikan tingkat
keamanan data yang tinggi sehingga
memberikan cukup kesulitan kepada
kriptoanalis untuk melakukan serangan.
Berikut adalah gambar hasil proses enkripsi
pada berbagai file yang telah penulis lakukan Gambar 18. Gambar file dengan format .jpg
pengujian: setelah dienkripsi

Gambar 15. Gambar file dengan format .txt


setelah dienkripsi

Universitas Esa Unggul NIM: 200781142 Ade Ramadhan


Page 15 of 15 

6. PENUTUP
DAFTAR PUSTAKA
Dari serangkaian pembahasan, implementasi,
pengujian dan evaluasi terhadap aplikasi pada [1]Anonim, “The Blowfish Encryption
bab-bab sebelumnya, maka dapat diambil Algorithm”
kesimpulan sebagai berikut: http://www.schneier.com/paper-Blowfish-
• Aplikasi ini menggunakan algoritma oneyear.html. Diakses pada tanggal 9
Blowfish untuk proses enkripsi dan April 2010
dekripsi file yang menggunakan jaringan [2] ______. “Blowfish”
feistel. http://id.wikipedia.org/wiki/Blowfish.
• Dengan menggunakan jaringan Feistel Tanggal akses: 17 Maret 2010.
maka algoritma Blowfish mempunyai dua [3] ______. “Kriptografi”
sifat: dekripsi menggunakan f-fungsi yang http://id.wikipedia.org/wiki/riftografi.
sama (non-invertible function) dan Tanggal akses: 26 Maret 2010.
kemampuannya mengiterasi fungsi banyak [4] ______. “Blowfish”
kali (multiple times). http://www.splashdata.com/splashid/Blow
• Hasil enkripsi menunjukkan bahwa 100% fish.htm. Tanggal akses: 26 Maret 2010.
dapat mengenkripsi file. [5] Bruce Schneier, Applied Cryptography :
• Perbandingan antara ukuran file dan waktu Protocols, Algorithms, and Source Code in
proses enkripsi / dekripsi adalah C, USA, John Wiley & Sons, Inc., 1996.
berbanding lurus, yakni semakin besar [6] Bruce Schneier, The Blowfish Encryption
ukuran file yang akan diproses maka Algorithm - - OneYear Later, Dr. Dobb’s
waktu yang digunakan untuk proses Journal, September 1995
enkripsi dan dekripsi semakin lama. http://www.counterpane.com/bfdobsoyl.
• Perbandingan ukuran file sebelum proses html
enkripsi dan setelah proses enkripsi bahwa [7]Menezes, A., dkk.,"Handbook of Applied
ukuran file sebelum enkripsi dan ukuran Cryptography",CRC Press, Inc.1996.
file setelah proses enkripsi tidak [8]Munir, Rinaldi. Bahan Kuliah IF5054
mengalami perubahan yang mencolok. Kriptografi. (2004). Departemen Teknik
Perubahan yang terjadi sangat kecil, hal Informatika, Institut Teknologi Bandung.
ini terjadi karena ada proses padding. [9]Prof. Christof Paar,"APPLIED
• Kecepatan proses enkripsi / dekripsi tidak CRYPTOGRAPHY AND DATA
dipengaruhi oleh panjang kunci SECURITY",www.crypto.rub.de,version
• Banyaknya aplikasi yang berjalan sangat 2.5,January 2005.
mempengaruhi kecepatan dari proses [10]Rhee, Man Young, Cryptography and
enkripsi maupun dekripsi. Sesure Communications, Singapore,
McGraw-Hill Book Co., 1994
• Algoritma Blowfish masih layak
[11]William Stallings, Network and
digunakan untuk aplikasi kriptografi
Internetwork Security Principles and
karena sampai saat ini belum ada
Practice, New Jersey, Prectice-Hall, 1995.
kriptoanalis yang dapat melakukan
cracking terhadap algoritma ini.
[12]Concepts of Cryptography
http://www.kremlinecrypt.com/crypto
[13] Anonim, “Encrypt Easy”
http://www.encrypt-
easy.com/encryption-algorithms.aspx.
Diakses pada tanggal 9 April 2010

Universitas Esa Unggul NIM: 200781142 Ade Ramadhan