Skein: различия между версиями
[непроверенная версия] | [непроверенная версия] |
Содержимое удалено Содержимое добавлено
м орфография |
м орфография |
||
Строка 9:
|тип = [[хеш-функция]]
}}
'''Skein''' (англ. Skein) — алгоритм [[Криптографические хеш-функции|хеширования]] переменной разрядности, разработанный группой авторов во главе с [[Шнайер, Брюс|Брюсом Шнайером]]. Хеш-функция Skein выполнена как универсальный криптографический примитив, на основе блочного шифра Threefish, работающего в режиме UBI-хэширования.<ref name=autogenerated1>[http://www.skein-hash.info/sites/default/files/skein1.3.pdf Документация Skein, Версия 1.3 (2010-10-01)]</ref> Основные требования, предъявлявшиеся при разработке — оптимизация под минимальное использование памяти, криптографически безопасное хэширование небольших сообщений, устойчивость ко всем существующим атакам на
== История ==
Skein была создана в 2008 году группой авторов во главе с [[Шнайер, Брюс|Брюсом Шнайером]] и вошла в пятёрку финалистов конкурса [[SHA-3 (конкурс)|SHA-3]], однако в 2012 в финале победителем был выбран алгоритм [[Keccak]], наиболее производительный и нечувствительный к уязвимостям [[SHA-2]]<ref>{{cite web|url=http://www.nist.gov/itl/csd/sha-100212.cfm|title=NIST Selects Winner of Secure Hash Algorithm (SHA-3) Competition|first=2012-10-02|publisher=[[NIST]]|accessdate=2012-10-02}}</ref>. Название
== Алгоритм ==
Строка 21:
=== UBI ===
Threefish в Skein используется в режиме UBI (Unique Block Iteration) хэширования. Режим UBI — это разновидность режима [[Matyas-Meyer-Oseas]].[1] Каждое звено UBI комбинирует входные сообщения с предыдущего звена цепи с последовательностью произвольной длины и устанавливает на выходе значение фиксированного размера. Сообщение, передающееся между звеньями (твик), содержит информацию о том, сколько байт было обработано, флаги начала и конца цепочки, и поле типа данных, которое позволяет различать сферы применения UBI. UBI гарантирует невоспроизводимость результата хэширования одного и того же сообщения и дополнительную защиту за счёт того, что на вход
UBI устроен следующим образом. Каждое звено цепи — это функция <math>f(G,M,T_s)</math>
: <math>G</math> — начальное <math>N_b</math>-байтное значение
Строка 146:
== Применение ==
Область применения Skein достаточно широка. Используя сообщение и ключ в качестве соответствующих входов, можно вычислить [[Message authentication code|MAC]]. Возможно использование в качестве
При помощи аргумента ''Personalisation'' все приложения Skein могут быть персонифицированы для конкретного пользователя. Например для приложения FOO строка персонализации в [[UTF-8|UTF8 Unicode]] может выглядеть так
|