Blowfish Algorithm
Blowfish adalah algoritma kriptografi simetris dengan panjang blok 64-bit dan kunci yang dapat diubah. Diciptakan oleh Bruce Schneier pada tahun 1993, algoritma ini dirancang sebagai pengganti yang cepat dan gratis untuk DES dan IDEA.
Kelebihan dan Kekurangan Algoritma Blowfish
Kelebihan:
- Cepat dalam enkripsi data, kecuali untuk perubahan kunci.
- Lebih cepat dan unggul dibandingkan dengan DES Encryption.
- Digunakan untuk enkripsi massal, hash password, dan enkripsi paket.
Kekurangan:
- Rentan terhadap serangan ulang tahun karena ukuran blok 64-bit.
- Rentan terhadap serangan teks terang dengan jumlah putaran yang lebih sedikit.
- Pre-processing yang diperlukan untuk kunci baru memakan ruang memori.
Penggunaan Algoritma Blowfish
- Enkripsi Massal
- Hash Password
- Enkripsi Paket
Identifikasi Algoritma Blowfish
Blowfish memiliki ukuran blok 64-bit dengan kunci yang dapat berukuran 32 bit atau 448 bit. Ini memiliki 16 iterasi yang mirip dengan Feistel network, di mana setiap iterasi melibatkan permutasi yang bergantung pada kunci dan penggantian yang bergantung pada kunci dan data. Blowfish menggunakan S-box dan sub kunci untuk mengenkripsi dan mendekripsi data.
Proses Enkripsi Blowfish
- Enkripsi data menggunakan jaringan Feistel 16-putaran.
- Setiap putaran melibatkan permutasi dan penggantian yang bergantung pada kunci dan data.
- Sub kunci dihasilkan dari ekspansi kunci dan digunakan dalam proses enkripsi.
- Proses ini dilakukan 16 kali untuk setiap blok data yang akan dienkripsi.
Contoh Enkripsi dan Dekripsi Blowfish
Misalkan Blowfish digunakan untuk mengenkripsi pesan “Halo dunia”. Prosesnya adalah sebagai berikut:
- Pesan input “Halo dunia” terdiri dari tujuh karakter plus satu spasi, sehingga total delapan byte atau 64 bit.
- Pesan dibagi menjadi dua blok 32 bit.
- Ekspansi kunci menghasilkan nilai P1, yang kemudian di-XOR dengan 32 bit sisanya, “Halo,” untuk menghasilkan hasil yang diinginkan.
- Setiap blok 32 bit kemudian diproses melalui fungsi F yang melibatkan S-box.
- Proses ini diulang sebanyak 16 kali untuk setiap putaran.
- Hasil akhir dari proses enkripsi adalah ciphertext 64-bit dari pesan input.
Blowfish digunakan secara luas dalam berbagai aplikasi kriptografi dan masih menjadi pilihan populer meskipun telah muncul algoritma pengganti seperti Twofish.
//TC