Blowfish alias "OpenPGP.Cipher.4"
merupakan enkripsi yang termasuk dalam golongan Symmetric Cryptosystem , metoda enkripsinya mirip dengan DES (DES-like Cipher) diciptakan
oleh seorang Cryptanalyst bernama
Bruce Schneier Presiden perusahaan Counterpane Internet Security, Inc
(Perusahaan konsultan tentang kriptografi dan keamanan Komputer) dan
dipublikasikan tahun 1994. Sejak saat itu telah dilakukan berbagai macam
analisis, dan perlahan - lahan mulai
mendapat penerimaan sebagai algoritma enkripsi yang kuat. Dibuat untuk
digunakan pada komputer yang mempunyai microposesor besar (32-bit keatas dengan
cache data yang besar). Sampai saat
ini belum ada attack yang dapat memecahkan Blowfish.
Algoritma utama terbagi
menjadi dua subalgoritma utama, yaitu bagian ekspansi kunci dan bagian
enkripsi-dekripsi data. Pengekspansian kunci dilakukan pada saat awal dengan
masukan sebuah kunci dengan panjang 32 bit hingga 448 bit, dan keluaran adalah
sebuah array subkunci dengan total 4168 byte.
Bagian enkripsi-dekripsi
data terjadi dengan memanfaatkan perulangan 16 kali terhadap jaringan feistel.
Setiap perulangan terdiri dari permutasi dengan masukan adalah kunci, dan
substitusi data. Semua operasi dilakukan dengan memanfaatkan operator Xor dan
penambahan. Operator penambahan dilakukan terhadap empat array lookup yang
dilakukan setiap putarannya.
Blowfish juga merupakan cipher blok, yang berarti
selama proses enkripsi dan dekripsi, Blowfish akan membagi pesan menjadi
blok-blok dengan ukuran yang sama panjang. Panjang blok untuk algoritma
Blowfish adalah 64-bit. Pesan yang bukan merupakan kelipatan delapan byte akan
ditambahkan bit-bit tambahan (padding) sehingga ukuran untuk tiap blok
sama.
Blowfish adalah algoritma yang tidak dipatenkan
dan license free, dan tersedia secara gratis untuk berbagai macam kegunaan.
Blowfish dirancang dan diharapkan mempunyai kriteria perancangan yang diiginkan
sebagai berikut :
1.
Cepat, Blowfish melakukan enkripsi data pada microprocessor 32-bit
dengan rate 26 clock cycles per byte.
2. Compact, Blowfish dapat dijalankan pada memory
kurang dari 5K.
3. Sederhana, Blowfish hanya menggunakan operasi –
operasi sederhana, Blowfish hanya menggunakan operasi – operasi sederhana,
seperti : penambahan, XOR, dan lookup tabel pada operan32-bit.
4. Memiliki tingkat keamanan yang bervariasi,
panjang kunci yang digunakan oleh Blowfish dapat bervariasi dan bisa sampai
sepanjang minimal 32-bit, maksimal 448 -bit, Multiple 8 bit, defalutl 128 bit.
Algoritma Blowfish terdiri atas dua bagian :
Key-Expansion
Berfungsi merubah kunci (Minimum 32-bit, Maksimum 448-bit) menjadi
beberapa array subkunci (subkey) dengan total 4168 byte.
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.
Tidak ada komentar:
Posting Komentar