Интернет магазин китайских планшетных компьютеров



Компьютеры - ГОСТ Р 34.11-94 - Описание

24 июня 2011


Оглавление:
1. ГОСТ Р 34.11-94
2. Описание
3. Особенности ГОСТ Р 34.11-94
4. Параметры алгоритма
5. Формат вывода
6. Примеры
7. Оценка криптостойкости



Основой описываемой хэш-функции является шаговая функция хэширования H_{out}\ =\ f где Hout, Hin, m — блоки длины 256 бит.

Входное сообщение M разделяется на блоки mn,mn − 1,mn − 2,...,m1 по 256 бит. В случае если размер последнего блока mn меньше 256 бит, то к нему приписываются слева нули для достижения заданной длины блока.

Каждый блок сообщения, начиная с первого, подаётся на шаговую функцию для вычисления промежуточного значения хэш-функции:
\!H_{i+1}=f
Значение H1 можно выбрать произвольным.

После вычисления Hn + 1 конечное значение хэш-функции получают следующим образом:

  • H_{n+2}\ =\ f, где L — Длина сообщения M в битах по модулю 2
  • h\ =\ f, где K — Контрольная сумма сообщения M: m1 + m2 + m3 + ... + mn

h — значение хэш-функции сообщения M

GOST-hash-calculation.gif

Алгоритм
  1. Инициализация:
    1. h\ := H_1 — Начальное значение хэш-функции. Т.е. - 256 битовый IV вектор, определяется пользователем.
    2. \Sigma\ :=\ 0 — Контрольная сумма
    3. L\ :=\ 0 — Длина сообщения
  2. Функция сжатия внутренних итераций: для i = 1 … n — 1 выполняем следующее:
    1. h\ :=\ f - итерация метода последовательного хэширования
    2. L\ :=\ L\ +\ 256 - итерация вычисления длины сообщения
    3. \Sigma\ :=\ \Sigma\ +\ m_i - итерация вычисления контрольной суммы
  3. Функция сжатия финальной итерации:
    1. L\ :=\ L\ +\ \mathcal{j}\ m_n\ \mathcal{j} - вычисление полной длины сообщения
    2. m_n\ :=\ {0}^{256\ -\ \mathcal{j} m_n \mathcal{j}} \mathcal{k} m_n - набивка последнего блока
    3. \Sigma\ :=\ \Sigma\ +\ m_n - вычисление контрольной суммы сообщения
    4. h\ :=\ f
    5. h\ :=\ f - MD - усиление
    6. h\ :=\ f
  4. Выход. Значением хэш-функции является h,

Замечание: так как длина сообщения участвует в хэшировании, то нет необходимости указывать в передаваемом сообщении количество добавленных нулей к блоку mn.



Просмотров: 6327


<<< Whirlpool (криптография)
Структура МерклаДамгарда >>>