Generated by GPT-5-mini| Twofish | |
|---|---|
| Name | Twofish |
| Designer | Bruce Schneier; John Kelsey; Doug Whiting; Chris Hall; Niels Ferguson; Robert Wagner |
| Publish date | 1998 |
| Key size | 128, 192, 256 bits |
| Block size | 128 bits |
| Structure | Feistel network |
| Rounds | 16 |
| Cryptanalysis | related-key attacks (reduced-round) |
Twofish
Twofish is a symmetric key block cipher designed for high-performance software and hardware implementations, supporting 128-bit block size and key sizes of 128, 192, and 256 bits. Developed by a team led by Bruce Schneier alongside John Kelsey, Doug Whiting, Chris Hall, Niels Ferguson, and Robert Wagner, it was one of the five finalists in the National Institute of Standards and Technology (NIST) Advanced Encryption Standard competition, ultimately succeeded by Rijndael as the AES standard. Twofish influenced subsequent cipher design discussions in cryptographic communities including those around IETF, IEEE, ISO/IEC JTC1/SC27, and academic venues such as CRYPTO and EUROCRYPT.
Twofish originated during the late 1990s AES selection process organized by NIST; the design team included cryptographers associated with Counterpane Internet Security and academic institutions. The cipher’s submission followed earlier contemporary projects like RC6, Serpent, MARS, and Rijndael; it underwent public scrutiny, analysis, and commentary in forums tied to USENIX, RSA Conference, and the IACR. Public vetting involved researchers from Bell Labs, MIT, Stanford University, University of Cambridge, École Polytechnique Fédérale de Lausanne, and Nokia Research Center, producing technical reports and critiques presented at FSE and CHES. Although not selected as AES, Twofish gained traction through endorsements from practitioners at OpenBSD, NetBSD, FreeBSD, and software projects by developers affiliated with Mozilla Foundation, GNU Project, and Red Hat.
Twofish employs a 16-round Feistel network inspired by designs in Blowfish, CAST-128, and Serpent, integrating key-dependent S-boxes and a Maximum Distance Separable matrix derived from coding theory linked to research at Berkeley. The key schedule uses concepts related to Reed–Solomon codes and MDS matrices and relies on components influenced by work at RSA Security and designs discussed at IACR. The round function incorporates fixed 8×8 S-box constructions combined with keyed permutations and a pseudo-Hadamard transform (PHT) related to mathematics studied at MIT and ETH Zurich. Specification documents were circulated alongside reference code in C and assembly used by practitioners at Intel, AMD, ARM, and Sun Microsystems for hardware acceleration discussions at IEEE Symposium on Computer Arithmetic and Design Automation Conference.
Cryptanalysts from institutions such as KTH Royal Institute of Technology, Technische Universität Darmstadt, Université Paris-Sud, Tel Aviv University, University College London, and ENS Lyon analyzed Twofish throughout and after the AES process. Known attacks include related-key distinguishing attacks on reduced-round variants reported in papers at CRYPTO and EUROCRYPT; these analyses referenced techniques developed in studies of DES, IDEA, Skipjack and Camellia. No practical full-key recovery attacks on full 16-round Twofish have been demonstrated in the literature published by researchers at NIST and IACR. Security discussions also compared Twofish resistance to differential-linear and integral attacks examined in work from IBM Research and Microsoft Research.
Implementations of Twofish exist across open-source and proprietary ecosystems maintained by organizations like the OpenSSL Project, GnuTLS, LibreSSL, and the OpenPGP community. Optimized C, x86 assembly, and ARM NEON implementations were produced by contributors associated with Linux Foundation, Canonical (company), and Debian Project, with benchmarking on processors from Intel and ARM Holdings. Hardware implementations appeared in FPGA and ASIC prototypes developed at Xilinx, Altera, Broadcom, and university labs at CMU and UC Berkeley; performance comparisons often cited against AES-NI accelerated Rijndael as discussed at ACM SIGARCH and USENIX FAST. Twofish showed competitive software throughput in contexts lacking AES hardware support, as documented by engineers from Oracle Corporation and researchers publishing at ACM CCS.
Twofish saw adoption in products and projects connected to PGP Corporation derivatives, GnuPG, TrueCrypt, and its successors maintained by teams at Open Source Security (OpenBSD). It appeared as a selectable cipher in VPN suites developed by OpenVPN Community, in disk encryption tools used by Tails (operating system), and in protocols implemented by developers at Microsoft and Apple during exploratory phases. Twofish featured in academic prototypes for secure storage and in experimental systems at NASA and European Space Agency research groups. Standards bodies including IETF working groups discussed Twofish alongside other finalists during normative debates at meetings of IETF.
The Twofish team publicly stated the algorithm was intended to be free of encumbering patents, facilitating inclusion in open-source projects overseen by entities such as the Free Software Foundation and the Open Source Initiative. Licensing choices enabled use by commercial vendors such as Microsoft Corporation and Red Hat without royalty concerns, and legal analyses from firms like Morrison & Foerster and Hogan Lovells considered Twofish suitable for integration into products distributed under GPL and BSD-style permissive licenses. Some implementations carried their own patents or patent claims by hardware vendors such as Intel Corporation and ARM Holdings for microarchitectural optimizations, leading corporate legal teams to coordinate licensing for chipset-level acceleration.
Category:Block ciphers Category:Cryptography