Apa itu Blowfish?

Blowfish adalah cipher blok 64-bit simetris dengan panjang variabel. Dirancang oleh Bruce Schneier pada tahun 1993 sebagai “algoritma serbaguna,” Blowfish dimaksudkan untuk menjadi alternatif yang cepat, gratis, dan langsung digunakan menggantikan Data Encryption Standard (DES) dan International Data Encryption Algorithm (IDEA).

Blowfish jauh lebih cepat dibandingkan DES dan IDEA serta tidak dipatenkan sehingga tersedia gratis untuk semua penggunaan. Namun, Blowfish tidak sepenuhnya menggantikan DES karena ukuran bloknya yang kecil, yang dianggap kurang aman.

Twofish, penerus Blowfish, mengatasi masalah keamanan dengan ukuran blok yang lebih besar, yaitu 128 bit. Meskipun demikian, enkripsi Blowfish belum pernah berhasil diretas sepenuhnya, dan algoritma ini masih digunakan dalam banyak paket cipher dan produk enkripsi yang tersedia saat ini.

Memahami Blowfish

Blowfish memiliki ukuran blok 64-bit dan menerima kunci dengan panjang variabel, dari 32 bit hingga 448 bit. Algoritma ini terdiri dari 16 iterasi mirip Feistel, di mana setiap iterasi bekerja pada blok 64-bit yang dibagi menjadi dua bagian 32-bit. Blowfish menggunakan satu kunci enkripsi untuk mengenkripsi dan mendekripsi data.

Algoritma Blowfish terdiri dari dua bagian utama:

  1. Enkripsi data. Proses enkripsi dilakukan melalui 16 putaran jaringan Feistel, dengan setiap putaran mencakup permutasi yang bergantung pada kunci serta substitusi yang bergantung pada data dan kunci. Substitusi dilakukan melalui S-box besar yang bergantung pada kunci. Semua operasi enkripsi terdiri dari XOR dan penjumlahan pada kata-kata 32-bit.
  2. Ekspansi kunci dan subkunci. Dalam proses ekspansi kunci, kunci dengan ukuran maksimal 448-bit dikonversi ke beberapa array subkunci yang berjumlah total 4.168 byte. Subkunci ini dihitung sebelum proses enkripsi atau dekripsi dapat dilakukan.

Proses Enkripsi dan Dekripsi Blowfish

Misalnya, jika pesan “Hi world” dienkripsi menggunakan Blowfish, langkah-langkah berikut diterapkan:

  1. Pesan “Hi world” terdiri dari tujuh karakter plus satu spasi, totalnya 64 bit atau 8 byte.
  2. Pesan dibagi menjadi dua bagian 32-bit. Bagian kiri 32-bit – “Hi w” – di-XOR dengan P1, yang diperoleh dari ekspansi kunci.
  3. P1 melewati fungsi transformasi F yang membagi 32 bit menjadi 4 byte dan melewatkannya ke empat S-box.
  4. Hasil dari dua nilai pertama S-box dijumlahkan, kemudian di-XOR dengan nilai ketiga dari S-box ketiga.
  5. Hasilnya ditambahkan ke keluaran dari S-box keempat untuk menghasilkan output 32-bit.
  6. Output dari fungsi F di-XOR dengan bagian kanan 32-bit dari pesan asli – “orld” – menghasilkan output baru F1′.
  7. F1′ menggantikan bagian kiri pesan, sementara P1′ menggantikan bagian kanan.
  8. Proses ini diulang untuk semua elemen P-array selama 16 putaran.
  9. Setelah 16 putaran, output akhir di-XOR dengan dua elemen terakhir dari P-array (P17 dan P18) untuk menghasilkan ciphertext.

Kelebihan Blowfish

Blowfish merupakan salah satu cipher blok yang tercepat dan paling ringkas yang tersedia secara publik. Beberapa kelebihannya antara lain:

  • Lebih cepat dan efisien dibandingkan DES dan IDEA.
  • Tidak dipatenkan dan dapat digunakan secara bebas tanpa lisensi.
  • Meskipun tahap inisialisasi sebelum enkripsi cukup kompleks, proses enkripsi data sangat efisien pada mikroprosesor besar.
  • Menyediakan keamanan tinggi untuk perangkat lunak dan aplikasi yang dikembangkan dalam Java.
  • Mendukung akses aman untuk alat cadangan.
  • Memungkinkan otentikasi pengguna yang aman untuk akses jarak jauh.

Kekurangan Blowfish

Blowfish juga memiliki beberapa kelemahan, termasuk:

  • Perubahan kunci mempengaruhi kecepatan enkripsi.
  • Proses ekspansi kunci memakan waktu lama.
  • Ukuran blok 64-bit membuatnya rentan terhadap serangan birthday attack, salah satu jenis serangan brute-force.
  • Setiap kunci baru membutuhkan pra-pemrosesan sebesar 4 KB, yang dapat memperlambat kinerja pada beberapa aplikasi.

Penerapan Blowfish

Blowfish digunakan dalam berbagai aplikasi, termasuk:

  • Enkripsi data massal
  • Generator bit acak
  • Enkripsi paket
  • Pemrosesan dan manajemen kata sandi
  • Prosesor seluler
  • Enkripsi email, file, atau disk
  • Cadangan data
  • Secure Shell

Blowfish digunakan dalam berbagai produk populer seperti CryptoDisk, PasswordWallet, Access Manager, Symantec NetBackup, dan SplashID. Beberapa platform media sosial dan situs e-commerce juga menggunakannya untuk melindungi data pengguna.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *