Blowfish
Dalam kriptografi, Blowfish adalah cipher blok simetris yang dikunci, dibuat pada tahun 1993 oleh Bruce Schneier dan sejak tahun 1993 telah disertakan (disatukan) dalam sejumlah besar produk enkripsi. Blowfish memiliki tingkat enkripsi yang baik dalam perangkat lunak dan sampai tahun 2008 tidak ada model serangan kriptanalitik yang ditemukan. Namun, algoritma AES block cipher sekarang memiliki lebih banyak perhatian.
Schneier membuat Blowfish sebagai algoritma tujuan umum, untuk digunakan sebagai pengganti algoritma DES yang lama dan untuk menghilangkan masalah dan kesulitan algoritma enkripsi lainnya. Pada saat Blowfish dirilis, banyak algoritma lain yang menjadi hak milik, atau rahasia. Schneier mengatakan bahwa, "Blowfish tidak dipatenkan, dan akan tetap demikian di semua negara. Algoritma ini dengan ini ditempatkan di domain publik, dan dapat digunakan secara bebas oleh siapa saja."
Fitur utama dari desainnya termasuk S-box yang bergantung pada kunci dan jadwal kunci yang sangat kompleks. Blowfish adalah salah satu block cipher tercepat yang digunakan oleh banyak orang, kecuali saat mengganti kunci. Setiap kunci baru perlu diproses sebelumnya yang membutuhkan waktu yang sama dengan mengenkripsi sekitar 4 kilobyte teks, yang sangat lambat dibandingkan dengan block cipher lainnya. Hal ini menghentikan penggunaannya dalam aplikasi tertentu (seperti dalam sistem tertanam terkecil seperti smartcard awal), tetapi tidak menjadi masalah dalam aplikasi lain. Dalam salah satu aplikasi, ini sebenarnya bagus: metode password-hashing yang digunakan di OpenBSD menggunakan algoritma yang berasal dari Blowfish yang memanfaatkan jadwal kunci yang lambat; idenya adalah bahwa usaha komputasi ekstra yang diperlukan memberikan perlindungan terhadap serangan kamus. Lihat penguatan kunci.
Blowfish memiliki ukuran blok 64-bit dan panjang kunci variabel dari 0 hingga 448 bit. Ini adalah cipher Feistel 16-putaran dan menggunakan S-boxes yang bergantung pada kunci besar. Strukturnya mirip dengan CAST-128, yang menggunakan kotak-S tetap.
Pada tahun 1996, Serge Vaudenay menemukan serangan known-plaintext yang membutuhkan 28r + 1 plaintext yang diketahui untuk dipecahkan, dimana r adalah jumlah putaran. Selain itu, dia juga menemukan kelas kunci lemah yang dapat dideteksi dan dipecahkan oleh serangan yang sama dengan hanya 2 4r + 1plaintext yang diketahui. Serangan ini tidak dapat digunakan untuk melawan Blowfish biasa; serangan ini mengasumsikan pengetahuan tentang S-box yang bergantung pada kunci. Vincent Rijmen, dalam makalah Ph.D-nya, memperkenalkan serangan diferensial orde kedua yang dapat memecahkan empat putaran dan tidak lebih. Masih belum ada cara yang diketahui untuk memecahkan 16 putaran penuh, selain dari pencarian brute-force. Bug ekstensi tanda di salah satu kode C yang diterbitkan telah ditemukan pada tahun 1996.
Tidak ada kriptanalisis yang baik pada versi putaran penuh Blowfish yang diketahui publik sampai tahun 2008. Namun, pada tahun 2007, Bruce Schneier mencatat bahwa sementara Blowfish masih digunakan, dia merekomendasikan untuk menggunakan algoritma Twofish yang baru sebagai gantinya
Halaman terkait
- Standar Enkripsi Lanjutan
- eSTREAM - Sebuah evaluasi stream cipher baru yang sedang dilakukan oleh Uni Eropa.
- Twofish
- MacGuffin
Pertanyaan dan Jawaban
T: Apa itu Blowfish?
J: Blowfish adalah cipher blok simetris yang dikunci yang dibuat pada tahun 1993 oleh Bruce Schneier. Sejak saat itu telah dimasukkan dalam banyak produk enkripsi.
T: Untuk apa Blowfish dibuat?
J: Blowfish dibuat sebagai algoritma tujuan umum untuk menggantikan algoritma DES yang lama dan untuk menghilangkan masalah dan kesulitan algoritma enkripsi lainnya.
T: Berapa lama panjang kunci untuk Blowfish?
J: Panjang kunci untuk Blowfish dapat berkisar dari 0 hingga 448 bit.
T: Apa saja fitur desain Blowfish?
J: Beberapa fitur desain termasuk kotak-S yang bergantung pada kunci dan jadwal kunci yang sangat kompleks.
T: Apakah ada kriptanalisis yang diketahui pada Blowfish versi putaran penuh?
J: Pada tahun 2008, tidak ada cara yang diketahui untuk memecahkan 16 putaran penuh selain dari pencarian brute-force.
T: Jenis serangan apa yang ditemukan Serge Vaudenay terhadap Blowfish?
J: Serge Vaudenay menemukan serangan known-plaintext yang membutuhkan 28r + 1 plaintext yang diketahui untuk dipecahkan, di mana r adalah jumlah putaran. Dia juga menemukan kelas kunci lemah yang dapat dideteksi dan dipecahkan oleh serangan yang sama dengan hanya 24r + 1 plainteks yang diketahui.
T: Apakah Bruce Schneier merekomendasikan untuk menggunakan Twofish dan bukan Blowfish sekarang?
J: Ya, Bruce Schneier merekomendasikan penggunaan Twofish daripada Blowfish sekarang karena langkah-langkah keamanannya yang lebih baik dibandingkan dengan algoritma yang lebih tua seperti DES atau bahkan yang lebih baru seperti AES.