0 penilaian0% menganggap dokumen ini bermanfaat (0 suara)
105 tayangan24 halaman
Algoritma blowfish merupakan algoritma kriptografi simetrik blok yang dirancang pada tahun 1993 oleh Bruce Schneier untuk menggantikan DES. Algoritma ini bebas paten dan berada di domain publik. Blowfish bekerja dengan membagi pesan menjadi blok 64-bit yang kemudian dienkripsi melalui 16 putaran fungsi Feistel yang terdiri atas operasi XOR, penambahan, dan pencarian tabel. Proses dekripsinya mirip dengan enkripsi tetapi menggunakan ur
Algoritma blowfish merupakan algoritma kriptografi simetrik blok yang dirancang pada tahun 1993 oleh Bruce Schneier untuk menggantikan DES. Algoritma ini bebas paten dan berada di domain publik. Blowfish bekerja dengan membagi pesan menjadi blok 64-bit yang kemudian dienkripsi melalui 16 putaran fungsi Feistel yang terdiri atas operasi XOR, penambahan, dan pencarian tabel. Proses dekripsinya mirip dengan enkripsi tetapi menggunakan ur
Algoritma blowfish merupakan algoritma kriptografi simetrik blok yang dirancang pada tahun 1993 oleh Bruce Schneier untuk menggantikan DES. Algoritma ini bebas paten dan berada di domain publik. Blowfish bekerja dengan membagi pesan menjadi blok 64-bit yang kemudian dienkripsi melalui 16 putaran fungsi Feistel yang terdiri atas operasi XOR, penambahan, dan pencarian tabel. Proses dekripsinya mirip dengan enkripsi tetapi menggunakan ur
Setiawan Widiyanto - Sejarah Algoritma pertama kali dikembangkan untuk mengijinkan organisasi tertentu untuk mengakses suatu informasi. Algoritma kriptografi mengalami perkembangan sehingga hasil lebih memuaskan. Algoritma contohnya, RSA, BLOWFISH,IDEA, DES, AES, dan lainya. BLOWFISH Blowfish merupakan algoritma kunci simetrik cipher blok yang dirancang pada tahun 1993 oleh Bruce Schneier untuk menggantikanDES. Schneier menyatakan bahwa blowfish bebas paten dan akan berada pada domain publik Keberhasilan blowfish dalam menembus pasar telah terbukti dengan diadopsinya blowfish sebagai Open Cryptography Interface(OCI) pada kernel linux versi 2.5 keatas. Flowchart algoritma blowfish Kriteria Algortima Blowfish Blowfish adalah algoritma kriftografi kunci simetri. Blowfish juga merupakan cipher blok Blowfish akan membagi pesan menjadi blok-blok dengan ukuran yang sama panjang Panjang blok untuk algoritmaBlowfish adalah 64-bit. Blowfish menerapkan teknik kunci berukuran sembarang. Ukuran kunci yang dapat diterima oleh Blowfish adalah antara 32 bit hingga 448 bit, dengan ukuran default sebedar 128 bit Lanjutan. Algoritma utama terbagi menjadi dua subalgoritma utama,yaitu bagian ekspansi kunci dan bagian enkripsi-dekripsi data. Blowfish memanfaatkan teknik pemanipulasian bit dan teknik pemutaran ulang dan pergiliran kunci yang dilakukan sebanyak 16 kali 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
Alur Enkripsi Algoritma Blowfish Sebelum Melakukan enkripsi harus menghitung subkey yang akan digunakan Bentuk inisial P-array sebanyak 18 buah (P1,P2,..............P18) masing-msing bernilai 32-bit, dengan string yang sudah pasti yang terdiri dari digit hexa decimal Pi, Array P terdiri dari delapan belas kunci 32-bit subkunci : P 1 ,P 2 ,.......,P 18
Bentuk S-box sebanyak 4 buah masing-masing bernilai 32-bit yang memiliki masukan 256. Empat 32-bit S-box masing- masing mempunyai 256 entri :
Alur Enkripsi Algoritma Blowfish(cont) Enkrip semua string nol dengan algoritma blowfish dengan menggunakan subkunci seperti dijelaskan pada langkah (1) dan (2) Ganti P1 dan P2 dengan keluaran dari langkah (3) Enkrip keluaran dari langkah (3) dengan P-array da S- array (S-box) P1 dan P2 yang sudah diganti dengan hasil dari langkah (3) dienkripsi dengan algoritma blowfish Ganti P3 dan P4 dengan keluaran dari langkah (5). Hasil dari langkah (5) digunakan untuk menggantikan P3 dan P4 Lanjutkan proses tersebut , ganti seluruh elemen dari P- array, Kemudian seluruh keempat S-Box Alur Enkripsi Algoritma Blowfish(cont) Plaintext yang akan dienkripsi diasumsikan sebagai masukan, Plaintext tersebut diambil sebanyak 64-bit, dan apabila kurang dari 64-bit maka kita tambahkan bitnya, supaya dalam operasi nanti sesuai dengan datanya.
Alur Enkripsi Algoritma Blowfish(cont) Hasil pengambilan tadi dibagi 2, 32-bit pertama disebut XL, 32-bit yang kedua disebut XR. Selanjutnya lakukan operasi XL = XL xor Pi dan XR = F(XL) xor XR Hasil dari operrasi diatas ditukar XL menjadi XR dan XR menjadi XL Lakukan sebanyak 16 kali, perulangan yang ke-16 lakukan lagi proses penukaran XL dan XR. Pada proses ke-17 lakukan operasi untuk XR = XR xor P17 dan XL = XL xor P18. Proses terakhir satukan kembali XL dan XR sehingga menjadi 64-bit kembali.
Flowchart Blowfish
Gambar Alur Algoritma Blowfish
Gambar fungsi Feistel dalam Blowfish Proses yang terjadi pada Fungsi Feistel tidak lain merupakan proses S-box Pada proses ini terjadi penelusuran tabel (table lookup) Gambar fungsi Feistel dalam Blowfish Proses yang terjadi pada Fungsi Feistel tidak lain merupakan proses S-box Pada proses ini terjadi penelusuran tabel (table lookup) Dalam proses S-box terjadi proses perhitungan bit, dimana hasil penelusuran tabel pada S-box pertama akan ditambahkan dg hasil S-box yg ke-2, kemudian hasil penjumlahannya di Xor-kan dg hasil S-box yg ke- 3 hasilnya kemudian ditambahkan kembali dg S-box yg ke-4, maka menghasilkan output berukuran 32 bit Gambar fungsi Feistel dalam Blowfish Proses yang terjadi pada Fungsi Feistel tidak lain merupakan proses S-box Pada proses ini terjadi penelusuran tabel (table lookup) Dalam proses S-box terjadi proses perhitungan bit, dimana hasil penelusuran tabel pada S-box pertama akan ditambahkan dg hasil S-box yg ke-2, kemudian hasil penjumlahannya di Xor-kan dg hasil S-box yg ke- 3 hasilnya kemudian ditambahkan kembali dg S-box yg ke-4, maka menghasilkan output berukuran 32 bit Dekripsi Proses dekripsi sama dengan proses enkripsi hanya saja subkey-nya dibalik P18 diproses terlebih dahulu. P18 xor XL kemudian F(XL) xor XR lalu ditukar tempat, begitu seterusnya. Dan diakhiri pada P1 dan P2 tidak dilakukan penukaran melainkan penyatuan untuk mendapatkan plainteks Dekripsi
Menghilangkan Padding Setelah menghasilkan plainteks, maka selanjutnya ialah memeriksa apakah plainteks yang dihasilkan terjadi penambahan bit (padding) sebelum dienkripsi atau tidak Jika terjadi penambahan bit maka bit tersebut harus dilepaskan untuk mengembalikan plainteks utuh seperti sebelum di enkripsi Menghilangkan Padding
Kelemahan Blowfish Kebutuhan memorinya yang besar tidak memungkinkan untuk aplikasi kartu pintar (smart card). Blowfish tidak cocok untuk aplikasi seperti packet switching, dengan perubahan kunci yang sering, atau sebagai fungsi hash satu arah. Referensi http://www.schneier.com http://www.codeproject/KB/security/blowfish/Blowfis h.zip http://www.design- reuse.com/articles/5922/encrypting-data-with-the- blowfish-algorithm