Шаг 4: обработка сообщения в 512-битных (16-словных) блоках

Основой алгоритма является модуль, состоящий из 80 циклических обработок, обозначенный как HSHA. Все 80 циклических обработок имеют одинаковую структуру.


Рис. 9.2.Обработка очередного 512-битного блока

Каждый цикл получает на входе текущий 512-битный обрабатываемый блок Yq и 160-битное значение буфера ABCDE, и изменяет содержимое этого буфера.

В каждом цикле используется дополнительная константа Кt, которая принимает только четыре различных значения:

0 <= t <= 19 Kt = 5A827999(целая часть числа [230 x 21/2]) 20 <= t <= 39 Kt = 6ED9EBA1(целая часть числа [230 x 31/2]) 40 <= t <= 59 Kt = 8F1BBCDC(целая часть числа [230 x 51/2]) 60 <= t <= 79 Kt = CA62C1D6(целая часть числа [230 x 101/2])

Для получения SHAq+1 выход 80-го цикла складывается со значением SHAq. Сложение по модулю 232 выполняется независимо для каждого из пяти слов в буфере с каждым из соответствующих слов в SHAq.