Tämä artikkeli tai sen osa painottuu liikaa joihinkin aiheen osa-alueisiin. Artikkelia tulisi muuttaa tasapainoisemmaksi. Voit auttaa Wikipediaa parantamalla artikkelia. Lisää tietoa saattaa olla keskustelusivulla. Tarkennus: Puuttuu kryptoanalyysi: heikkoudet jne. Artikkelissa on liikaa asiaa salauksesta yleensä ja DESistä, eikä se oikeastaan keskity juurikaan itse Blowfishiin. |
Blowfish on yhdysvaltalaisen Bruce Schneierin vuonna 1993 kehittämä salausmenetelmä.
Blowfish käyttää 16 kierroksen Feistel-salausta, jossa 64-bitin lohko tuottaa 32-bitin mittaisen sanan. Blowfish skaalautuu 128-bitin lohkoon saakka sekä pienempiin lohkoihin. 16 iteraation määrä mahdollistaa avaimet 448 bitin pituuteen saakka.[1] Suunnitteluvaiheessa valittiin lohkojen käsittely yksittäisten bittien käsittelyn sijaan.[1]
Alun perin Schneier kehitti algoritmin syrjäyttämään Yhdysvaltain viranomaisten hyväksymän DES:n (Data Encryption Standard), koska DES oli jo Blowfishin julkaisemisen aikoihin osoittautunut varsin heikoksi salakirjoitusalgoritmiksi. Huhuttiin jopa, että DES:iin olisi tehty sen kehittämisen aikoihin takaovi, jotta Yhdysvaltain viranomaiset olisivat helposti tarvittaessa voineet purkaa salauksen.[2] DES:n heikkoudesta huolimatta sitä käytetään hyvin yleisesti vieläkin salaamaan pankkiautomaatti- ynnä muuta pankkiliikennettä.
Schneier kaavaili Blowfish:stä luotettavaa salakirjoitusalgoritmia seuraavaksi kymmeneksi vuodeksi, mutta vieläkään ei tiedetä kenenkään suorittaneen tehokasta kryptoanalyysia Blowfish:a vastaan.
Blowfish määritellään Yhdysvalloissa "tehokkaaksi salausmenetelmäksi", aseeksi, joten sitä käyttäviä ohjelmia ei saa viedä pois maasta ilman erityislupaa. Perusteeksi on annettu, että salauksen myötä terroristien ja rikollisten puuhien seuranta muuttuisi mahdottomaksi.[3]
Blowfishia ei ole patentoitu ja se säilyy sellaisena kaikissa maissa. Algoritmi on julkaistu public domainina ja se on vapaasti kenen tahansa käytettävissä.[1] Blowfishin jälkeen on kehitetty Twofish.[4]