V kryptografii je Blowfish symetrická bloková šifra s klíčem, kterou v roce 1993 vytvořil Bruce Schneier a která je od roku 1993 součástí velkého počtu šifrovacích produktů. Blowfish má dobrou míru šifrování v softwaru a do roku 2008 nebyl nalezen žádný model jeho kryptoanalytického útoku. Větší pozornosti se však nyní těší algoritmus blokové šifry AES.

Schneier vytvořil Blowfish jako univerzální algoritmus, který měl nahradit starý algoritmus DES a odstranit problémy a obtíže jiných šifrovacích algoritmů. V době, kdy byl Blowfish vydán, bylo mnoho jiných algoritmů proprietárních nebo tajných. Schneier uvedl, že "Blowfish není patentován a zůstane jím ve všech zemích. Algoritmus se tímto stává veřejným majetkem a může být volně používán kýmkoli."

Mezi hlavní rysy návrhu patří S-skříňky závislé na klíči a velmi složitý plán klíčů. Blowfish je jednou z nejrychlejších blokových šifer, kterou používá mnoho lidí, s výjimkou případů, kdy se mění klíče. Každý nový klíč je třeba předem zpracovat, což trvá stejně dlouho jako zašifrování přibližně 4 kilobajtů textu, což je ve srovnání s jinými blokovými šiframi velmi pomalé. To brání jejímu použití v některých aplikacích (například v nejmenších vestavěných systémech, jako byly první čipové karty), ale v jiných aplikacích to není problém. V jedné z aplikací je to vlastně dobře: metoda šifrování hesel používaná v OpenBSD používá algoritmus pocházející z Blowfish, který využívá pomalého rozvrhu klíčů; myšlenka spočívá v tom, že dodatečná výpočetní náročnost poskytuje ochranu proti slovníkovým útokům. Viz posilování klíčů.

Blowfish má 64bitovou velikost bloku a proměnnou délku klíče od 0 do 448 bitů Je to 16kolová Feistelova šifra a používá velké S-boxy závislé na klíči. Strukturou je podobná šifře CAST-128, která používá pevné S-boxy.

V roce 1996 Serge Vaudenay objevil útok známým textem, k jehož prolomení je třeba 28r + 1 známých otevřených textů, kde r je počet kol. Kromě toho našel také třídu slabých klíčů, které lze odhalit a prolomit stejným útokem s pouhými 24r + 1 známými otevřenými texty. Tento útok nelze použít proti běžnému Blowfishovi; předpokládá znalost S-boxů závislých na klíči. Vincent Rijmen ve svých doktorských pracích zavedl diferenciální útok druhého řádu, který dokáže prolomit čtyři kola a ne více. Stále není znám žádný způsob, jak prolomit celých 16 kol, kromě hledání hrubou silou. V roce 1996 byla v jednom z publikovaných kódů v jazyce C nalezena chyba v rozšíření znaku.

Do roku 2008 nebyla veřejně známa žádná dobrá kryptoanalýza plné verze Blowfish. V roce 2007 však Bruce Schneier poznamenal, že ačkoli se Blowfish stále používá, doporučil místo něj používat nový algoritmus Twofish.