Blowfish encryption algorithm

HomePage | Recent changes | View source | Discuss this page | Page history | Log in |

Printable version | Disclaimers | Privacy policy

Blowfish is the name of a symmetric, secret key, block cipher designed in 1993 by Bruce Schneier. There is an official Blowfish website.

Blowfish has a 64 bit block size and a key length of anywhere from 32 bits to 448 bits. It is based on Schneier's idea that good security against both known and future cryptanalysis can hopefully be obtained by using large, pseudo-random, key dependent s-boxes.

It is one of the faster block cyphers in widespread use in terms of time to encrypt a given number of bytes. However, the time taken to set up a key before encryption starts is very slow by block cypher standards at approximately the same as encrypting 4 kilobytes of text. This prevents its use in certain applications, but is not a problem in others.

Also, Blowfish has a relatively large memory footprint at just over 4 kilobytes of RAM. This is not a problem even for older smaller desktop and laptop computers, but it does prevent use in the smallest embedded systems such as smart cards.

There is no effective cryptanalysis known publicly as of 2001 that works against Blowfish. It should be noted that, like other block cyphers with a 64 bit block, it is risky to encrypt extremely large texts (more than a few hundred megabytes) with a single key. If that is needed, a method with a larger block size should be used.

Within the limitations noted, Blowfish is a very useful and respected cipher and has seen widespread application.

see also cryptography