Key-Expansion Enkripsi Data LANDASAN TEORI

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