Light-industry-up.ru

Экосистема промышленности

SHACAL

19-10-2023

SHACAL
Создатель:

Елена Хандшух, Дэвид Насаш

Создан:

2000 г.

Опубликован:

2001 г.

Размер ключа:

128-512 бит

Размер блока:

160 бит / 256 бит

Число раундов:

80/64

Тип:

Криптографическая хэш-функция

SHACAL — в криптографии симметричный блочный криптоалгоритм, разработанный для участия в конкурсе Nessie группой авторов из компании Gemplus во главе с Еленой Хандшух и Дэвидом Насашем. Существует два варианта алгоритма — SHACAL-1 и SHACAL-2, который и стал одним из 17 финалистов NESSIE.

Содержание

SHACAL-1

Алгоритм SHACAL имеет довольно необычную структуру. Он основан на функции компрессии хэш-алгоритма SHA-1. Это стало возможным благодаря обратимости раундовой функции данного хэш-алгоритма при условии известности внутреннего состояния функции. В данном случае ключ используется как подвергающиеся трансформации данные, а открытый текст подается как внутреннее состояние хэш-функции. Всего выполняется 80 раундов преобразования.

Особенностью алгоритма является его простое ключевое расписание — ключ короче 512 бит дополняется до полного размера байтом 0x00. Ключи короче 128 бит не применяются. 512-битный исходный ключ шифрования делится на 16 фрагментов по 32 бита K0…K15. Остальные фрагменты расширенного ключа K16…K79 вычисляются из первых 16 фрагментов. Данная особенность стала преградой для избрания алгоритма в качестве финалиста NESSIE.

Размер блока равен размеру внутреннего состояния и хэша хэш-функции SHA1 — 160 бит. Блок обрабатывается как пять 32-битных фрагментов.

SHACAL-1 в настоящее время мало распространен. Его довольно быстро заменил алгоритм SHACAL-2, который часто именуется как просто SHACAL. Существовал так же теоретический SHACAL-0, который был основан на хэш-функции SHA-0 (ранней, позже исправленной версии SHA-1), но он не получил распространения, как собственно и сама хэш-функция SHA-0.

SHACAL-2

Алгоритм SHACAL-2 основан на 64 раундах хэш-функции SHA-256 с внутренним состоянием длиной 256 бит. Аналогично алгоритму SHACAL-1, 512-битный исходный ключ шифрования делится на 16 фрагментов по 32 бита, а остальные фрагменты расширенного ключа вычисляются из первых 16 фрагментов. Шифруемый блок данных делится на 8 фрагментов по 32 бит каждый.

Стойкость

Прежде всего, как было отмечено, преимуществом алгоритмов семейства SHACAL была их производительность. Важным моментом является так же простота описания и реализации алгоритмов.

Одним из тезисов безопасности стала архитектура шифра. Теоретически, безопасность алгоритмов SHA-1 и SHA-2 должна обеспечить и устойчивость алгоритмов SHACAL к различным видам атак. В то же время, требования, предъявляемые к хэш-функциям при их разработке, концептуально иные и данный тезис не слишком обоснован.

Относительно устойчивости на конкурсе Nessie было отмечено отсутствие каких-либо предложений по атаке на SHACAL. Однако, что касается SHACAL-1, ключевое описание было подвержено критике. Речь идет о возможности атаки на связанных ключах.

Позже были предложены некоторые атаки на сокращенное число раундов SHACAL-1 и SHACAL-2, но реализовать их практически в ближайшей перспективе невозможно. Более того, полнораундовые алгоритмы SHACAL на данный момент можно считать безопасными при условии использования в качестве ключа 512-битного хэша от какой либо хэш-функции (SHA-512, Whirlpool).

Ссылки

  • Авторское описание алгоритма SHACAL


SHACAL.

© 2014–2023 light-industry-up.ru, Россия, Краснодар, ул. Листопадная 53, +7 (861) 501-67-06