Blowfish
V kryptografii je Blowfish symetrická bloková šifra s kľúčom, ktorú v roku 1993 vytvoril Bruce Schneier a od roku 1993 je súčasťou veľkého počtu šifrovacích produktov. Blowfish má dobrú mieru šifrovania v softvéri a do roku 2008 nebol nájdený žiadny model jeho kryptoanalytického útoku. V súčasnosti sa však väčšej pozornosti teší algoritmus blokovej šifry AES.
Schneier vytvoril Blowfish ako univerzálny algoritmus, ktorý sa má používať ako náhrada za starý algoritmus DES a odstrániť problémy a ťažkosti iných šifrovacích algoritmov. V čase, keď bol Blowfish vydaný, boli mnohé iné algoritmy patentované alebo boli tajné. Schneier povedal, že "Blowfish nie je patentovaný a zostane ním vo všetkých krajinách. Algoritmus sa týmto stáva verejnou doménou a môže ho voľne používať ktokoľvek."
Medzi hlavné znaky návrhu patria S-boxy závislé od kľúča a veľmi zložitý plán kľúčov. Blowfish je jednou z najrýchlejších blokových šifier, ktorú používa mnoho ľudí, s výnimkou prípadov, keď sa menia kľúče. Každý nový kľúč sa musí vopred spracovať, čo trvá rovnako dlho ako zašifrovanie približne 4 kilobajtov textu, čo je v porovnaní s inými blokovými šiframi veľmi pomalé. To bráni jej používaniu v niektorých aplikáciách (napríklad v najmenších vstavaných systémoch, ako boli prvé čipové karty), ale v iných aplikáciách to nie je problém. V jednej z aplikácií je to vlastne dobré: metóda šifrovania hesiel používaná v OpenBSD využíva algoritmus pochádzajúci z Blowfish, ktorý využíva pomalý rozvrh kľúčov; ide o to, že dodatočná potrebná výpočtová náročnosť poskytuje ochranu proti slovníkovým útokom. Pozri posilnenie kľúčov.
Blowfish má 64-bitovú veľkosť bloku a variabilnú dĺžku kľúča od 0 do 448 bitov Je to 16-kolová Feistelova šifra a používa veľké S-boxy závislé od kľúča. Štruktúrou je podobná šifre CAST-128, ktorá používa pevné S-boxy.
V roku 1996 Serge Vaudenay našiel útok na známy text, na prelomenie ktorého bolo potrebných 28r + 1 známych otvorených textov, kde r je počet kôl. Okrem toho našiel aj triedu slabých kľúčov, ktoré možno odhaliť a prelomiť tým istým útokom len s 24r + 1 známymi otvorenými textami. Tento útok sa nedá použiť proti bežnému Blowfishovi; predpokladá znalosť S-boxov závislých od kľúča. Vincent Rijmen vo svojich doktorandských prácach zaviedol diferenciálny útok druhého rádu, ktorý dokáže prelomiť štyri kolá a nie viac. Stále nie je známy spôsob, ako prelomiť celých 16 kôl, okrem hľadania hrubou silou. V roku 1996 bola v jednom z publikovaných kódov jazyka C nájdená chyba v rozšírení znamienka.
Do roku 2008 nebola verejne známa žiadna dobrá kryptoanalýza plnokruhovej verzie Blowfish. V roku 2007 však Bruce Schneier poznamenal, že hoci sa Blowfish stále používa, odporúča namiesto neho používať nový algoritmus Twofish
Súvisiace stránky
- Pokročilý štandard šifrovania
- eSTREAM - Hodnotenie nových prúdových šifier, ktoré vykonáva EÚ.
- Twofish
- MacGuffin
Otázky a odpovede
Otázka: Čo je to Blowfish?
Odpoveď: Blowfish je symetrická bloková šifra s kľúčom, ktorú v roku 1993 vytvoril Bruce Schneier. Odvtedy je súčasťou mnohých šifrovacích produktov.
Otázka: Na čo bol Blowfish vytvorený?
Odpoveď: Blowfish bol vytvorený ako univerzálny algoritmus, ktorý má nahradiť starý algoritmus DES a odstrániť problémy a ťažkosti iných šifrovacích algoritmov.
Otázka: Aká dlhá môže byť dĺžka kľúča pre Blowfish?
Odpoveď: Dĺžka kľúča pre Blowfish môže byť od 0 do 448 bitov.
Otázka: Aké sú niektoré vlastnosti konštrukcie Blowfish?
Odpoveď: Niektoré vlastnosti návrhu zahŕňajú S-boxy závislé od kľúča a veľmi zložitý plán kľúča.
Otázka: Je známa nejaká kryptoanalýza plnokruhovej verzie Blowfish?
Odpoveď: Od roku 2008 nie je známy žiadny spôsob, ako prelomiť celých 16 kôl okrem hľadania hrubou silou.
Otázka: Aký typ útoku na Blowfish našiel Serge Vaudenay?
Odpoveď: Serge Vaudenay našiel útok so známym textom, ktorý na prelomenie potrebuje 28r + 1 známych textov, kde r je počet kôl. Našiel aj triedu slabých kľúčov, ktoré sa dajú odhaliť a prelomiť tým istým útokom len s 24r + 1 známymi otvorenými textami.
Otázka: Odporúča teraz Bruce Schneier používať Twofish namiesto Blowfish?
Odpoveď: Áno, Bruce Schneier teraz odporúča používať Twofish namiesto Blowfish kvôli jeho lepším bezpečnostným opatreniam v porovnaní so staršími algoritmami ako DES alebo dokonca novšími ako AES.