В этой статье слишком много ссылок на первоисточники . ( Ноябрь 2008 г. ) ( Узнайте, как и когда удалить этот шаблон сообщения ) |
Общий | |
---|---|
Дизайнеров | Брюс Шнайер , Нильс Фергюсон , Стефан Лакс , Дуг Уайтинг, Михир Белларе , Тадаёши Коно, Джон Каллас , Джесси Уокер |
Впервые опубликовано | 2008 г. |
Относится к | Blowfish , Twofish |
Деталь шифра | |
Ключевые размеры | 256, 512 или 1024 бит (размер ключа равен размеру блока) |
Размеры блоков | 256, 512 или 1024 бит |
Раундов | 72 (80 для размера блока 1024 бит) |
Скорость | 6.1 cpb на Core 2 . [1] |
Threefish - это настраиваемый блочный шифр с симметричным ключом, разработанный как часть хэш-функции Skein , вход в конкурс хеш-функций NIST . Threefish не использует S-блоки или другие таблицы, чтобы избежать атак на время кэширования ; [1] его нелинейность возникает из-за чередования сложений с исключающим ИЛИ . В этом отношении он похож на Salsa20 , TEA и кандидатов на SHA-3 CubeHash и BLAKE .
Threefish и хэш-функция Skein были разработаны Брюсом Шнайером , Нильсом Фергюсоном , Стефаном Люксом , Дугом Уайтингом, Михиром Белларе , Тадаёши Коно, Джоном Калласом и Джесси Уокером.
Описание шифра [ править ]
Threefish работает со словами из 64 бит ( целые числа без знака Little endian ). - количество слов открытого текста, а также ключевых слов. Твик состоит из двух слов. Все сложения и вычитания определяются по модулю .
Ключевой график [ править ]
Threefish использует разные раунды ( : количество раундов). Для вычисления этих ключей к исходным ключевым словам добавляется дополнительное ключевое слово . К словам настройки также добавляется дополнительное слово настройки .
Назначение кажущейся произвольной константы - предотвратить некоторые атаки, использующие взаимосвязь между ключевыми словами и другими ключевыми словами.
Круглые ключевые слова теперь определены следующим образом:
Здесь и - номер раунда, в котором используется ключ раунда.
Функция смешивания [ править ]
Функция смешивания берет кортеж слов и возвращает другой кортеж слов . Функция определяется так:
представляет собой фиксированный набор констант вращения, выбранных для достижения быстрого распространения .
Переставить [ править ]
Шаг перестановки меняет местами слова в соответствии с постоянным шаблоном. Перестановка битового уровня не достигается на этом этапе, но в этом нет необходимости, поскольку функции MIX обеспечивают перестановки битового уровня в форме побитовых вращений. [ необходима цитата ] Шаг перестановки и константы вращения в функциях MIX выбраны таким образом, чтобы общий эффект был полным распространением всех битов в блоке данных. [ необходима цитата ]
Поскольку эта перестановка фиксирована и не зависит от ключа, время, необходимое для ее вычисления, не дает информации о ключе или открытом тексте. Это важно, потому что на большинстве современных микропроцессоров оптимизация производительности может сделать время, затрачиваемое на вычисление операции с массивом, зависеть от того, где данные хранятся в памяти. В шифрах, где поиск в массиве зависит либо от ключа, либо от открытого текста (как в случае шага подстановки в AES), он может сделать шифр уязвимым для атак по времени , исследуя время, необходимое для шифрования. Таким образом, перестановка преднамеренно разработана таким образом, чтобы гарантировать, что она должна выполняться одинаково независимо от используемого ключа или зашифрованных данных. [ необходима цитата ]
Полный раунд Threefish [ править ]
- если к слову добавлен ключ раунда
- функция смешивания применяется к последовательным словам, ширина поворота зависит от номера слова
- слова переставляются с использованием перестановки, не зависящей от круглого числа
Threefish256 и Threefish512 применяют этот раунд 72 раза ( ). Threefish1024 применяет его 80 раз ( ).
Заключительные операции [ править ]
После применения всех раундов к словам добавляется последний раундовый ключ, и слова преобразуются обратно в строку байтов.
Безопасность [ править ]
В октябре 2010 года была опубликована атака, сочетающая ротационный криптоанализ с атакой отскока . Атака устанавливает распознающий ключ против 53 из 72 раундов в Threefish-256 и 57 из 72 раундов в Threefish-512. Это также влияет на хеш-функцию Skein . [2] Это продолжение более ранней атаки, опубликованной в феврале, которая прерывает 39 и 42 раунда соответственно. [3] В ответ на эту атаку команда Skein изменила константы вращения, используемые в Threefish, и, таким образом, ключевые константы расписания для раунда 3 конкурса хэш-функций NIST. [1]
В 2009 году была опубликована связанная с этим ключевая атака бумерангом на сокращенную версию Threefish. Для версии с 32 раундами сложность времени и сложность памяти ; для версии с 33 раундами временная сложность связана с незначительным использованием памяти. Атаки также работают против измененной версии Threefish: для 32-раундовой версии временная сложность равна, а сложность памяти равна ; для версии с 33 раундами временная сложность связана с незначительным использованием памяти. [4]
См. Также [ править ]
- Twofish
- Blowfish (шифр)
Ссылки [ править ]
- ^ a b c Фергюсон; и другие. (2010-10-01). «Семейство функций спинового хэша» (PDF) . Cite journal requires
|journal=
(help) Статья, в которой был представлен Threefish. - ↑ Дмитрий Ховратович; Ивица Николич; Кристиан Рехбергер (2010-10-20). «Атаки с вращением с отскоком на пониженном ключе» . Cite journal requires
|journal=
(help) - ↑ Дмитрий Ховратович и Ивица Николич (2010). «Ротационный криптоанализ ARX» (PDF) . Люксембургский университет . Cite journal requires
|journal=
(help) - ^ Jiazhe Chen; Кетинг Цзя (2009-11-01). «Улучшенные атаки бумеранга по связанным клавишам на Threefish-512 с уменьшенным количеством раундов» .
Внешние ссылки [ править ]
- "Семейство функций Skein Hash" Домашняя страница семейства функций Skein Hash.