Логика выполнения ГОСТ Р 34.11-94
Входными параметрами алгоритма являются:
исходное сообщение М произвольной длины;
стартовый вектор хэширования Н, длина которого равна 256 битам;
контрольная сумма , начальное значение которой равно нулю и длина равна 256 битам;
переменная L, начальное значение которой равно длине сообщения.
Сообщение М делится на блоки длиной 256 бит и обрабатывается справа налево. Очередной блок i обрабатывается следующим образом:
H = X(Mi, H)
= ' Mi
L рассматривается как неотрицательное целое число, к этому числу прибавляется 256 и вычисляется остаток от деления получившегося числа на 2 в степени 256. Результат присваивается L.
Где ' обозначает следующую операцию: и Mi рассматриваются как неотрицательные целые числа длиной 256 бит. Выполняется обычное сложение этих чисел и находится остаток от деления результата сложения на 2 в степени 256. Этот остаток и является результатом операции.
Самый левый, т.е. самый последний блок М' обрабатывается следующим образом:
Блок добавляется слева нулями так, чтобы его длина стала равна 256 битам.
Вычисляется = ' Mi
L рассматривается как неотрицательное целое число, к этому числу прибавляется длина исходного сообщения М и находится остаток от деления результата сложения на 2 в степени 256.
Вычисляется Н = X (М', Н).
Вычисляется Н = X (L, Н).
Вычисляется Н = X (, Н).
Значением функции хэширования является Н.
АИСС БКБ, www.orioncom.ru, tel (495) 783-5510