Общие | |
---|---|
Дизайнеры | Брюс Шнайер, Нильс Фергюсон и др. |
На основе | Threefish |
Certification | Финалист SHA-3 |
Подробности | |
Размеры дайджеста | произвольно |
Структура | |
Раунды | 72 (размер блока 256 и 512), 80 (размер блока 1024) |
Скорость | 6,1 cpb на Core 2. |
Skein - это криптографическая хэш-функция и один из пяти финалистов конкурса хэш-функций NIST. Введенный в качестве кандидата на роль стандарта SHA-3, преемника SHA-1 и SHA-2, он в конечном итоге проиграл кандидату хэша NIST Keccak.
Название Skein указывает на то, как функция Skein переплетает входные данные, аналогично мотку пряжи.
Skein был создан Брюсом Шнайером, Нильс Фергюсон, Стефан Лакс, Дуг Уайтинг, Михир Белларе, Тадаёши Коно, Джон Каллас и Джесси Уокер.
Skein основан на Threefish настраиваемом блочном шифре, сжатом с использованием режима цепочки (UBI), варианта Matyas– Режим хеширования Meyer – Oseas, при этом для гибкости используется дополнительная система аргументов с низкими накладными расходами.
Алгоритм Скейна и эталонная реализация были переданы в общественное достояние.
Skein поддерживает размеры внутренних состояний 256, 512 и 1024 бит, и произвольные размеры вывода.
Авторы заявляют, что 6,1 циклов на байт для любого размера вывода на Intel Core 2 Duo в 64-битном режиме.
Ядро Threefish основано на функции MIX, которая преобразует 2 64-битных слова с помощью одного сложения, вращения на константу и XOR. Режим цепочки UBI объединяет входное значение цепочки с входной строкой произвольной длины и выдает выходной сигнал фиксированного размера.
Нелинейность Threefish полностью проистекает из комбинации операций сложения и исключающего ИЛИ ; он не использует S-блоки. Функция оптимизирована для 64-битных процессоров, а в документе Skein определены дополнительные функции, такие как рандомизированное хеширование, параллелизируемое хеширование дерева, потоковый шифр ., персонализация и функция получения ключа .
В октябре 2010 года была проведена атака, сочетающая ротационный криптоанализ с атакой обратного удара был опубликован. Атака обнаруживает вращательные столкновения для 53 из 72 выстрелов в Threefish-256 и 57 из 72 выстрелов в Threefish-512. Это также влияет на хеш-функцию Skein. Это продолжение более ранней атаки, опубликованной в феврале, которая прерывает 39 и 42 раунда соответственно.
Команда Skein изменила константу key schedule для раунда 3 хэш-функции NIST. конкуренции, чтобы сделать эту атаку менее эффективной, даже если они считают, что хеш-код был бы безопасным без этих настроек.
Хеш-значения пустой строки.
Скейн-256-256 ( "") c8877087da56e072870daa843f176e9453115929094c3a40c463a196c29bf7ba Скейн-512-256 ( "") 39ccc4554a8b31853b9de7a1fe638a24cce6b35a55f2431009e18780335d2621 Скейн-512-512 ( "") bc5b4c50925519c290cc634277ae3d6257212395cba733bbad37a4af0fa06af41fca7903d06564fea7a2d3730dbdb80c1f85562dfcc070334ea4d1d9e72cba7a
Даже небольшое изменение в сообщении будет (с подавляющей вероятностью) приводят к в основном другому хеш-функции из-за лавинного эффекта . Например, добавив точку в конце предложения:
Skein-512-256 ("Быстрая коричневая лиса перепрыгивает через ленивого пса ") b3250457e05d3060b1a4bbc1428bc75a3f525ca389aeab96cfa34638d96e492a 512-Skein "быстрая коричневая лиса прыгает через ленивую собаку.") 41e829d7fca71c7d7154ed8fc8a069f274dd664ae0ed29d365d919f4e575eebb Лялька-512-512 ( "быстрая коричневая лиса прыгает через ленивую собаку ") 94c2ae036dba8783d0b3f7d6cc111ff810702f5c77707999be7e1c9486ff238a7044de734293147359b4ac7e1d09cd247c351d69826b78dcddd951f0ef912713 Лялька-512-512 ( "быстрая коричневая лиса прыгает через ленивую собаку.") 658223cb3d69b5e76e3588ca63feffba0dc2ead38a95d0650564f2a39da8e83fbb42c9d6ad9e03fbfde8a25a880357d457dbd6f74cbcb5e728979577dbce5436