Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
kripto_otv_ekz.doc
Скачиваний:
7
Добавлен:
01.05.2025
Размер:
2.02 Mб
Скачать
  1. Функция хеширования sha-1.

  • Для входного сообщения произвольной длины (максимум   бит) алгоритм генерирует 160-битное хеш-значение.

  • SHA-1 реализует хеш-функцию, построенную на идее функции сжатия. Входами функции сжатия являются блок сообщения длиной 512 бит и выход предыдущего блока сообщения. Выход представляет собой значение всех хеш-блоков до этого момента. Иными словами хеш-блока   равен  . Хеш-значением всего сообщения является выход последнего блока.

  • Инициализация .Исходное сообщение разбивается на блоки по 512 бит в каждом. Последний блок дополняется до длины, кратной 512 бит. Сначала добавляется 1, а потом нули, чтобы длина блока стала равной (512 - 64 = 448) бит. В оставшиеся 64 бита записывается длина исходного сообщения в битах. Если последний блок имеет длину более 448, но менее 512 бит, то дополнение выполняется следующим образом: сначала добавляется 1, затем нули вплоть до конца 512-битного блока; после этого создается ещё один 512-битный блок, который заполняется вплоть до 448 бит нулями, после чего в оставшиеся 64 бита записывается длина исходного сообщения в битах. Дополнение последнего блока осуществляется всегда, даже если сообщение уже имеет нужную длину. Инициализируются пять 32-битовых переменных.

  • Определяются четыре нелинейные операции и четыре константы.

    •  = 0x5A827999

    • 0≤t≤19

    •  = 0x6ED9EBA1

    • 20≤t≤39

    •  = 0x8F1BBCDC

    • 40≤t≤59

    •  = 0xCA62C1D6

    • 60≤t≤79

  • Главный цикл.Главный цикл итеративно обрабатывает каждый 512-битный блок. Итерация состоит из четырех этапов по двадцать операций в каждом. Блок сообщения преобразуется из 16 32-битовых слов   в 80 32-битовых слов   по следующему правилу:

  • при 0≤t≤15 = ( -3 -8 -14 -16) << 1 при 16≤t≤79

  • здесь << — это циклический сдвиг влево

  • для от 0 до 79 temp = (a<<5) + (b,c,d) + e + e = d d = c c = b<<30 b = a a = temp

  • После этого a, b, c, d, e прибавляются к A, B, C , D , E соответственно. Начинается следующая итерация.

  • Итоговым значением будет объединение пяти 32-битовых слов в одно 160-битное хеш-значение.

  1. Функция хеширования гост 3411-94.

ГОСТ Р 34.11-94 — российский криптографический стандарт вычисления хеш-функции, 1994 г.( Размер хеша: 256 бит,  выходное значение тоже 256 бит)

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

Каждый блок сообщения, начиная с первого, подаётся на шаговую функцию для вычисления промежуточного значения хеш-функции: Значение   - произвольное.

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

  • , где L — Длина сообщения M в битах по модулю 

  • , где K — Контрольная сумма сообщения M: 

Алгоритм

  1. Инициализация:

    1.  — Начальное значение хеш-функции. То есть — 256 битовый IV вектор, определяется пользователем.

    2.  — Контрольная сумма

    3.  — Длина сообщения

  2. Функция сжатия внутренних итераций: для i = 1 … n — 1 выполняем следующее (пока  ):

    1.  — итерация метода последовательного хеширования

    2.  — итерация вычисления длины сообщения

    3.  — итерация вычисления контрольной суммы

  3. Функция сжатия финальной итерации:

    1.  — вычисление полной длины сообщения

    2.  — набивка последнего блока

    3.  — вычисление контрольной суммы сообщения

    4.  — MD — усиление

Выход. Значением хеш-функции является h

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]