Twofish

penyandian blok

Twofish merupakan algoritme penyandian blok kunci simetris dengan ukuran blok 128 bit dan ukuran kunci hingga 256 bit. Algoritme ini termasuk lima finalis kontes AES, tetapi tidak terpilih sebagai standar. Algoritme ini berkaitan dengan penyandian Blowfish.

Twofish
Algoritme Twofish
Informasi umum
PendesainBruce Schneier
John Kelsey, Doug Whiting, David Wagner, Chris Hall, dan Niels Ferguson
Pertama kali dipublikasikan1998
Turunan dariBlowfish, SAFER, Square
Terkait denganThreefish
SertifikasiFinalis AES
Detail penyandian
Ukuran kunci128, 192, atau 256 bit
Ukuran blok128 bit
StrukturJaringan Feistel
Ronde16
Analisis kriptografi publik terbaik
Analisis kriptografi diferensial terpangkas membutuhkan sekitar 251 teks asal terpilih.[1] Analisis kriptografi diferensial tak mungkin memecahkan enam dari enam belas ronde untuk kunci berukuran 256 bit dalam 2256 langkah.[2]

Tujuan dari perancangan Twofish yang selaras dengan kriteria NIST untuk AES adalah untuk membuat suatu algoritme kriptografi yang efisien dan portabel. Rancangan yang fleksibel dapat menerima panjang kunci tambahan sehingga dapat diterapkan pada berbagai platform dan aplikasi serta cocok untuk penyandian aliran, fungsi hash, dan MAC. Rancangan yang sederhana memudahkan proses analisis dan implementasi algoritme.

Pada tahun 2000-an, pada berbagai platform, Twofish sedikit lebih lambat daripada Rijndael (algoritme AES terpilih) untuk kunci 128 bit, tetapi lebih cepat untuk kunci 256 bit. Namun, setelah pemilihan AES, Twofish semakin lebih lambat daripada Rijndael pada prosesor yang mendukung set instruksi AES.[3]

Algoritme Twofish menggunakan struktur jaringan Feistel dengan 16 putaran dan tambahan teknik pemutihan terhadap masukan dan keluaran. Teknik pemutihan sendiri adalah teknik melakukan operasi XOR terhadap materi kunci sebelum putaran pertama dan sesudah putaran akhir. Elemen di luar jaringan Feistel normal yang terdapat dalam algoritme Twofish adalah rotasi 1 bit. Proses rotasi ini dapat dipindahkan ke dalam fungsi Feistel (F) untuk membentuk struktur jaringan Feistel yang murni, tetapi hal ini membutuhkan tambahan rotasi kata sebelum langkah pemutihan keluaran.

Penyandian Twofish belum dipatenkan dan acuan implementasinya telah dipublikasikan di bawah domain publik. Hasilnya, algoritme Twofish dibebaskan kepada siapa pun untuk dipakai tanpa batasan tertentu. Ia termasuk ke dalam penyandian yang dimasukkan dalam standar OpenPGP (RFC 4880). Namun, Twofish masih kalah tenar daripada Blowfish yang telah tersedia lebih lama.

Rujukan sunting

  1. ^ Ship Moriai; Yiqun Lisa Yin (2000). "Cryptanalysis of Twofish (II)" (PDF). Diakses tanggal 14 Januari 2013. 
  2. ^ Niels Ferguson (5 Oktober 1999). "Impossible differentials in Twofish" (PDF). Diakses tanggal 14 Januari 2013. 
  3. ^ Bruce Schneier; Doug Whiting (7 April 2000). "A Performance Comparison of the Five AES Finalists" (PDF/PostScript). Diakses tanggal 14 Januari 2013. 

Bacaan lebih lanjut sunting

Lihat pula sunting