Основной алгоритм состоит из 80 циклических операций (4 этапа по 20 операций в каждом) и обозначен как HSHA.
Каждый цикл получает на входе текущий 512-битный обрабатываемый блок Yq и 160-битное значения буфера ABCDE, и изменяет содержимое этого буфера.
В каждом цикле используется дополнительная константа Kt, которая принимает только 4 различных значения в зависимости от номера текущей операции t:
0 ≤ t ≤19 Kt = 5A827999 (целая часть числа [230´√2])
20≤ t ≤39 Kt = 6ED9EBA1 (целая часть числа [230´√3])
40≤ t ≤59 Kt = 8F1BBCDC (целая часть числа [230´√5])
60≤ t ≤79 Kt = CA62C1D6 (целая часть числа [230´√10])
Для получения SHAq+1 выход 80-го цикла складывается со значением SHAq. Сложение по модулю 232 выполняется независимо для каждого из пяти слов в буфере ABCDE с каждым из соответствующих слов в SHAq.
Рис 2. Обработка очередного 512-битного блока