Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

курсак

.pdf
Скачиваний:
15
Добавлен:
10.02.2016
Размер:
1.38 Mб
Скачать

51

2.4 Электронная цифровая подпись ГОСТ

ГОСТ Р 34.10-2001 (полное название: «ГОСТ Р 34.10-2001. Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи») российский стандарт, описывающий алгоритмы формирования и проверки электронной цифровой подписи.

Цифровая подпись позволяет:

а) аутентифицировать лицо, подписавшее сообщение; б) контролировать целостность сообщения; в) защищать сообщение от подделок;

г) доказать авторство лица, подписавшего сообщение.

ГОСТ Р 34.10-2001 основан на эллиптических кривых. Его стойкость основывается на сложности вычисления дискретного логарифма в группе точек эллиптической кривой, а также на стойкости хэш-функции по ГОСТ Р 34.11-94. После подписывания сообщения М к нему дописывается цифровая подпись размером 512 бит и текстовое поле. В текстовом поле могут содержаться, например, дата и время отправки или различные данные об отправителе.

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

Поле "текст", дополняющее поле "цифровая подпись", может, например, содержать различные данные об отправителе сообщения или дату и время отправки.

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

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

Цифровая подпись, представленная в виде двоичного вектора длиной 512 бит, должна вычисляться с помощью определенного набора правил (рис. 2.5).

52

Рисунок 2.5 – Алгоритм формирования цифровой подписи

Криптостойкость цифровой подписи опирается на две компоненты – на стойкость хэш-функции и на стойкость самого алгоритма шифрования. Вероятность взлома хэш-функции по ГОСТ 34.11-94 составляет 1,73*10-77 при подборе коллизии на фиксированное сообщение и 2,94*10-39 при подборе любой коллизии. Стойкость алгоритма шифрования основывается на дискретном логарифмировании в группе точек эллиптической кривой. На данный момент нет метода решения данной задачи хотя бы с субэкспоненциальной сложностью.

53

2.5 Хэш-функция MD5

Функция хэширования H представляет собой отображение, на вход которого подаётся сообщение M произвольной длины, а на выходе получается значение h конечной длины, где h = H(M).

В общем случае хэш-значение h гораздо меньше исходного сообщения M. Так для MD5 h=128 бит. Хэш-функция должна обладать следующими свойствами:

1 По достаточно большому сообщению M хэш-функция должна быстро вычислить h значение, которое должно зависеть от каждого бита сообщения M;

2 Необратимость: по h значению невозможно восстановить исходный текст

M;

3 Вычислительно очень трудно (почти невозможно) найти два сообщения M и M1, которые дают два одинаковых h-значения.

Хэш-значение является контрольной суммой исходного сообщения M и называется MDC (Manipulation Detection Code код обнаружения изменений) или MIC (Message Integrity Check проверка целостности сообщения). Если хэшфункция использует для своей работы ключ (пароль), то получаемое значение называется MAC (Message Authentication Code код аутентичности сообщения)

Описание алгоритма MD5.

Подробное официальное описание MD5 даётся в RFC 1321 (The MD5 Message-Digest Algorithm). Ниже приводиться наиболее важные детали русского перевода: MD5 алгоритм используется в приложениях криптографии и электронно-цифровых подписей для генерации ключа шифрования. Алгоритм разработан, что бы быть достаточно быстрым на 32-битных системах и не требовать больших объемов памяти. MD5 является чуть более медленным, чем MD4, но является более устойчивым к криптографическим атакам. Далее под "словом" будет подразумеваться количество информации в 32 бита, а под "байтом" 8 бит. Последовательность бит интерпретируется в естественной форме как последовательность байт, где каждая группа из 8 бит является отдельным байтом, причём старший бит байта идет первым. Аналогично представляется последовательность байт, как последовательность слов, только младший байт идет первым. Предполагается, что в качестве входного потока имеется поток данных N бит. N неотрицательное целое (возможно 0), не обязательно кратное 8. Для вычисления MD5 хэш-функции необходимо выполнить следующие 4 шага.

54

Шаг 1: выравнивание потока.

Входной поток выравнивается так, что бы его длина стала конгруэнтной (сравнимой) с 448 по модулю 512. Выравнивание происходит следующим образом: к потоку добавляется один бит '1', а затем биты '0' до тех пор, пока длина потока не будет сравнима с 448 по модулю 512. Выравнивание происходит всегда, даже если длина потока была уже сравнима с 448 по модулю 512. Таким образом к потоку добавляется минимум 1 бит, максимум 512.

Шаг 2: добавление длины.

64 битное представление длины входного потока (длины потока до выравниваия) добавляется к результату предидущего шага. Если длина потока превосходит 2^64, то добавляются младшие 64 бит. Эти биты добавляются как 2 32-битных слова, младшее слово добавляется первым. Таким образом на этом шаге длина потока становится кратной 512 битам или 16, 32-битным словам. Далее будем рассматривать входной поток как массив M[0 ... N1] слов длиной N.

Шаг 3: инициализация MD буфера.

Буфер из 4 слов {A, B, C, D} используется для вычисления хэш функции, который инициализируется в следующие значения:

A = 0x67452301 B = 0xEFCDAB89 C = 0x98BADCFE D = 0x10325476

Шаг 4: вывод MD5.

Результат вычисления (хэш) представлен четырьмя 32 битными словами A, B, C, D (младшим записывается A, старшим D). 128-битный MD5 хэш готов.

55