trzy ryby
Ogólny | |
---|---|
Projektanci | Bruce Schneier , Niels Ferguson , Stefan Lucks , Doug Whiting, Mihir Bellare , Tadayoshi Kohno, Jon Callas , Jesse Walker |
Opublikowane po raz pierwszy | 2008 |
Związany z | Rozdymka , Dwuryba |
Szczegóły szyfru | |
Kluczowe rozmiary |
256, 512 lub 1024 bity (rozmiar klucza jest równy rozmiarowi bloku) |
Rozmiary bloków | 256, 512 lub 1024 bitów |
Rundy | 72 (80 dla rozmiaru bloku 1024-bitowego) |
Prędkość | 6.1 cpb na rdzeniu 2 . |
Najlepsza kryptoanaliza publiczna W październiku 2010 roku | |
opublikowano atak łączący kryptoanalizę rotacyjną z atakiem odbicia . Atak montuje znany wyróżnik klucza przeciwko 53 z 72 rund w Threefish-256 i 57 z 72 rund w Threefish-512. Wpływa również na Skein . |
Threefish to szyfr blokowy z kluczem symetrycznym, który można modyfikować , zaprojektowany jako część funkcji skrótu Skein , wpisu w konkursie funkcji skrótu NIST . Threefish nie używa S-boxów ani innych wyszukiwań w tabelach, aby uniknąć ataków związanych z synchronizacją pamięci podręcznej ; jego nieliniowość wynika z naprzemiennych dodatków z wyłącznymi OR . Pod tym względem jest podobny do Salsa20 , TEA i kandydatów na SHA-3 CubeHash i BLAKE .
Threefish i funkcja skrótu Skein zostały zaprojektowane przez Bruce'a Schneiera , Nielsa Fergusona , Stefana Lucksa , Douga Whitinga, Mihira Bellare'a , Tadayoshi Kohno, Jona Callasa i Jessego Walkera.
Opis szyfru
Threefish działa na słowach 64- bitowych ( liczby całkowite Little endian bez znaku ). słów Poprawka składa się z dwóch słów. Wszystkie dodawania i odejmowania są zdefiniowane modulo .
Kluczowy harmonogram
w i kluczy rundach, a przed pierwszą, do słów dodawane są okrągłe słowa . Aby obliczyć okrągłe klucze, do oryginalnych słów kluczowych . Ponadto do jest dołączane dodatkowe słowo ulepszenia }
Celem pozornie arbitralnej stałej wykorzystujących związek między słowami kluczowymi.
Okrągłe słowa kluczowe są teraz zdefiniowane w następujący sposób:
Tutaj , gdzie to numer rundy, w której okrągłe słowo kluczowe używany.
Funkcja mieszania
Funkcja mieszania pobiera słów i zwraca kolejną krotkę słów . Funkcja jest zdefiniowana w następujący sposób:
to ustalony zestaw stałych rotacji wybranych w celu uzyskania szybkiej dyfuzji .
Przestawiać
Krok permutacji zamienia pozycje słów zgodnie ze stałym wzorcem. W tym kroku nie uzyskuje się permutacji na poziomie bitów, ale nie jest to konieczne, ponieważ funkcje MIX zapewniają permutacje na poziomie bitów w postaci rotacji bitowych. [ Potrzebne źródło ] Stałe kroku permutacji i rotacji w funkcjach MIX są wybierane w taki sposób, że całkowitym efektem jest całkowite rozproszenie wszystkich bitów w bloku danych. [ potrzebne źródło ]
Ponieważ ta permutacja jest stała i niezależna od klucza, czas potrzebny do jej obliczenia nie dostarcza informacji o kluczu lub tekście jawnym. Jest to ważne, ponieważ w przypadku większości nowoczesnych mikroprocesorów optymalizacja wydajności może uzależnić czas potrzebny do obliczenia operacji na tablicy od tego, gdzie dane są przechowywane w pamięci. W szyfrach, w których wyszukiwanie w tablicy zależy od klucza lub zwykłego tekstu (jak ma to miejsce w przypadku kroku podstawienia w AES), może to narazić szyfr na ataki czasowe poprzez zbadanie czasu wymaganego do zaszyfrowania. Permutacja jest zatem celowo zaprojektowana, aby zapewnić, że powinna być wykonywana w ten sam sposób, niezależnie od używanego klucza lub szyfrowanych danych. [ potrzebne źródło ]
Pełna runda Threefish
- jeśli okrągły klucz jest dodawany do słowa
- jest stosowana do par słów, szerokości rotacji zależą od liczby rundy i pary słów
- słowa są permutowane przy użyciu permutacji niezależnej od okrągłej liczby
tę rundę razy ( ) stosuje _
Operacje końcowe
Po zastosowaniu wszystkich rund słowa kluczowe dodawane do słów i słowa są konwertowane z
Bezpieczeństwo
opublikowano atak łączący kryptoanalizę rotacyjną z atakiem odbicia . Atak montuje znany wyróżnik klucza przeciwko 53 z 72 rund w Threefish-256 i 57 z 72 rund w Threefish-512. Wpływa również na Skein . Jest to kontynuacja wcześniejszego ataku opublikowanego w lutym, który przerwał odpowiednio 39 i 42 rundy. W odpowiedzi na ten atak zespół Skein zmodyfikował stałe rotacji używane w Threefish, a tym samym kluczowe stałe harmonogramu dla rundy 3 konkursu funkcji skrótu NIST.
opublikowano powiązany kluczowy atak bumerangiem na zmniejszoną okrągłą wersję Threefish. W przypadku wersji 32-rundowej złożoność czasowa wynosi , a złożoność pamięci wynosi ; dla wersji 33-rundowej złożoność czasowa wynosi przy znikomym zużyciu pamięci. Ataki działają również przeciwko ulepszonej wersji Threefish: dla wersji 32-rundowej złożoność czasowa wynosi , a złożoność pamięci wynosi ; dla wersji 33-rundowej złożoność czasowa wynosi przy znikomym zużyciu pamięci.
Zobacz też
Linki zewnętrzne
- „Rodzina funkcji mieszania motka” Strona główna rodziny funkcji mieszania motka.