Twofish  is a block cipher from Bruce Schneier's company Counterpane. It was designed as a candidate cipher for the AES competition, and was a finalist though not the winner. Like all candidates, it uses 128-bit blocks and supports key sizes of 128, 192 or 256 bits. It is a 16-round Feistel cipher using four key-dependent 8*8 S-boxes.
Except for the name, and using key-dependent S-boxes, it has little relationship to Blowfish; Twofish was a new design. It uses the pseudo-Hadamard transform in the round function. It has a successor named "Threefish", used in the Skein hash algorithm, a candidate in the Advanced Hash Standard contest. That is another new design.
The cipher is freely available for any use. It has a home page.
- Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall, Niels Ferguson (1998), Twofish: A 128-Bit Block Cipher