Blowfish это 64-бит блочный шифр разработанный Шнайером (Schneier) в 1993 году.
Это шифр Файстела (Feistel) и каждый проход состоит из зависимой от ключа перестановки
и зависимой от ключа с данными замены. Все операции основаны на операциях XOR и
прибавлениях к 32-битным словам (XORs and additions on 32-bit words). Ключ имеет
переменную длину (максимально 448 бит) и используется для генерации нескольких
подключевых массивов (subkey arrays). Шифр был создан специально для 32-битных
машин и существенно быстрее DES.
В 1994 Dr.Dobb журнал спонсировал открытое соревнование с выиграшем в $1000.
Это соревнование закончилось в Апреле 1995 и среди результатов было открыто
существование нескольких слабых ключей. Однако, Blowfish может считаться
защищенным, и Шнайер пригласил криптоаналитиков для продолжения исследования
его шифра.