Blowfish"

Kriptografijoje "Blowfish" yra simetrinis blokinis šifras su raktu, kurį 1993 m. sukūrė Bruce'as Schneieras ir kuris nuo 1993 m. buvo įtrauktas į daugelį šifravimo produktų. Programinėje įrangoje "Blowfish" pasižymi gera šifravimo sparta ir iki 2008 m. nebuvo rastas joks kriptoanalitinis jo atakos modelis. Tačiau dabar daugiau dėmesio skiriama AES blokinio šifro algoritmui.

Schneier sukūrė "Blowfish" kaip bendros paskirties algoritmą, kuris turėjo pakeisti senąjį DES algoritmą ir pašalinti kitų šifravimo algoritmų problemas ir sunkumus. Tuo metu, kai buvo išleistas "Blowfish", daugelis kitų algoritmų buvo patentuoti arba sudarė paslaptis. Schneieris yra sakęs, kad "Blowfish yra nepatentuotas ir toks liks visose šalyse. Algoritmas skelbiamas viešai prieinamu ir gali būti laisvai naudojamas bet kurio asmens".

Pagrindinės konstrukcijos ypatybės - nuo rakto priklausančios S formos dėžutės ir labai sudėtingas raktų tvarkaraštis. Blowfish yra vienas iš greičiausių blokinių šifrų, kurį naudoja daugelis žmonių, išskyrus atvejus, kai keičiami raktai. Kiekvieną naują raktą reikia iš anksto apdoroti, o tai užtrunka tiek pat laiko, kiek užšifruoti apie 4 kilobaitus teksto, o tai yra labai lėtai, palyginti su kitais blokiniais šifrais. Dėl to jis nebenaudojamas tam tikrose srityse (pavyzdžiui, mažiausiose įterptinėse sistemose, pavyzdžiui, ankstyvosiose išmaniosiose kortelėse), tačiau kitose srityse tai nėra problema. Viename iš taikymų tai iš tikrųjų yra naudinga: OpenBSD naudojamame slaptažodžių šifravimo metode naudojamas iš Blowfish kilęs algoritmas, kuriame naudojamas lėtas rakto tvarkaraštis; idėja ta, kad dėl reikalingų papildomų skaičiavimo pastangų apsisaugoma nuo žodyno atakų. Žr. rakto stiprinimą.

"Blowfish" turi 64 bitų bloko dydį ir kintamą rakto ilgį nuo 0 iki 448 bitų Tai 16 raundų Feistelio šifras, kuriame naudojami dideli, nuo rakto priklausantys S-dėklai. Jo struktūra panaši į CAST-128, kuriame naudojami fiksuoti S-box'ai.

1996 m. Serge'as Vaudenay rado žinomo teksto ataką, kuriai įveikti reikia 28r + 1 žinomo teksto, kur r yra raundų skaičius. Be to, jis taip pat rado silpnų raktų klasę, kurią galima aptikti ir nulaužti ta pačia ataka, naudojant tik 24r + 1 žinomų atvirų tekstų. Šios atakos negalima panaudoti prieš įprastą Blowfish, nes reikia žinoti nuo rakto priklausančias S-kauptis. Vincentas Rijmenas (Vincent Rijmen) savo daktaro disertacijoje pristatė antros eilės diferencinę ataką, kuria galima sulaužyti keturis raundus ir ne daugiau. Vis dar nėra žinomo būdo, kaip įveikti visus 16 raundų, išskyrus paiešką brutalia jėga. 1996 m. viename iš paskelbtų C kodų buvo rasta ženklo pratęsimo klaida.

Iki 2008 m. viešai nebuvo žinoma gera "Blowfish" pilnos apvalios versijos kriptoanalizė. Tačiau 2007 m. Bruce'as Schneieras pažymėjo, kad nors "Blowfish" vis dar naudojamas, jis rekomendavo vietoj jo naudoti naująjį "Twofish" algoritmą.

Susiję puslapiai

Klausimai ir atsakymai

K: Kas yra "Blowfish"?


A: "Blowfish" yra simetrinis blokinis šifras, kurį 1993 m. sukūrė Bruce'as Schneieras. Nuo to laiko jis įtrauktas į daugelį šifravimo produktų.

K: Kam buvo sukurtas "Blowfish"?


A: "Blowfish" buvo sukurtas kaip bendros paskirties algoritmas, kad pakeistų senąjį DES algoritmą ir pašalintų kitų šifravimo algoritmų problemas ir sunkumus.

K: Kokio ilgio gali būti "Blowfish" rakto ilgis?


A: "Blowfish" rakto ilgis gali būti nuo 0 iki 448 bitų.

K: Kokios yra kai kurios "Blowfish" konstrukcijos ypatybės?


A: Kai kurios konstrukcijos ypatybės yra nuo rakto priklausantys S-laukai ir labai sudėtingas rakto tvarkaraštis.

K: Ar yra žinoma kokia nors kriptoanalizė, skirta "Blowfish" pilnojo raundo versijai?


A.: Nuo 2008 m. nėra žinomo būdo nulaužti visus 16 raundų, išskyrus paiešką brutalia jėga.

K: Kokio tipo ataką prieš "Blowfish" rado Serge'as Vaudenay?


A: Serge Vaudenay nustatė žinomo teksto ataką, kuriai įveikti reikia 28r + 1 žinomo teksto, kur r yra raundų skaičius. Jis taip pat rado silpnų raktų klasę, kurią galima aptikti ir sulaužyti ta pačia ataka, naudojant tik 24r + 1 žinomą atvirą tekstą.

Klausimas: Ar Bruce'as Schneieris rekomenduoja dabar naudoti "Twofish", o ne "Blowfish"?


A: Taip, Bruce'as Schneieras rekomenduoja dabar naudoti "Twofish", o ne "Blowfish", nes, palyginti su senesniais algoritmais, tokiais kaip DES, ar net naujesniais, tokiais kaip AES, šis algoritmas pasižymi geresnėmis saugumo priemonėmis.

AlegsaOnline.com - 2020 / 2023 - License CC3