![cover image](https://wikiwandv2-19431.kxcdn.com/_next/image?url=https://upload.wikimedia.org/wikipedia/commons/thumb/e/ee/Twofishalgo.svg/langid-640px-Twofishalgo.svg.png&w=640&q=50)
Twofish
penyandian blok / From Wikipedia, the free encyclopedia
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.
![]() Algoritme 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] |
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.