Thursday, April 18, 2013

Pengertian Algoritma Twofish/Blowfish

Algoritma Twofish/Blowfish

Twofish didesain oleh Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall, dan Niels Ferguson dari Laboratorium Counterpane System. Bruce Schneier juga mendesain algoritma Blowfish yang telah diimplementasi oleh lebih dari 130 aplikasi komersial. Twofish yang resmi, yaitu dengan 16 putaran, sampai saat ini belum terpecahkan. Namun untuk 5 putaran, telah berhasil dipecahkan dengan 222,5 plainteks terpilih dan 251 usaha (effort).
Twofish adalah block cipher 126 bit yang menerima kunci dengan panjang yang fleksibel sampai 256 bit. Cipher ini menggunakan cukup banyak metode dalam implementasinya, meliput jaringan Feistel (Feistel network), SBox, Matriks MDS, transformasi Pseudo-Hadamard, whitening, dan key schedule.
Gambar 6 memperlihatkan skema dari block cipher Twofish. Twofish menggunakan sebuah struktur seperti jaringan Feistel 16 putaran dengan tambahan whitening terhadap input dan output. Yang membuatnya bukan termasuk jaringan Feistel murni adalah adanya rotasi 1 bit. Sebenarnya rotasi ini dapat dimasukkan ke dalam fungsi F, agar dapat membentuk jaringan Feistel murni, namun hal ini membutuhkan rotasi tambahan terhadap word sebelum output dari tahap whitening.
Gambar 6 Skema Twofish
Plainteks dibagi menjadi empat word 32 bit. Pada tahap whitening input, word tersebut di-XOR-kan dengan empat word kunci, kemudian masuk ke dalam 16 putaran. Pada setiap putaran, dua word sebelah kiri digunakan sebagai masukan untuk dua fungsi g (salah satu word dirotasi 8 bit terlebih dulu). Fungsi g terdiri dari empat S-Box key-dependent, dan diikuti dengan tahap pengacakan linear menggunakan matriks MDS.
Hasil dari dua fungsi g dikombinasikan menggunakan Pseudo-Hadamard Transform (PHT), dan penambahan dua word kunci. Kedua hasil ini kemudian di-XOR-kan dengan dua word plainteks sebelah kanan (salah satunya dirotasikan 1 bit ke kiri, dan yang lain dirotasikan 1 bit ke kanan terlebih dulu). Bagian kiri dan kanan ini kemudian di-swap (tukar) untuk masuk ke putaran selanjutnya. Setelah 16 putaran, proses swap terakhir dikembalikan lagi keempat word di-XOR-kan dengan word kunci untuk menghasilkan cipherteks.


1 comment:

  1. Konfirmasi :
    Cakaran manual algoritma blowfish untuk enkripsi sms

    ReplyDelete

Kebahagiaan sejati bukanlah pada saat kita berhasil meraih apa yg kita perjuangkan, melainkan bagaimana kesuksesan kita itu memberi arti atau membahagiakan orang lain.