În criptografie, Twofish este un cifru bloc cu cheie simetrică, cu o dimensiune a blocului de 128 de biți și o lungime a cheii de până la 256 de biți.

În 1997, NIST a anunțat o competiție pentru a alege un succesor al DES care să fie cunoscut sub numele de AES, Twofish a fost unul dintre cei cinci finaliști ai competiției Advanced Encryption Standard, dar nu a fost selectat ca standard.

Twofish este înrudit cu Blowfish, un cifru bloc anterior. Principalele caracteristici ale lui Twofish sunt utilizarea de S-box-uri precalculate în funcție de cheie și un program de chei relativ complex. O jumătate dintr-o cheie de n biți este utilizată ca cheie de criptare efectivă, iar cealaltă jumătate a cheii de n biți este utilizată pentru a modifica algoritmul de criptare (S-boxes dependente de cheie). Twofish utilizează unele elemente din alte modele; de exemplu, transformarea pseudo-Hadamard (PHT) din familia de cifrare SAFER. Twofish utilizează aceeași structură Feistel ca și DES.

Pe majoritatea platformelor software, Twofish este puțin mai lent decât Rijndael (algoritmul ales pentru Advanced Encryption Standard) pentru chei pe 128 de biți, dar ceva mai rapid pentru chei pe 256 de biți.