17
Algoritma Blowfish terdiri atas dua bagian :
a. Key-Expansion
Berfungsi merubah kunci Minimum 32-bit, Maksimum 448-bit menjadi beberapa array subkunci subkey dengan total 4168 byte.
b. Enkripsi Data
Terdiri dari iterasi fungsi sederhana Feistel Network sebanyak 16 kali putaran. Setiap putaran terdiri dari permutasi kunci-dependent dan
substitusi kunci- dan data-dependent. 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.
Blowfish menggunakan subkunci yang besar. Kunci tersebut harus dihitung sebelum enkripsi atau deskripsi data. Blowfish adalah algoritma
yang menerapkan jaringan Feistel Feistel Network yang terdiri dari 16 putaran. Input adalah elemen 64-bit,X. Blowfish termasuk dalam kategori
Kriptographi kunci Simetri yang mana kunci yang dipakai untuk menutup dan membuka itu menggunakan kunci yang sama.
Pada algoritma Blowfish, digunakan banyak subkey. Kunci-kunci ini harus dihitung atau dibangkitkan terlebih dahulu sebelum dilakukan
enkripsi atau dekripsi data. Tujuan dari metode ini adalah untuk mengacak urutan bit-bit pada sebuah blok. Metode ini berbeda dengan
metode substitusi pada pemanipulasian bit. Perbedaannya adalah pada
18
metode ini digunakan acuan yang telah pasti dalam pensubstitusian bit. Acuan tersebut tidak memiliki pola khusus, dan pada kebanyakan
algoritma kriptografi, acuan tersebut telah ditetapkan oleh si perancang algoritma. Dinamakan kotak permutasi, sebab merupakan sebuah kotak 2
dimensi yang setiap isinya memiliki informasi bit tersebut harus dipindahkan ke urutan keberapa pada blok tersebut. Blowfish
memanfaatkan kotak permutasi dalam beberapa prosesnya. Kotak permutasi ini bertujuan untuk mengacaukan urutan bit, sehingga mencegah
kriptanalis yang akan menyerang algoritma tersebut menggunakan metode seperti metode kunci lemah.
2.5. Enkripsi Algoritma