Twofish
W kryptografii Twofish to symetryczny szyfr bloku klucza o wielkości bloku 128 bitów i długości klucza do 256 bitów.
W 1997 roku NIST ogłosiła konkurs na następcę DES o nazwie AES, Twofish był jednym z pięciu finalistów konkursu Advanced Encryption Standard, ale nie został wybrany jako standard.
Twofish jest spokrewniony z wcześniejszym szyfrem blokowym Blowfish. Główne cechy Twofish to użycie wstępnie obliczonych, zależnych od klucza S-boxów oraz stosunkowo złożony harmonogram kluczy. Jedna połowa n-bitowego klucza jest używana jako rzeczywisty klucz szyfrujący, a druga połowa n-bitowego klucza jest używana do modyfikacji algorytmu szyfrującego (S-boxy zależne od klucza). Twofish używa niektórych elementów z innych konstrukcji; na przykład transformacji pseudohadamardowej (PHT) z rodziny szyfrów SAFER. Twofish używa tej samej struktury Feistela co DES.
Na większości platform programowych Twofish jest nieco wolniejszy niż Rijndael (wybrany algorytm dla Advanced Encryption Standard) dla kluczy 128-bitowych, ale nieco szybszy dla kluczy 256-bitowych.
Twofish został zaprojektowany przez Bruce'a Schneiera, Johna Kelsey'a, Douga Whitinga, Davida Wagnera, Chrisa Hall'a i Nielsa Fergusona; "poszerzony zespół Twofish", który spotkał się, aby dokonać dalszej kryptoanalizy Twofish i innych zawodników AES, w tym Stefana Lucksa, Tadayoshi Kohno i Mike'a Stay'a.
Algorytm "Twofish" jest darmowy dla każdego bez żadnych ograniczeń. Szyfr Twofish nie został opatentowany, a programowy przykład jego specyfikacji został umieszczony w domenie publicznej. Jednakże, Twofish nie jest szeroko używany tak jak Blowfish, który był dostępny przez dłuższy okres czasu.
Kryptoanaliza
Od 2008 roku najlepiej opublikowaną kryptoanalizą na szyfrie bloku Twofish jest obcięta kryptoanaliza różnicowa w pełnej 16-okrągłej wersji. W artykule stwierdzono, że prawdopodobieństwo ataku obciętych dyferencjałów wynosi 2-57,3 na blok i że znalezienie dobrej pary obciętych dyferencjałów zajmie około 251 wybranych plaintextów (32 PiB danych).
Bruce Schneier odpowiada w jednym z wpisów na blogu z 2005 roku, że artykuł ten nie przedstawia pełnego kryptoanalitycznego ataku, a jedynie pewne hipotetyczne cechy różnicowe: "Ale nawet z teoretycznego punktu widzenia, Twofish nie jest nawet zdalnie złamany. Nie było żadnych rozszerzeń tych wyników od czasu ich opublikowania" w 2000 roku.
Powiązane strony
- Dmuchawiec (szyfr)
- Standard zaawansowanego szyfrowania
- Standard szyfrowania danych
Pytania i odpowiedzi
P: Co to jest Twofish?
A: Twofish to szyfr blokowy z kluczem symetrycznym o wielkości bloku 128 bitów i długości klucza do 256 bitów.
P: W jaki sposób Twofish jest powiązany z wcześniejszym szyfrem blokowym Blowfish?
O: Główne cechy szyfru Twofish to wykorzystanie wstępnie obliczonych S-boxów zależnych od klucza oraz stosunkowo skomplikowany rozkład klucza. Jedna połowa n-bitowego klucza jest używana jako właściwy klucz szyfrujący, a druga połowa n-bitowego klucza jest używana do modyfikacji algorytmu szyfrowania (skrzynki S zależne od klucza).
P: Czy Twofish został wybrany jako Advanced Encryption Standard?
O: Nie, w 1997 r. NIST ogłosił konkurs na następcę DES, który będzie znany jako AES, jednak Twofish nie został wybrany jako standard.
P: Jakie elementy wykorzystuje Twofish z innych projektów?
O: Twofish wykorzystuje pewne elementy z innych konstrukcji; na przykład pseudo-hadamardową transformatę (PHT) z rodziny szyfrów SAFER.
P: Czy wykorzystuje strukturę Feistela, tak jak DES?
O: Tak, wykorzystuje strukturę Feistela, tak jak DES.
P: Czy jest szybszy niż Rijndael dla kluczy 128-bitowych?
O: Na większości platform programowych Twofish jest nieco wolniejszy niż Rijndael dla kluczy 128-bitowych.
P: Czy jest szybszy niż Rijndael dla 256-bitowych kluczy?
O: Jest nieco szybszy niż Rijndael dla kluczy 256-bitowych.