Na criptografia, Blowfish é uma cifra simétrica de blocos que pode ser usado em substituição ao DES, algoritmo que possuía em torno de 19 anos de uso,e era vulnerável a ataques por força bruta devido ao tamanho de sua chave (56 bits), ou em substituição ao IDEA. O Blowfish apresenta uma rede de Feistel de 16 iterações com tamanho de bloco de 64-bits, uma chave que pode variar entre 32 a 448-bits, e S-boxes altamente chaves-dependentes, tornando-o ideal para aplicações tanto domésticas, quanto comerciais.[1] O Blowfish foi desenvolvido em 1993 por Bruce Schneier como uma alternativa grátis mais rápida para os algorítmos criptográficos existentes. Desde então ele vem sendo analisado de forma considerável e está conquistando a aceitação do mercado como um algoritmo forte. O Blowfish não é patenteado, tem sua licença grátis e está a disposição para todos.
O artigo original do Blowfish foi apresentado no "First Fast Software Encryption Workshop" ocorrido em Cambridge, NY, EUA. Os resultados do workshop foram publicados por Springer-Verlang, "Lecture Notes in Computer Science" #809, 1994). A edição de abril de 1994 de "Dr. Dobb's Journal" também tratou expôs a proposta de Bruce Schneier. "Blowfish -- One Year Later" foi publicada em Setembro de 1995 em outra edição de "Dr. J.R.' Bob' Dobb's Journal".
Muitos estudiosos em criptografia examinaram o Blowfish, entretanto, ainda são poucos os resultados publicados. Serge Vaudenay examinou chaves fracas no Blowfish: existe uma classe de chaves que podem ser detectadas - mas não "quebradas" - no Blowfish com variantes de 14 iterações ou menos.
Qualquer pessoa pode obter uma cópia do código-fonte do Blowfish a partir da Internet e fazer uso em suas aplicações. Não há regras de uso do código. Bruce Schneier pede, somente, que seja notificado de aplicações comerciais para que possam ser listadas em sua página na Internet.
Existem duas derivações do Blowfish: