Blowfish [3] is a 64-bit block cipher designed by Bruce Schneier and published in 1994. It was intended to be an attractive alternative to DES (see Data Encryption Standard) or IDEA. Today, the Blowfish algorithm is widely used and included in many software products.
Blowfish consists of 16 Feistel-like iterations. Each iteration operates on a 64-bit datablock, split into two 32-bits words. First, a round key is XORed to the left word. The result is then input to four key-dependent \(8\times32\)-bit S-boxes, yielding a 32-bit output word which is XORed to the right word. Both words are swapped and then fed to the next iteration.
References
Biryukov, A. and D. Wagner (1999). “Slide attacks.” Proceedings of Fast Software Encryption—FSE'99, Lecture Notes in Computer Science, vol. 1636, ed. L.R. Knudsen. Springer-Verlag, Berlin, 245–259.
Rijmen, V. (1997). “Cryptanalysis and Design of Iterated Block Ciphers.” PhD Thesis, Katholieke Universiteit Leuven.
Schneier, B. (1994). “Description of a new variable-length key, 64-bit block cipher (Blowfish).” Fast Software Encryption, FSE'93, Lecture Notes in Computer Science, vol. 809, ed. R.J. Anderson. Springer-Verlag, Berlin, 191–204.
Vaudenay, S. (1996). “On the weak keys of Blowfish.” Fast Software Encryption, FSE'96, Lecture Notes in Computer Science, vol. 1039, ed. D. Gollmann. Springer-Verlag, Berlin, 27–32.
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 International Federation for Information Processing
About this entry
Cite this entry
De Cannière, C. (2005). Blowfish. In: van Tilborg, H.C.A. (eds) Encyclopedia of Cryptography and Security. Springer, Boston, MA . https://doi.org/10.1007/0-387-23483-7_34
Download citation
DOI: https://doi.org/10.1007/0-387-23483-7_34
Publisher Name: Springer, Boston, MA
Print ISBN: 978-0-387-23473-1
Online ISBN: 978-0-387-23483-0
eBook Packages: Computer ScienceReference Module Computer Science and Engineering