Skein: различия между версиями

[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Нет описания правки
Строка 13:
Хэш функция Skein выполнена как универсальный криптографический примитив, на основе блочного шифра [[Threefish]], работающего в режиме UBI-хэширования. Основной концепцией разработки была оптимизация под минимальное использование памяти, криптографически безопасное хэширование небольших сообщений, устойчивость ко всех существующим атакам на хэш-функции, оптимизация под [[AMD64|64-разрядные процессоры]] и активное использование обращений к таблицам.
 
Skein поддерживает размеры внутреннего состояния 256, 512 и 1024 бит и размер выходного блока до 2<sup>64</sup>-1 бит. Авторы заявляют о 6.1 циклах на байт для любого размера выходного блока на ПК с процессором [[Intel Core 2 Duo]]. Из числа кандидатов на SHA-3 Skein входит в пятерку наиболее быстрых, однако лидирует лишь в 64-разрядном варианте, который превосходит по скоростным характеристика 32-разрядный в более чем четыре раза. Это объясняется тем, что авторы изначально ориентировались на оптимизацию под 64-разрядные процессоры. <ref name="SHA3speed">[http://www.skein-hash.info/sha3-engineering Engineering comparison of SHA-3 candidates]</ref>
 
Skein-512 может быть реализована с использованием всего 200 байт состояния, Skein-256 - — 100 байт, что оптимально для аппаратной реализации алгоритма в смарт-картах.<ref name="skeinmem">[http://www.skein-hash.info/about About the Skein Hash Function Family]</ref>
 
Как заявляют авторы, [[Хеширование|хэш-функция]] Skein на распространённых процессорах работает в среднем два раза быстрее [[SHA-2|SHA-512]], Threefish в два раза быстрее [[AES|Rijndael (AES)]].
 
Skein защищена от новых видов атак на хэш-функций — подбора удлинённых сообщений и псевдоколлизий.
 
[[Threefish]], лежащий в основе Skein имеет очень простую структуру и может быть использован для замены алгоритмов блочного шифрования, будучи быстрым и гибким шифром, работающим в произвольном режиме шифрования. Сам Threefish S-блоки не использует, основан на комбинации инструкций исключающего или, сложения и циклического сдвига.