Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга бельфер.docx
Скачиваний:
228
Добавлен:
20.09.2019
Размер:
9.74 Mб
Скачать
        1. В.3.2.1. Функция хеширования стандарта sha-1

Все функции хеширования построены на следующих общих принципах.

Вводимое сообщение рассматривается как последовательность l-битовых блоков. Данные, поступающие на вход схемы хеширования, обрабатываются блок за блоком, в результате чего получается n-битовое значение профиля сообщения (кода хеширования). Приведём краткое описание функции хеширования одного из стандартов. Один из наиболее широко применяемых – безопасный алгоритм хеширования (SHA, Secure Hash Algorithm) был выпущен в 1995 году и получил название SHA-1. Длина профиля сообщения n=160 бит. Длина обрабатываемого блока сообщения L=512 бит. На рис. B.4 представлен общий процесс обработки сообщения с целью получения его профиля.

Рис. В.4. Процесс создания профиля сообщения по алгоритму стандарта SHA-1

Обработка состоит из следующих этапов:

  • добавление битов заполнителя. Сообщение дополняется так, чтобы длина последнего блока была равна 448 по модулю 512 (длина равна 448 mod 512). То есть длина сообщения на 64 бита меньше, чем число кратное 512. Таким образом, число дополнительных битов находится в диапазоне от 1 до 512. Заполнитель состоит из бита 1, за которым следует необходимое число 0-битов.

  • дополнение сообщения. К сообщению добавляется блок из 64 бит. Этот блок рассматривается, как длина сообщения без добавленных битов заполнителя. Включение значения длины затрудняет атаку, которая называется атакой заполнения.

В результате расширения сообщение представляет собой целое число длиной, кратной 512 бит. На рис. В.4 расширенное сообщение представлено последовательностью 512-битовых блоков Y0, Y1,… Yl-1 так, что общая длина равна L*512 бит, где L – число блоков.

Для хранения промежуточных и конечных результатов функции хеширования используется 160-битовых буфер, который при обработке первого блока инициализируется с помощью вектора инициализации IV. Основой алгоритма обработки блока длиной 512 бит служит модуль, включающий четыре этапа обработки, каждый из которых состоит из 20 шагов. Все этапы имеют схожую структуру, но каждый использует различные логические функции. Обозначение H на рис. В.4 означает функцию хеширования, выполняемую модулем. Обработка 512-битового блока и 160-битового профиля сообщения завершается обновлением содержания 160-битового буфера профиля. После обработки блока содержимое буфера профиля изменится. После того, как обработаны все L 512-битовых блоков на выходе L-этапа образуется 160-битовый профиль сообщения.

        1. В.3.2.2. Применение sha-1 и rsa для создания эцп

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

Бобу с использованием хеширования по стандарту SHA-1 и криптографии с открытым ключом. Открытое сообщение Р обрабатывается алгоритмом SHA-1, на выходе получается 160-битовый профиль сообщения. Этот профиль сообщения подписывается Алисой (закрытым ключом DA) и отправляется вместе с открытым сообщением Бобу.

Рис. В.5. Передача открытого сообщения с ЭЦП по стандарту SHA-1

При получении сообщения Р вместе с ЭЦП Боб вычисляет хеш-функцию H=h(P) с помощью алгоритма SHA-1 и применяет открытый ключ Алисы к ЭЦП (т.е. EA(DA(H)) для того, чтобы получить исходный профиль H. Из полученного открытого сообщения Боб формирует его профиль, т.е. H. Если H и H' совпадают, то это означает, что поступило исходное сообщение P', т.к. злоумышленник не может изменить сообщение Р так, чтобы совпали H и H'. Таким образом Боб узнаёт обо всех подменах, которые совершил злоумышленник.