SHA-2 [13] включен в новый NIST стандарт функции хеширования (FIPS 180-2), вырабатывает значения хешей 256, 384 или 512 бит. Главная причина появления нового стандарта состоит в том, чтобы обеспечить уровень защиты сопоставимым уровню защиты нового NIST стандарта блочного шифра AES (с ключевой длиной 128, 192 или 256 бит, соответственно).
Алгоритм SHA-2/256.
SHA-2/256 функция хеширования оперирует с блоками по 512 бита, разделенными на 32 битные слова и вырабатывает хеш код в 256 бит. Алгоритм определен как итерационная функции сжатия.
Вычисление начинает с начальными значениями
.
Каждое применение функции сжатия использует восемь слов как начальные значения и 16 слов входного сообщения, что дает восемь выходных слов, которые используются как начальные значения для следующего шага вычислений.
На заключительном шаге формируется значение хеша.
Функция сжатия SHA-2/256.
Пусть есть блок сообщения в 512 бит, и – 32 битные слова. SHA-2/256 использует процедуру расширения, которая определена как
,
где и определяется следующим образом:
,
.
Операции и обозначают сдвиг и циклический сдвиг слова вправо.
Используются следующие функции:
,
,
,
.
Предположим, что начальные значения заданы.
Функция сжатие вычисляется на шагах (сложения по ):
,
,
,
,
,
,
,
.
32 –битные константы являются различными на каждом из 64 шагов функции сжатия. Вычисление функции сжатия завершается как
,
.
Алгоритм SHA-2/512.
Основное отличие между SHA-2/256 и SHA-2/512 состоит в том, что последний алгоритм использует длину слова в 64 бит (вместо 32 бит). Это позволяет вычислить дайджест сообщения, который в два раза длиннее по сравнению с SHA-2/256, без изменения самой структуры алгоритма. Другое различие заключается в числе шагов в функции сжатия, которое увеличено с 64 до 80. Таким образом, функция SHA-2/512 работает на блоках по 1024 бит, разделенных на 64 битовые слова и вычисляет хеш значение длиной в 512 бит. Алгоритм определен как итеративная функции сжатия.
Вычисление начинается с начальных значений
.
При каждом применении функции сжатия используется восемь слов как начальные значения и 16 входных слов сообщения, что дает восемь выходных слов, которые затем используются как начальные значения для следующего применения функции сжатия. Последнее вычисление определяет значение хеш кода.
Функция сжатия SHA-2/512.
Пусть есть блок сообщения в 1024 бит, и – 64 битные слова. SHA-2/512 использует процедуру расширения, которая определена как
,
где и определяется следующим образом:
,
.
Операции и обозначают сдвиг и циклический сдвиг слова вправо.
Используются следующие функции:
,
,
,
.
Предположим, что начальные значения заданы.
Функция сжатие вычисляется на шагах (сложения по ):
,
,
,
,
,
,
.
64 –битные константы являются различными на каждом из 80 шагов функции сжатия. Вычисление функции сжатия завершается как
,
.
Алгоритм SHA-2/384.
Функция SHA-2/384 определена так же как SHA-2/512 со следующими двумя исключениям.
Вычисление начинается с другими начальными значениями:
.
Результирующее значение хеша с 384 битами получается путем усечения результата к крайним левым 384 битам.
Анализ безопасности SHA-2.
Требования коллизионной стойкости к алгоритмам SHA-2 являются следующими. При длине хеш кода n бит порядок образования коллизии должен составлять попыток, а нахождение второго прообраза иметь порядок , где =256, 384,512,для SHA-2/256, SHA-2/384 и SHA-2/512 соответственно. На данный момент не известны атаки, которые опровергали бы эти предположения.
SHA-2 - новый проект, который имеет некоторые подобия SHA-1, но имеются и важные различия в структуре. Для 256 битной версии число шагов в функции сжатия меньше, чем для SHA-1 (64 шага по сравнению с 80). С другой стороны, на каждом шаге функции сжатия обновляются две переменные, когда в SHA-1 только одна переменная. Дифференциальный криптоанализ показал, что существует 4 шаговая характеристика по любым 4 шагам в функции сжатия с вероятностью 1. Вероятность дифференциальных характеристик уменьшается быстрее в SHA-2, чем в SHA-1. Это определяется многократными вращениями в функциях и . Слайд атака на SHA-1 не распространяется на SHA-2, потому что для SHA-2 каждый шаг функции сжатия использует уникальную аддитивную постоянную. Требуется осторожность в оценке криптостойкости SHA-2, так существующий анализ безопасности является недостаточным.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.