- •Вопрос 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 выбирают себе случайные большие целые числа и , которые хранятся в секрете.
Пусть
.
Тогда
,
Если
сообщение
,
то зашифрованное сообщение
,
а восстановленное равно
