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

курсак

.pdf
Скачиваний:
17
Добавлен:
10.02.2016
Размер:
1 Мб
Скачать
☆

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 ... N–1] слов длиной 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