stringtranslate.com

Скейн (хэш-функция)

Функция «Три рыбы»

Skein — это криптографическая хэш-функция и один из пяти финалистов конкурса хэш-функций NIST . Выдвинутая в качестве кандидата на стандарт SHA-3 , преемника SHA-1 и SHA-2 , она в конечном итоге проиграла кандидату NIST на хэш-функцию Keccak . [2]

Название Skein относится к тому, как функция Skein переплетает входные данные, подобно мотку пряжи. [1]

История

Skein создали Брюс Шнайер , Нильс Фергюсон , Стефан Лакс , Дуг Уайтинг, Михир Белларе , Тадаёши Коно, Джон Каллас и Джесси Уокер.

Skein основан на настраиваемом блочном шифре Threefish , сжатом с использованием режима цепочки уникальных итераций блоков (UBI), варианта режима хэширования Матьяса–Майера–Осеаса [3] , при этом для обеспечения гибкости используется дополнительная система аргументов с низкими накладными расходами.

Алгоритм Скейна и его эталонная реализация были переданы в общественное достояние . [4]

Функциональность

Skein поддерживает внутренние размеры состояний 256, 512 и 1024 бит, а также произвольные выходные размеры. [5]

Авторы заявляют о 6,1 цикле на байт для любого размера выходных данных на Intel Core 2 Duo в 64-битном режиме. [6]

Ядро Threefish основано на функции MIX, которая преобразует 2 64-битных слова с помощью одного сложения, вращения на константу и XOR. Режим цепочки UBI объединяет входное значение цепочки с произвольной длиной входной строки и создает выход фиксированного размера.

Нелинейность Threefish полностью обусловлена ​​комбинацией операций сложения и исключающих ИЛИ ; она не использует S-блоки . Функция оптимизирована для 64-битных процессоров, а статья Скейна определяет дополнительные функции, такие как рандомизированное хеширование , параллелизуемое древовидное хеширование , потоковый шифр , персонализация и функция выведения ключа .

Криптоанализ

В октябре 2010 года была опубликована атака, которая сочетает ротационный криптоанализ с атакой rebound . Атака обнаруживает ротационные коллизии для 53 из 72 раундов в Threefish-256 и 57 из 72 раундов в Threefish-512. Она также влияет на хэш-функцию Skein. [7] Это продолжение более ранней атаки, опубликованной в феврале, которая ломает 39 и 42 раунда соответственно. [8]

Команда Skein изменила ключевую константу расписания для 3-го раунда конкурса хэш-функций NIST, чтобы сделать эту атаку менее эффективной, хотя они и считают, что хэш все равно был бы безопасным без этих изменений. [1]

Примеры хэшей Skein

Хэш-значения пустой строки.

Моток-256-256("")c8877087da56e072870daa843f176e9453115929094c3a40c463a196c29bf7baМоток-512-256("")39ccc4554a8b31853b9de7a1fe638a24cce6b35a55f2431009e18780335d2621Моток-512-512("")bc5b4c50925519c290cc634277ae3d6257212395cba733bbad37a4af0fa06af41fca7903d06564fea7a2d3730dbdb80c1f85562dfcc070334ea4d1d9e72cba7a

Даже небольшое изменение в сообщении (с подавляющей вероятностью) приведет к совершенно другому хешу из-за эффекта лавины . Например, добавление точки в конец предложения:

Skein-512-256(" Быстрая коричневая лиса перепрыгивает через ленивую собаку ")b3250457e05d3060b1a4bbc1428bc75a3f525ca389aeab96cfa34638d96e492aSkein-512-256(" Быстрая коричневая лиса перепрыгивает через ленивую собаку .")41e829d7fca71c7d7154ed8fc8a069f274dd664ae0ed29d365d919f4e575eebbSkein-512-512(" Быстрая коричневая лиса перепрыгивает через ленивую собаку ")94c2ae036dba8783d0b3f7d6cc111ff810702f5c77707999be7e1c9486ff238a7044de734293147359b4ac7e1d09cd247c351d69826b78dcddd951f0ef912713Skein-512-512(" Быстрая коричневая лиса перепрыгивает через ленивую собаку .")658223cb3d69b5e76e3588ca63feffba0dc2ead38a95d0650564f2a39da8e83fbb42c9d6ad9e03fbfde8a25a880357d457dbd6f74cbcb5e728979577dbce5436

Ссылки

  1. ^ abc Ferguson; et al. (2010-10-01). "The Skein Hash Function Family" (PDF) . Архивировано из оригинала (PDF) 2014-08-24 . Получено 2010-12-15 . {{cite journal}}: Цитировать журнал требует |journal=( помощь )
  2. ^ "NIST выбирает победителя конкурса Secure Hash Algorithm (SHA-3)". NIST . 2012-10-02 . Получено 2012-10-02 .
  3. ^ http://www.skein-hash.info/sites/default/files/skein1.3.pdf Архивировано 24 августа 2014 г. на Wayback Machine , стр. 6
  4. ^ skein_NIST_CD_121508.zip Архивировано 10 июня 2016 г. на Wayback Machine на skein-hash.info, skein.c "Реализация хэш-функции Skein. Автор исходного кода: Дуг Уайтинг, 2008. Этот алгоритм и исходный код передаются в общественное достояние".
  5. ^ "Теперь от Брюса Шнайера, хэш-функция Скейна". Slashdot . 2008-10-31 . Получено 2008-10-31 .
  6. ^ "Paper describe the hash function, Version 1.3 (2010-10-01)" (PDF) . Архивировано из оригинала (PDF) 2014-08-24 . Получено 2010-12-15 .
  7. ^ Дмитрий Ховратович; Ивица Николич; Кристиан Рехбергер (2010-10-20). "Атаки с вращательным отскоком на редуцированный моток". Архив Cryptology ePrint .
  8. ^ Дмитрий Ховратович и Ивица Николич (2010). "Ротационный криптоанализ ARX" (PDF) . Университет Люксембурга . Архивировано из оригинала (PDF) 2013-01-26 . Получено 2010-10-25 . {{cite journal}}: Цитировать журнал требует |journal=( помощь )

Внешние ссылки

Реализации