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.
Konfirmasi :
ReplyDeleteCakaran manual algoritma blowfish untuk enkripsi sms