Blowfish
Blowfish – szyfr blokowy stworzony przez Bruce’a Schneiera w 1993 roku jako szybka i bezpłatna alternatywa dla istniejących ówcześnie algorytmów.

Algorytm operuje na 64-bitowych blokach i używa kluczy od 32 do 448 bitów. Ma on postać szyfru Feistela z 16 rundami z SBOX-ami zależnymi od klucza.
Każda zmiana klucza wymaga wielu wstępnych obliczeń w celu ustalenia SBOX-ów. Z tego powodu atak brute-force trwa znacznie dłużej, niż można byłoby się spodziewać.

W typowych algorytmach, jeśli długość klucza to formula_1 a koszt zakodowania bloku to formula_2
koszt ataku brute-force wynosi formula_3 W przypadku Blowfisha trzeba dla każdego klucza obliczyć SBOX-y,
co zajmuje tyle, co zakodowanie ok. formula_4 bloków, a więc czas ataku brute-force wynosi około formula_5 (a zatem atak na 64-bitowy Blowfish zajmuje mniej więcej tyle czasu, co na 73-bitowy bardziej tradycyjny szyfr). Wadą tego rozwiązania są dość duże wymagania pamięciowe – potrzebne są ponad 4 kB pamięci, co nie jest problemem dla nawet słabych komputerów, ale jest już np. dla kart chipowych.

Nie istnieją (2011) znane ataki na Blowfisha o liczbie rund większej niż 4. Są znane, dość duże jak na symetryczny szyfr blokowy, grupy słabych kluczy, czyli takich, dla których Blowfish jest słabszy, niż dla typowych kluczy (większość szyfrów posiada takowe, jednak szansa na wylosowanie takiego klucza jest bardzo niska).
Q543151
szyfr blokowy
Concept
Q368328
Bruce’a Schneiera
PER
Q1044361
szyfru Feistela
MISC
Q748364
SBOX-ami
UNK
Q869370
atak brute-force
Concept
Q68
komputer
Concept
Q41349
kart chipowych
Concept
Q513687
słabych kluczy
UNK
Q815853
Blowfish
MISC
Q815853
Blowfish
MISC
Q815853
Blowfish
MISC
Q815853
Blowfish
MISC
Q815853
Blowfish
MISC
1993-01-01T00:00:00Z^^http://www.w3.org/2001/XMLSchema#dateTime
1993
DATE
2011-01-01T00:00:00Z^^http://www.w3.org/2001/XMLSchema#dateTime
2011
DATE
+64^^http://www.w3.org/2001/XMLSchema#decimal
64
NUMBER
+32^^http://www.w3.org/2001/XMLSchema#decimal
32
NUMBER
+16^^http://www.w3.org/2001/XMLSchema#decimal
16
NUMBER
+1^^http://www.w3.org/2001/XMLSchema#decimal
1
NUMBER
+2^^http://www.w3.org/2001/XMLSchema#decimal
2
NUMBER
+3^^http://www.w3.org/2001/XMLSchema#decimal
3
NUMBER
+4^^http://www.w3.org/2001/XMLSchema#decimal
4
NUMBER
+5^^http://www.w3.org/2001/XMLSchema#decimal
5
NUMBER
+64^^http://www.w3.org/2001/XMLSchema#decimal
64
NUMBER
+73^^http://www.w3.org/2001/XMLSchema#decimal
73
NUMBER
+4^^http://www.w3.org/2001/XMLSchema#decimal
4
NUMBER
+2011^^http://www.w3.org/2001/XMLSchema#decimal
2011
NUMBER
+4^^http://www.w3.org/2001/XMLSchema#decimal
4
NUMBER
instance of
designed by
publication date
instance of