General | |
---|---|
Designers | Bruce Schneier[1] |
First published | 1993[1] |
Successors | Twofish |
Cipher detail | |
Key sizes | 32–448 bits |
Block sizes | 64 bits |
Structure | Feistel network |
Rounds | 16 |
Best public cryptanalysis | |
Four rounds of Blowfish are susceptible to a second-order differential attack (Rijmen, 1997);[2] for a class of weak keys, 14 rounds of Blowfish can be distinguished from a pseudorandom permutation (Vaudenay, 1996). |
Blowfish is a symmetric-key block cipher, designed in 1993 by Bruce Schneier and included in many cipher suites and encryption products. Blowfish provides a good encryption rate in software, and no effective cryptanalysis of it has been found to date for smaller files. It is recommended Blowfish should not be used to encrypt files larger than 4GB in size, Twofish should be used instead.[3]
Blowfish has a 64-bit block size and therefore it could be vulnerable to Sweet32 birthday attacks.[4]
Schneier designed Blowfish as a general-purpose algorithm, intended as an alternative to the aging DES and free of the problems and constraints associated with other algorithms. At the time Blowfish was released, many other designs were proprietary, encumbered by patents, or were commercial or government secrets. Schneier has stated that "Blowfish is unpatented, and will remain so in all countries. The algorithm is hereby placed in the public domain, and can be freely used by anyone."[5]
Notable features of the design include key-dependent S-boxes and a highly complex key schedule.
:0
was invoked but never defined (see the help page).:1
was invoked but never defined (see the help page).blowfish-paper
was invoked but never defined (see the help page).