Tolong jelaskan mengenai Algoritme dari Blowfish (penyandian)

Blowfish memiliki ukuran blok 64 bit dan ukuran kunci dari 32 sampai 448 bit. Algortime menggunakan sandi Feistel 16 ronde dan menggunakan kotak-S besar yang bergantung pada kunci. Strukturnya menyerupai CAST-128 yang menggunakan kotak-S tetap.

Diagram di sebelah menampilkan proses enkripsi Blowfish. Tiap garis menggambarkan 32 bit. Ada lima larik subkunci: satu larik-P (disimbolkan K pada diagram untuk membedakan dari teks asli P) berukuran 18 dan empat kotak-S berukuran 256 (, , , ).

Tiap ronde terdiri dari empat langkah:

Lakukan XOR pada bagian kiri data (L) dengan nilai ke-r pada larik-P.

Pakai hasil XOR sebagai masukan ke fungsi F Blowfish.

Lakukan XOR pada keluaran fungsi F dengan bagian kanan data (R).