- •Вопрос 1
- •Вопрос 2
- •Вопрос 3
- •Вопрос 4 rsa алгоритм
- •Вопрос 6 алгоритм электронной цифровой подписи эль гамаля
- •Вопрос 7 dsa (digital signature algorithm)
- •Вопрос 8 гост р 34.10 - 94).
- •Вопрос 9 алгоритм диффи-хеллмана открытого распределения ключей
- •Вопрос 12 “подбрасывание монеты” по телефону
- •Вопрос 5 электронная цифровая подпись на основе rsa алгоритма
- •Вопрос 13 разделение секрета
- •Вопрос 14 конфиденциальная передача сообщений
Вопрос 8 гост р 34.10 - 94).
Стойкость ЭЦП основана на сложности вычисления дискретного логарифма в циклической группе простого конечного поля, а также на стойкости используемой хэш-функции по ГОСТ Р 34.11.
Опишем базовые математические объекты, используемые в процессах формирования и проверки ЭЦП.
Пусть — простое число, либо , — простое число, и является делителем для , — целое число, , при этом , — целое число, .
Пусть — секретный ключ пользователя для формирования подписи, , — открытый ключ пользователя для проверки подписи, .
Числа не являются секретными. Конкретный набор их значений может быть общим для группы пользователей. Целое число , которое генерируется в процедуре подписи сообщения, должно быть секретным и должно быть уничтожено сразу после выработки подписи. Число снимается с физического датчика случайных чисел или вырабатывается псевдослучайным методом с использованием секретных параметров.
Опишем теперь алгоритмы формирования и проверки цифровой подписи под сообщением пользователя.
Для получения цифровой подписи под сообщением необходимо выполнить следующие шаги:
Шаг 1 — вычислить хэш-код сообщения .
Шаг 2 — вычислить целое число , соответствующее вектору , и определить . Если , то определить .
Шаг 3 — сгенерировать псевдослучайное целое число , удовлетворяющее неравенству .
Шаг 4 — вычислить два значения и . Если , то вернуться к шагу 3.
Шаг 5 — с использованием секретного ключа пользователя (отправителя сообщения) вычислить значение . Если , то вернуться к шагу 3.
Пара чисел и является цифровой подписью под данным сообщением.
Для проверки цифровой подписи под сообщением необходимо выполнить следующие шаги:
Шаг 1 — проверить выполнение неравенств . Если неравенства выполняются, то перейти к следующему шагу. В противном случае подпись неверна.
Шаг 2 — вычислить хэш-код сообщения .
Шаг 3 — вычислить целое число , соответствующее вектору , и определить . Если , то определить .
Шаг 4 — вычислить число .
Шаг 5 — вычислить значения и .
Шаг 6 — вычислить значение .
Шаг 7 — если выполнено равенство , то подпись принимается в противном случае подпись неверна.
Замечание. Важным моментом является получение чисел , удовлетворяющих перечисленным требованиям.
Вопрос 9 алгоритм диффи-хеллмана открытого распределения ключей
Пусть — простое число, а — примитивный элемент мультипликативной группы вычетов по модулю . Пользователи A и B выбирают себе случайные большие целые числа и , которые хранятся в секрете.
Шаг 1 — пользователь A вычисляет , а пользователь вычисляет .
Шаг 2 — пользователи A и B обмениваются и по открытым каналам.
Шаг 3 — пользователи вычисляют общий секретный ключ и находят число .
Теперь они могут шифровать куски (числа) сообщений по формуле , а расшифровывать по формуле .
Если у противника имеются числа , то ему нужно найти такое число , что , т.е. решить задачу дискретного логарифма.
Замечание 1. Если — простое число, то особенно легко находить образующие для мультипликативной группы вычетов. Образующей всегда будет одно из чисел либо . Кроме того, для чисел и достаточно потребовать нечетности. В этом случае примитивный элемент переходит в примитивный элемент либо .
Замечание 2. При обмене числами нужно иметь гарантию, что ключ получен от пользователя , а ключ получен от пользователя . Это можно решить с помощью электронной цифровой подписи, которой подписывают сообщение при формировании общего ключа. Можно также при этом задавать ключи шифрования непосредственно перед каждым сеансом, а не хранить их на дискетах и т.п.
Пример (алгоритм Диффи-Хеллмана). Пусть — простое число, а — примитивный элемент мультипликативной группы вычетов по модулю .
Пользователи A и B выбирают себе случайные большие целые числа и , которые хранятся в секрете.
Пусть . Тогда
,
Если сообщение , то зашифрованное сообщение , а восстановленное равно