Помощь в учёбе, очень быстро...
Работаем вместе до победы

Функция НМАС. 
Криптографические методы защиты информации

РефератПомощь в написанииУзнать стоимостьмоей работы

Следует отметить, что данная функция удовлетворяет всем поставленным нами в определении 8.3 условиям. Действительно, задача определения секретного ключа к и, следовательно, к сводится к обращению функции Я. Если функция Я однонаправленная, то задача вычисления ее прообраза является трудоемкой в силу свойств функции Я. Более того, поскольку при фиксированном ключе к данная функция есть двукратное… Читать ещё >

Функция НМАС. Криптографические методы защиты информации (реферат, курсовая, диплом, контрольная)

Наложенное нами выше требование на ключевую функцию хэширования — требование одиоиаправленности, а также сложности построения коллизий и второго прообраза — делает привлекательным использование бес ключевых функций хэширования для синтеза ключевых функций.

Так, еще отечественный стандарт ГОСТ Р 34.11−94 мог быть использован для выработки кодов целостности следующим образом. Как мы говорили в разделе 8.1.2, для функции ГОСТ Р 34.11−94 в тексте стандарта не определено начальное значение ho, следовательно, это значение может являться секретным ключом, используемым для выработки кода целостности. Следуя (8.2), мы могли бы определить функцию.

Функция НМАС. Криптографические методы защиты информации.

где одношаговая функция сжатия / и завершающее отображение д определяются соответственно равенствами (8.3) и (8.4). Используя то же равенство, мы могли бы также определить ключевую функцию хэширования на основе бесключевой функции «Стрибог», вычисляя / и д в соответствии с равенствами (8.7) и (8.8).

Несмотря па то что такой способ выработки кодов целостности неоднократно предлагался к использованию, большого распространения он нс получил. Причиной этому стали невысокая скорость работы алгоритма ГОСТ Р 34.11−94, а также существование режима выработки имитовставки для алгоритма блочного шифрования ГОСТ 28 147–89.

В зарубежных работах получил распространение другой подход, основанный на двукратном вычислении значений бесключевой функции хэширования. Так, значение функции Мае {к, а) может быть определено равенством.

Функция НМАС. Криптографические методы защиты информации.

где Н (а) — произвольная бссключевая функция хэширования, а производные ключи к, к2 вырабатываются из ключа к.

Следует отметить, что данная функция удовлетворяет всем поставленным нами в определении 8.3 условиям. Действительно, задача определения секретного ключа к и, следовательно, к сводится к обращению функции Я. Если функция Я однонаправленная, то задача вычисления ее прообраза является трудоемкой в силу свойств функции Я. Более того, поскольку при фиксированном ключе к данная функция есть двукратное вычисление значения функции Я, то задача построения коллизии для определенной нами функции Мас (&, а) не легче, чем построение коллизии для функции Я.

Подход к построению ключевых функций хэширования на основе равенства (8.9), был стандартизирован американским институтом по стандартизации NIST, а позднее и международной системой стандартизации ISO под названием НМАС. Более подробно алгоритм НМАС выглядит следующим образом.

Алгоритм 8.1 (Ключевая функция хэширования НМАС)[1][2]

  • 4. Вычислить к2 = ко Ф с где с2 — константа, состоящая из В = § байтов (чисел в шестнадцатеричной форме записи) 0×36.
  • 5. Вычислить а' = #(/?2||а).
  • 6. Вычислить = fc0 Ф сь где ci — константа, состоящая из В = § байтов (чисел в шестнадцатеричной форме записи) 0×5с.
  • 7. Вычислить значение функции Мае (к, а) = #(Ari||a'). ?

Как следует из данного описания, ключевая функция хэширования использует двукратный вызов бесключевой функции хэширования Я (-) для преобразования исходного сообщения а. Следовательно, время вычисления кода целостности сообщения а в два раза дольше, чем у бесключевой функции хэширования Я.

На каждом шаге к сообщению добавляется вектор, зависящий от ключа. Эта добавка позволяет избавиться от атак (реализации алгоритмов построения коллизии), использующих заранее подготовленные словари значений функции хэширования.

Основная цель констант с, с2 — предотвратить возможность реализации алгоритмов построения коллизий, использующих короткие длины ключей (большое число нулей на входе функции). Добавим, что ключи короткой длины сами по себе предоставляют криптографическую опасность, ибо позволяют противнику надеяться на успешное проведение атак, основанных на переборе ключей.

Очевидно, что для приведенного выше подхода, оптимальным с точки зрения реализации значением длины ключа т = 1еп к является значение, совпадающее с п — длиной хэш-кода функции Я (-).

Поскольку алгоритм ИМ АС допускает использование любой бесключевой функции хэширования, в нем можно применять отечественную функцию хэширования «Стрибог». В этом случае возможно выполнение равенств п = еп к = 512. С другой стороны, основываясь на высказанном выше замечании, такая длина ключа может оказаться избыточной и ее можно ограничить величиной т = 256.

  • [1] Вход: Секретный ключ к е F™, сообщение, а 6 F|°, бссключевая функцияхэширования Н (а): Fijf —> F?. Выход: Мас (/с. а) — код целостности сообщения а, Mac (&, а) € FJ.
  • [2] Если 1еп к = п, то положить ко = к и перейти к четвертому шагу. 2. Если len к > п, то определить ко = Н (к) и перейти к четвертомушагу. 3. Если len к < п, то определить ко = К|| (К^Д) гак, чтобы len fc0 = n. n—len к
Показать весь текст
Заполнить форму текущей работой