Twofish
Informasi umum | |
---|---|
Pendesain | Bruce Schneier John Kelsey, Doug Whiting, David Wagner, Chris Hall, dan Niels Ferguson |
Pertama kali dipublikasikan | 1998 |
Turunan dari | Blowfish, SAFER, Square |
Terkait dengan | Threefish |
Sertifikasi | Finalis AES |
Detail penyandian | |
Ukuran kunci | 128, 192, atau 256 bit |
Ukuran blok | 128 bit |
Struktur | Jaringan Feistel |
Ronde | 16 |
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] |
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.
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 | sunting sumber]- ^ Ship Moriai; Yiqun Lisa Yin (2000). "Cryptanalysis of Twofish (II)" (PDF). Diakses tanggal 14 Januari 2013.
- ^ Niels Ferguson (5 Oktober 1999). "Impossible differentials in Twofish" (PDF). Diakses tanggal 14 Januari 2013.
- ^ 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 | sunting sumber]- Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall, dan Niels Ferguson (15 Juni 1998). "The Twofish Encryption Algorithm" (PDF/PostScript).
- Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall, dan Niels Ferguson (22 Maret 1999). The Twofish Encryption Algorithm: A 128-Bit Block Cipher. New York: John Wiley & Sons. ISBN 0-471-35381-7.