Home

blowfish

Blowfish is a symmetric-key block cipher designed by Bruce Schneier and released in 1993 as a fast, free alternative to existing ciphers. It operates on 64-bit data blocks and supports variable key lengths from 32 to 448 bits. Blowfish is structured as a Feistel network with 16 rounds, using a key‑dependent P-array and four S-boxes to mix key material and data.

The algorithm uses a key schedule that initializes an 18-entry P-array of 32-bit subkeys and four 256-entry

Security and usage context: No practical attacks against the full 16-round Blowfish have been demonstrated. The

Other uses of the term: Blowfish should not be confused with the blowfish, a common name for

S-boxes.
These
structures
are
derived
from
the
user-supplied
key
and
then
transformed
through
encryption
of
all-zero
data
to
produce
the
subkeys
used
during
encryption
and
decryption.
In
operation,
the
left
and
right
halves
of
the
data
are
processed
through
16
rounds
of
the
Feistel
network,
with
the
F-function
combining
S-box
lookups
and
arithmetic,
followed
by
a
final
swap
and
key-dependent
output.
64-bit
block
size
makes
it
less
ideal
for
very
large
data
streams
or
modern
high‑volume
protocols,
where
128-bit
blocks
are
preferred.
Blowfish
is
not
part
of
contemporary
security
standards
and
has
largely
been
superseded
by
AES,
but
it
remains
available
in
many
software
libraries
as
a
legacy
option.
The
algorithm
and
its
reference
implementation
are
freely
available
and
not
patented.
certain
pufferfish
species
in
the
biological
sense.