Blowfish

W kryptografii Blowfish jest szyfrem blokowym z kluczem, symetrycznym, wyprodukowanym w 1993 r. przez Bruce'a Schneiera i od 1993 r. jest włączany (zestawiany) do wielu produktów szyfrujących. Blowfish posiada dobry współczynnik szyfrowania w oprogramowaniu i do 2008 roku nie znaleziono żadnego kryptoanalitycznego modelu jego ataku. Jednak algorytm szyfrowania blokowego AES ma teraz więcej uwagi.

Schneier wykonał Blowfish jako algorytm ogólnego przeznaczenia, który ma zastąpić stary algorytm DES i usunąć problemy i trudności związane z innymi algorytmami szyfrującymi. W czasie gdy Blowfish został wydany, wiele innych algorytmów było zastrzeżonych lub stanowiło tajemnicę. Schneier powiedział, że "Blowfish jest nieopatentowany i pozostanie taki we wszystkich krajach. Algorytm jest niniejszym umieszczony w domenie publicznej i może być swobodnie używany przez każdego."

Główne cechy projektu to zależne od klucza S-boxy oraz bardzo złożony harmonogram kluczy. Blowfish jest jednym z najszybszych szyfrów blokowych używanych przez wiele osób, z wyjątkiem zmiany kluczy. Każdy nowy klucz musi być wstępnie przetworzony, co zajmuje tyle samo czasu co zaszyfrowanie około 4 kilobajtów tekstu, co jest bardzo wolne w porównaniu z innymi szyframi blokowymi. Zaprzestaje to jego stosowania w niektórych aplikacjach (np. w najmniejszych systemach wbudowanych, takich jak wczesne karty chipowe), ale nie stanowi problemu w innych aplikacjach. W jednej z aplikacji jest to w zasadzie dobre: metoda hasełkowa stosowana w OpenBSD wykorzystuje algorytm pochodzący z Blowfish, który wykorzystuje powolny harmonogram kluczy; chodzi o to, że dodatkowy wysiłek obliczeniowy daje ochronę przed atakami słownikowymi. Zobacz wzmocnienie klucza.

Blowfish ma 64-bitowy rozmiar bloku i zmienną długość klucza od 0 do 448 bitów Jest to 16-okrągły szyfr Feistela i wykorzystuje duże, zależne od klucza S-boxy. Jest podobny w strukturze do CAST-128, który używa stałych S-boxów.

W 1996 r. Serge Vaudenay znalazł znany atak plaintextu, który potrzebował do złamania 28r + 1 znany plaintextu, gdzie r jest liczbą rund. Ponadto, znalazł również klasę słabych kluczy, które mogą być wykryte i złamane przez ten sam atak tylko 24r + 1 znane plaintexts. Ten atak nie może być użyty przeciwko zwykłemu Blowfishowi; zakłada on znajomość zależnych od klucza S-boxów. Vincent Rijmen, w swojej pracy doktorskiej, wprowadził atak różnicowy drugiego rzędu, który może przerwać cztery rundy i nie więcej. Wciąż nie ma znanego sposobu na przełamanie pełnych 16 rund, poza brutalnymi poszukiwaniami. W 1996 roku znaleziono błąd rozszerzenia znaku w jednym z opublikowanych kodów C.

Nie ma dobrej kryptoanalizy na pełnej wersji Blowfish znanej publicznie do 2008 roku. Jednakże, w 2007 roku Bruce Schneier zauważył, że podczas gdy Blowfish jest nadal używany, zalecił użycie nowego algorytmu Twofish zamiast tego

Powiązane strony

Pytania i odpowiedzi

P: Co to jest Blowfish?


O: Blowfish to symetryczny szyfr blokowy z kluczem, stworzony w 1993 roku przez Bruce'a Schneiera. Od tego czasu jest on włączony do wielu produktów szyfrujących.

P: Do czego został stworzony Blowfish?


O: Blowfish został stworzony jako algorytm ogólnego przeznaczenia, aby zastąpić stary algorytm DES i usunąć problemy i trudności związane z innymi algorytmami szyfrowania.

P: Jaka może być długość klucza dla Blowfisha?


O: Długość klucza dla Blowfisha może wynosić od 0 do 448 bitów.

P: Jakie są niektóre cechy budowy Blowfisha?


O: Niektóre cechy konstrukcji to zależne od klucza S-boxy i bardzo złożony harmonogram klucza.

P: Czy znana jest jakaś kryptoanaliza na pełnoobrotowej wersji Blowfisha?


O: Według stanu na rok 2008, nie jest znany żaden sposób złamania pełnych 16 rund, oprócz wyszukiwania metodą brute-force.

P: Jaki rodzaj ataku Serge Vaudenay znalazł przeciwko Blowfishowi?


O: Serge Vaudenay znalazł atak na znany tekst, do którego złamania potrzeba 28r + 1 znanych tekstów jawnych, gdzie r to liczba rund. Znalazł również klasę słabych kluczy, które mogą być wykryte i złamane przez ten sam atak przy użyciu tylko 24r + 1 znanych tekstów jawnych.

P: Czy Bruce Schneier zaleca teraz używanie Twofish zamiast Blowfish?


O: Tak, Bruce Schneier zaleca używanie Twofish zamiast Blowfish, ze względu na lepsze zabezpieczenia w porównaniu do starszych algorytmów, takich jak DES lub nawet nowszych, takich jak AES.

AlegsaOnline.com - 2020 / 2023 - License CC3