In der Kryptographie ist Twofish eine symmetrische Schlüsselblockchiffre mit einer Blockgröße von 128 Bit und Schlüssellängen bis zu 256 Bit.

1997 schrieb das NIST einen Wettbewerb zur Wahl eines Nachfolgers von DES mit dem Namen AES aus. Twofish war einer der fünf Finalisten des Wettbewerbs um den Advanced Encryption Standard, wurde aber nicht als Standard ausgewählt.

Twofish ist mit der früheren Blockchiffre Blowfish verwandt. Die Hauptmerkmale von Twofish sind die Verwendung von vorberechneten schlüsselabhängigen S-Boxen und ein relativ komplexer Schlüsselplan. Die eine Hälfte eines n-Bit-Schlüssels wird als eigentlicher Verschlüsselungsschlüssel verwendet und die andere Hälfte des n-Bit-Schlüssels wird zur Modifizierung des Verschlüsselungsalgorithmus verwendet (schlüsselabhängige S-Boxen). Twofish verwendet einige Elemente aus anderen Entwürfen; zum Beispiel die Pseudo-Hadamard-Transformation (PHT) aus der SAFER-Chiffrierfamilie. Twofish verwendet die gleiche Feistel-Struktur wie das DES.

Auf den meisten Software-Plattformen ist Twofish etwas langsamer als Rijndael (der gewählte Algorithmus für Advanced Encryption Standard) für 128-Bit-Schlüssel, aber etwas schneller für 256-Bit-Schlüssel.

Twofish wurde von Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall und Niels Ferguson entworfen; das "erweiterte Twofish-Team", das sich traf, um Twofish und andere AES-Konkurrenten, darunter Stefan Lucks, Tadayoshi Kohno und Mike Stay, weiter kryptografisch zu analysieren.

Der Twofish-Algorithmus kann von jedermann ohne jegliche Einschränkungen frei verwendet werden. Die Twofish-Chiffre wurde nicht patentiert, und das Software-Beispiel ihrer Spezifikation wurde der Öffentlichkeit zugänglich gemacht. Allerdings ist Twofish nicht so weit verbreitet wie der Blowfish, der schon seit längerer Zeit verfügbar ist.