Na criptografia, Twofish é uma cifra de bloco de chave simétrica com um tamanho de bloco de 128 bits e comprimentos de chave de até 256 bits.

Em 1997, o NIST anunciou para competição a escolha de um sucessor do DES para ser conhecido como AES, Twofish foi um dos cinco finalistas da competição Advanced Encryption Standard, mas não foi selecionado como padrão.

Dois peixes está relacionado com a cifra do bloco anterior Blowfish. As principais características do Twofish são o uso de caixas S pré-calculadas dependentes de chaves, e um cronograma de chaves relativamente complexo. Uma metade de uma chave n-bit é usada como a chave de criptografia real e a outra metade da chave n-bit é usada para modificar o algoritmo de criptografia (caixas S dependentes de chave). Twofish usa alguns elementos de outros projetos; por exemplo, a transformação pseudo-Hadamard (PHT) da família de cifras SAFER. Twofish utiliza a mesma estrutura Feistel que a DES.

Na maioria das plataformas de software Twofish é ligeiramente mais lento que Rijndael (o algoritmo escolhido para o Advanced Encryption Standard) para chaves de 128 bits, mas um pouco mais rápido para chaves de 256 bits.

Twofish foi projetado por Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall e Niels Ferguson; a "equipe ampliada Twofish" que se reuniu para fazer mais análises criptográficas de Twofish e outros concorrentes da AES incluíam Stefan Lucks, Tadayoshi Kohno e Mike Stay.

O algoritmo Twofish é livre para qualquer pessoa usar sem qualquer restrição. A cifra do Twofish não foi patenteada e o exemplo de software de sua especificação foi colocado em domínio público. Entretanto, Twofish não é amplamente utilizado como o Blowfish, que tem estado disponível por um período de tempo mais longo.