Dalam kriptografi, Twofish adalah cipher blok kunci simetris dengan ukuran blok 128 bit dan panjang kunci hingga 256 bit.
Pada tahun 1997, NIST mengumumkan kompetisi untuk memilih penerus DES yang akan dikenal sebagai AES, Twofish adalah salah satu dari lima finalis kompetisi Advanced Encryption Standard, tetapi tidak terpilih sebagai standar.
Twofish terkait dengan cipher blok sebelumnya, Blowfish. Fitur utama Twofish adalah penggunaan kunci-kunci S-box yang bergantung pada kunci yang telah dihitung sebelumnya, dan jadwal kunci yang relatif kompleks. Setengah dari kunci n-bit digunakan sebagai kunci enkripsi yang sebenarnya dan setengah lainnya dari kunci n-bit digunakan untuk memodifikasi algoritma enkripsi (key-dependent S-boxes). Twofish menggunakan beberapa elemen dari desain lain; sebagai contoh, pseudo-Hadamard transform (PHT) dari keluarga sandi SAFER. Twofish menggunakan struktur Feistel yang sama dengan DES.
Pada sebagian besar platform perangkat lunak Twofish sedikit lebih lambat daripada Rijndael (algoritma yang dipilih untuk Advanced Encryption Standard) untuk kunci 128-bit, tetapi agak lebih cepat untuk kunci 256-bit.
Twofish didesain oleh Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall, dan Niels Ferguson; "tim Twofish yang diperluas" yang bertemu untuk membuat kriptanalisis lebih lanjut dari Twofish dan kompetitor AES lainnya termasuk Stefan Lucks, Tadayoshi Kohno, dan Mike Stay.
Algoritma Twofish bebas digunakan oleh siapa saja tanpa batasan apa pun. Twofish cipher belum dipatenkan dan contoh perangkat lunak dari spesifikasinya telah ditempatkan dalam domain publik. Namun, Twofish tidak digunakan secara luas seperti Blowfish, yang telah tersedia untuk jangka waktu yang lebih lama.